ScummVM API documentation
detection.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_H
29#define GOB_DETECTION_H
30
31#include "engines/advancedDetector.h"
32
33namespace Gob {
34
35// WARNING: Reordering these will invalidate save games!
36// Add new games to the bottom of the list.
37enum GameType {
38 kGameTypeNone = 0,
39 kGameTypeGob1,
40 kGameTypeGob2,
41 kGameTypeGob3,
42 kGameTypeWoodruff,
43 kGameTypeBargon,
44 kGameTypeWeen,
45 kGameTypeLostInTime,
46 kGameTypeInca2,
47 kGameTypeDynasty,
48 kGameTypeUrban,
49 kGameTypePlaytoons,
50 kGameTypeBambou,
51 kGameTypeFascination,
52 kGameTypeGeisha,
53 kGameTypeAdi2,
54 kGameTypeAdi4,
55 kGameTypeAdibou2,
56 kGameTypeAdibou1,
57 kGameTypeAbracadabra,
58 kGameTypeBabaYaga,
59 kGameTypeLittleRed,
60 kGameTypeOnceUponATime, // Need more inspection to see if Baba Yaga or Abracadabra
61 //kGameTypeAJWorld -> Deprecated, duplicated with kGameTypeAdibou1
62 kGameTypeCrousti = 24, // Explicit value needed to not invalidate save games after removing kGameTypeAJWorld
63 kGameTypeDynastyWood,
64 kGameTypeAdi1
65};
66
67enum Features {
68 kFeaturesNone = 0,
69 kFeaturesCD = 1 << 0,
70 kFeaturesEGA = 1 << 1,
71 kFeaturesAdLib = 1 << 2,
72 kFeaturesSCNDemo = 1 << 3,
73 kFeaturesBATDemo = 1 << 4,
74 kFeatures640x480 = 1 << 5,
75 kFeatures800x600 = 1 << 6,
76 kFeaturesTrueColor = 1 << 7,
77 kFeatures16Colors = 1 << 8,
78 kFeatures640x400 = 1 << 9,
79};
80
81enum AdditionalGameFlags {
82 GF_ENABLE_ADIBOU2_FREE_BANANAS_WORKAROUND = 1 << 0,
83 GF_ENABLE_ADIBOU2_FLOWERS_INFINITE_LOOP_WORKAROUND = 1 << 1,
84};
85
88
89 int32 features;
90 const char *startStkBase;
91 const char *startTotBase;
92 uint32 demoIndex;
93
94 uint32 sizeBuffer() const {
95 uint32 ret = desc.sizeBuffer();
96 ret += ADDynamicDescription::strSizeBuffer(startStkBase);
97 ret += ADDynamicDescription::strSizeBuffer(startTotBase);
98 return ret;
99 }
100
101 void *toBuffer(void *buffer) {
102 buffer = desc.toBuffer(buffer);
103 buffer = ADDynamicDescription::strToBuffer(buffer, startStkBase);
104 buffer = ADDynamicDescription::strToBuffer(buffer, startTotBase);
105 return buffer;
106 }
107};
108
109#define GAMEOPTION_COPY_PROTECTION GUIO_GAMEOPTIONS1
110#define GAMEOPTION_TTS GUIO_GAMEOPTIONS2
111
112} // End of namespace Gob
113
114#endif // GOB_DETECTION_H
Definition: advancedDetector.h:164
uint32 sizeBuffer() const
Definition: advancedDetector.h:221
void * toBuffer(void *buffer)
Definition: advancedDetector.h:239
Definition: detection.h:86