ScummVM API documentation
tables_fallback.h
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 modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (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, see <http://www.gnu.org/licenses/>.
19 *
20 *
21 * This file is dual-licensed.
22 * In addition to the GPLv3 license mentioned above, this code is also
23 * licensed under LGPL 2.1. See LICENSES/COPYING.LGPL file for the
24 * full text of the license.
25 *
26 */
27
28#ifndef GOB_DETECTION_TABLES_FALLBACK_H
29#define GOB_DETECTION_TABLES_FALLBACK_H
30
31// -- Tables for the filename-based fallback --
32
33static const GOBGameDescription fallbackDescs[] = {
34 { //0
35 {
36 "gob1",
37 "unknown",
38 AD_ENTRY1(0, 0),
39 UNK_LANG,
40 kPlatformDOS,
42 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
43 },
44 kFeaturesNone,
45 0, 0, 0
46 },
47 { //1
48 {
49 "gob1",
50 "unknown",
51 AD_ENTRY1(0, 0),
52 UNK_LANG,
53 kPlatformDOS,
55 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
56 },
57 kFeaturesCD,
58 0, 0, 0
59 },
60 { //2
61 {
62 "gob2",
63 "unknown",
64 AD_ENTRY1(0, 0),
65 UNK_LANG,
66 kPlatformDOS,
68 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
69 },
70 kFeaturesAdLib,
71 0, 0, 0
72 },
73 { //3
74 {
75 "gob2",
76 "unknown",
77 AD_ENTRY1(0, 0),
78 UNK_LANG,
79 kPlatformMacintosh,
81 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
82 },
83 kFeaturesAdLib,
84 0, 0, 0
85 },
86 { //4
87 {
88 "gob2",
89 "unknown",
90 AD_ENTRY1(0, 0),
91 UNK_LANG,
92 kPlatformDOS,
94 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
95 },
96 kFeaturesCD,
97 0, 0, 0
98 },
99 { //5
100 {
101 "bargon",
102 "",
103 AD_ENTRY1(0, 0),
104 UNK_LANG,
105 kPlatformDOS,
107 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
108 },
109 kFeaturesNone,
110 0, 0, 0
111 },
112 { //6
113 {
114 "gob3",
115 "unknown",
116 AD_ENTRY1(0, 0),
117 UNK_LANG,
118 kPlatformDOS,
120 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
121 },
122 kFeaturesAdLib,
123 0, 0, 0
124 },
125 { //7
126 {
127 "gob3",
128 "unknown",
129 AD_ENTRY1(0, 0),
130 UNK_LANG,
131 kPlatformDOS,
133 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
134 },
135 kFeaturesCD,
136 0, 0, 0
137 },
138 { //8
139 {
140 "woodruff",
141 "unknown",
142 AD_ENTRY1(0, 0),
143 UNK_LANG,
144 kPlatformWindows,
146 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
147 },
148 kFeatures640x480,
149 0, 0, 0
150 },
151 { //9
152 {
153 "lit",
154 "unknown",
155 AD_ENTRY1(0, 0),
156 UNK_LANG,
157 kPlatformDOS,
159 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
160 },
161 kFeaturesAdLib,
162 0, 0, 0
163 },
164 { //10
165 {
166 "lit",
167 "unknown",
168 AD_ENTRY1(0, 0),
169 UNK_LANG,
170 kPlatformMacintosh,
172 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
173 },
174 kFeaturesAdLib,
175 0, 0, 0
176 },
177 { //11
178 {
179 "lit",
180 "unknown",
181 AD_ENTRY1(0, 0),
182 UNK_LANG,
183 kPlatformDOS,
185 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
186 },
187 kFeaturesCD,
188 0, 0, 0
189 },
190 { //12
191 {
192 "urban",
193 "unknown",
194 AD_ENTRY1(0, 0),
195 UNK_LANG,
196 kPlatformWindows,
198 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
199 },
200 kFeatures640x480 | kFeaturesTrueColor,
201 0, 0, 0
202 },
203 { //13
204 {
205 "playtoons1",
206 "unknown",
207 AD_ENTRY1(0, 0),
208 UNK_LANG,
209 kPlatformWindows,
211 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
212 },
213 kFeatures640x480,
214 0, 0, 0
215 },
216 { //14
217 {
218 "playtoons2",
219 "unknown",
220 AD_ENTRY1(0, 0),
221 UNK_LANG,
222 kPlatformWindows,
224 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
225 },
226 kFeatures640x480,
227 0, 0, 0
228 },
229 { //15
230 {
231 "playtoons3",
232 "unknown",
233 AD_ENTRY1(0, 0),
234 UNK_LANG,
235 kPlatformWindows,
237 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
238 },
239 kFeatures640x480,
240 0, 0, 0
241 },
242 { //16
243 {
244 "playtoons4",
245 "unknown",
246 AD_ENTRY1(0, 0),
247 UNK_LANG,
248 kPlatformWindows,
250 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
251 },
252 kFeatures640x480,
253 0, 0, 0
254 },
255 { //17
256 {
257 "playtoons5",
258 "unknown",
259 AD_ENTRY1(0, 0),
260 UNK_LANG,
261 kPlatformWindows,
263 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
264 },
265 kFeatures640x480,
266 0, 0, 0
267 },
268 { //18
269 {
270 "playtnck1",
271 "unknown",
272 AD_ENTRY1(0, 0),
273 UNK_LANG,
274 kPlatformWindows,
276 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
277 },
278 kFeatures640x480,
279 0, 0, 0
280 },
281 { //19
282 {
283 "bambou",
284 "unknown",
285 AD_ENTRY1(0, 0),
286 UNK_LANG,
287 kPlatformWindows,
289 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
290 },
291 kFeatures640x480,
292 0, 0, 0
293 },
294 { //20
295 {
296 "fascination",
297 "unknown",
298 AD_ENTRY1(0, 0),
299 UNK_LANG,
300 kPlatformDOS,
302 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
303 },
304 kFeaturesAdLib,
305 "disk0.stk", 0, 0
306 },
307 { //21
308 {
309 "geisha",
310 "unknown",
311 AD_ENTRY1(0, 0),
312 UNK_LANG,
313 kPlatformDOS,
315 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
316 },
317 kFeaturesEGA | kFeaturesAdLib,
318 "disk1.stk", "intro.tot", 0
319 },
320 { //22
321 {
322 "littlered",
323 "unknown",
324 AD_ENTRY1(0, 0),
325 UNK_LANG,
326 kPlatformDOS,
328 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
329 },
330 kFeaturesAdLib | kFeaturesEGA,
331 0, 0, 0
332 },
333 { //23
334 {
335 "littlered",
336 "unknown",
337 AD_ENTRY1(0, 0),
338 UNK_LANG,
339 kPlatformAmiga,
341 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
342 },
343 kFeaturesNone,
344 0, 0, 0
345 },
346 { //24
347 {
348 "onceupon",
349 "unknown",
350 AD_ENTRY1(0, 0),
351 UNK_LANG,
352 kPlatformUnknown,
354 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
355 },
356 kFeaturesEGA,
357 0, 0, 0
358 },
359 { //25
360 {
361 "adi2",
362 "",
363 AD_ENTRY1(0, 0),
364 UNK_LANG,
365 kPlatformDOS,
367 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
368 },
369 kFeatures640x400,
370 "adi2.stk", 0, 0
371 },
372 { //26
373 {
374 "adi4",
375 "",
376 AD_ENTRY1(0, 0),
377 UNK_LANG,
378 kPlatformWindows,
380 GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
381 },
382 kFeatures640x480,
383 "adif41.stk", 0, 0
384 },
385 { //27
386 {
387 "coktelplayer",
388 "unknown",
389 AD_ENTRY1(0, 0),
390 UNK_LANG,
391 kPlatformDOS,
393 GUIO1(GUIO_NOASPECT)
394 },
395 kFeaturesAdLib | kFeatures640x480 | kFeaturesSCNDemo,
396 "", "", 8
397 }
398};
399
400static const ADFileBasedFallback fileBased[] = {
401 { &fallbackDescs[ 0].desc, { "intro.stk", "disk1.stk", "disk2.stk", "disk3.stk", "disk4.stk", 0 } },
402 { &fallbackDescs[ 1].desc, { "intro.stk", "gob.lic", 0 } },
403 { &fallbackDescs[ 2].desc, { "intro.stk", 0 } },
404 { &fallbackDescs[ 2].desc, { "intro.stk", "disk2.stk", "disk3.stk", 0 } },
405 { &fallbackDescs[ 3].desc, { "intro.stk", "disk2.stk", "disk3.stk", "musmac1.mid", 0 } },
406 { &fallbackDescs[ 4].desc, { "intro.stk", "gobnew.lic", 0 } },
407 { &fallbackDescs[ 5].desc, { "intro.stk", "scaa.imd", "scba.imd", "scbf.imd", 0 } },
408 { &fallbackDescs[ 6].desc, { "intro.stk", "imd.itk", 0 } },
409 { &fallbackDescs[ 7].desc, { "intro.stk", "mus_gob3.lic", 0 } },
410 { &fallbackDescs[ 8].desc, { "intro.stk", "woodruff.itk", 0 } },
411 { &fallbackDescs[ 9].desc, { "intro.stk", "commun1.itk", 0 } },
412 { &fallbackDescs[10].desc, { "intro.stk", "commun1.itk", "musmac1.mid", 0 } },
413 { &fallbackDescs[11].desc, { "intro.stk", "commun1.itk", "lost.lic", 0 } },
414 { &fallbackDescs[12].desc, { "intro.stk", "cd1.itk", "objet1.itk", 0 } },
415 { &fallbackDescs[13].desc, { "playtoon.stk", "archi.stk", 0 } },
416 { &fallbackDescs[14].desc, { "playtoon.stk", "spirou.stk", 0 } },
417 { &fallbackDescs[15].desc, { "playtoon.stk", "chato.stk", 0 } },
418 { &fallbackDescs[16].desc, { "playtoon.stk", "manda.stk", 0 } },
419 { &fallbackDescs[17].desc, { "playtoon.stk", "wakan.stk", 0 } },
420 { &fallbackDescs[18].desc, { "playtoon.stk", "dan.itk" } },
421 { &fallbackDescs[19].desc, { "intro.stk", "bambou.itk", 0 } },
422 { &fallbackDescs[20].desc, { "disk0.stk", "disk1.stk", "disk2.stk", "disk3.stk", 0 } },
423 { &fallbackDescs[21].desc, { "disk1.stk", "disk2.stk", "disk3.stk", 0 } },
424 { &fallbackDescs[22].desc, { "intro.stk", "stk2.stk", "stk3.stk", 0 } },
425 { &fallbackDescs[23].desc, { "intro.stk", "stk2.stk", "stk3.stk", "mod.babayaga", 0 } },
426 { &fallbackDescs[24].desc, { "stk1.stk", "stk2.stk", "stk3.stk", 0 } },
427 { &fallbackDescs[25].desc, { "adi2.stk", 0 } },
428 { &fallbackDescs[26].desc, { "adif41.stk", "adim41.stk", 0 } },
429 { &fallbackDescs[27].desc, { "coktelplayer.scn", 0 } },
430 { 0, { 0 } }
431};
432
433// -- Tables for detecting the specific Once Upon A Time game --
434
435enum OnceUponATime {
436 kOnceUponATimeInvalid = -1,
437 kOnceUponATimeAbracadabra = 0,
438 kOnceUponATimeBabaYaga = 1,
439 kOnceUponATimeMAX
440};
441
442enum OnceUponATimePlatform {
443 kOnceUponATimePlatformInvalid = -1,
444 kOnceUponATimePlatformDOS = 0,
445 kOnceUponATimePlatformAmiga = 1,
446 kOnceUponATimePlatformAtariST = 2,
447 kOnceUponATimePlatformMAX
448};
449
450static const GOBGameDescription fallbackOnceUpon[kOnceUponATimeMAX][kOnceUponATimePlatformMAX] = {
451 { // kOnceUponATimeAbracadabra
452 { // kOnceUponATimePlatformDOS
453 {
454 "abracadabra",
455 "",
456 AD_ENTRY1(0, 0),
457 UNK_LANG,
458 kPlatformDOS,
460 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
461 },
462 kFeaturesAdLib | kFeaturesEGA,
463 0, 0, 0
464 },
465 { // kOnceUponATimePlatformAmiga
466 {
467 "abracadabra",
468 "",
469 AD_ENTRY1(0, 0),
470 UNK_LANG,
471 kPlatformAmiga,
473 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
474 },
475 kFeaturesEGA,
476 0, 0, 0
477 },
478 { // kOnceUponATimePlatformAtariST
479 {
480 "abracadabra",
481 "",
482 AD_ENTRY1(0, 0),
483 UNK_LANG,
484 kPlatformAtariST,
486 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
487 },
488 kFeaturesEGA,
489 0, 0, 0
490 }
491 },
492 { // kOnceUponATimeBabaYaga
493 { // kOnceUponATimePlatformDOS
494 {
495 "babayaga",
496 "",
497 AD_ENTRY1(0, 0),
498 UNK_LANG,
499 kPlatformDOS,
501 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
502 },
503 kFeaturesAdLib | kFeaturesEGA,
504 0, 0, 0
505 },
506 { // kOnceUponATimePlatformAmiga
507 {
508 "babayaga",
509 "",
510 AD_ENTRY1(0, 0),
511 UNK_LANG,
512 kPlatformAmiga,
514 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
515 },
516 kFeaturesEGA,
517 0, 0, 0
518 },
519 { // kOnceUponATimePlatformAtariST
520 {
521 "babayaga",
522 "",
523 AD_ENTRY1(0, 0),
524 UNK_LANG,
525 kPlatformAtariST,
527 GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
528 },
529 kFeaturesEGA,
530 0, 0, 0
531 }
532 }
533};
534
535#endif // GOB_DETECTION_TABLES_FALLBACK_H
#define AD_ENTRY1(f, x)
Definition: advancedDetector.h:110
@ ADGF_NO_FLAGS
No flags.
Definition: advancedDetector.h:139
Definition: advancedDetector.h:331