[Scummvm-cvs-logs] SF.net SVN: scummvm: [28185] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Wed Jul 25 01:24:41 CEST 2007


Revision: 28185
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28185&view=rev
Author:   drmccoy
Date:     2007-07-24 16:24:40 -0700 (Tue, 24 Jul 2007)

Log Message:
-----------
- 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

Modified Paths:
--------------
    scummvm/trunk/engines/gob/detection.cpp
    scummvm/trunk/engines/gob/game.cpp
    scummvm/trunk/engines/gob/global.cpp
    scummvm/trunk/engines/gob/gob.cpp
    scummvm/trunk/engines/gob/gob.h
    scummvm/trunk/engines/gob/inter.cpp
    scummvm/trunk/engines/gob/inter_v1.cpp
    scummvm/trunk/engines/gob/inter_v2.cpp
    scummvm/trunk/engines/gob/map.cpp
    scummvm/trunk/engines/gob/video.cpp

Modified: scummvm/trunk/engines/gob/detection.cpp
===================================================================
--- scummvm/trunk/engines/gob/detection.cpp	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/detection.cpp	2007-07-24 23:24:40 UTC (rev 28185)
@@ -34,7 +34,8 @@
 struct GOBGameDescription {
 	Common::ADGameDescription desc;
 
-	uint32 features;
+	GameType gameType;
+	int32 features;
 	const char *startTotBase;
 };
 
@@ -74,7 +75,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_EGA,
+		kGameTypeGob1,
+		kFeaturesEGA,
 		"intro"
 	},
 	{
@@ -86,7 +88,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_EGA,
+		kGameTypeGob1,
+		kFeaturesEGA,
 		"intro"
 	},
 	{ // Supplied by Theruler76 in bug report #1201233
@@ -98,7 +101,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1,
+		kGameTypeGob1,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // CD 1.000 version.
@@ -110,7 +114,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // CD 1.000 version.
@@ -122,7 +127,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // CD 1.000 version.
@@ -134,7 +140,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // CD 1.000 version.
@@ -146,7 +153,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // CD 1.000 version.
@@ -158,7 +166,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // CD 1.02 version. Multilingual
@@ -170,7 +179,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // CD 1.02 version. Multilingual
@@ -182,7 +192,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // CD 1.02 version. Multilingual
@@ -194,7 +205,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // CD 1.02 version. Multilingual
@@ -206,7 +218,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // CD 1.02 version. Multilingual
@@ -218,7 +231,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -230,7 +244,8 @@
 			kPlatformAmiga,
 			Common::ADGF_DEMO
 		},
