mirror of
https://github.com/libretro/scummvm.git
synced 2025-05-13 09:36:21 +00:00
- Separated game type and features
- Added feature constants for a 640x480 resolution and adlib - Added support for game with a 640x480 resolution. Woodruff now inits the screen before it segfaults svn-id: r28185
This commit is contained in:
parent
38b282b313
commit
09c2ea82de
@ -34,7 +34,8 @@ namespace Gob {
|
|||||||
struct GOBGameDescription {
|
struct GOBGameDescription {
|
||||||
Common::ADGameDescription desc;
|
Common::ADGameDescription desc;
|
||||||
|
|
||||||
uint32 features;
|
GameType gameType;
|
||||||
|
int32 features;
|
||||||
const char *startTotBase;
|
const char *startTotBase;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -74,7 +75,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_EGA,
|
kGameTypeGob1,
|
||||||
|
kFeaturesEGA,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -86,7 +88,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_EGA,
|
kGameTypeGob1,
|
||||||
|
kFeaturesEGA,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by Theruler76 in bug report #1201233
|
{ // Supplied by Theruler76 in bug report #1201233
|
||||||
@ -98,7 +101,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1,
|
kGameTypeGob1,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.000 version.
|
{ // CD 1.000 version.
|
||||||
@ -110,7 +114,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.000 version.
|
{ // CD 1.000 version.
|
||||||
@ -122,7 +127,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.000 version.
|
{ // CD 1.000 version.
|
||||||
@ -134,7 +140,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.000 version.
|
{ // CD 1.000 version.
|
||||||
@ -146,7 +153,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.000 version.
|
{ // CD 1.000 version.
|
||||||
@ -158,7 +166,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.02 version. Multilingual
|
{ // CD 1.02 version. Multilingual
|
||||||
@ -170,7 +179,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.02 version. Multilingual
|
{ // CD 1.02 version. Multilingual
|
||||||
@ -182,7 +192,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.02 version. Multilingual
|
{ // CD 1.02 version. Multilingual
|
||||||
@ -194,7 +205,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.02 version. Multilingual
|
{ // CD 1.02 version. Multilingual
|
||||||
@ -206,7 +218,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // CD 1.02 version. Multilingual
|
{ // CD 1.02 version. Multilingual
|
||||||
@ -218,7 +231,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -230,7 +244,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAmiga,
|
kPlatformAmiga,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB1,
|
kGameTypeGob1,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -242,7 +257,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB1,
|
kGameTypeGob1,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 in bug report #1652352
|
{ // Supplied by paul66 in bug report #1652352
|
||||||
@ -254,7 +270,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformMacintosh,
|
kPlatformMacintosh,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1,
|
kGameTypeGob1,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 in bug report #1652352
|
{ // Supplied by paul66 in bug report #1652352
|
||||||
@ -266,7 +283,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformMacintosh,
|
kPlatformMacintosh,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1,
|
kGameTypeGob1,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 in bug report #1652352
|
{ // Supplied by paul66 in bug report #1652352
|
||||||
@ -278,7 +296,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformMacintosh,
|
kPlatformMacintosh,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1,
|
kGameTypeGob1,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 in bug report #1652352
|
{ // Supplied by paul66 in bug report #1652352
|
||||||
@ -290,7 +309,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformMacintosh,
|
kPlatformMacintosh,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1,
|
kGameTypeGob1,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 in bug report #1652352
|
{ // Supplied by paul66 in bug report #1652352
|
||||||
@ -302,7 +322,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformMacintosh,
|
kPlatformMacintosh,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1,
|
kGameTypeGob1,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -314,7 +335,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by arcepi in bug report #1659884
|
{ // Supplied by arcepi in bug report #1659884
|
||||||
@ -326,7 +348,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -338,7 +361,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by fac76 in bug report #1673397
|
{ // Supplied by fac76 in bug report #1673397
|
||||||
@ -354,7 +378,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformMacintosh,
|
kPlatformMacintosh,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -366,7 +391,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -378,7 +404,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -390,7 +417,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -402,7 +430,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAmiga,
|
kPlatformAmiga,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by blackwhiteeagle in bug report #1605235
|
{ // Supplied by blackwhiteeagle in bug report #1605235
|
||||||
@ -414,7 +443,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by bgk in bug report #1706861
|
{ // Supplied by bgk in bug report #1706861
|
||||||
@ -426,7 +456,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAtariST,
|
kPlatformAtariST,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -438,7 +469,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2 | GF_CD,
|
kGameTypeGob2,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -450,7 +482,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2 | GF_CD,
|
kGameTypeGob2,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -462,7 +495,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2 | GF_CD,
|
kGameTypeGob2,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -474,7 +508,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2 | GF_CD,
|
kGameTypeGob2,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -486,7 +521,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2 | GF_CD,
|
kGameTypeGob2,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -498,7 +534,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2 | GF_CD,
|
kGameTypeGob2,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -510,7 +547,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"usa"
|
"usa"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -522,7 +560,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -534,7 +573,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -546,7 +586,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -558,7 +599,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by cybot_tmin in bug report #1667743
|
{ // Supplied by cybot_tmin in bug report #1667743
|
||||||
@ -570,7 +612,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by vampir_raziel in bug report #1658373
|
{ // Supplied by vampir_raziel in bug report #1658373
|
||||||
@ -582,7 +625,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAmiga,
|
kPlatformAmiga,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by vampir_raziel in bug report #1658373
|
{ // Supplied by vampir_raziel in bug report #1658373
|
||||||
@ -594,7 +638,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAmiga,
|
kPlatformAmiga,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by vampir_raziel in bug report #1658373
|
{ // Supplied by vampir_raziel in bug report #1658373
|
||||||
@ -606,7 +651,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAmiga,
|
kPlatformAmiga,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by vampir_raziel in bug report #1658373
|
{ // Supplied by vampir_raziel in bug report #1658373
|
||||||
@ -618,7 +664,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAmiga,
|
kPlatformAmiga,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -630,7 +677,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAtariST,
|
kPlatformAtariST,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -642,7 +690,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by cartman_ on #scummvm
|
{ // Supplied by cartman_ on #scummvm
|
||||||
@ -654,7 +703,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by glorfindel in bugreport #1722142
|
{ // Supplied by glorfindel in bugreport #1722142
|
||||||
@ -666,7 +716,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -678,7 +729,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesAdlib,
|
||||||
"show"
|
"show"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -690,7 +742,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeWeen,
|
||||||
|
kFeaturesAdlib,
|
||||||
"show"
|
"show"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -702,7 +755,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_BARGON,
|
kGameTypeBargon,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by Trekky in the forums
|
{ // Supplied by Trekky in the forums
|
||||||
@ -714,7 +768,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAtariST,
|
kPlatformAtariST,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_BARGON,
|
kGameTypeBargon,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by cesardark in bug #1681649
|
{ // Supplied by cesardark in bug #1681649
|
||||||
@ -726,7 +781,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_BARGON,
|
kGameTypeBargon,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 in bug #1692667
|
{ // Supplied by paul66 in bug #1692667
|
||||||
@ -738,7 +794,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_BARGON,
|
kGameTypeBargon,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by glorfindel in bugreport #1722142
|
{ // Supplied by glorfindel in bugreport #1722142
|
||||||
@ -750,7 +807,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_BARGON,
|
kGameTypeBargon,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -762,7 +820,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by fac76 in bug report #1742716
|
{ // Supplied by fac76 in bug report #1742716
|
||||||
@ -778,7 +837,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformMacintosh,
|
kPlatformMacintosh,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -790,7 +850,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 in bug report #1652352
|
{ // Supplied by paul66 in bug report #1652352
|
||||||
@ -802,7 +863,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -814,7 +876,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by Paranoimia on #scummvm
|
{ // Supplied by Paranoimia on #scummvm
|
||||||
@ -826,7 +889,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -838,7 +902,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -850,7 +915,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -862,7 +928,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAmiga,
|
kPlatformAmiga,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesNone,
|
||||||
"menu"
|
"menu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -874,7 +941,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformAmiga,
|
kPlatformAmiga,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesNone,
|
||||||
"menu"
|
"menu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -886,7 +954,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3 | GF_CD,
|
kGameTypeGob3,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
||||||
@ -898,7 +967,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3 | GF_CD,
|
kGameTypeGob3,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
||||||
@ -910,7 +980,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3 | GF_CD,
|
kGameTypeGob3,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
||||||
@ -922,7 +993,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3 | GF_CD,
|
kGameTypeGob3,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
||||||
@ -934,7 +1006,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3 | GF_CD,
|
kGameTypeGob3,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
|
||||||
@ -946,7 +1019,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3 | GF_CD,
|
kGameTypeGob3,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -958,7 +1032,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -970,7 +1045,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -982,7 +1058,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -994,7 +1071,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_DEMO
|
Common::ADGF_DEMO
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1006,7 +1084,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_WOODRUFF,
|
kGameTypeNone,
|
||||||
|
kFeatures640 | kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1018,7 +1097,8 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_WOODRUFF,
|
kGameTypeNone,
|
||||||
|
kFeatures640 | kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1030,10 +1110,11 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_WOODRUFF,
|
kGameTypeNone,
|
||||||
|
kFeatures640 | kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{ AD_TABLE_END_MARKER, 0, NULL }
|
{ AD_TABLE_END_MARKER, kGameTypeNone, kFeaturesNone, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
static const GOBGameDescription fallbackDescs[] = {
|
static const GOBGameDescription fallbackDescs[] = {
|
||||||
@ -1046,7 +1127,8 @@ static const GOBGameDescription fallbackDescs[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1,
|
kGameTypeGob1,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1058,7 +1140,8 @@ static const GOBGameDescription fallbackDescs[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB1 | GF_CD,
|
kGameTypeGob1,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1070,7 +1153,8 @@ static const GOBGameDescription fallbackDescs[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2,
|
kGameTypeGob2,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1082,7 +1166,8 @@ static const GOBGameDescription fallbackDescs[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB2 | GF_CD,
|
kGameTypeGob2,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1094,7 +1179,8 @@ static const GOBGameDescription fallbackDescs[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_BARGON,
|
kGameTypeBargon,
|
||||||
|
kFeaturesNone,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1106,7 +1192,8 @@ static const GOBGameDescription fallbackDescs[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3,
|
kGameTypeGob3,
|
||||||
|
kFeaturesAdlib,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1118,7 +1205,8 @@ static const GOBGameDescription fallbackDescs[] = {
|
|||||||
kPlatformPC,
|
kPlatformPC,
|
||||||
Common::ADGF_NO_FLAGS
|
Common::ADGF_NO_FLAGS
|
||||||
},
|
},
|
||||||
GF_GOB3 | GF_CD,
|
kGameTypeGob3,
|
||||||
|
kFeaturesCD,
|
||||||
"intro"
|
"intro"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@ -1186,6 +1274,7 @@ bool GobEngine::detectGame() {
|
|||||||
strcat(_startTot0, "0.tot");
|
strcat(_startTot0, "0.tot");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_gameType = gd->gameType;
|
||||||
_features = gd->features;
|
_features = gd->features;
|
||||||
_language = gd->desc.language;
|
_language = gd->desc.language;
|
||||||
_platform = gd->desc.platform;
|
_platform = gd->desc.platform;
|
||||||
|
@ -315,11 +315,12 @@ void Game::evaluateScroll(int16 x, int16 y) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int16 cursorRight = x + _vm->_draw->_cursorWidth;
|
int16 cursorRight = x + _vm->_draw->_cursorWidth;
|
||||||
int16 screenRight = _vm->_draw->_scrollOffsetX + 320;
|
int16 screenRight = _vm->_draw->_scrollOffsetX + _vm->_width;
|
||||||
int16 cursorBottom = y + _vm->_draw->_cursorHeight;
|
int16 cursorBottom = y + _vm->_draw->_cursorHeight;
|
||||||
int16 screenBottom = _vm->_draw->_scrollOffsetY + 200;
|
int16 screenBottom = _vm->_draw->_scrollOffsetY + _vm->_height;
|
||||||
|
|
||||||
if ((cursorRight >= 320) && (screenRight < _vm->_video->_surfWidth)) {
|
if ((cursorRight >= _vm->_width) &&
|
||||||
|
(screenRight < _vm->_video->_surfWidth)) {
|
||||||
uint16 off;
|
uint16 off;
|
||||||
|
|
||||||
off = MIN(_vm->_draw->_cursorWidth,
|
off = MIN(_vm->_draw->_cursorWidth,
|
||||||
@ -328,8 +329,8 @@ void Game::evaluateScroll(int16 x, int16 y) {
|
|||||||
|
|
||||||
_vm->_draw->_scrollOffsetX += off;
|
_vm->_draw->_scrollOffsetX += off;
|
||||||
|
|
||||||
_vm->_util->setMousePos(320 - _vm->_draw->_cursorWidth, y);
|
_vm->_util->setMousePos(_vm->_width - _vm->_draw->_cursorWidth, y);
|
||||||
} else if ((cursorBottom >= (200 - _vm->_video->_splitHeight2)) &&
|
} else if ((cursorBottom >= (_vm->_height - _vm->_video->_splitHeight2)) &&
|
||||||
(screenBottom < _vm->_video->_surfHeight)) {
|
(screenBottom < _vm->_video->_surfHeight)) {
|
||||||
uint16 off;
|
uint16 off;
|
||||||
|
|
||||||
@ -339,7 +340,7 @@ void Game::evaluateScroll(int16 x, int16 y) {
|
|||||||
|
|
||||||
_vm->_draw->_scrollOffsetY += off;
|
_vm->_draw->_scrollOffsetY += off;
|
||||||
|
|
||||||
_vm->_util->setMousePos(x, 200 - _vm->_video->_splitHeight2 -
|
_vm->_util->setMousePos(x, _vm->_height - _vm->_video->_splitHeight2 -
|
||||||
_vm->_draw->_cursorHeight);
|
_vm->_draw->_cursorHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -544,7 +545,7 @@ void Game::switchTotSub(int16 index, int16 skipPlay) {
|
|||||||
int16 newPos = _curBackupPos - index - ((index >= 0) ? 1 : 0);
|
int16 newPos = _curBackupPos - index - ((index >= 0) ? 1 : 0);
|
||||||
// WORKAROUND: Some versions don't make the MOVEMENT menu item unselectable
|
// WORKAROUND: Some versions don't make the MOVEMENT menu item unselectable
|
||||||
// in the dreamland screen, resulting in a crash when it's clicked.
|
// in the dreamland screen, resulting in a crash when it's clicked.
|
||||||
if ((_vm->_features & GF_GOB2) && (index == -1) && (skipPlay == 7) &&
|
if ((_vm->getGameType() == kGameTypeGob2) && (index == -1) && (skipPlay == 7) &&
|
||||||
!scumm_stricmp(_curTotFileArray[newPos], "gob06.tot"))
|
!scumm_stricmp(_curTotFileArray[newPos], "gob06.tot"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ Global::Global(GobEngine *vm) : _vm(vm) {
|
|||||||
_setAllPalette = false;
|
_setAllPalette = false;
|
||||||
_dontSetPalette = false;
|
_dontSetPalette = false;
|
||||||
|
|
||||||
_primarySurfDesc = new SurfaceDesc(0x13, 320, 200);
|
_primarySurfDesc = 0;
|
||||||
|
|
||||||
_debugFlag = 0;
|
_debugFlag = 0;
|
||||||
_inVM = 0;
|
_inVM = 0;
|
||||||
|
@ -68,6 +68,16 @@ const Common::Language GobEngine::_gobToScummVMLang[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
GobEngine::GobEngine(OSystem *syst) : Engine(syst) {
|
GobEngine::GobEngine(OSystem *syst) : Engine(syst) {
|
||||||
|
_vm = this;
|
||||||
|
|
||||||
|
_snd = 0; _adlib = 0; _mult = 0;
|
||||||
|
_game = 0; _global = 0; _cdrom = 0;
|
||||||
|
_dataIO = 0; _goblin = 0; _imdPlayer = 0;
|
||||||
|
_init = 0; _inter = 0; _map = 0;
|
||||||
|
_palAnim = 0; _parse = 0; _scenery = 0;
|
||||||
|
_draw = 0; _util = 0; _video = 0;
|
||||||
|
_saveLoad = 0;
|
||||||
|
|
||||||
// Setup mixer
|
// Setup mixer
|
||||||
if (!_mixer->isReady()) {
|
if (!_mixer->isReady()) {
|
||||||
warning("Sound initialization failed.");
|
warning("Sound initialization failed.");
|
||||||
@ -94,25 +104,7 @@ GobEngine::~GobEngine() {
|
|||||||
// Stop all mixer streams (except for the permanent ones).
|
// Stop all mixer streams (except for the permanent ones).
|
||||||
_vm->_mixer->stopAll();
|
_vm->_mixer->stopAll();
|
||||||
|
|
||||||
delete _snd;
|
deinitGameParts();
|
||||||
delete _adlib;
|
|
||||||
delete _mult;
|
|
||||||
delete _game;
|
|
||||||
delete _global;
|
|
||||||
delete _cdrom;
|
|
||||||
delete _dataIO;
|
|
||||||
delete _goblin;
|
|
||||||
delete _imdPlayer;
|
|
||||||
delete _init;
|
|
||||||
delete _inter;
|
|
||||||
delete _map;
|
|
||||||
delete _palAnim;
|
|
||||||
delete _parse;
|
|
||||||
delete _scenery;
|
|
||||||
delete _draw;
|
|
||||||
delete _util;
|
|
||||||
delete _video;
|
|
||||||
delete _saveLoad;
|
|
||||||
delete[] _startTot;
|
delete[] _startTot;
|
||||||
delete[] _startTot0;
|
delete[] _startTot0;
|
||||||
}
|
}
|
||||||
@ -137,7 +129,7 @@ void GobEngine::validateLanguage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GobEngine::validateVideoMode(int16 videoMode) {
|
void GobEngine::validateVideoMode(int16 videoMode) {
|
||||||
if ((videoMode != 0x13) && (videoMode != 0x14))
|
if ((videoMode != 0x13) && (videoMode != 0x14) && (videoMode != 0x18))
|
||||||
error("Video mode 0x%X is not supported!", videoMode);
|
error("Video mode 0x%X is not supported!", videoMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,82 +140,18 @@ int GobEngine::init() {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
_adlib = 0;
|
if (!initGameParts()) {
|
||||||
_saveLoad = 0;
|
GUIErrorMessage("GobEngine::init(): Unknown version of game engine");
|
||||||
_global = new Global(this);
|
return -1;
|
||||||
_util = new Util(this);
|
}
|
||||||
_dataIO = new DataIO(this);
|
|
||||||
_palAnim = new PalAnim(this);
|
|
||||||
_imdPlayer = new ImdPlayer(this);
|
|
||||||
_cdrom = new CDROM(this);
|
|
||||||
_snd = new Snd(this);
|
|
||||||
if (_features & Gob::GF_GOB1) {
|
|
||||||
_init = new Init_v1(this);
|
|
||||||
_video = new Video_v1(this);
|
|
||||||
_inter = new Inter_v1(this);
|
|
||||||
_parse = new Parse_v1(this);
|
|
||||||
_mult = new Mult_v1(this);
|
|
||||||
_draw = new Draw_v1(this);
|
|
||||||
_game = new Game_v1(this);
|
|
||||||
_map = new Map_v1(this);
|
|
||||||
_goblin = new Goblin_v1(this);
|
|
||||||
_scenery = new Scenery_v1(this);
|
|
||||||
} else if (_features & Gob::GF_GOB2) {
|
|
||||||
_init = new Init_v2(this);
|
|
||||||
_video = new Video_v2(this);
|
|
||||||
_inter = new Inter_v2(this);
|
|
||||||
_parse = new Parse_v2(this);
|
|
||||||
_mult = new Mult_v2(this);
|
|
||||||
_draw = new Draw_v2(this);
|
|
||||||
_game = new Game_v2(this);
|
|
||||||
_map = new Map_v2(this);
|
|
||||||
_goblin = new Goblin_v2(this);
|
|
||||||
_scenery = new Scenery_v2(this);
|
|
||||||
_saveLoad = new SaveLoad_v2(this, _targetName.c_str());
|
|
||||||
} else if (_features & Gob::GF_BARGON) {
|
|
||||||
_init = new Init_v2(this);
|
|
||||||
_video = new Video_v2(this);
|
|
||||||
_inter = new Inter_Bargon(this);
|
|
||||||
_parse = new Parse_v2(this);
|
|
||||||
_mult = new Mult_v2(this);
|
|
||||||
_draw = new Draw_Bargon(this);
|
|
||||||
_game = new Game_v2(this);
|
|
||||||
_map = new Map_v2(this);
|
|
||||||
_goblin = new Goblin_v2(this);
|
|
||||||
_scenery = new Scenery_v2(this);
|
|
||||||
_saveLoad = new SaveLoad_v2(this, _targetName.c_str());
|
|
||||||
} else if (_features & Gob::GF_GOB3) {
|
|
||||||
_init = new Init_v3(this);
|
|
||||||
_video = new Video_v2(this);
|
|
||||||
_inter = new Inter_v3(this);
|
|
||||||
_parse = new Parse_v2(this);
|
|
||||||
_mult = new Mult_v2(this);
|
|
||||||
_draw = new Draw_v2(this);
|
|
||||||
_game = new Game_v2(this);
|
|
||||||
_map = new Map_v2(this);
|
|
||||||
_goblin = new Goblin_v3(this);
|
|
||||||
_scenery = new Scenery_v2(this);
|
|
||||||
_saveLoad = new SaveLoad_v3(this, _targetName.c_str());
|
|
||||||
} else
|
|
||||||
error("GobEngine::init(): Unknown version of game engine");
|
|
||||||
|
|
||||||
_noMusic = MidiDriver::parseMusicDriver(ConfMan.get("music_driver")) == MD_NULL;
|
|
||||||
if (!_noMusic && !(_platform == Common::kPlatformAmiga) &&
|
|
||||||
!(_platform == Common::kPlatformAtariST) &&
|
|
||||||
(((_platform == Common::kPlatformMacintosh) && (_features & Gob::GF_GOB1)) ||
|
|
||||||
(_features & Gob::GF_GOB2) || (_features & Gob::GF_GOB3)))
|
|
||||||
_adlib = new Adlib(this);
|
|
||||||
_vm = this;
|
|
||||||
|
|
||||||
_map->init();
|
|
||||||
|
|
||||||
_system->beginGFXTransaction();
|
_system->beginGFXTransaction();
|
||||||
initCommonGFX(false);
|
initCommonGFX(false);
|
||||||
_system->initSize(320, 200);
|
_system->initSize(_width, _height);
|
||||||
_system->endGFXTransaction();
|
_system->endGFXTransaction();
|
||||||
|
|
||||||
// On some systems it's not safe to run CD audio games from the CD.
|
// On some systems it's not safe to run CD audio games from the CD.
|
||||||
if (_features & GF_CD)
|
if (isCD())
|
||||||
checkCD();
|
checkCD();
|
||||||
|
|
||||||
int cd_num = ConfMan.getInt("cdrom");
|
int cd_num = ConfMan.getInt("cdrom");
|
||||||
@ -293,4 +221,153 @@ int GobEngine::init() {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GobEngine::initGameParts() {
|
||||||
|
_adlib = 0;
|
||||||
|
_saveLoad = 0;
|
||||||
|
|
||||||
|
_global = new Global(this);
|
||||||
|
_util = new Util(this);
|
||||||
|
_dataIO = new DataIO(this);
|
||||||
|
_palAnim = new PalAnim(this);
|
||||||
|
_imdPlayer = new ImdPlayer(this);
|
||||||
|
_cdrom = new CDROM(this);
|
||||||
|
_snd = new Snd(this);
|
||||||
|
|
||||||
|
switch (_gameType) {
|
||||||
|
case kGameTypeGob1:
|
||||||
|
_init = new Init_v1(this);
|
||||||
|
_video = new Video_v1(this);
|
||||||
|
_inter = new Inter_v1(this);
|
||||||
|
_parse = new Parse_v1(this);
|
||||||
|
_mult = new Mult_v1(this);
|
||||||
|
_draw = new Draw_v1(this);
|
||||||
|
_game = new Game_v1(this);
|
||||||
|
_map = new Map_v1(this);
|
||||||
|
_goblin = new Goblin_v1(this);
|
||||||
|
_scenery = new Scenery_v1(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kGameTypeGob2:
|
||||||
|
_init = new Init_v2(this);
|
||||||
|
_video = new Video_v2(this);
|
||||||
|
_inter = new Inter_v2(this);
|
||||||
|
_parse = new Parse_v2(this);
|
||||||
|
_mult = new Mult_v2(this);
|
||||||
|
_draw = new Draw_v2(this);
|
||||||
|
_game = new Game_v2(this);
|
||||||
|
_map = new Map_v2(this);
|
||||||
|
_goblin = new Goblin_v2(this);
|
||||||
|
_scenery = new Scenery_v2(this);
|
||||||
|
_saveLoad = new SaveLoad_v2(this, _targetName.c_str());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kGameTypeGob3:
|
||||||
|
_init = new Init_v3(this);
|
||||||
|
_video = new Video_v2(this);
|
||||||
|
_inter = new Inter_v3(this);
|
||||||
|
_parse = new Parse_v2(this);
|
||||||
|
_mult = new Mult_v2(this);
|
||||||
|
_draw = new Draw_v2(this);
|
||||||
|
_game = new Game_v2(this);
|
||||||
|
_map = new Map_v2(this);
|
||||||
|
_goblin = new Goblin_v3(this);
|
||||||
|
_scenery = new Scenery_v2(this);
|
||||||
|
_saveLoad = new SaveLoad_v3(this, _targetName.c_str());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kGameTypeWoodruff:
|
||||||
|
_init = new Init_v3(this);
|
||||||
|
_video = new Video_v2(this);
|
||||||
|
_inter = new Inter_v3(this);
|
||||||
|
_parse = new Parse_v2(this);
|
||||||
|
_mult = new Mult_v2(this);
|
||||||
|
_draw = new Draw_v2(this);
|
||||||
|
_game = new Game_v2(this);
|
||||||
|
_map = new Map_v2(this);
|
||||||
|
_goblin = new Goblin_v3(this);
|
||||||
|
_scenery = new Scenery_v2(this);
|
||||||
|
_saveLoad = new SaveLoad_v3(this, _targetName.c_str());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kGameTypeBargon:
|
||||||
|
_init = new Init_v2(this);
|
||||||
|
_video = new Video_v2(this);
|
||||||
|
_inter = new Inter_Bargon(this);
|
||||||
|
_parse = new Parse_v2(this);
|
||||||
|
_mult = new Mult_v2(this);
|
||||||
|
_draw = new Draw_Bargon(this);
|
||||||
|
_game = new Game_v2(this);
|
||||||
|
_map = new Map_v2(this);
|
||||||
|
_goblin = new Goblin_v2(this);
|
||||||
|
_scenery = new Scenery_v2(this);
|
||||||
|
_saveLoad = new SaveLoad_v2(this, _targetName.c_str());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kGameTypeWeen:
|
||||||
|
_init = new Init_v2(this);
|
||||||
|
_video = new Video_v2(this);
|
||||||
|
_inter = new Inter_v2(this);
|
||||||
|
_parse = new Parse_v2(this);
|
||||||
|
_mult = new Mult_v2(this);
|
||||||
|
_draw = new Draw_v2(this);
|
||||||
|
_game = new Game_v2(this);
|
||||||
|
_map = new Map_v2(this);
|
||||||
|
_goblin = new Goblin_v2(this);
|
||||||
|
_scenery = new Scenery_v2(this);
|
||||||
|
_saveLoad = new SaveLoad_v2(this, _targetName.c_str());
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
deinitGameParts();
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_noMusic = MidiDriver::parseMusicDriver(ConfMan.get("music_driver")) == MD_NULL;
|
||||||
|
if (!_noMusic && hasAdlib())
|
||||||
|
_adlib = new Adlib(this);
|
||||||
|
|
||||||
|
_map->init();
|
||||||
|
|
||||||
|
if (is640()) {
|
||||||
|
_video->_surfWidth = _width = 640;
|
||||||
|
_video->_surfHeight = _video->_splitHeight1 = _height = 480;
|
||||||
|
_global->_mouseMaxCol = 640;
|
||||||
|
_global->_mouseMaxRow = 480;
|
||||||
|
_mode = 0x18;
|
||||||
|
_global->_primarySurfDesc = new SurfaceDesc(0x18, 640, 480);
|
||||||
|
} else {
|
||||||
|
_video->_surfWidth = _width = 320;
|
||||||
|
_video->_surfHeight = _video->_splitHeight1 = _height = 200;
|
||||||
|
_global->_mouseMaxCol = 320;
|
||||||
|
_global->_mouseMaxRow = 200;
|
||||||
|
_mode = 0x14;
|
||||||
|
_global->_primarySurfDesc = new SurfaceDesc(0x14, 320, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GobEngine::deinitGameParts() {
|
||||||
|
delete _snd; _snd = 0;
|
||||||
|
delete _adlib; _adlib = 0;
|
||||||
|
delete _mult; _mult = 0;
|
||||||
|
delete _game; _game = 0;
|
||||||
|
delete _global; _global = 0;
|
||||||
|
delete _cdrom; _cdrom = 0;
|
||||||
|
delete _dataIO; _dataIO = 0;
|
||||||
|
delete _goblin; _goblin = 0;
|
||||||
|
delete _imdPlayer; _imdPlayer = 0;
|
||||||
|
delete _init; _init = 0;
|
||||||
|
delete _inter; _inter = 0;
|
||||||
|
delete _map; _map = 0;
|
||||||
|
delete _palAnim; _palAnim = 0;
|
||||||
|
delete _parse; _parse = 0;
|
||||||
|
delete _scenery; _scenery = 0;
|
||||||
|
delete _draw; _draw = 0;
|
||||||
|
delete _util; _util = 0;
|
||||||
|
delete _video; _video = 0;
|
||||||
|
delete _saveLoad; _saveLoad = 0;
|
||||||
|
}
|
||||||
|
|
||||||
} // End of namespace Gob
|
} // End of namespace Gob
|
||||||
|
@ -78,14 +78,22 @@ class Adlib;
|
|||||||
#define VAR(var) READ_VAR_UINT32(var)
|
#define VAR(var) READ_VAR_UINT32(var)
|
||||||
#define VAR_ADDRESS(var) ((uint32 *) VARP((var) << 2))
|
#define VAR_ADDRESS(var) ((uint32 *) VARP((var) << 2))
|
||||||
|
|
||||||
enum {
|
enum GameType {
|
||||||
GF_GOB1 = 1 << 0,
|
kGameTypeNone = 0,
|
||||||
GF_GOB2 = 1 << 1,
|
kGameTypeGob1,
|
||||||
GF_GOB3 = 1 << 2,
|
kGameTypeGob2,
|
||||||
GF_WOODRUFF = 1 << 3,
|
kGameTypeGob3,
|
||||||
GF_BARGON = 1 << 4,
|
kGameTypeWoodruff,
|
||||||
GF_CD = 1 << 5,
|
kGameTypeBargon,
|
||||||
GF_EGA = 1 << 6
|
kGameTypeWeen
|
||||||
|
};
|
||||||
|
|
||||||
|
enum Features {
|
||||||
|
kFeaturesNone = 0,
|
||||||
|
kFeaturesCD = 1 << 0,
|
||||||
|
kFeaturesEGA = 1 << 1,
|
||||||
|
kFeaturesAdlib = 1 << 2,
|
||||||
|
kFeatures640 = 1 << 3
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -165,6 +173,9 @@ protected:
|
|||||||
int go();
|
int go();
|
||||||
int init();
|
int init();
|
||||||
|
|
||||||
|
bool initGameParts();
|
||||||
|
void deinitGameParts();
|
||||||
|
|
||||||
bool detectGame();
|
bool detectGame();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -172,9 +183,15 @@ public:
|
|||||||
|
|
||||||
Common::RandomSource _rnd;
|
Common::RandomSource _rnd;
|
||||||
|
|
||||||
|
GameType _gameType;
|
||||||
int32 _features;
|
int32 _features;
|
||||||
Common::Language _language;
|
Common::Language _language;
|
||||||
Common::Platform _platform;
|
Common::Platform _platform;
|
||||||
|
|
||||||
|
uint16 _width;
|
||||||
|
uint16 _height;
|
||||||
|
uint8 _mode;
|
||||||
|
|
||||||
char *_startTot;
|
char *_startTot;
|
||||||
char *_startTot0;
|
char *_startTot0;
|
||||||
bool _copyProtection;
|
bool _copyProtection;
|
||||||
@ -211,6 +228,12 @@ public:
|
|||||||
void validateLanguage();
|
void validateLanguage();
|
||||||
void validateVideoMode(int16 videoMode);
|
void validateVideoMode(int16 videoMode);
|
||||||
|
|
||||||
|
GameType getGameType() { return _gameType; }
|
||||||
|
bool isCD() { return (_features & kFeaturesCD) != 0; }
|
||||||
|
bool isEGA() { return (_features & kFeaturesEGA) != 0; }
|
||||||
|
bool is640() { return (_features & kFeatures640) != 0; }
|
||||||
|
bool hasAdlib() { return (_features & kFeaturesAdlib) != 0; }
|
||||||
|
|
||||||
GobEngine(OSystem *syst);
|
GobEngine(OSystem *syst);
|
||||||
virtual ~GobEngine();
|
virtual ~GobEngine();
|
||||||
};
|
};
|
||||||
|
@ -209,7 +209,7 @@ void Inter::funcBlock(int16 retFlag) {
|
|||||||
// WORKAROUND:
|
// WORKAROUND:
|
||||||
// The EGA version of gob1 doesn't add a delay after showing
|
// The EGA version of gob1 doesn't add a delay after showing
|
||||||
// images between levels. We manually add it here.
|
// images between levels. We manually add it here.
|
||||||
if ((_vm->_features & GF_GOB1) && (_vm->_features & GF_EGA)) {
|
if ((_vm->getGameType() == kGameTypeGob1) && _vm->isEGA()) {
|
||||||
int addr = _vm->_global->_inter_execPtr-_vm->_game->_totFileData;
|
int addr = _vm->_global->_inter_execPtr-_vm->_game->_totFileData;
|
||||||
if ((startaddr == 0x18B4 && addr == 0x1A7F && // Zombie
|
if ((startaddr == 0x18B4 && addr == 0x1A7F && // Zombie
|
||||||
!strncmp(_vm->_game->_curTotFile, "avt005.tot", 10)) ||
|
!strncmp(_vm->_game->_curTotFile, "avt005.tot", 10)) ||
|
||||||
|
@ -1136,13 +1136,13 @@ bool Inter_v1::o1_callSub(OpFuncParams ¶ms) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Skipping the copy protection screen in Gobliiins
|
// Skipping the copy protection screen in Gobliiins
|
||||||
if (!_vm->_copyProtection && (_vm->_features & GF_GOB1) && (offset == 3905)
|
if (!_vm->_copyProtection && (_vm->getGameType() == kGameTypeGob1) && (offset == 3905)
|
||||||
&& !scumm_stricmp(_vm->_game->_curTotFile, _vm->_startTot)) {
|
&& !scumm_stricmp(_vm->_game->_curTotFile, _vm->_startTot)) {
|
||||||
debugC(2, kDebugGameFlow, "Skipping copy protection screen");
|
debugC(2, kDebugGameFlow, "Skipping copy protection screen");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Skipping the copy protection screen in Gobliins 2
|
// Skipping the copy protection screen in Gobliins 2
|
||||||
if (!_vm->_copyProtection && (_vm->_features & GF_GOB2) && (offset == 1746)
|
if (!_vm->_copyProtection && (_vm->getGameType() == kGameTypeGob2) && (offset == 1746)
|
||||||
&& !scumm_stricmp(_vm->_game->_curTotFile, _vm->_startTot0)) {
|
&& !scumm_stricmp(_vm->_game->_curTotFile, _vm->_startTot0)) {
|
||||||
debugC(2, kDebugGameFlow, "Skipping copy protection screen");
|
debugC(2, kDebugGameFlow, "Skipping copy protection screen");
|
||||||
return false;
|
return false;
|
||||||
@ -1650,8 +1650,9 @@ bool Inter_v1::o1_keyFunc(OpFuncParams ¶ms) {
|
|||||||
// WORKAROUND for bug #1726130: Ween busy-waits in the intro for a counter
|
// WORKAROUND for bug #1726130: Ween busy-waits in the intro for a counter
|
||||||
// to become 5000. We deliberately slow down busy-waiting, so we shorten
|
// to become 5000. We deliberately slow down busy-waiting, so we shorten
|
||||||
// the counting, too.
|
// the counting, too.
|
||||||
if (((_vm->_global->_inter_execPtr - _vm->_game->_totFileData) == 729) &&
|
if ((_vm->getGameType() == kGameTypeWeen) && (VAR(59) < 4000) &&
|
||||||
(VAR(59) < 4000) && !scumm_stricmp(_vm->_game->_curTotFile, "intro5.tot"))
|
((_vm->_global->_inter_execPtr - _vm->_game->_totFileData) == 729) &&
|
||||||
|
!scumm_stricmp(_vm->_game->_curTotFile, "intro5.tot"))
|
||||||
WRITE_VAR(59, 4000);
|
WRITE_VAR(59, 4000);
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
|
@ -1379,7 +1379,7 @@ void Inter_v2::o2_initScreen() {
|
|||||||
|
|
||||||
// Some versions require this
|
// Some versions require this
|
||||||
if (videoMode == 0xD)
|
if (videoMode == 0xD)
|
||||||
videoMode = 0x14;
|
videoMode = _vm->_mode;
|
||||||
|
|
||||||
if ((videoMode == _vm->_global->_videoMode) && (width == -1))
|
if ((videoMode == _vm->_global->_videoMode) && (width == -1))
|
||||||
return;
|
return;
|
||||||
@ -1389,7 +1389,8 @@ void Inter_v2::o2_initScreen() {
|
|||||||
if (height > 0)
|
if (height > 0)
|
||||||
_vm->_video->_surfHeight = height;
|
_vm->_video->_surfHeight = height;
|
||||||
|
|
||||||
_vm->_video->_splitHeight1 = MIN(200, _vm->_video->_surfHeight - offY);
|
_vm->_video->_splitHeight1 =
|
||||||
|
MIN<int16>(_vm->_height, _vm->_video->_surfHeight - offY);
|
||||||
_vm->_video->_splitHeight2 = offY;
|
_vm->_video->_splitHeight2 = offY;
|
||||||
_vm->_video->_splitStart = _vm->_video->_surfHeight - offY;
|
_vm->_video->_splitStart = _vm->_video->_surfHeight - offY;
|
||||||
|
|
||||||
@ -1425,13 +1426,13 @@ void Inter_v2::o2_scroll() {
|
|||||||
int16 curY;
|
int16 curY;
|
||||||
|
|
||||||
startX = CLIP((int) _vm->_parse->parseValExpr(), 0,
|
startX = CLIP((int) _vm->_parse->parseValExpr(), 0,
|
||||||
_vm->_video->_surfWidth - 320);
|
_vm->_video->_surfWidth - _vm->_width);
|
||||||
startY = CLIP((int) _vm->_parse->parseValExpr(), 0,
|
startY = CLIP((int) _vm->_parse->parseValExpr(), 0,
|
||||||
_vm->_video->_surfHeight - 200);
|
_vm->_video->_surfHeight - _vm->_height);
|
||||||
endX = CLIP((int) _vm->_parse->parseValExpr(), 0,
|
endX = CLIP((int) _vm->_parse->parseValExpr(), 0,
|
||||||
_vm->_video->_surfWidth - 320);
|
_vm->_video->_surfWidth - _vm->_width);
|
||||||
endY = CLIP((int) _vm->_parse->parseValExpr(), 0,
|
endY = CLIP((int) _vm->_parse->parseValExpr(), 0,
|
||||||
_vm->_video->_surfHeight - 200);
|
_vm->_video->_surfHeight - _vm->_height);
|
||||||
stepX = _vm->_parse->parseValExpr();
|
stepX = _vm->_parse->parseValExpr();
|
||||||
stepY = _vm->_parse->parseValExpr();
|
stepY = _vm->_parse->parseValExpr();
|
||||||
|
|
||||||
|
@ -261,7 +261,7 @@ void Map::findNearestWalkable(int16 &gobDestX, int16 &gobDestY,
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
mapWidth = _screenWidth / _tilesWidth;
|
mapWidth = _screenWidth / _tilesWidth;
|
||||||
mapHeight = 200 / _tilesHeight;
|
mapHeight = _vm->_width / _tilesHeight;
|
||||||
direction = 0;
|
direction = 0;
|
||||||
|
|
||||||
for (i = 1; i <= gobDestX; i++)
|
for (i = 1; i <= gobDestX; i++)
|
||||||
|
@ -166,11 +166,11 @@ void Video::retrace(bool mouse) {
|
|||||||
if (_vm->_global->_primarySurfDesc) {
|
if (_vm->_global->_primarySurfDesc) {
|
||||||
g_system->copyRectToScreen(_vm->_global->_primarySurfDesc->getVidMem() +
|
g_system->copyRectToScreen(_vm->_global->_primarySurfDesc->getVidMem() +
|
||||||
_scrollOffsetY * _surfWidth + _scrollOffsetX, _surfWidth,
|
_scrollOffsetY * _surfWidth + _scrollOffsetX, _surfWidth,
|
||||||
0, 0, 320, _splitHeight1);
|
0, 0, _vm->_width, _splitHeight1);
|
||||||
if (_splitHeight2 > 0)
|
if (_splitHeight2 > 0)
|
||||||
g_system->copyRectToScreen(_vm->_global->_primarySurfDesc->getVidMem() +
|
g_system->copyRectToScreen(_vm->_global->_primarySurfDesc->getVidMem() +
|
||||||
_splitStart * _surfWidth, _surfWidth, 0,
|
_splitStart * _surfWidth, _surfWidth, 0,
|
||||||
200 - _splitHeight2, 320, _splitHeight2);
|
_vm->_height - _splitHeight2, _vm->_width, _splitHeight2);
|
||||||
g_system->updateScreen();
|
g_system->updateScreen();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user