1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*
* This file is dual-licensed.
* In addition to the GPLv3 license mentioned above, this code is also
* licensed under LGPL 2.1. See LICENSES/COPYING.LGPL file for the
* full text of the license.
*
*/
#ifndef GOB_DETECTION_H
#define GOB_DETECTION_H
#include "engines/advancedDetector.h"
namespace Gob {
// WARNING: Reordering these will invalidate save games!
// Add new games to the bottom of the list.
enum GameType {
kGameTypeNone = 0,
kGameTypeGob1,
kGameTypeGob2,
kGameTypeGob3,
kGameTypeWoodruff,
kGameTypeBargon,
kGameTypeWeen,
kGameTypeLostInTime,
kGameTypeInca2,
kGameTypeDynasty,
kGameTypeUrban,
kGameTypePlaytoons,
kGameTypeBambou,
kGameTypeFascination,
kGameTypeGeisha,
kGameTypeAdi2,
kGameTypeAdi4,
kGameTypeAdibou2,
kGameTypeAdibou1,
kGameTypeAbracadabra,
kGameTypeBabaYaga,
kGameTypeLittleRed,
kGameTypeOnceUponATime, // Need more inspection to see if Baba Yaga or Abracadabra
//kGameTypeAJWorld -> Deprecated, duplicated with kGameTypeAdibou1
kGameTypeCrousti = 24, // Explicit value needed to not invalidate save games after removing kGameTypeAJWorld
kGameTypeDynastyWood,
kGameTypeAdi1
};
enum Features {
kFeaturesNone = 0,
kFeaturesCD = 1 << 0,
kFeaturesEGA = 1 << 1,
kFeaturesAdLib = 1 << 2,
kFeaturesSCNDemo = 1 << 3,
kFeaturesBATDemo = 1 << 4,
kFeatures640x480 = 1 << 5,
kFeatures800x600 = 1 << 6,
kFeaturesTrueColor = 1 << 7,
kFeatures16Colors = 1 << 8,
kFeatures640x400 = 1 << 9,
};
enum AdditionalGameFlags {
GF_ENABLE_ADIBOU2_FREE_BANANAS_WORKAROUND = 1 << 0,
GF_ENABLE_ADIBOU2_FLOWERS_INFINITE_LOOP_WORKAROUND = 1 << 1,
};
struct GOBGameDescription {
ADGameDescription desc;
int32 features;
const char *startStkBase;
const char *startTotBase;
uint32 demoIndex;
uint32 sizeBuffer() const {
uint32 ret = desc.sizeBuffer();
ret += ADDynamicDescription::strSizeBuffer(startStkBase);
ret += ADDynamicDescription::strSizeBuffer(startTotBase);
return ret;
}
void *toBuffer(void *buffer) {
buffer = desc.toBuffer(buffer);
buffer = ADDynamicDescription::strToBuffer(buffer, startStkBase);
buffer = ADDynamicDescription::strToBuffer(buffer, startTotBase);
return buffer;
}
};
#define GAMEOPTION_COPY_PROTECTION GUIO_GAMEOPTIONS1
} // End of namespace Gob
#endif // GOB_DETECTION_H
|