-		GF_GOB1,
+		kGameTypeGob1,
+		kFeaturesNone,
 		"intro"
 	},
 	{
@@ -242,7 +257,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB1,
+		kGameTypeGob1,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // Supplied by paul66 in bug report #1652352
@@ -254,7 +270,8 @@
 			kPlatformMacintosh,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1,
+		kGameTypeGob1,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by paul66 in bug report #1652352
@@ -266,7 +283,8 @@
 			kPlatformMacintosh,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1,
+		kGameTypeGob1,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by paul66 in bug report #1652352
@@ -278,7 +296,8 @@
 			kPlatformMacintosh,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1,
+		kGameTypeGob1,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by paul66 in bug report #1652352
@@ -290,7 +309,8 @@
 			kPlatformMacintosh,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1,
+		kGameTypeGob1,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by paul66 in bug report #1652352
@@ -302,7 +322,8 @@
 			kPlatformMacintosh,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1,
+		kGameTypeGob1,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -314,7 +335,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by arcepi in bug report #1659884
@@ -326,7 +348,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -338,7 +361,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by fac76 in bug report #1673397
@@ -354,7 +378,8 @@
 			kPlatformMacintosh,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -366,7 +391,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -378,7 +404,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -390,7 +417,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -402,7 +430,8 @@
 			kPlatformAmiga,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // Supplied by blackwhiteeagle in bug report #1605235
@@ -414,7 +443,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by bgk in bug report #1706861
@@ -426,7 +456,8 @@
 			kPlatformAtariST,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesNone,
 		"intro"
 	},
 	{
@@ -438,7 +469,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2 | GF_CD,
+		kGameTypeGob2,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -450,7 +482,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2 | GF_CD,
+		kGameTypeGob2,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -462,7 +495,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2 | GF_CD,
+		kGameTypeGob2,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -474,7 +508,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2 | GF_CD,
+		kGameTypeGob2,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -486,7 +521,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2 | GF_CD,
+		kGameTypeGob2,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -498,7 +534,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2 | GF_CD,
+		kGameTypeGob2,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -510,7 +547,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"usa"
 	},
 	{
@@ -522,7 +560,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -534,7 +573,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -546,7 +586,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -558,7 +599,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by cybot_tmin in bug report #1667743
@@ -570,7 +612,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by vampir_raziel in bug report #1658373
@@ -582,7 +625,8 @@
 			kPlatformAmiga,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // Supplied by vampir_raziel in bug report #1658373
@@ -594,7 +638,8 @@
 			kPlatformAmiga,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // Supplied by vampir_raziel in bug report #1658373
@@ -606,7 +651,8 @@
 			kPlatformAmiga,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // Supplied by vampir_raziel in bug report #1658373
@@ -618,7 +664,8 @@
 			kPlatformAmiga,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesNone,
 		"intro"
 	},
 	{
@@ -630,7 +677,8 @@
 			kPlatformAtariST,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesNone,
 		"intro"
 	},
 	{
@@ -642,7 +690,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by cartman_ on #scummvm
@@ -654,7 +703,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by glorfindel in bugreport #1722142
@@ -666,7 +716,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -678,7 +729,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesAdlib,
 		"show"
 	},
 	{
@@ -690,7 +742,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB2,
+		kGameTypeWeen,
+		kFeaturesAdlib,
 		"show"
 	},
 	{
@@ -702,7 +755,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_BARGON,
+		kGameTypeBargon,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // Supplied by Trekky in the forums
@@ -714,7 +768,8 @@
 			kPlatformAtariST,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_BARGON,
+		kGameTypeBargon,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // Supplied by cesardark in bug #1681649
@@ -726,7 +781,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_BARGON,
+		kGameTypeBargon,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // Supplied by paul66 in bug #1692667
@@ -738,7 +794,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_BARGON,
+		kGameTypeBargon,
+		kFeaturesNone,
 		"intro"
 	},
 	{ // Supplied by glorfindel in bugreport #1722142
@@ -750,7 +807,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_BARGON,
+		kGameTypeBargon,
+		kFeaturesNone,
 		"intro"
 	},
 	{
@@ -762,7 +820,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by fac76 in bug report #1742716
@@ -778,7 +837,8 @@
 			kPlatformMacintosh,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -790,7 +850,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by paul66 in bug report #1652352
@@ -802,7 +863,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -814,7 +876,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{ // Supplied by Paranoimia on #scummvm
@@ -826,7 +889,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -838,7 +902,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -850,7 +915,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -862,7 +928,8 @@
 			kPlatformAmiga,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesNone,
 		"menu"
 	},
 	{
@@ -874,7 +941,8 @@
 			kPlatformAmiga,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesNone,
 		"menu"
 	},
 	{
@@ -886,7 +954,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3 | GF_CD,
+		kGameTypeGob3,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
@@ -898,7 +967,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3 | GF_CD,
+		kGameTypeGob3,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
@@ -910,7 +980,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3 | GF_CD,
+		kGameTypeGob3,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
@@ -922,7 +993,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3 | GF_CD,
+		kGameTypeGob3,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
@@ -934,7 +1006,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3 | GF_CD,
+		kGameTypeGob3,
+		kFeaturesCD,
 		"intro"
 	},
 	{ // Supplied by paul66 and noizert in bug reports #1652352 and #1691230
@@ -946,7 +1019,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3 | GF_CD,
+		kGameTypeGob3,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -958,7 +1032,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -970,7 +1045,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -982,7 +1058,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -994,7 +1071,8 @@
 			kPlatformPC,
 			Common::ADGF_DEMO
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -1006,7 +1084,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_WOODRUFF,
+		kGameTypeNone,
+		kFeatures640 | kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -1018,7 +1097,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_WOODRUFF,
+		kGameTypeNone,
+		kFeatures640 | kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -1030,10 +1110,11 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_WOODRUFF,
+		kGameTypeNone,
+		kFeatures640 | kFeaturesAdlib,
 		"intro"
 	},
-	{ AD_TABLE_END_MARKER, 0, NULL }
+	{ AD_TABLE_END_MARKER, kGameTypeNone, kFeaturesNone, NULL }
 };
 
 static const GOBGameDescription fallbackDescs[] = {
@@ -1046,7 +1127,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1,
+		kGameTypeGob1,
+		kFeaturesNone,
 		"intro"
 	},
 	{
@@ -1058,7 +1140,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB1 | GF_CD,
+		kGameTypeGob1,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -1070,7 +1153,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2,
+		kGameTypeGob2,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -1082,7 +1166,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB2 | GF_CD,
+		kGameTypeGob2,
+		kFeaturesCD,
 		"intro"
 	},
 	{
@@ -1094,7 +1179,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_BARGON,
+		kGameTypeBargon,
+		kFeaturesNone,
 		"intro"
 	},
 	{
@@ -1106,7 +1192,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3,
+		kGameTypeGob3,
+		kFeaturesAdlib,
 		"intro"
 	},
 	{
@@ -1118,7 +1205,8 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		GF_GOB3 | GF_CD,
+		kGameTypeGob3,
+		kFeaturesCD,
 		"intro"
 	},
 };
