ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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 
33 static 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 
400 static 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 
435 enum OnceUponATime {
436  kOnceUponATimeInvalid = -1,
437  kOnceUponATimeAbracadabra = 0,
438  kOnceUponATimeBabaYaga = 1,
439  kOnceUponATimeMAX
440 };
441 
442 enum OnceUponATimePlatform {
443  kOnceUponATimePlatformInvalid = -1,
444  kOnceUponATimePlatformDOS = 0,
445  kOnceUponATimePlatformAmiga = 1,
446  kOnceUponATimePlatformAtariST = 2,
447  kOnceUponATimePlatformMAX
448 };
449 
450 static 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
No flags.
Definition: advancedDetector.h:139
#define AD_ENTRY1(f, x)
Definition: advancedDetector.h:110
Definition: advancedDetector.h:329