@@ -1186,6 +1274,7 @@
 		strcat(_startTot0, "0.tot");
 	}
 
+	_gameType = gd->gameType;
 	_features = gd->features;
 	_language = gd->desc.language;
 	_platform = gd->desc.platform;

Modified: scummvm/trunk/engines/gob/game.cpp
===================================================================
--- scummvm/trunk/engines/gob/game.cpp	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/game.cpp	2007-07-24 23:24:40 UTC (rev 28185)
@@ -315,11 +315,12 @@
 	}
 
 	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 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;
 
 		off = MIN(_vm->_draw->_cursorWidth,
@@ -328,8 +329,8 @@
 
 		_vm->_draw->_scrollOffsetX += off;
 
-		_vm->_util->setMousePos(320 - _vm->_draw->_cursorWidth, y);
-	} else if ((cursorBottom >= (200 - _vm->_video->_splitHeight2)) &&
+		_vm->_util->setMousePos(_vm->_width - _vm->_draw->_cursorWidth, y);
+	} else if ((cursorBottom >= (_vm->_height - _vm->_video->_splitHeight2)) &&
 			(screenBottom < _vm->_video->_surfHeight)) {
 		uint16 off;
 
@@ -339,7 +340,7 @@
 
 		_vm->_draw->_scrollOffsetY += off;
 
-		_vm->_util->setMousePos(x, 200 - _vm->_video->_splitHeight2 -
+		_vm->_util->setMousePos(x, _vm->_height - _vm->_video->_splitHeight2 -
 				_vm->_draw->_cursorHeight);
 	}
 
@@ -544,7 +545,7 @@
 	int16 newPos = _curBackupPos - index - ((index >= 0) ? 1 : 0);
 	// WORKAROUND: Some versions don't make the MOVEMENT menu item unselectable
 	// 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"))
 		return;
 

Modified: scummvm/trunk/engines/gob/global.cpp
===================================================================
--- scummvm/trunk/engines/gob/global.cpp	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/global.cpp	2007-07-24 23:24:40 UTC (rev 28185)
@@ -112,7 +112,7 @@
 	_setAllPalette = false;
 	_dontSetPalette = false;
 
-	_primarySurfDesc = new SurfaceDesc(0x13, 320, 200);
+	_primarySurfDesc = 0;
 
 	_debugFlag = 0;
 	_inVM = 0;

Modified: scummvm/trunk/engines/gob/gob.cpp
===================================================================
--- scummvm/trunk/engines/gob/gob.cpp	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/gob.cpp	2007-07-24 23:24:40 UTC (rev 28185)
@@ -68,6 +68,16 @@
 };
 
 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
 	if (!_mixer->isReady()) {
 		warning("Sound initialization failed.");
@@ -94,25 +104,7 @@
 	// Stop all mixer streams (except for the permanent ones).
 	_vm->_mixer->stopAll();
 
-	delete _snd;
-	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;
+	deinitGameParts();
 	delete[] _startTot;
 	delete[] _startTot0;
 }
@@ -137,7 +129,7 @@
 }
 
 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);
 }
 
@@ -148,82 +140,18 @@
 		return -1;
 	}
 
-	_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);
-	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");
+	if (!initGameParts()) {
+		GUIErrorMessage("GobEngine::init(): Unknown version of game engine");
+		return -1;
+	}
 
-	_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();
 		initCommonGFX(false);
-		_system->initSize(320, 200);
+		_system->initSize(_width, _height);
 	_system->endGFXTransaction();
 
 	// On some systems it's not safe to run CD audio games from the CD.
-	if (_features & GF_CD) 
+	if (isCD())
 		checkCD();
 
 	int cd_num = ConfMan.getInt("cdrom");
@@ -293,4 +221,153 @@
 	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

Modified: scummvm/trunk/engines/gob/gob.h
===================================================================
--- scummvm/trunk/engines/gob/gob.h	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/gob.h	2007-07-24 23:24:40 UTC (rev 28185)
@@ -78,16 +78,24 @@
 #define VAR(var)			READ_VAR_UINT32(var)
 #define VAR_ADDRESS(var)		((uint32 *) VARP((var) << 2))
 
-enum {
-	GF_GOB1 = 1 << 0,
-	GF_GOB2 = 1 << 1,
-	GF_GOB3 = 1 << 2,
-	GF_WOODRUFF = 1 << 3,
-	GF_BARGON = 1 << 4,
-	GF_CD = 1 << 5,
-	GF_EGA = 1 << 6
+enum GameType {
+	kGameTypeNone = 0,
+	kGameTypeGob1,
+	kGameTypeGob2,
+	kGameTypeGob3,
+	kGameTypeWoodruff,
+	kGameTypeBargon,
+	kGameTypeWeen
 };
 
+enum Features {
+	kFeaturesNone = 0,
+	kFeaturesCD = 1 << 0,
+	kFeaturesEGA = 1 << 1,
+	kFeaturesAdlib = 1 << 2,
+	kFeatures640 = 1 << 3
+};
+
 enum {
 	kDebugFuncOp = 1 << 0,
 	kDebugDrawOp = 1 << 1,
@@ -165,6 +173,9 @@
 	int go();
 	int init();
 
+	bool initGameParts();
+	void deinitGameParts();
+
 	bool detectGame();
 
 public:
@@ -172,9 +183,15 @@
 
 	Common::RandomSource _rnd;
 
+	GameType _gameType;
 	int32 _features;
 	Common::Language _language;
 	Common::Platform _platform;
+
+	uint16 _width;
+	uint16 _height;
+	uint8 _mode;
+
 	char *_startTot;
 	char *_startTot0;
 	bool _copyProtection;
@@ -211,6 +228,12 @@
 	void validateLanguage();
 	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);
 	virtual ~GobEngine();
 };

Modified: scummvm/trunk/engines/gob/inter.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter.cpp	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/inter.cpp	2007-07-24 23:24:40 UTC (rev 28185)
@@ -209,7 +209,7 @@
 		// WORKAROUND:
 		// The EGA version of gob1 doesn't add a delay after showing
 		// 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;
 			if ((startaddr == 0x18B4 && addr == 0x1A7F && // Zombie
 				 !strncmp(_vm->_game->_curTotFile, "avt005.tot", 10)) ||

Modified: scummvm/trunk/engines/gob/inter_v1.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v1.cpp	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/inter_v1.cpp	2007-07-24 23:24:40 UTC (rev 28185)
@@ -1136,13 +1136,13 @@
 	}
 
 	// 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)) {
 		debugC(2, kDebugGameFlow, "Skipping copy protection screen");
 		return false;
 	}
 	// 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)) {
 		debugC(2, kDebugGameFlow, "Skipping copy protection screen");
 		return false;
@@ -1650,8 +1650,9 @@
 	// 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
 	// the counting, too.
-	if (((_vm->_global->_inter_execPtr - _vm->_game->_totFileData) == 729) &&
-	    (VAR(59) < 4000) && !scumm_stricmp(_vm->_game->_curTotFile, "intro5.tot"))
+	if ((_vm->getGameType() == kGameTypeWeen) && (VAR(59) < 4000) &&
+	    ((_vm->_global->_inter_execPtr - _vm->_game->_totFileData) == 729) &&
+	    !scumm_stricmp(_vm->_game->_curTotFile, "intro5.tot"))
 		WRITE_VAR(59, 4000);
 
 	switch (cmd) {

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2007-07-24 23:24:40 UTC (rev 28185)
@@ -1379,7 +1379,7 @@
 
 	// Some versions require this
 	if (videoMode == 0xD)
-		videoMode = 0x14;
+		videoMode = _vm->_mode;
 
 	if ((videoMode == _vm->_global->_videoMode) && (width == -1))
 		return;
@@ -1389,7 +1389,8 @@
 	if (height > 0)
 		_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->_splitStart = _vm->_video->_surfHeight - offY;
 
@@ -1425,13 +1426,13 @@
 	int16 curY;
 
 	startX = CLIP((int) _vm->_parse->parseValExpr(), 0,
-			_vm->_video->_surfWidth - 320);
+			_vm->_video->_surfWidth - _vm->_width);
 	startY = CLIP((int) _vm->_parse->parseValExpr(), 0,
-			_vm->_video->_surfHeight - 200);
+			_vm->_video->_surfHeight - _vm->_height);
 	endX = CLIP((int) _vm->_parse->parseValExpr(), 0,
-			_vm->_video->_surfWidth - 320);
+			_vm->_video->_surfWidth - _vm->_width);
 	endY = CLIP((int) _vm->_parse->parseValExpr(), 0,
-			_vm->_video->_surfHeight - 200);
+			_vm->_video->_surfHeight - _vm->_height);
 	stepX = _vm->_parse->parseValExpr();
 	stepY = _vm->_parse->parseValExpr();
 

Modified: scummvm/trunk/engines/gob/map.cpp
===================================================================
--- scummvm/trunk/engines/gob/map.cpp	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/map.cpp	2007-07-24 23:24:40 UTC (rev 28185)
@@ -261,7 +261,7 @@
 	int i;
 
 	mapWidth = _screenWidth / _tilesWidth;
-	mapHeight = 200 / _tilesHeight;
+	mapHeight = _vm->_width / _tilesHeight;
 	direction = 0;
 
 	for (i = 1; i <= gobDestX; i++)

Modified: scummvm/trunk/engines/gob/video.cpp
===================================================================
--- scummvm/trunk/engines/gob/video.cpp	2007-07-24 09:53:28 UTC (rev 28184)
+++ scummvm/trunk/engines/gob/video.cpp	2007-07-24 23:24:40 UTC (rev 28185)
@@ -166,11 +166,11 @@
 	if (_vm->_global->_primarySurfDesc) {
 		g_system->copyRectToScreen(_vm->_global->_primarySurfDesc->getVidMem() +
 				_scrollOffsetY * _surfWidth + _scrollOffsetX, _surfWidth,
-				0, 0, 320, _splitHeight1);
+				0, 0, _vm->_width, _splitHeight1);
 		if (_splitHeight2 > 0)
 			g_system->copyRectToScreen(_vm->_global->_primarySurfDesc->getVidMem() +
 					_splitStart * _surfWidth, _surfWidth, 0,
-					200 - _splitHeight2, 320, _splitHeight2);
+					_vm->_height - _splitHeight2, _vm->_width, _splitHeight2);
 		g_system->updateScreen();
 	}
 }


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list