[Scummvm-cvs-logs] SF.net SVN: scummvm:[43443] scummvm/branches/gsoc2009-mods

nolange at users.sourceforge.net nolange at users.sourceforge.net
Sun Aug 16 18:39:35 CEST 2009


Revision: 43443
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43443&view=rev
Author:   nolange
Date:     2009-08-16 16:39:34 +0000 (Sun, 16 Aug 2009)

Log Message:
-----------
merge with trunk

Modified Paths:
--------------
    scummvm/branches/gsoc2009-mods/backends/events/default/default-events.cpp
    scummvm/branches/gsoc2009-mods/backends/fs/psp/psp-fs-factory.cpp
    scummvm/branches/gsoc2009-mods/backends/fs/psp/psp-fs.cpp
    scummvm/branches/gsoc2009-mods/backends/platform/psp/psp.mk
    scummvm/branches/gsoc2009-mods/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
    scummvm/branches/gsoc2009-mods/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
    scummvm/branches/gsoc2009-mods/backends/platform/symbian/src/SymbianActions.cpp
    scummvm/branches/gsoc2009-mods/backends/platform/symbian/src/portdefs.h
    scummvm/branches/gsoc2009-mods/backends/platform/wii/gx_supp.cpp
    scummvm/branches/gsoc2009-mods/common/hashmap.h
    scummvm/branches/gsoc2009-mods/configure
    scummvm/branches/gsoc2009-mods/dists/engine-data/kyra.dat
    scummvm/branches/gsoc2009-mods/dists/msvc8/gob.vcproj
    scummvm/branches/gsoc2009-mods/dists/msvc9/gob.vcproj
    scummvm/branches/gsoc2009-mods/engines/agi/detection.cpp
    scummvm/branches/gsoc2009-mods/engines/agos/animation.cpp
    scummvm/branches/gsoc2009-mods/engines/agos/event.cpp
    scummvm/branches/gsoc2009-mods/engines/agos/script.cpp
    scummvm/branches/gsoc2009-mods/engines/agos/sound.cpp
    scummvm/branches/gsoc2009-mods/engines/agos/vga.cpp
    scummvm/branches/gsoc2009-mods/engines/cruise/background.cpp
    scummvm/branches/gsoc2009-mods/engines/cruise/background.h
    scummvm/branches/gsoc2009-mods/engines/cruise/backgroundIncrust.cpp
    scummvm/branches/gsoc2009-mods/engines/cruise/cell.cpp
    scummvm/branches/gsoc2009-mods/engines/cruise/detection.cpp
    scummvm/branches/gsoc2009-mods/engines/cruise/function.cpp
    scummvm/branches/gsoc2009-mods/engines/cruise/gfxModule.cpp
    scummvm/branches/gsoc2009-mods/engines/cruise/gfxModule.h
    scummvm/branches/gsoc2009-mods/engines/cruise/mainDraw.cpp
    scummvm/branches/gsoc2009-mods/engines/cruise/staticres.cpp
    scummvm/branches/gsoc2009-mods/engines/cruise/staticres.h
    scummvm/branches/gsoc2009-mods/engines/gob/gob.cpp
    scummvm/branches/gsoc2009-mods/engines/gob/inter.h
    scummvm/branches/gsoc2009-mods/engines/gob/inter_v2.cpp
    scummvm/branches/gsoc2009-mods/engines/gob/module.mk
    scummvm/branches/gsoc2009-mods/engines/gob/save/saveload.h
    scummvm/branches/gsoc2009-mods/engines/gob/save/saveload_playtoons.cpp
    scummvm/branches/gsoc2009-mods/engines/gob/save/saveload_v3.cpp
    scummvm/branches/gsoc2009-mods/engines/gob/video_v6.cpp
    scummvm/branches/gsoc2009-mods/engines/kyra/kyra_hof.cpp
    scummvm/branches/gsoc2009-mods/engines/kyra/lol.h
    scummvm/branches/gsoc2009-mods/engines/kyra/resource.h
    scummvm/branches/gsoc2009-mods/engines/kyra/screen.cpp
    scummvm/branches/gsoc2009-mods/engines/kyra/sequences_lok.cpp
    scummvm/branches/gsoc2009-mods/engines/kyra/sequences_lol.cpp
    scummvm/branches/gsoc2009-mods/engines/kyra/sound.cpp
    scummvm/branches/gsoc2009-mods/engines/kyra/sound_midi.cpp
    scummvm/branches/gsoc2009-mods/engines/kyra/staticres.cpp
    scummvm/branches/gsoc2009-mods/engines/parallaction/font.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/console.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/detection.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/engine/game.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/engine/kernel.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/engine/savegame.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/engine/script.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/engine/state.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/engine/state.h
    scummvm/branches/gsoc2009-mods/engines/sci/exereader.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/exereader.h
    scummvm/branches/gsoc2009-mods/engines/sci/gfx/gfx_resmgr.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/resource.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/resource.h
    scummvm/branches/gsoc2009-mods/engines/sci/sci.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/sci.h
    scummvm/branches/gsoc2009-mods/engines/sci/sfx/softseq/adlib.cpp
    scummvm/branches/gsoc2009-mods/engines/sci/vocabulary.cpp
    scummvm/branches/gsoc2009-mods/engines/scumm/dialogs.cpp
    scummvm/branches/gsoc2009-mods/engines/scumm/dialogs.h
    scummvm/branches/gsoc2009-mods/engines/scumm/he/script_v60he.cpp
    scummvm/branches/gsoc2009-mods/engines/sword2/sprite.cpp
    scummvm/branches/gsoc2009-mods/engines/tinsel/actors.cpp
    scummvm/branches/gsoc2009-mods/engines/tinsel/scene.cpp
    scummvm/branches/gsoc2009-mods/engines/tinsel/tinlib.cpp
    scummvm/branches/gsoc2009-mods/engines/tucker/tucker.cpp
    scummvm/branches/gsoc2009-mods/graphics/scaler/scale2x.h
    scummvm/branches/gsoc2009-mods/graphics/scaler/scale3x.h
    scummvm/branches/gsoc2009-mods/gui/TabWidget.cpp
    scummvm/branches/gsoc2009-mods/gui/options.cpp
    scummvm/branches/gsoc2009-mods/gui/saveload.cpp
    scummvm/branches/gsoc2009-mods/gui/themes/scummmodern/scummmodern_layout.stx
    scummvm/branches/gsoc2009-mods/gui/themes/scummmodern.zip
    scummvm/branches/gsoc2009-mods/sound/audiostream.cpp
    scummvm/branches/gsoc2009-mods/sound/audiostream.h
    scummvm/branches/gsoc2009-mods/sound/voc.cpp
    scummvm/branches/gsoc2009-mods/sound/voc.h
    scummvm/branches/gsoc2009-mods/tools/create_kyradat/create_kyradat.cpp
    scummvm/branches/gsoc2009-mods/tools/create_kyradat/create_kyradat.h
    scummvm/branches/gsoc2009-mods/tools/create_kyradat/lol_cd.h
    scummvm/branches/gsoc2009-mods/tools/create_kyradat/lol_demo.h
    scummvm/branches/gsoc2009-mods/tools/create_kyradat/misc.h

Property Changed:
----------------
    scummvm/branches/gsoc2009-mods/
    scummvm/branches/gsoc2009-mods/backends/platform/iphone/osys_main.cpp
    scummvm/branches/gsoc2009-mods/backends/platform/iphone/osys_main.h
    scummvm/branches/gsoc2009-mods/sound/iff_sound.cpp
    scummvm/branches/gsoc2009-mods/sound/iff_sound.h


Property changes on: scummvm/branches/gsoc2009-mods
___________________________________________________________________
Modified: svn:mergeinfo
   - /scummvm/trunk:41377-43329
   + /scummvm/trunk:41377-43442

Modified: scummvm/branches/gsoc2009-mods/backends/events/default/default-events.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/backends/events/default/default-events.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/backends/events/default/default-events.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -162,6 +162,12 @@
 				}
 			}
 #endif
+			else if (event.kbd.keycode == Common::KEYCODE_BACKSPACE) {
+				// WORKAROUND: On Mac OS X, the ascii value for backspace
+				// has to be set to the backspace keycode in order to work
+				// properly.
+				event.kbd.ascii = Common::KEYCODE_BACKSPACE;
+			}
 			break;
 
 		case Common::EVENT_KEYUP:

Modified: scummvm/branches/gsoc2009-mods/backends/fs/psp/psp-fs-factory.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/backends/fs/psp/psp-fs-factory.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/backends/fs/psp/psp-fs-factory.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -33,7 +33,8 @@
 }
 
 AbstractFSNode *PSPFilesystemFactory::makeCurrentDirectoryFileNode() const {
-	return new PSPFilesystemNode();
+	char buf[MAXPATHLEN];
+	return getcwd(buf, MAXPATHLEN) ? new PSPFilesystemNode(buf) : NULL;
 }
 
 AbstractFSNode *PSPFilesystemFactory::makeFileNodePath(const Common::String &path) const {

Modified: scummvm/branches/gsoc2009-mods/backends/fs/psp/psp-fs.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/backends/fs/psp/psp-fs.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/backends/fs/psp/psp-fs.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -59,7 +59,7 @@
 	 * @param path Common::String with the path the new node should point to.
 	 * @param verify true if the isValid and isDirectory flags should be verified during the construction.
 	 */
-	PSPFilesystemNode(const Common::String &p, bool verify);
+	PSPFilesystemNode(const Common::String &p, bool verify = true);
 
 	virtual bool exists() const { return access(_path.c_str(), F_OK) == 0; }
 	virtual Common::String getDisplayName() const { return _displayName; }


Property changes on: scummvm/branches/gsoc2009-mods/backends/platform/iphone/osys_main.cpp
___________________________________________________________________
Modified: svn:mergeinfo
   - /scummvm/trunk/backends/platform/iphone/osys_main.cpp:42569-43329
   + /scummvm/trunk/backends/platform/iphone/osys_main.cpp:42569-43442


Property changes on: scummvm/branches/gsoc2009-mods/backends/platform/iphone/osys_main.h
___________________________________________________________________
Modified: svn:mergeinfo
   - /scummvm/trunk/backends/platform/iphone/osys_main.h:42569-43329
   + /scummvm/trunk/backends/platform/iphone/osys_main.h:42569-43442

Modified: scummvm/branches/gsoc2009-mods/backends/platform/psp/psp.mk
===================================================================
--- scummvm/branches/gsoc2009-mods/backends/platform/psp/psp.mk	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/backends/platform/psp/psp.mk	2009-08-16 16:39:34 UTC (rev 43443)
@@ -1,6 +1,38 @@
-all: psp_fixup_elf
+all: pack_pbp
+clean: psp_clean
 
-psp_fixup_elf: scummvm.elf 
+
+PSP_EXE := scummvm$(EXEEXT)
+PSP_EXE_STRIPPED := scummvm_stripped$(EXEEXT)
+PSP_EBOOT = EBOOT.PBP
+PSP_EBOOT_SFO = param.sfo
+PSP_EBOOT_TITLE = ScummVM-PSP
+DATE = $(shell date +%Y%m%d)
+
+MKSFO = mksfo
+PACK_PBP = pack-pbp
+
+$(PSP_EXE_STRIPPED): $(PSP_EXE)
+	$(STRIP) $< -o $@
+
+$(PSP_EBOOT_SFO): $(PSP_EXE)
+	$(MKSFO) '$(PSP_EBOOT_TITLE) r$(VER_SVNREV) ($(DATE))' $@
+
+psp_clean:
+	$(RM) $(PSP_EXE_STRIPPED) $(PSP_EBOOT) $(PSP_EBOOT_SFO)
+
+psp_fixup_elf: $(PSP_EXE_STRIPPED)
 	$(PSPDEV)/bin/psp-fixup-imports $<
 
-.PHONY: psp_fixup_elf
+pack_pbp: psp_fixup_elf $(PSP_EBOOT_SFO)
+	$(PACK_PBP) $(PSP_EBOOT) \
+	$(PSP_EBOOT_SFO) \
+	$(srcdir)/backends/platform/psp/icon0.png \
+	NULL \
+	$(srcdir)/backends/platform/psp/pic0.png \
+	$(srcdir)/backends/platform/psp/pic1.png \
+	NULL \
+	$(PSP_EXE_STRIPPED) \
+	NULL
+
+.PHONY: psp_fixup_elf pack_pbp

Modified: scummvm/branches/gsoc2009-mods/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
===================================================================
--- scummvm/branches/gsoc2009-mods/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg	2009-08-16 16:39:34 UTC (rev 43443)
@@ -34,7 +34,7 @@
 :"ScummVM"
 
 ; UID is the app's UID
-#{"ScummVM S60v3"},(0xA0000657),0,14,0
+#{"ScummVM S60v3"},(0xA0000657),1,0,0
 
 ;Supports Series 60 v 3.0
 [0x101F7961], 0, 0, 0, {"Series60ProductID"}

Modified: scummvm/branches/gsoc2009-mods/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
===================================================================
--- scummvm/branches/gsoc2009-mods/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg	2009-08-16 16:39:34 UTC (rev 43443)
@@ -32,7 +32,7 @@
 :"ScummVM"
 
 ; UID is the app's UID
-#{"ScummVM UIQ3"},(0xA0000657),0,14,0
+#{"ScummVM UIQ3"},(0xA0000657),1,0,0
 
 ; ProductID for UIQ 3.0
 ; Product/platform version UID, Major, Minor, Build, Product ID

Modified: scummvm/branches/gsoc2009-mods/backends/platform/symbian/src/SymbianActions.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/backends/platform/symbian/src/SymbianActions.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/backends/platform/symbian/src/SymbianActions.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -104,6 +104,8 @@
 void SymbianActions::initInstanceMain(OSystem *mainSystem) {
 	int i;
 	
+	// Need to do this since all old mappings are reset after engineDone
+	_initialized = false;
 	Actions::initInstanceMain(mainSystem);
 
 	// Disable all mappings before setting main mappings again

Modified: scummvm/branches/gsoc2009-mods/backends/platform/symbian/src/portdefs.h
===================================================================
--- scummvm/branches/gsoc2009-mods/backends/platform/symbian/src/portdefs.h	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/backends/platform/symbian/src/portdefs.h	2009-08-16 16:39:34 UTC (rev 43443)
@@ -127,7 +127,9 @@
 #define USE_ARM_COSTUME_ASM
 #define USE_ARM_SOUND_ASM
 #endif
-#define ENABLE_KEYMAPPER
+// This is not really functioning yet. 
+// Default SDL keys should map to standard keys I think!
+//#define ENABLE_KEYMAPPER  
 
 // Symbian bsearch implementation is flawed
 void *scumm_bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));

Modified: scummvm/branches/gsoc2009-mods/backends/platform/wii/gx_supp.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/backends/platform/wii/gx_supp.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/backends/platform/wii/gx_supp.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -57,9 +57,9 @@
 
 /* New texture based scaler */
 typedef struct tagcamera {
-	Vector pos;
-	Vector up;
-	Vector view;
+	guVector pos;
+	guVector up;
+	guVector view;
 } camera;
 
 static s16 square[] ATTRIBUTE_ALIGN(32) = {

Modified: scummvm/branches/gsoc2009-mods/common/hashmap.h
===================================================================
--- scummvm/branches/gsoc2009-mods/common/hashmap.h	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/common/hashmap.h	2009-08-16 16:39:34 UTC (rev 43443)
@@ -39,6 +39,13 @@
 #endif
 
 namespace Common {
+/**
+  * The sgi IRIX MIPSpro Compiler has difficulties with nested templates. 
+  * This and the other __sgi conditionals below work around these problems.
+  */
+#ifdef __sgi
+template<class T> class IteratorImpl;
+#endif
 
 // Enable the following #define if you want to check how many collisions the
 // code produces (many collisions indicate either a bad hash function, or a
@@ -125,7 +132,9 @@
 	int lookupAndCreateIfMissing(const Key &key);
 	void expandStorage(uint newCapacity);
 
+#ifndef __sgi
 	template<class T> friend class IteratorImpl;
+#endif
 
 	/**
 	 * Simple HashMap iterator implementation.
@@ -133,7 +142,11 @@
 	template<class NodeType>
 	class IteratorImpl {
 		friend class HashMap;
+#ifdef __sgi
+		template<class T> friend class Common::IteratorImpl;
+#else
 		template<class T> friend class IteratorImpl;
+#endif
 	protected:
 		typedef const HashMap hashmap_t;
 

Modified: scummvm/branches/gsoc2009-mods/configure
===================================================================
--- scummvm/branches/gsoc2009-mods/configure	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/configure	2009-08-16 16:39:34 UTC (rev 43443)
@@ -1431,6 +1431,7 @@
 			type_4_byte='int'
 			_ar="$_host_alias-ar cru"
 			_ranlib=$_host_alias-ranlib
+			_strip=$_host_alias-strip
 			_backend="psp"
 			_build_scalers="no"
 			_build_hq_scalers="no"

Modified: scummvm/branches/gsoc2009-mods/dists/engine-data/kyra.dat
===================================================================
(Binary files differ)

Modified: scummvm/branches/gsoc2009-mods/dists/msvc8/gob.vcproj
===================================================================
--- scummvm/branches/gsoc2009-mods/dists/msvc8/gob.vcproj	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/dists/msvc8/gob.vcproj	2009-08-16 16:39:34 UTC (rev 43443)
@@ -103,6 +103,7 @@
 		<File RelativePath="..\..\engines\gob\inter.h" />
 		<File RelativePath="..\..\engines\gob\inter_bargon.cpp" />
 		<File RelativePath="..\..\engines\gob\inter_fascin.cpp" />
+		<File RelativePath="..\..\engines\gob\inter_playtoons.cpp" />
 		<File RelativePath="..\..\engines\gob\inter_v1.cpp" />
 		<File RelativePath="..\..\engines\gob\inter_v2.cpp" />
 		<File RelativePath="..\..\engines\gob\inter_v3.cpp" />

Modified: scummvm/branches/gsoc2009-mods/dists/msvc9/gob.vcproj
===================================================================
--- scummvm/branches/gsoc2009-mods/dists/msvc9/gob.vcproj	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/dists/msvc9/gob.vcproj	2009-08-16 16:39:34 UTC (rev 43443)
@@ -104,6 +104,7 @@
 		<File RelativePath="..\..\engines\gob\inter.h" />
 		<File RelativePath="..\..\engines\gob\inter_bargon.cpp" />
 		<File RelativePath="..\..\engines\gob\inter_fascin.cpp" />
+		<File RelativePath="..\..\engines\gob\inter_playtoons.cpp" />
 		<File RelativePath="..\..\engines\gob\inter_v1.cpp" />
 		<File RelativePath="..\..\engines\gob\inter_v2.cpp" />
 		<File RelativePath="..\..\engines\gob\inter_v3.cpp" />

Modified: scummvm/branches/gsoc2009-mods/engines/agi/detection.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/agi/detection.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/agi/detection.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -364,7 +364,10 @@
 	GAME_P("kq3", "2.0A 1988-08-28 (CE)", "ac30b7ca5a089b5e642fbcdcbe872c12", 0x2917, GID_KQ3, Common::kPlatformApple2GS),
 
 	// King's Quest 3 (Amiga) 2.15 11/15/89	# 2.333
-	GAME3_PS("kq3", "2.15 1989-11-15", "dirs", "8e35bded2bc5cf20f5eec2b15523b155", 1805, 0x3086, 0, GID_KQ3, Common::kPlatformAmiga),
+	// Original pauses with ESC, has menus accessible with mouse.
+	// ver = 0x3086 -> menus accessible with ESC or mouse, bug #2835581 (KQ3: Game Crash When Leaving Tavern as Fly).
+	// ver = 0x3149 -> menus accessible with mouse, ESC pauses game, bug #2835581 disappears.
+	GAME3_PS("kq3", "2.15 1989-11-15", "dirs", "8e35bded2bc5cf20f5eec2b15523b155", 1805, 0x3149, 0, GID_KQ3, Common::kPlatformAmiga),
 
 	// King's Quest 3 (PC) 1.01 11/08/86 [AGI 2.272]
 	// Does not have menus, crashes if menus are enforced. Therefore, ESC pauses the game

Modified: scummvm/branches/gsoc2009-mods/engines/agos/animation.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/agos/animation.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/agos/animation.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -265,6 +265,13 @@
 }
 
 void MoviePlayerDXA::playVideo() {
+	// Most of the videos included in the Amiga version, reduced the
+	// resoluton to 384 x 280, so require the screen to be cleared, 
+	// before starting playing those videos.
+	if (getWidth() == 384 && getHeight() == 280) {
+		_vm->clearSurfaces();
+	}
+
 	while (getCurFrame() < getFrameCount() && !_skipMovie && !_vm->shouldQuit())
 		handleNextFrame();
 }

Modified: scummvm/branches/gsoc2009-mods/engines/agos/event.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/agos/event.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/agos/event.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -498,7 +498,6 @@
 						_variableArray[41] = 1;
 				}
 
-				// Make sure backspace works right (this fixes a small issue on OS X)
 				_keyPressed = event.kbd;
 				break;
 			case Common::EVENT_MOUSEMOVE:

Modified: scummvm/branches/gsoc2009-mods/engines/agos/script.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/agos/script.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/agos/script.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -110,7 +110,8 @@
 #ifdef __DS__
 	// HACK: Skip attempt to read Calypso's letter manually,
 	// due to speech segment been too large to fit into memory
-	if (getGameType() == GType_SIMON1 && (getFeatures() & GF_TALKIE) && _currentTable) {
+	if (getGameType() == GType_SIMON1 && (getFeatures() & GF_TALKIE) &&
+		getPlatform() == Common::kPlatformWindows && _currentTable) {
 		if (_currentTable->id == 71 && tmp == 1 && tmp2 == 1) {
 			setScriptCondition(false);
 			return;
@@ -444,7 +445,8 @@
 #ifdef __DS__
 		// HACK: Skip scene of Simon reading letter from Calypso
 		// due to speech segment been too large to fit into memory
-		if (getGameType() == GType_SIMON1 && (getFeatures() & GF_TALKIE) && sub->id == 2922) {
+		if (getGameType() == GType_SIMON1 && (getFeatures() & GF_TALKIE) &&
+			getPlatform() == Common::kPlatformWindows && sub->id == 2922) {
 			// set parent special
 			_noParentNotify = true;
 			setItemParent(derefItem(16), me());

Modified: scummvm/branches/gsoc2009-mods/engines/agos/sound.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/agos/sound.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/agos/sound.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -133,8 +133,10 @@
 };
 
 class VocSound : public BaseSound {
+	byte _flags;
 public:
-	VocSound(Audio::Mixer *mixer, File *file, uint32 base = 0, bool bigEndian = false) : BaseSound(mixer, file, base, bigEndian) {}
+	VocSound(Audio::Mixer *mixer, File *file, uint32 base = 0, bool bigEndian = false) : BaseSound(mixer, file, base, bigEndian), _flags(0) {}
+	Audio::AudioStream *makeAudioStream(uint sound);
 	void playSound(uint sound, uint loopSound, Audio::Mixer::SoundType type, Audio::SoundHandle *handle, byte flags, int vol = 0);
 };
 
@@ -255,14 +257,15 @@
 	_mixer->playInputStream(type, handle, new LoopingAudioStream(this, sound, loopSound, (flags & Audio::Mixer::FLAG_LOOP) != 0), -1, vol);
 }
 
-void VocSound::playSound(uint sound, uint loopSound, Audio::Mixer::SoundType type, Audio::SoundHandle *handle, byte flags, int vol) {
-	if (_offsets == NULL)
-		return;
-
+Audio::AudioStream *VocSound::makeAudioStream(uint sound) {
 	_file->seek(_offsets[sound], SEEK_SET);
+	return Audio::makeVOCStream(*_file, _flags);
+}
 
-	Audio::AudioStream *stream = Audio::makeVOCStream(*_file, flags);
-	_mixer->playInputStream(type, handle, stream);
+void VocSound::playSound(uint sound, uint loopSound, Audio::Mixer::SoundType type, Audio::SoundHandle *handle, byte flags, int vol) {
+	convertVolume(vol);
+	_flags = flags;
+	_mixer->playInputStream(type, handle, new LoopingAudioStream(this, sound, loopSound, (flags & Audio::Mixer::FLAG_LOOP) != 0), -1, vol);
 }
 
 void RawSound::playSound(uint sound, uint loopSound, Audio::Mixer::SoundType type, Audio::SoundHandle *handle, byte flags, int vol) {
@@ -630,7 +633,8 @@
 	if (_effectsPaused)
 		return;
 
-	_mixer->stopHandle(_effectsHandle);
+	if (_vm->getGameType() == GType_SIMON1)
+		_mixer->stopHandle(_effectsHandle);
 	_effects->playSound(sound, Audio::Mixer::kSFXSoundType, &_effectsHandle, (_vm->getGameId() == GID_SIMON1CD32) ? 0 : Audio::Mixer::FLAG_UNSIGNED);
 }
 

Modified: scummvm/branches/gsoc2009-mods/engines/agos/vga.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/agos/vga.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/agos/vga.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -1197,7 +1197,7 @@
 		uint16 height = _videoWindows[4 * 4 + 3];
 
 		byte *dst = (byte *)_backGroundBuf->getBasePtr(xoffs, yoffs);
-		byte *src = (byte *)_window4BackScn->pixels;;
+		byte *src = (byte *)_window4BackScn->pixels;
 		uint16 srcWidth = _videoWindows[4 * 4 + 2] * 16;
 		for (; height > 0; height--) {
 			memcpy(dst, src, width);

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/background.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/background.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/background.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -30,6 +30,7 @@
 uint8 colorMode = 0;
 
 uint8 *backgroundScreens[8] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };	// wasn't initialized in original, but it's probably better
+bool backgroundChanged[8] = { false, false, false, false, false, false, false, false };
 backgroundTableStruct backgroundTable[8];
 
 char hwPage[64000];
@@ -101,6 +102,8 @@
 		return (-2);
 	}
 
+	backgroundChanged[idx] = true;
+
 	ptrToFree = gfxModuleData.pPage10;
 	if (loadFileSub1(&ptrToFree, name, NULL) < 0) {
 		if (ptrToFree != gfxModuleData.pPage10)

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/background.h
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/background.h	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/background.h	2009-08-16 16:39:34 UTC (rev 43443)
@@ -36,6 +36,7 @@
 extern short int cvtPalette[0x20];
 extern int CVTLoaded;
 extern uint8 *backgroundScreens[8];
+extern bool backgroundChanged[8];
 extern backgroundTableStruct backgroundTable[8];
 
 int loadBackground(const char *name, int idx);

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/backgroundIncrust.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/backgroundIncrust.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/backgroundIncrust.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -71,6 +71,8 @@
 	if (pBackground == NULL)
 		return;
 
+	backgroundChanged[pIncrust->backgroundIdx] = true;
+
 	int X = pIncrust->savedX;
 	int Y = pIncrust->savedY;
 	int width = pIncrust->saveWidth;
@@ -108,6 +110,8 @@
 
 	backgroundPtr = backgroundScreens[backgroundIdx];
 
+	backgroundChanged[backgroundIdx] = true;
+
 	assert(backgroundPtr != NULL);
 
 	currentHead = pHead;
@@ -218,6 +222,8 @@
 				// Poly
 				addBackgroundIncrustSub1(frame, pl->X, pl->Y, NULL, pl->scale, (char*)backgroundScreens[pl->backgroundIdx], (char *)filesDatabase[frame].subData.ptr);
 			}
+
+			backgroundChanged[pl->backgroundIdx] = true;
 		}
 
 		pl = pl2;

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/cell.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/cell.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/cell.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -176,6 +176,11 @@
 	if (ax) {
 		pNewElement->gfxPtr = renderText(width, ax);
 	}
+
+	// WORKAROUND: This is needed for the new dirty rect handling so as to properly refresh the screen
+	// when the copy protection screen is being shown
+	if ((messageIdx == 0) && !strcmp(overlayTable[overlayIdx].overlayName, "XX2"))
+		backgroundChanged[0] = true;
 }
 
 void removeCell(cellStruct *objPtr, int ovlNumber, int objectIdx, int objType, int backgroundPlane) {

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/detection.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/detection.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/detection.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -26,7 +26,7 @@
 
 
 #include "base/plugins.h"
-
+#include "common/savefile.h"
 #include "engines/advancedDetector.h"
 
 #include "cruise/cruise.h"
@@ -70,6 +70,19 @@
 	{
 		{
 			"cruise",
+			"16 colours",
+			AD_ENTRY1("D1", "cd29a4cd9162076e9a18495fe56a48f3"),
+			Common::EN_GRB,
+			Common::kPlatformPC,
+			ADGF_NO_FLAGS,
+			GUIO_NONE
+		},
+		GType_CRUISE,
+		0,
+	},
+	{
+		{
+			"cruise",
 			"16 colors",
 			AD_ENTRY1("D1", "41a7a4d426dbd048eb369cfee4bb2717"),
 			Common::FR_FRA,

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/function.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/function.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/function.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -510,6 +510,8 @@
 		gfxModuleData_gfxWaitVSync();
 
 		result = loadBackground(bgName, bgIdx);
+
+		gfxModuleData_addDirtyRect(Common::Rect(0, 0, 320, 200));
 	}
 
 	changeCursor(CURSOR_NORMAL);
@@ -788,6 +790,7 @@
 
 	if ((bgIdx >= 0) && (bgIdx < NBSCREENS) && (backgroundScreens[bgIdx])) {
 		memset(backgroundScreens[bgIdx], 0, 320 * 200);
+		backgroundChanged[bgIdx] = true;
 		strcpy(backgroundTable[0].name, "");
 	}
 
@@ -922,6 +925,7 @@
 	if (newPlane >= 0 && newPlane < NBSCREENS) {
 		if (backgroundScreens[newPlane]) {
 			masterScreen = newPlane;
+			backgroundChanged[newPlane] = true;
 			switchPal = 1;
 		}
 	}
@@ -936,8 +940,10 @@
 		if (backgroundScreens[backgroundIdx])
 			free(backgroundScreens[backgroundIdx]);
 
-		if (masterScreen == backgroundIdx)
+		if (masterScreen == backgroundIdx) {
 			masterScreen = 0;
+			backgroundChanged[0] = true;
+		}
 
 		strcpy(backgroundTable[backgroundIdx].name, "");
 	} else {

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/gfxModule.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/gfxModule.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/gfxModule.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -26,6 +26,8 @@
 
 #include "common/system.h"
 #include "common/endian.h"
+#include "common/list.h"
+#include "common/rect.h"
 
 #include "cruise/cruise.h"
 #include "cruise/cruise_main.h"
@@ -41,6 +43,12 @@
 int palDirtyMin = 256;
 int palDirtyMax = -1;
 
+typedef Common::List<Common::Rect> RectList;
+RectList _dirtyRects;
+RectList _priorFrameRects;
+
+bool _dirtyRectScreen = false;
+
 gfxModuleDataStruct gfxModuleData = {
 	0,			// use Tandy
 	0,			// use EGA
@@ -229,7 +237,47 @@
 	flip();
 }
 
+void gfxModuleData_addDirtyRect(const Common::Rect &r) {
+	_dirtyRects.push_back(Common::Rect(	MAX(r.left, (int16)0), MAX(r.top, (int16)0), 
+		MIN(r.right, (int16)320), MIN(r.bottom, (int16)200)));
+}
+
+/**
+ * Creates the union of two rectangles.
+ */
+static bool unionRectangle(Common::Rect &pDest, const Common::Rect &pSrc1, const Common::Rect &pSrc2) {
+	pDest.left   = MIN(pSrc1.left, pSrc2.left);
+	pDest.top    = MIN(pSrc1.top, pSrc2.top);
+	pDest.right  = MAX(pSrc1.right, pSrc2.right);
+	pDest.bottom = MAX(pSrc1.bottom, pSrc2.bottom);
+
+	return !pDest.isEmpty();
+}
+
+static void mergeClipRects() {
+	RectList::iterator rOuter, rInner;
+
+	for (rOuter = _dirtyRects.begin(); rOuter != _dirtyRects.end(); ++rOuter) {
+		rInner = rOuter;
+		while (++rInner != _dirtyRects.end()) {
+
+			if ((*rOuter).intersects(*rInner)) {
+				// these two rectangles overlap, so translate it to a bigger rectangle
+				// that contains both of them
+				unionRectangle(*rOuter, *rOuter, *rInner);
+
+				// remove the inner rect from the list
+				_dirtyRects.erase(rInner);
+
+				// move back to beginning of list
+				rInner = rOuter;
+			}
+		}
+	}
+}
+
 void flip() {
+	RectList::iterator dr;
 	int i;
 	byte paletteRGBA[256 * 4];
 
@@ -245,7 +293,29 @@
 		palDirtyMax = -1;
 	}
 
-	g_system->copyRectToScreen(globalScreen, 320, 0, 0, 320, 200);
+	// Make a copy of the prior frame's dirty rects, and then backup the current frame's rects
+	RectList tempList = _priorFrameRects;
+	_priorFrameRects = _dirtyRects;
+
+	// Merge the prior frame's dirty rects into the current frame's list
+	for (dr = tempList.begin(); dr != tempList.end(); ++dr) {
+		Common::Rect &r = *dr;
+		_dirtyRects.push_back(Common::Rect(r.left, r.top, r.right, r.bottom));
+	}
+
+	// Merge any overlapping rects to simplify the drawing process
+	mergeClipRects();
+
+	// Copy any modified areas
+	for (dr = _dirtyRects.begin(); dr != _dirtyRects.end(); ++dr) {
+		Common::Rect &r = *dr;
+		g_system->copyRectToScreen(globalScreen + 320 * r.top + r.left, 320, 
+			r.left, r.top, r.width(), r.height());
+	}
+
+	_dirtyRects.clear();
+
+	// Allow the screen to update
 	g_system->updateScreen();
 }
 

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/gfxModule.h
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/gfxModule.h	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/gfxModule.h	2009-08-16 16:39:34 UTC (rev 43443)
@@ -62,6 +62,7 @@
 void gfxModuleData_convertOldPalColor(uint16 oldColor, uint8 *pOutput);
 void gfxModuleData_setPalEntries(const byte *ptr, int start, int num);
 void gfxModuleData_setPal256(const byte *ptr);
+void gfxModuleData_addDirtyRect(const Common::Rect &r);
 void flip(void);
 void drawSolidBox(int32 x1, int32 y1, int32 x2, int32 y2, uint8 colour);
 void resetBitmap(uint8 *dataPtr, int32 dataSize);

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/mainDraw.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/mainDraw.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/mainDraw.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -1121,6 +1121,8 @@
 	if (spriteY1 == spriteY2)
 		return;
 
+	gfxModuleData_addDirtyRect(Common::Rect(spriteX2, spriteY2, spriteX1, spriteY1));
+
 	var_8 = 0;
 
 	memset(polygonMask, 0xFF, (320*200) / 8);
@@ -1177,6 +1179,8 @@
 			globalY = 198 - pGfxPtr->height;
 		}
 
+		gfxModuleData_addDirtyRect(Common::Rect(globalX, globalY, globalX + width, globalY + height));
+
 		initialOuput = ouputPtr + (globalY * 320) + globalX;
 
 		for (yp = 0; yp < height; yp++) {
@@ -1206,6 +1210,9 @@
 	int x = 0;
 	int y = 0;
 
+	// Flag the given area as having been changed
+	gfxModuleData_addDirtyRect(Common::Rect(xs, ys, xs + width - 1, ys + height - 1));
+
 	cellStruct* plWork = currentObjPtr;
 	int workBufferSize = height * (width / 8);
 
@@ -1406,6 +1413,10 @@
 
 	if (bgPtr) {
 		gfxModuleData_gfxCopyScreen(bgPtr, gfxModuleData.pPage10);
+		if (backgroundChanged[masterScreen]) {
+			backgroundChanged[masterScreen] = false;
+			gfxModuleData_addDirtyRect(Common::Rect(0, 0, 320, 200));
+		}
 	}
 
 	autoCellHead.next = NULL;

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/staticres.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/staticres.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/staticres.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -29,28 +29,28 @@
 
 namespace Cruise {
 
-int actor_move[][13] = {
+const int actor_move[][13] = {
 	{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0},						// back
 	{13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0},			// right side
 	{25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0},			// front
 	{ -13, -14, -15, -16, -17, -18, -19, -20, -21, -22, -23, -24, 0}// left side
 };
 
-int actor_end[][13] = {
+const int actor_end[][13] = {
 	{37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},	// stat back
 	{38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},	// stat right-side
 	{39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},	// stat front
 	{ -38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}	// stat left-side
 };
 
-int actor_stat[][13] = {
+const int actor_stat[][13] = {
 	{53, 54, 55, 56, 57, 0, 0, 0, 0, 0, 0, 0, 0},
 	{59, 60, 62, 63, 78, 0, 0, 0, 0, 0, 0, 0, 0},
 	{ -78, -63, -62, -60, -59, 0, 0, 0, 0, 0, 0, 0, 0},
 	{ -57, -56, -55, -54, -53, 0, 0, 0, 0, 0, 0, 0, 0}
 };
 
-int actor_invstat[][13] = {
+const int actor_invstat[][13] = {
 	{ -53, -54, -55, -56, -57, 0, 0, 0, 0, 0, 0, 0, 0},
 	{57, 56, 55, 54, 53, 0, 0, 0, 0, 0, 0, 0, 0},
 	{78, 63, 62, 60, 59, 0, 0, 0, 0, 0, 0, 0, 0},
@@ -59,7 +59,7 @@
 
 // font character lookup tables
 
-int16 english_fontCharacterTable[256] = {
+const int16 english_fontCharacterTable[256] = {
 	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 	-1,
@@ -122,7 +122,7 @@
 	-1,
 };
 
-int16 german_fontCharacterTable[256] = {
+const int16 german_fontCharacterTable[256] = {
 	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 	-1,
@@ -168,7 +168,7 @@
 	-1, -1, -1, -1
 };
 
-int16 spanish_fontCharacterTable[256] = {
+const int16 spanish_fontCharacterTable[256] = {
 	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 	-1,

Modified: scummvm/branches/gsoc2009-mods/engines/cruise/staticres.h
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/cruise/staticres.h	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/cruise/staticres.h	2009-08-16 16:39:34 UTC (rev 43443)
@@ -31,17 +31,17 @@
 
 namespace Cruise {
 
-extern int actor_move[][13];
+extern const int actor_move[][13];
 
-extern int actor_end[][13];
+extern const int actor_end[][13];
 
-extern int actor_stat[][13];
+extern const int actor_stat[][13];
 
-extern int actor_invstat[][13];
+extern const int actor_invstat[][13];
 
-extern short int english_fontCharacterTable[256];
-extern short int german_fontCharacterTable[256];
-extern short int spanish_fontCharacterTable[256];
+extern const int16 english_fontCharacterTable[256];
+extern const int16 german_fontCharacterTable[256];
+extern const int16 spanish_fontCharacterTable[256];
 
 #define fontCharacterTable (_vm->getLanguage() == Common::DE_DEU ? \
 	german_fontCharacterTable : (_vm->getLanguage() == Common::ES_ESP ? \

Modified: scummvm/branches/gsoc2009-mods/engines/gob/gob.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/gob/gob.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/gob/gob.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -460,14 +460,14 @@
 	case kGameTypePlaytnCk:
 	case kGameTypeBambou:
 		_init     = new Init_v2(this);
-		_video    = new Video_v2(this);
-		_inter    = new Inter_v6(this);
+		_video    = new Video_v6(this);
+		_inter    = new Inter_Playtoons(this);
 		_mult     = new Mult_v2(this);
 		_draw     = new Draw_v2(this);
 		_map      = new Map_v2(this);
-		_goblin   = new Goblin_v2(this);
+		_goblin   = new Goblin_v4(this);
 		_scenery  = new Scenery_v2(this);
-		_saveLoad = new SaveLoad_Playtoons(this);
+		_saveLoad = new SaveLoad_Playtoons(this, _targetName.c_str());
 		break;
 
 	default:

Modified: scummvm/branches/gsoc2009-mods/engines/gob/inter.h
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/gob/inter.h	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/gob/inter.h	2009-08-16 16:39:34 UTC (rev 43443)
@@ -547,6 +547,21 @@
 	void probe16bitMusic(char *fileName);
 };
 
+class Inter_Playtoons : public Inter_v6 {
+public:
+	Inter_Playtoons(GobEngine *vm);
+	virtual ~Inter_Playtoons() {}
+
+protected:
+	virtual void setupOpcodesDraw();
+	virtual void setupOpcodesFunc();
+	virtual void setupOpcodesGob();
+
+	bool oPlaytoons_checkData(OpFuncParams &params);
+	void oPlaytoons_CD_20_23();
+	void oPlaytoons_CD_25();
+};
+
 } // End of namespace Gob
 
 #endif // GOB_INTER_H

Modified: scummvm/branches/gsoc2009-mods/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/gob/inter_v2.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/gob/inter_v2.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -1305,12 +1305,6 @@
 
 	char *file = _vm->_game->_script->getResultStr();
 
-	// WORKAROUND: In some games (at least all the Playtoons), some files are 
-	// read on CD (and only on CD). "@:\" is replaced by the CD drive letter.
-	// As the files are copied on the HDD, those characters are skipped. 
-	if (strncmp(file, "@:\\", 3) ==0 )
-		file += 3;
-
 	// WORKAROUND: For some reason, the variable indicating which TOT to load next
 	// is overwritten in the guard house card game in Woodruff.
 	if ((_vm->getGameType() == kGameTypeWoodruff) && !scumm_stricmp(file, "6.TOT"))

Modified: scummvm/branches/gsoc2009-mods/engines/gob/module.mk
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/gob/module.mk	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/gob/module.mk	2009-08-16 16:39:34 UTC (rev 43443)
@@ -30,6 +30,7 @@
 	inter_v2.o \
 	inter_bargon.o \
 	inter_fascin.o \
+	inter_playtoons.o \
 	inter_v3.o \
 	inter_v4.o \
 	inter_v5.o \

Modified: scummvm/branches/gsoc2009-mods/engines/gob/save/saveload.h
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/gob/save/saveload.h	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/gob/save/saveload.h	2009-08-16 16:39:34 UTC (rev 43443)
@@ -251,7 +251,6 @@
 
 	GameHandler *_gameHandler;
 	NotesHandler *_notesHandler;
-	TempSpriteHandler *_tempSpriteHandler;
 	ScreenshotHandler *_screenshotHandler;
 
 	SaveHandler *getHandler(const char *fileName) const;
@@ -450,13 +449,16 @@
 };
 
 /** Save/Load class for Playtoons. */
-/** Only used for the moment to check file presence */
-
 class SaveLoad_Playtoons : public SaveLoad {
 public:
-	SaveLoad_Playtoons(GobEngine *vm);
+	static const uint32 kSlotCount = 60;
+	static const uint32 kSlotNameLength = 40;
+
+	SaveLoad_Playtoons(GobEngine *vm, const char *targetName);
 	virtual ~SaveLoad_Playtoons();
 
+	SaveMode getSaveMode(const char *fileName) const;
+
 protected:
 	struct SaveFile {
 		const char *sourceName;
@@ -465,14 +467,45 @@
 		const char *description;
 	};
 
+	/** Handles the save slots. */
+	class GameHandler : public SaveHandler {
+	public:
+		GameHandler(GobEngine *vm, const char *target);
+		~GameHandler();
+
+		int32 getSize();
+		bool load(int16 dataVar, int32 size, int32 offset);
+		bool save(int16 dataVar, int32 size, int32 offset);
+
+	private:
+		/** Slot file construction. */
+		class File : public SlotFileIndexed {
+		public:
+			File(GobEngine *vm, const char *base);
+			~File();
+
+			int getSlot(int32 offset) const;
+			int getSlotRemainder(int32 offset) const;
+		};
+
+		byte _props[500];
+		/** The index. 500 bytes properties + kSlotCount * kSlotNameLength bytes. */
+		byte _index[2400];
+
+		File *_slotFile;
+
+		void buildIndex(byte *buffer) const;
+	};
+
 	static SaveFile _saveFiles[];
 
-	SaveMode getSaveMode(const char *fileName) const;
+	GameHandler *_gameHandler;
 
+	SaveHandler *getHandler(const char *fileName) const;
+	const char *getDescription(const char *fileName) const;
+
 	const SaveFile *getSaveFile(const char *fileName) const;
-	
 	SaveFile *getSaveFile(const char *fileName);
-
 };
 
 } // End of namespace Gob

Modified: scummvm/branches/gsoc2009-mods/engines/gob/save/saveload_playtoons.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/gob/save/saveload_playtoons.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/gob/save/saveload_playtoons.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -30,14 +30,17 @@
 namespace Gob {
 
 SaveLoad_Playtoons::SaveFile SaveLoad_Playtoons::_saveFiles[] = {
-	{  "disk.001", kSaveModeExists, 0, 0}, // Playtoons 1 identification file
-	{  "disk.002", kSaveModeExists, 0, 0}, // Playtoons 2 identification file
-	{  "disk.003", kSaveModeExists, 0, 0}, // Playtoons 3 identification file
-	{  "disk.004", kSaveModeExists, 0, 0}, // Playtoons 4 identification file
-	{  "disk.005", kSaveModeExists, 0, 0}, // Playtoons 5 identification file
-	{  "disk.006", kSaveModeExists, 0, 0}, // Playtoons CK 1 identification file
-	{  "disk.007", kSaveModeExists, 0, 0}, // Playtoons CK 2 identification file
-	{  "disk.008", kSaveModeExists, 0, 0}, // Playtoons CK 3 identification file
+	{    "did.inf", kSaveModeSave,   0, 0}, // 
+	{    "dan.itk", kSaveModeNone,   0, 0}, // Playtoons CK initial detection file
+	{   "disk.001", kSaveModeExists, 0, 0}, // Playtoons 1 identification file
+	{   "disk.002", kSaveModeExists, 0, 0}, // Playtoons 2 identification file
+	{   "disk.003", kSaveModeExists, 0, 0}, // Playtoons 3 identification file
+	{   "disk.004", kSaveModeExists, 0, 0}, // Playtoons 4 identification file
+	{   "disk.005", kSaveModeExists, 0, 0}, // Playtoons 5 identification file
+	{   "disk.006", kSaveModeExists, 0, 0}, // Playtoons CK 1 identification file
+	{   "disk.007", kSaveModeExists, 0, 0}, // Playtoons CK 2 identification file
+	{   "disk.008", kSaveModeExists, 0, 0}, // Playtoons CK 3 identification file
+/*
 	{  "titre.001", kSaveModeExists, 0, 0}, // Playtoons 1 titles
 	{  "titre.002", kSaveModeExists, 0, 0}, // Playtoons 2 titles
 	{  "titre.003", kSaveModeExists, 0, 0}, // Playtoons 3 titles
@@ -46,25 +49,237 @@
 	{  "titre.006", kSaveModeExists, 0, 0}, // Playtoons CK 1 empty title (???)
 	{  "titre.007", kSaveModeExists, 0, 0}, // Playtoons CK 2 empty title (???)
 	{  "titre.008", kSaveModeExists, 0, 0}, // Playtoons CK 3 empty title (???)
-	{  "mdo.def",  kSaveModeExists, 0, 0},
-	{  "dan.itk",  kSaveModeNone, 0, 0},
-	{  "did.inf",  kSaveModeSave, 0, 0},
+	{    "mdo.def", kSaveModeExists, 0, 0}, // 
+*/
 };
 
-SaveLoad::SaveMode SaveLoad_Playtoons::getSaveMode(const char *fileName) const {
-	const SaveFile *saveFile = getSaveFile(fileName);
+SaveLoad_Playtoons::GameHandler::File::File(GobEngine *vm, const char *base) :
+	SlotFileIndexed(vm, SaveLoad_Playtoons::kSlotCount, base, "s") {
+}
 
-	if (saveFile)
-		return saveFile->mode;
+SaveLoad_Playtoons::GameHandler::File::~File() {
+}
 
-	return kSaveModeNone;
+int SaveLoad_Playtoons::GameHandler::File::getSlot(int32 offset) const {
+	uint32 varSize = SaveHandler::getVarSize(_vm);
+
+	if (varSize == 0)
+		return -1;
+
+	return ((offset - 2900) / varSize);
 }
 
-SaveLoad_Playtoons::SaveLoad_Playtoons(GobEngine *vm) :
+int SaveLoad_Playtoons::GameHandler::File::getSlotRemainder(int32 offset) const {
+	uint32 varSize = SaveHandler::getVarSize(_vm);
+
+	if (varSize == 0)
+		return -1;
+
+	return ((offset - 2900) % varSize);
+}
+
+
+SaveLoad_Playtoons::GameHandler::GameHandler(GobEngine *vm, const char *target) : SaveHandler(vm) {
+	memset(_props, 0,  500);
+	memset(_index, 0, 2400);
+
+	_slotFile = new File(vm, target);
+}
+
+SaveLoad_Playtoons::GameHandler::~GameHandler() {
+	delete _slotFile;
+}
+
+int32 SaveLoad_Playtoons::GameHandler::getSize() {
+	uint32 varSize = SaveHandler::getVarSize(_vm);
+
+	if (varSize == 0)
+		return -1;
+
+	return _slotFile->tallyUpFiles(varSize, 2900);
+}
+
+bool SaveLoad_Playtoons::GameHandler::load(int16 dataVar, int32 size, int32 offset) {
+	uint32 varSize = SaveHandler::getVarSize(_vm);
+
+	if (varSize == 0)
+		return false;
+
+	if (size == 0) {
+		// Indicator to load all variables
+		dataVar = 0;
+		size = varSize;
+	}
+
+	if (offset < 500) {
+		// Properties
+
+		if ((offset + size) > 500) {
+			warning("Wrong index size (%d, %d)", size, offset);
+			return false;
+		}
+
+		_vm->_inter->_variables->copyFrom(dataVar, _props + offset, size);
+
+	} else if (offset < 2900) {
+		// Save index
+
+		if (size != 2400) {
+			warning("Wrong index size (%d, %d)", size, offset);
+			return false;
+		}
+
+		buildIndex(_vm->_inter->_variables->getAddressOff8(dataVar));
+
+	} else {
+		// Save slot, whole variable block
+
+		uint32 slot = _slotFile->getSlot(offset);
+		int slotRem = _slotFile->getSlotRemainder(offset);
+
+		debugC(2, kDebugSaveLoad, "Loading from slot %d", slot);
+
+		if ((slot >= kSlotCount) || (slotRem != 0) ||
+		    (dataVar != 0) || (((uint32) size) != varSize)) {
+
+			warning("Invalid loading procedure (%d, %d, %d, %d, %d)",
+					dataVar, size, offset, slot, slotRem);
+			return false;
+		}
+
+		Common::String slotFile = _slotFile->build(slot);
+
+		SaveReader *reader = 0;
+
+		// New save, load directly
+		reader = new SaveReader(2, slot, slotFile);
+
+		SavePartInfo info(kSlotNameLength, (uint32) _vm->getGameType(), 0,
+				_vm->getEndianness(), varSize);
+		SavePartVars vars(_vm, varSize);
+
+		if (!reader->load()) {
+			delete reader;
+			return false;
+		}
+
+		if (!reader->readPart(0, &info)) {
+			delete reader;
+			return false;
+		}
+		if (!reader->readPart(1, &vars)) {
+			delete reader;
+			return false;
+		}
+
+		// Get all variables
+		if (!vars.writeInto(0, 0, varSize)) {
+			delete reader;
+			return false;
+		}
+
+		delete reader;
+	}
+
+	return true;
+}
+
+bool SaveLoad_Playtoons::GameHandler::save(int16 dataVar, int32 size, int32 offset) {
+	uint32 varSize = SaveHandler::getVarSize(_vm);
+
+	warning("Saving %d %d %d", dataVar, size, offset);
+
+	if (varSize == 0)
+		return false;
+
+	if (size == 0) {
+		// Indicator to save all variables
+		dataVar = 0;
+		size = varSize;
+	}
+
+	if (offset < 500) {
+		// Properties
+
+		if ((offset + size) > 500) {
+			warning("Wrong index size (%d, %d)", size, offset);
+			return false;
+		}
+
+		_vm->_inter->_variables->copyTo(dataVar, _props + offset, size);
+
+	}  else if (offset < 2900) {
+		// Save index
+
+		if (size != 2400) {
+			warning("Wrong index size (%d, %d)", size, offset);
+			return false;
+		}
+
+		// Just copy the index into our buffer
+		_vm->_inter->_variables->copyTo(dataVar, _index, 2400);
+
+	} else {
+		// Save slot, whole variable block
+
+		uint32 slot = _slotFile->getSlot(offset);
+		int slotRem = _slotFile->getSlotRemainder(offset);
+
+		debugC(2, kDebugSaveLoad, "Saving to slot %d", slot);
+
+		if ((slot >= kSlotCount) || (slotRem != 0) ||
+		    (dataVar != 0) || (((uint32) size) != varSize)) {
+
+			warning("Invalid saving procedure (%d, %d, %d, %d, %d)",
+					dataVar, size, offset, slot, slotRem);
+			return false;
+		}
+
+		Common::String slotFile = _slotFile->build(slot);
+
+		SaveWriter writer(2, slot, slotFile);
+		SavePartInfo info(kSlotNameLength, (uint32) _vm->getGameType(), 0,
+				_vm->getEndianness(), varSize);
+		SavePartVars vars(_vm, varSize);
+
+		// Write the description
+		info.setDesc(_index + (slot * kSlotNameLength), kSlotNameLength);
+		// Write all variables
+		if (!vars.readFrom(0, 0, varSize))
+			return false;
+
+		if (!writer.writePart(0, &info))
+			return false;
+		if (!writer.writePart(1, &vars))
+			return false;
+	}
+
+	return true;
+}
+
+void SaveLoad_Playtoons::GameHandler::buildIndex(byte *buffer) const {
+	uint32 varSize = SaveHandler::getVarSize(_vm);
+
+	if (varSize == 0)
+		return;
+
+	SavePartInfo info(kSlotNameLength, (uint32) _vm->getGameType(),
+			0, _vm->getEndianness(), varSize);
+
+	_slotFile->buildIndex(buffer, info, 0);
+}
+
+
+SaveLoad_Playtoons::SaveLoad_Playtoons(GobEngine *vm, const char *targetName) :
 		SaveLoad(vm) {
+
+	_gameHandler = new GameHandler(vm, targetName);
+
+	_saveFiles[0].handler = _gameHandler;
 }
 
 SaveLoad_Playtoons::~SaveLoad_Playtoons() {
+	delete _gameHandler;
 }
 
 const SaveLoad_Playtoons::SaveFile *SaveLoad_Playtoons::getSaveFile(const char *fileName) const {
@@ -87,4 +302,31 @@
 	return 0;
 }
 
+SaveHandler *SaveLoad_Playtoons::getHandler(const char *fileName) const {
+	const SaveFile *saveFile = getSaveFile(fileName);
+
+	if (saveFile)
+		return saveFile->handler;
+
+	return 0;
+}
+
+const char *SaveLoad_Playtoons::getDescription(const char *fileName) const {
+	const SaveFile *saveFile = getSaveFile(fileName);
+
+	if (saveFile)
+		return saveFile->description;
+
+	return 0;
+}
+
+SaveLoad::SaveMode SaveLoad_Playtoons::getSaveMode(const char *fileName) const {
+	const SaveFile *saveFile = getSaveFile(fileName);
+
+	if (saveFile)
+		return saveFile->mode;
+
+	return kSaveModeNone;
+}
+
 } // End of namespace Gob

Modified: scummvm/branches/gsoc2009-mods/engines/gob/save/saveload_v3.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/gob/save/saveload_v3.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/gob/save/saveload_v3.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -33,8 +33,8 @@
 SaveLoad_v3::SaveFile SaveLoad_v3::_saveFiles[] = {
 	{    "cat.inf", kSaveModeSave  , 0, "savegame"},
 	{    "ima.inf", kSaveModeSave  , 0, "screenshot"},
-	{  "intro.$$$", kSaveModeSave  , 0, "temporary sprite"},
 	{   "bloc.inf", kSaveModeSave  , 0, "notes"},
+	{  "intro.$$$", kSaveModeIgnore, 0, "temporary sprite"},
 	{   "prot",     kSaveModeIgnore, 0, 0},
 	{ "config",     kSaveModeIgnore, 0, 0}
 };
@@ -496,20 +496,17 @@
 		_screenshotHandler = new ScreenshotHandler(vm, _gameHandler, sShotType);
 	}
 
-	_tempSpriteHandler = new TempSpriteHandler(vm);
 	_notesHandler = new NotesHandler(2560, vm, targetName);
 
 	_saveFiles[0].handler = _gameHandler;
 	_saveFiles[1].handler = _screenshotHandler;
-	_saveFiles[2].handler = _tempSpriteHandler;
-	_saveFiles[3].handler = _notesHandler;
+	_saveFiles[2].handler = _notesHandler;
 }
 
 SaveLoad_v3::~SaveLoad_v3() {
 	delete _screenshotHandler;
 	delete _gameHandler;
 	delete _notesHandler;
-	delete _tempSpriteHandler;
 }
 
 const SaveLoad_v3::SaveFile *SaveLoad_v3::getSaveFile(const char *fileName) const {

Modified: scummvm/branches/gsoc2009-mods/engines/gob/video_v6.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/gob/video_v6.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/gob/video_v6.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -39,7 +39,7 @@
 }
 
 void Video_v6::setPrePalette() {
-	byte *tpal = (byte *) _vm->_draw->_vgaPalette;;
+	byte *tpal = (byte *) _vm->_draw->_vgaPalette;
 	const byte *fpal = (const byte *) _ditherPalette;
 
 	for (int i = 0; i < 256; i++) {

Modified: scummvm/branches/gsoc2009-mods/engines/kyra/kyra_hof.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/kyra/kyra_hof.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/kyra/kyra_hof.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -247,6 +247,8 @@
 	}
 	_screen->loadFont(_screen->FID_GOLDFONT_FNT, "GOLDFONT.FNT");
 
+	_screen->setFont(_screen->FID_8_FNT);
+
 	_screen->setAnimBlockPtr(3504);
 	_screen->setScreenDim(0);
 

Modified: scummvm/branches/gsoc2009-mods/engines/kyra/lol.h
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/kyra/lol.h	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/kyra/lol.h	2009-08-16 16:39:34 UTC (rev 43443)
@@ -301,6 +301,7 @@
 friend class TextDisplayer_LoL;
 friend class TIMInterpreter_LoL;
 friend class Debugger_LoL;
+friend class HistoryPlayer;
 public:
 	LoLEngine(OSystem *system, const GameFlags &flags);
 	~LoLEngine();
@@ -1124,14 +1125,14 @@
 	uint16 _dmScaleH;
 
 	int _lastMouseRegion;
-	int _seqWindowX1, _seqWindowY1,	_seqWindowX2, _seqWindowY2, _seqTrigger;
-	int _spsWindowX, _spsWindowY,	_spsWindowW, _spsWindowH;
+	int _seqWindowX1, _seqWindowY1, _seqWindowX2, _seqWindowY2, _seqTrigger;
+	int _spsWindowX, _spsWindowY, _spsWindowW, _spsWindowH;
 
 	uint8 *_tempBuffer5120;
 
-	const char *const * _levelDatList;
+	const char * const *_levelDatList;
 	int _levelDatListSize;
-	const char *const * _levelShpList;
+	const char * const *_levelShpList;
 	int _levelShpListSize;
 
 	const int8 *_dscUnk1;
@@ -1476,6 +1477,31 @@
 	LevelTempData *_lvlTempData[29];
 };
 
+class HistoryPlayer {
+public:
+	HistoryPlayer(LoLEngine *vm);
+	~HistoryPlayer();
+
+	void play();
+private:
+	OSystem *_system;
+	LoLEngine *_vm;
+	Screen *_screen;
+
+	int _x, _y, _width, _height;
+	int _frame;
+	Movie *_wsa;
+
+	void loadWsa(const char *filename);
+	void playWsa(bool direction);
+	void restoreWsaBkgd();
+
+	Movie *_fireWsa;
+	int _fireFrame;
+	uint32 _nextFireTime;
+	void updateFire();
+};
+
 } // end of namespace Kyra
 
 #endif

Modified: scummvm/branches/gsoc2009-mods/engines/kyra/resource.h
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/kyra/resource.h	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/kyra/resource.h	2009-08-16 16:39:34 UTC (rev 43443)
@@ -282,16 +282,18 @@
 	kLolButtonList7,
 	kLolButtonList8,
 
-	lolLegendData,
-	lolMapCursorOvl,
-	lolMapStringId,
-	//lolMapPal,
+	kLolLegendData,
+	kLolMapCursorOvl,
+	kLolMapStringId,
+	//kLolMapPal,
 
-	lolSpellbookAnim,
-	lolSpellbookCoords,
-	lolHealShapeFrames,
-	lolLightningDefs,
-	lolFireballCoords,
+	kLolSpellbookAnim,
+	kLolSpellbookCoords,
+	kLolHealShapeFrames,
+	kLolLightningDefs,
+	kLolFireballCoords,
+
+	kLolHistory,
 #endif // ENABLE_LOL
 
 	kMaxResIDs

Modified: scummvm/branches/gsoc2009-mods/engines/kyra/screen.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/kyra/screen.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/kyra/screen.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -49,6 +49,8 @@
 
 	_sjisFont = 0;
 	memset(_fonts, 0, sizeof(_fonts));
+
+	_currentFont = FID_8_FNT;
 }
 
 Screen::~Screen() {
@@ -658,10 +660,18 @@
 }
 
 void Screen::setPaletteIndex(uint8 index, uint8 red, uint8 green, uint8 blue) {
-	getPalette(0)[index * 3 + 0] = red;
-	getPalette(0)[index * 3 + 1] = green;
-	getPalette(0)[index * 3 + 2] = blue;
-	setScreenPalette(getPalette(0));
+	Palette &pal = getPalette(0);
+
+	const int offset = index * 3;
+
+	if (pal[offset + 0] == red && pal[offset + 1] == green && pal[offset + 2] == blue)
+		return;
+
+	pal[offset + 0] = red;
+	pal[offset + 1] = green;
+	pal[offset + 2] = blue;
+
+	setScreenPalette(pal);
 }
 
 void Screen::getRealPalette(int num, uint8 *dst) {

Modified: scummvm/branches/gsoc2009-mods/engines/kyra/sequences_lok.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/kyra/sequences_lok.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/kyra/sequences_lok.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -1143,8 +1143,16 @@
 
 	_screen->showMouse();
 	if (_flags.platform == Common::kPlatformAmiga) {
-		while (!shouldQuit())
+		_screen->_charWidth = -2;
+		_screen->setCurPage(2);
+
+		_screen->getPalette(2).clear();
+		_screen->setScreenPalette(_screen->getPalette(2));
+
+		while (!shouldQuit()) {
 			seq_playCreditsAmiga();
+			delayUntil(_system->getMillis() + 300 * _tickLength);
+		}
 	} else {
 		seq_playCredits();
 	}
@@ -1295,8 +1303,10 @@
 			_screen->updateScreen();
 		}
 
-		if (checkInput(0, false))
+		if (checkInput(0, false)) {
+			removeInputTop();
 			finished = true;
+		}
 
 		uint32 now = _system->getMillis();
 		uint32 nextLoop = startLoop + _tickLength * 5;
@@ -1317,17 +1327,14 @@
 
 	_screen->loadBitmap("CHALET.CPS", 4, 2, &_screen->getPalette(0));
 	_screen->copyPage(2, 0);
-	_screen->setCurPage(2);
 
-	_screen->getPalette(2).clear();
-	_screen->setScreenPalette(_screen->getPalette(2));
-
 	_screen->getPalette(0).fill(16, 1, 63);
 	_screen->fadePalette(_screen->getPalette(0), 0x5A);
+	_screen->updateScreen();
 
 	const char *theEnd = "THE END";
 
-	const int width = _screen->getTextWidth(theEnd);
+	const int width = _screen->getTextWidth(theEnd) + 1;
 	int x = (320 - width) / 2 + 1;
 
 	_screen->copyRegion(x, 8, x, 8, width, 56, 0, 2, Screen::CR_NO_P_CHECK);
@@ -1359,7 +1366,6 @@
 	char *buffer = new char[size];
 	assert(buffer);
 	memcpy(buffer, bufferTmp, size);
-	_staticres->unloadId(k1CreditsStrings);
 
 	char stringBuffer[81];
 	memset(stringBuffer, 0, sizeof(stringBuffer));
@@ -1404,7 +1410,7 @@
 
 			_screen->printText(stringBuffer, x + 8, 0, 31, 0);
 
-			for (int i = 0; i < fontHeight; ++i) {
+			for (int i = 0; i < fontHeight && !shouldQuit(); ++i) {
 				_screen->copyRegion(0, 141, 0, 140, 320, 59, 0, 0, Screen::CR_NO_P_CHECK);
 				_screen->copyRegion(0, i, 0, 198, 320, 3, 2, 0, Screen::CR_NO_P_CHECK);
 				_screen->updateScreen();
@@ -1422,8 +1428,10 @@
 			*specialString = 0;
 		}
 
-		if (checkInput(0, false))
+		if (checkInput(0, false)) {
+			removeInputTop();
 			break;
+		}
 	} while (++cur != buffer + size && !shouldQuit());
 
 	delete[] buffer;

Modified: scummvm/branches/gsoc2009-mods/engines/kyra/sequences_lol.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/kyra/sequences_lol.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/kyra/sequences_lol.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -89,8 +89,10 @@
 			showIntro();
 			break;
 
-		case 2:		// "Lore of the Lands" (only CD version)
-			break;
+		case 2: {	// "Lore of the Lands" (only CD version)
+			HistoryPlayer history(this);
+			history.play();
+			} break;
 
 		case 3:		// Load game
 			if (_gui->runMenu(_gui->_loadMenu))
@@ -121,7 +123,8 @@
 	static const char * const fileListCD[] = {
 		"GENERAL.PAK", "INTROVOC.PAK", "STARTUP.PAK", "INTRO1.PAK",
 		"INTRO2.PAK", "INTRO3.PAK", "INTRO4.PAK", "INTRO5.PAK",
-		"INTRO6.PAK", "INTRO7.PAK", "INTRO8.PAK", "INTRO9.PAK", 0
+		"INTRO6.PAK", "INTRO7.PAK", "INTRO8.PAK", "INTRO9.PAK",
+		"HISTORY.PAK", 0
 	};
 
 	static const char * const fileListFloppyExtracted[] = {
@@ -683,6 +686,271 @@
 	delete ci;
 }
 
+// history player
+
+HistoryPlayer::HistoryPlayer(LoLEngine *vm) : _system(vm->_system), _vm(vm), _screen(vm->screen()) {
+	_x = _y = _width = _height = 0;
+	_frame = _fireFrame = 0;
+	_nextFireTime = 0;
+
+	_wsa = new WSAMovie_v2(vm);
+	assert(_wsa);
+	_fireWsa = new WSAMovie_v2(vm);
+	assert(_fireWsa);
+}
+
+HistoryPlayer::~HistoryPlayer() {
+	delete _wsa;
+	delete _fireWsa;
+}
+
+void HistoryPlayer::play() {
+	int dataSize = 0;
+	const char *data = (const char *)_vm->staticres()->loadRawData(kLolHistory, dataSize);
+
+	if (!data)
+		error("Could not load history data");
+
+	_screen->loadFont(Screen::FID_9_FNT, "FONT9P.FNT");
+
+	Palette pal(256);
+	pal.fill(0, 256, 0);
+	_screen->fadePalette(pal, 0x1E);
+
+	_screen->loadBitmap("BACKGND.CPS", 8, 8, &pal);
+	_screen->copyRegion(0, 0, 0, 0, 320, 200, 8, 0, Screen::CR_NO_P_CHECK);
+	_screen->copyRegion(0, 0, 0, 0, 320, 200, 8, 2, Screen::CR_NO_P_CHECK);
+	_screen->updateScreen();
+
+	_screen->fadePalette(pal, 0x82);
+
+	_screen->copyRegion(_x, _y, _x, _y, _width, _height, 2, 0);
+	_screen->updateScreen();
+
+	pal.fill(0, 256, 0);
+	_screen->setFont(Screen::FID_9_FNT);
+
+	char tempWsaFilename[16];
+	char voiceFilename[13];
+	// the 'a' *has* to be lowercase
+	strncpy(voiceFilename, "PS_1a", sizeof(voiceFilename));
+
+	int part = 0;
+	Sound *sound = _vm->sound();
+
+	Common::Functor0Mem<void, HistoryPlayer> palFade(this, &HistoryPlayer::updateFire);
+
+	for (; voiceFilename[3] <= '9' && !_vm->shouldQuit() && !_vm->skipFlag(); ++voiceFilename[3], voiceFilename[4] = 'a') {
+		while (!_vm->shouldQuit() && !_vm->skipFlag()) {
+			if (!sound->voiceFileIsPresent(voiceFilename))
+				break;
+
+			if (data[part * 15] == voiceFilename[3] && data[part * 15 + 1] == voiceFilename[4]) {
+				switch (part) {
+				case 0:
+					loadWsa(&data[part * 15 + 2]);
+					playWsa(true);
+					sound->voicePlay(voiceFilename);
+					break;
+
+				case 1: case 2: case 8:
+				case 16: case 25:
+					sound->voicePlay(voiceFilename);
+					playWsa(true);
+					break;
+
+				case 3: case 7: case 10:
+				case 17: case 23: case 26:
+					sound->voicePlay(voiceFilename);
+					playWsa(true);
+					restoreWsaBkgd();
+					loadWsa(&data[part * 15 + 2]);
+					playWsa(true);
+					break;
+
+				case 6:
+					sound->voicePlay(voiceFilename);
+					playWsa(false);
+					restoreWsaBkgd();
+					loadWsa(&data[part * 15 + 2]);
+					playWsa(true);
+					_vm->delayWithTicks(30);
+					playWsa(true);
+					break;
+
+				case 9:
+					sound->voicePlay(voiceFilename);
+					loadWsa(&data[part * 15 + 2]);
+					playWsa(true);
+					break;
+
+				case 22:
+					playWsa(false);
+					restoreWsaBkgd();
+					loadWsa(&data[part * 15 + 2]);
+					_vm->delayWithTicks(30);
+					sound->voicePlay(voiceFilename);
+					playWsa(true);
+
+					strcpy(tempWsaFilename, &data[part * 15]);
+
+					for (int i = 1; i < 4 && !_vm->shouldQuit(); ++i) {
+						uint32 nextTime = _system->getMillis() + 30 * _vm->tickLength();
+						tempWsaFilename[8] = 'a' + i;
+
+						loadWsa(&tempWsaFilename[2]);
+						_vm->delayUntil(nextTime);
+
+						playWsa(true);
+					}
+
+					tempWsaFilename[8] = 'e';
+					loadWsa(&tempWsaFilename[2]);
+					break;
+
+				case 29:
+					sound->voicePlay(voiceFilename);
+					playWsa(false);
+					restoreWsaBkgd();
+					loadWsa(&data[part * 15 + 2]);
+
+					_fireWsa->open("FIRE.WSA", 0, 0);
+					playWsa(true);
+					_fireFrame = 0;
+
+					for (int i = 0; i < 12 && !_vm->shouldQuit(); ++i, ++_fireFrame) {
+						uint32 nextTime = _system->getMillis() + 3 * _vm->tickLength();
+
+						if (_fireFrame > 4)
+							_fireFrame = 0;
+
+						_fireWsa->displayFrame(_fireFrame, 0, 75, 51, 0, 0, 0);
+						_screen->updateScreen();
+						_vm->delayUntil(nextTime);
+					}
+
+					_screen->loadPalette("DRACPAL.PAL", pal);
+					_screen->fadePalette(pal, 0x78, &palFade);
+
+					while (sound->voiceIsPlaying() && !_vm->shouldQuit()) {
+						uint32 nextTime = _system->getMillis() + 3 * _vm->tickLength();
+
+						++_fireFrame;
+						if (_fireFrame > 4)
+							_fireFrame = 0;
+
+						_fireWsa->displayFrame(_fireFrame, 0, 75, 51, 0, 0, 0);
+						_screen->updateScreen();
+						_vm->delayUntil(nextTime);
+					}
+
+					_fireFrame = 0;
+					for (int i = 0; i < 10; ++i, ++_fireFrame) {
+						uint32 nextTime = _system->getMillis() + 3 * _vm->tickLength();
+
+						if (_fireFrame > 4)
+							_fireFrame = 0;
+
+						_fireWsa->displayFrame(_fireFrame, 0, 75, 51, 0, 0, 0);
+						_screen->updateScreen();
+						_vm->delayUntil(nextTime);
+					}
+
+					break;
+
+				default:
+					sound->voicePlay(voiceFilename);
+					playWsa(false);
+					restoreWsaBkgd();
+					loadWsa(&data[part * 15 + 2]);
+					playWsa(true);
+					break;
+				}
+
+				++part;
+			} else {
+				sound->voicePlay(voiceFilename);
+			}
+
+			while (sound->voiceIsPlaying() && !_vm->shouldQuit() && !_vm->skipFlag())
+				_vm->delay(10);
+
+			if (_vm->skipFlag()) {
+				sound->voiceStop();
+				_vm->resetSkipFlag();
+			}
+
+			++voiceFilename[4];
+		}
+
+		if (_vm->skipFlag())
+			_vm->resetSkipFlag();
+	}
+
+	if (_vm->skipFlag())
+		_vm->resetSkipFlag();
+
+	pal.fill(0, 256, 63);
+	if (_fireWsa->opened())
+		_screen->fadePalette(pal, 0x3C, &palFade);
+	else
+		_screen->fadePalette(pal, 0x3C);
+
+	_screen->clearPage(0);
+	pal.fill(0, 256, 0);
+	_screen->fadePalette(pal, 0x3C);
+}
+
+void HistoryPlayer::loadWsa(const char *filename) {
+	if (_wsa->opened())
+		_wsa->close();
+
+	Palette pal(256);
+	if (!_wsa->open(filename, 3, &pal))
+		error("Could not load WSA file: '%s'", filename);
+	_screen->setScreenPalette(pal);
+
+	_x = _wsa->xAdd();
+	_y = _wsa->yAdd();
+	_width = _wsa->width();
+	_height = _wsa->height();
+	_frame = 1;
+}
+
+void HistoryPlayer::playWsa(bool direction) {
+	const int tickLength = _vm->tickLength();
+
+	for (int i = 0; i < 15 && !_vm->shouldQuit(); ++i) {
+		uint32 nextTime = _system->getMillis() + 3 * tickLength;
+
+		_wsa->displayFrame(_frame, 2, 0, 0, 0, 0, 0);
+		_screen->copyRegion(_x, _y, _x, _y, _width, _height, 2, 0);
+		_screen->updateScreen();
+		_vm->delayUntil(nextTime);
+
+		if (direction)
+			++_frame;
+		else
+			--_frame;
+	}
+}
+
+void HistoryPlayer::restoreWsaBkgd() {
+	_screen->copyRegion(_x, _y, _x, _y, _width, _height, 8, 0);
+	_screen->copyRegion(_x, _y, _x, _y, _width, _height, 8, 2);
+	_screen->updateScreen();
+}
+
+void HistoryPlayer::updateFire() {
+	if (_system->getMillis() > _nextFireTime) {
+		_fireWsa->displayFrame(_fireFrame, 0, 75, 51, 0, 0, 0);
+		_fireFrame = (_fireFrame + 1) % 5;
+		_nextFireTime = _system->getMillis() + 4 * _vm->tickLength();
+	}
+
+	_screen->updateScreen();
+}
+
 // outro
 
 void LoLEngine::setupEpilogueData(bool load) {

Modified: scummvm/branches/gsoc2009-mods/engines/kyra/sound.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/kyra/sound.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/kyra/sound.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -242,10 +242,15 @@
 // A simple wrapper to create VOC streams the way like creating MP3, OGG/Vorbis and FLAC streams.
 // Possible TODO: Think of making this complete and moving it to sound/voc.cpp ?
 Audio::AudioStream *makeVOCStream(Common::SeekableReadStream *stream, bool disposeAfterUse, uint32 startTime, uint32 duration, uint numLoops) {
+
+#ifdef STREAM_AUDIO_FROM_DISK
+	Audio::AudioStream *as = Audio::makeVOCStream(*stream, Audio::Mixer::FLAG_UNSIGNED, 0, 0, disposeAfterUse);
+#else
 	Audio::AudioStream *as = Audio::makeVOCStream(*stream, Audio::Mixer::FLAG_UNSIGNED);
 
 	if (disposeAfterUse)
 		delete stream;
+#endif
 
 	return as;
 }

Modified: scummvm/branches/gsoc2009-mods/engines/kyra/sound_midi.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/kyra/sound_midi.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/kyra/sound_midi.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -658,6 +658,9 @@
 }
 
 void SoundMidiPC::playTrack(uint8 track) {
+	if (!_musicEnabled)
+		return;
+
 	haltTrack();
 
 	Common::StackLock lock(_mutex);
@@ -685,6 +688,9 @@
 }
 
 void SoundMidiPC::playSoundEffect(uint8 track) {
+	if (!_sfxEnabled)
+		return;
+
 	Common::StackLock lock(_mutex);
 	for (int i = 0; i < 3; ++i) {
 		if (!_sfx[i]->isPlaying()) {

Modified: scummvm/branches/gsoc2009-mods/engines/kyra/staticres.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/kyra/staticres.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/kyra/staticres.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -44,7 +44,7 @@
 
 namespace Kyra {
 
-#define RESFILE_VERSION 49
+#define RESFILE_VERSION 50 
 
 namespace {
 bool checkKyraDat(Common::SeekableReadStream *file) {
@@ -444,17 +444,19 @@
 		{ kLolButtonList7, kLolRawDataBe16, "BUTTON7.LST" },
 		{ kLolButtonList8, kLolRawDataBe16, "BUTTON84.LST" },
 
-		{ lolLegendData, kRawData, "MAPLGND.DEF" },
-		{ lolMapCursorOvl, kRawData, "MAPCURSOR.PAL" },
-		{ lolMapStringId, kLolRawDataBe16, "MAPSTRID.LST" },
-		//{ lolMapPal, kRawData, "MAP.PAL" },
+		{ kLolLegendData, kRawData, "MAPLGND.DEF" },
+		{ kLolMapCursorOvl, kRawData, "MAPCURSOR.PAL" },
+		{ kLolMapStringId, kLolRawDataBe16, "MAPSTRID.LST" },
+		//{ kLolMapPal, kRawData, "MAP.PAL" },
 
-		{ lolSpellbookAnim, kRawData, "MBOOKA.DEF" },
-		{ lolSpellbookCoords, kRawData, "MBOOKC.DEF" },
-		{ lolHealShapeFrames, kRawData, "MHEAL.SHP" },
-		{ lolLightningDefs, kRawData, "MLGHTNG.DEF" },
-		{ lolFireballCoords, kLolRawDataBe16, "MFIREBLL.DEF" },
+		{ kLolSpellbookAnim, kRawData, "MBOOKA.DEF" },
+		{ kLolSpellbookCoords, kRawData, "MBOOKC.DEF" },
+		{ kLolHealShapeFrames, kRawData, "MHEAL.SHP" },
+		{ kLolLightningDefs, kRawData, "MLGHTNG.DEF" },
+		{ kLolFireballCoords, kLolRawDataBe16, "MFIREBLL.DEF" },
 
+		{ kLolHistory, kRawData, "HISTORY.FLS" },
+
 		{ 0, 0, 0 }
 	};
 #endif // ENABLE_LOL
@@ -589,6 +591,7 @@
 		if (pos->id == id || id == -1) {
 			const FileType *filetype = getFiletype(pos->type);
 			(this->*(filetype->free))(pos->data, pos->size);
+			pos = _resList.erase(pos);
 			if (id != -1)
 				break;
 		}
@@ -1874,10 +1877,10 @@
 	_buttonList7 = (const int16 *)_staticres->loadRawDataBe16(kLolButtonList7, _buttonList7Size);
 	_buttonList8 = (const int16 *)_staticres->loadRawDataBe16(kLolButtonList8, _buttonList8Size);
 
-	_autoMapStrings = _staticres->loadRawDataBe16(lolMapStringId, _autoMapStringsSize);
+	_autoMapStrings = _staticres->loadRawDataBe16(kLolMapStringId, _autoMapStringsSize);
 
 	int tmpSize = 0;
-	const uint8 *tmp = _staticres->loadRawData(lolLegendData, tmpSize);
+	const uint8 *tmp = _staticres->loadRawData(kLolLegendData, tmpSize);
 	tmpSize /= 5;
 	if (tmp) {
 		_defaultLegendData = new MapLegendData[tmpSize];
@@ -1888,19 +1891,19 @@
 			_defaultLegendData[i].stringId = READ_LE_UINT16(tmp);
 			tmp += 2;
 		}
-		_staticres->unloadId(lolLegendData);
+		_staticres->unloadId(kLolLegendData);
 	}
 
-	tmp = _staticres->loadRawData(lolMapCursorOvl, tmpSize);
+	tmp = _staticres->loadRawData(kLolMapCursorOvl, tmpSize);
 	_mapCursorOverlay = new uint8[tmpSize];
 	memcpy(_mapCursorOverlay, tmp, tmpSize);
-	_staticres->unloadId(lolMapCursorOvl);
+	_staticres->unloadId(kLolMapCursorOvl);
 
-	_updateSpellBookCoords = _staticres->loadRawData(lolSpellbookCoords, _updateSpellBookCoordsSize);
-	_updateSpellBookAnimData = _staticres->loadRawData(lolSpellbookAnim, _updateSpellBookAnimDataSize);
-	_healShapeFrames = _staticres->loadRawData(lolHealShapeFrames, _healShapeFramesSize);
+	_updateSpellBookCoords = _staticres->loadRawData(kLolSpellbookCoords, _updateSpellBookCoordsSize);
+	_updateSpellBookAnimData = _staticres->loadRawData(kLolSpellbookAnim, _updateSpellBookAnimDataSize);
+	_healShapeFrames = _staticres->loadRawData(kLolHealShapeFrames, _healShapeFramesSize);
 
-	tmp = _staticres->loadRawData(lolLightningDefs, tmpSize);
+	tmp = _staticres->loadRawData(kLolLightningDefs, tmpSize);
 	if (tmp) {
 		_lightningProps = new LightningProperty[5];
 		for (int i = 0; i < 5; i++) {
@@ -1908,10 +1911,10 @@
 			_lightningProps[i].frameDiv = tmp[(i << 2) + 1];
 			_lightningProps[i].sfxId = READ_LE_UINT16(&tmp[(i << 2) + 2]);
 		}
-		_staticres->unloadId(lolLightningDefs);
+		_staticres->unloadId(kLolLightningDefs);
 	}
 
-	_fireBallCoords = (const int16*)_staticres->loadRawDataBe16(lolFireballCoords, _fireBallCoordsSize);
+	_fireBallCoords = (const int16*)_staticres->loadRawDataBe16(kLolFireballCoords, _fireBallCoordsSize);
 
 	_buttonCallbacks.clear();
 	_buttonCallbacks.reserve(95);
@@ -3417,7 +3420,7 @@
 	0x45, 0x03, 0x00, 0x00, 0x02, 0x24, 0x6E, 0x00,
 	0x3C, 0x16, 0x00, 0x00, 0x26, 0x77, 0x6E, 0x00,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
 
 // TODO: fileoffset = 0x2C55E, len = 120 * 8
@@ -3541,7 +3544,7 @@
 	0x30, 0x23, 0x00, 0x00, 0x16, 0x99, 0x50, 0x02,
 	0x30, 0x23, 0x00, 0x00, 0x16, 0x99, 0x50, 0x02,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x3C, 0x13, 0x00, 0x00, 0x01, 0x56, 0x78, 0x02,
+	0x3C, 0x13, 0x00, 0x00, 0x01, 0x56, 0x78, 0x02
 };
 
 } // End of namespace Kyra

Modified: scummvm/branches/gsoc2009-mods/engines/parallaction/font.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/parallaction/font.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/parallaction/font.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -256,7 +256,7 @@
 
 	byte*	getData(uint16 index) {
 		assert(index < _numGlyphs);
-		return _data + (_height * _widths[index]) * index;;
+		return _data + (_height * _widths[index]) * index;
 	}
 
 	void	getRect(uint16 index, Common::Rect &r) {

Modified: scummvm/branches/gsoc2009-mods/engines/sci/console.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/sci/console.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/sci/console.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -381,7 +381,7 @@
 }
 
 bool Console::cmdGetVersion(int argc, const char **argv) {
-	DebugPrintf("Resource file version:        %s\n", versionNames[_vm->getResMgr()->_sciVersion]);
+	DebugPrintf("Resource file version:        %s\n", versionNames[_vm->getResMgr()->sciVersion()]);
 	DebugPrintf("Emulated interpreter version: %s\n", versionNames[_vm->getVersion()]);
 
 	return true;

Modified: scummvm/branches/gsoc2009-mods/engines/sci/detection.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/engines/sci/detection.cpp	2009-08-16 14:11:20 UTC (rev 43442)
+++ scummvm/branches/gsoc2009-mods/engines/sci/detection.cpp	2009-08-16 16:39:34 UTC (rev 43443)
@@ -108,7 +108,6 @@
 		{"resource.001", 0, resMd5, resSize}, \
 		{NULL, 0, NULL, 0}}, lang, Common::kPlatformPC, 0, GUIO_NOSPEECH}, \
 		0, \
-		SCI_VERSION_AUTODETECT, \
 		ver \
 	}
 
@@ -128,7 +127,6 @@
 		{"resource.001", 0, "6fd05926c2199af0af6f72f90d0d7260", 126895},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -143,7 +141,6 @@
 		{"resource.003", 0, "d226d7d3b4f77c4a566913fc310487fc", 464348},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -158,7 +155,6 @@
 		{"resource.003", 0, "85e51acb5f9c539d66e3c8fe40e17da5", 493638},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -170,7 +166,6 @@
 		{"resource.001", 0, "2af49dbd8f2e1db4ab09f9310dc91259", 570553},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -184,7 +179,6 @@
 		{"resource.002", 0, "c0c29c51af66d65cb53f49e785a2d978", 1280907},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -196,7 +190,6 @@
 		{"resource.002", 0, "930e416bec196b9703a331d81b3d66f2", 1283812},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -208,7 +201,6 @@
 		{"resource.001", 0, "735be4e58957180cfc807d5e18fdffcd", 1433302},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -219,7 +211,6 @@
 		{"resource.001", 0, "11391434f41c834090d7a1e9488ce936", 129739},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -230,7 +221,6 @@
 		{"resource.001", 0, "acde93e58fca4f7a2a5a220558a94aa8", 272629},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -241,7 +231,6 @@
 		{"resource.001", 0, "acde93e58fca4f7a2a5a220558a94aa8", 335362},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -252,7 +241,6 @@
 		{"resource.000", 0, "62fb9256f8e7e6e65a6875efdb7939ac", 203396},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -269,7 +257,6 @@
 		{"resource.005", 0, "605b67a9ef199a9bb015745e7c004cf4", 478384},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -280,7 +267,6 @@
 		{"resource.001", 0, "d4b75e280d1c3a97cfef1b0bebff387c", 573647},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -296,7 +282,6 @@
 		{"resource.004", 0, "8613c45fc771d658e5a505b9a4a54f31", 670883},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -311,7 +296,6 @@
 		{"resource.004", 0, "64f342463f6f35ba71b3509ef696ae3f", 669188},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -329,7 +313,6 @@
 		{"resource.006", 0, "8f880a536908ab496bbc552f7f5c3738", 585255},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -340,7 +323,6 @@
 		{"resource.001", 0, "4930708722f34bfbaa4945fb08f55f61", 232523},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -355,7 +337,6 @@
 		{"resource.004", 0, "8e1a3a8c588007404b532b8dfacc1460", 729143},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -372,7 +353,6 @@
 		{"resource.007", 0, "8e1a3a8c588007404b532b8dfacc1460", 358182},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -390,25 +370,23 @@
 		{"resource.006", 0, "f9487732289a4f4966b4e34eea413325", 842817},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
 	// Conquests of the Longbow - English DOS
 	// SCI interpreter version 1.000.510
 	{{"longbow", "", {
-	      {"resource.map", 0, "36d3b81ff75b67dd4d27b7f5d3166503", 6261},
-	      {"resource.000", 0, "36e8fda5d0b8c49e587c8a9617959f72", 1096767},
-	      {"resource.001", 0, "d4c299213f8d799da1492680d12d0fb3", 1133226},
-	      {"resource.002", 0, "7f6ce331219d58d5087731e4475ab4f1", 1128555},
-	      {"resource.003", 0, "21ebe6b39b57a73fc449f67f013765aa", 972635},
-	      {"resource.004", 0, "9cfce07e204a329e94fda8b5657621da", 1064637},
-	      {"resource.005", 0, "d036df0872f2db19bca34601276be2d7", 1154950},
-	      {"resource.006", 0, "b367a6a59f29ee30dde1d88a5a41152d", 1042966},
-	      {NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-	      0,
-	      SCI_VERSION_AUTODETECT,
-	      SCI_VERSION_1
+		{"resource.map", 0, "36d3b81ff75b67dd4d27b7f5d3166503", 6261},
+		{"resource.000", 0, "36e8fda5d0b8c49e587c8a9617959f72", 1096767},
+		{"resource.001", 0, "d4c299213f8d799da1492680d12d0fb3", 1133226},
+		{"resource.002", 0, "7f6ce331219d58d5087731e4475ab4f1", 1128555},
+		{"resource.003", 0, "21ebe6b39b57a73fc449f67f013765aa", 972635},
+		{"resource.004", 0, "9cfce07e204a329e94fda8b5657621da", 1064637},
+		{"resource.005", 0, "d036df0872f2db19bca34601276be2d7", 1154950},
+		{"resource.006", 0, "b367a6a59f29ee30dde1d88a5a41152d", 1042966},
+		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
+		0,
+		SCI_VERSION_1
 	},
 
 	// Conquests of the Longbow - English DOS Floppy (from jvprat)
@@ -424,7 +402,6 @@
 		{"resource.005", 0, "21ebe6b39b57a73fc449f67f013765aa", 1284720},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -440,7 +417,6 @@
 		{"resource.005", 0, "21ebe6b39b57a73fc449f67f013765aa", 1284609},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -457,7 +433,6 @@
 	      {"resource.006", 0, "8c767b3939add63d11274065e46aad04", 713158},
 	      {NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 	      0,
-	      SCI_VERSION_AUTODETECT,
 	      SCI_VERSION_1
 	},
 
@@ -468,7 +443,6 @@
 		{"resource.001", 0, "f05a20cc07eee85da8e999d0ac0f596b", 869916},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -485,7 +459,6 @@
 		{"resource.006", 0, "b367a6a59f29ee30dde1d88a5a41152d", 1123585},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -497,7 +470,6 @@
 		{"resource.001", 0, "baf9393a9bfa73098adb501e5bc5487b", 657518},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -508,7 +480,6 @@
 		{"resource.000", 0, "d908dbef56816ac6c60dd145fdeafb2b", 3536046},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -522,7 +493,6 @@
 		{"resource.003", 0, "f3146df0ad4297f5ce35aa8c4753bf6c", 586832},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -536,7 +506,6 @@
 		{"resource.003", 0, "83ac03e4bddb2c1ac2d36d2a587d0536", 1145616},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -550,7 +519,6 @@
 		{"resource.003", 0, "84dd11b6825255671c703aee5ceff620", 1175835},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -565,7 +533,6 @@
 		{"resource.003", 0, "84dd11b6825255671c703aee5ceff620", 1174993},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -579,7 +546,6 @@
 		{"resource.003", 0, "f8f767f9d6351432621c6e54c1b2ba8c", 1141520},
 		{NULL, 0, NULL, 0}}, Common::FR_FRA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -590,7 +556,6 @@
 		{"resource.000", 0, "dd6f614c43c029f063e93cd243af90a4", 525992},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -601,7 +566,6 @@
 		{"resource.000", 0, "cc1d17e5637528dbe4a812699e1cbfc6", 4208192},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -612,7 +576,6 @@
 		{"resource.000", 0, "1c4093f7248240329121fdf8c0d59152", 4231946},
 		{NULL, 0, NULL, 0}}, Common::FR_FRA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -623,7 +586,6 @@
 		{"resource.000", 0, "5ea8e7a3ea10cce6efd5c106dc62fd8c", 867724},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -634,7 +596,6 @@
 		{"resource.000", 0, "ee3c64ffff0ba9fb08bea2624631c598", 5490246},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -647,7 +608,6 @@
 		{"resource.msg", 0, "554f65315d851184f6e38211489fdd8f", -1},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -660,7 +620,6 @@
 		{"resource.msg", 0, "304b5a5781800affd2235152a5794fa8", -1},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -676,7 +635,6 @@
 		{"resource.msg", 0, "45b5bf74933ac3727e4cc844446dc052", 796156},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -689,7 +647,6 @@
 		{"resource.msg", 0, "45b5bf74933ac3727e4cc844446dc052", 796156},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -700,7 +657,6 @@
 		{"resource.000", 0, "4962a3c4dd44e36e78ea4a7a374c2220", 957382},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -711,7 +667,6 @@
 		{"resource.001", 0, "f1e680095424e31f7fae1255d36bacba", 40692},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -722,7 +677,6 @@
 		{"resource.000", 0, "eb3ed7477ca4110813fe1fcf35928561", 1718450},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -734,7 +688,6 @@
 		{"resource.000", 0, "69b7516962510f780d38519cc15fcc7c", 13022630},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -745,7 +698,6 @@
 		{"resource.000", 0, "69b7516962510f780d38519cc15fcc7c", 13022630},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -756,7 +708,6 @@
 		{"resource.000", 0, "091cf08910780feabc56f8551b09cb36", 13077029},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -767,7 +718,6 @@
 		{"resource.000", 0, "69b7516962510f780d38519cc15fcc7c", 12581736},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -778,7 +728,6 @@
 		{"resource.000", 0, "091cf08910780feabc56f8551b09cb36", 13400497},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -789,7 +738,6 @@
 		{"resource.000", 0, "091cf08910780feabc56f8551b09cb36", 13381599},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -800,7 +748,6 @@
 		{"resource.000", 0, "d04cfc7f04b6f74d13025378be49ec2b", 4640330},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 	// Gabriel Knight 2 - English DOS (from jvprat)
@@ -820,7 +767,6 @@
 		{"ressci.006", 0, "8e44e03890205a7be12f45aaba9644b4", 60659424},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 #endif // ENABLE_SCI32
@@ -834,7 +780,6 @@
 		{"resource.003", 0, "e0dd44069a62a463fd124974b915f10d", 328912},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -845,7 +790,6 @@
 		{"resource.001", 0, "e0dd44069a62a463fd124974b915f10d", 518308},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -858,7 +802,6 @@
 		{"resource.002", 0, "e0dd44069a62a463fd124974b915f10d", 439502},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 #endif
@@ -871,7 +814,6 @@
 		{"resource.002", 0, "8f2dd70abe01112eca464cda818b5eb6", 196631},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -883,7 +825,6 @@
 		{"resource.001", 0, "8f2dd70abe01112eca464cda818b5eb6", 222704},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -897,7 +838,6 @@
 		{"resource.001", 0, "143df8aef214a2db34c2d48190742012", 632273},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 #endif
@@ -910,7 +850,6 @@
 		{"resource.001", 0, "24db2bccda0a3c43ac4a7b5edb116c7e", 797678},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -923,7 +862,6 @@
 		{"resource.001", 0, "0a98a268ee99b92c233a0d7187c1f0fa", 845795},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -934,7 +872,6 @@
 		{"resource.000", 0, "24c10844792c54d476d272213cbac300", 675252},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -947,7 +884,6 @@
 		{"resource.002", 0, "b86daa3ba2784d1502da881eedb80d9b", 719747},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_01_VGA_ODD,
 		SCI_VERSION_1
 	},
 #endif
@@ -963,7 +899,6 @@
 		{"resource.004", 0, "9ae2a13708d691cd42f9129173c4b39d", 820443},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_01,
 		SCI_VERSION_01
 	},
 
@@ -974,7 +909,6 @@
 		{"resource.001", 0, "4cfb9040db152868f7cb6a1e8151c910", 296555},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -988,7 +922,6 @@
 		{"resource.003", 0, "fed9e0072ffd511d248674e60dee2099", 717478},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1004,7 +937,6 @@
 		{"resource.004", 0, "3fac034c7d130e055d05bc43a1f8d5f8", 549993},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1015,7 +947,6 @@
 		{"resource.001", 0, "143e1c14f15ad0fbfc714f648a65f661", 205330},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1030,7 +961,6 @@
 		{"resource.004", 0, "77615c595388acf3d1df8e107bfb6b52", 479562},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1047,7 +977,6 @@
 		{"resource.007", 0, "851a62d00972dc4002f472cc0d84e71d", 341038},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1064,7 +993,6 @@
 		{"resource.007", 0, "0c8566848a76eea19a6d6220914030a7", 343882},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1083,7 +1011,6 @@
 		{"resource.007", 0, "b914b5901e786327213e779725d30dd1", 778772},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1102,7 +1029,6 @@
 		{"resource.007", 0, "56546b20db11a4836f900efa6d3a3e74", 794194},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1121,7 +1047,6 @@
 		{"resource.007", 0, "11cb750f5f816445ad0f4b9f50a4f59a", 794259},
 		{NULL, 0, NULL, 0}}, Common::IT_ITA, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1134,7 +1059,6 @@
 		{"resource.001", 0, "b45a581ff8751e052c7e364f58d3617f", 16800210},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1152,7 +1076,6 @@
 		{"resource.007", 0, "2f48faf27666b58c276dda20f91f4a93", 1240456},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		0,
 		SCI_VERSION_1
 	},
 
@@ -1170,7 +1093,6 @@
 		{"resource.007", 0, "c07494f0cce7c05210893938786a955b", 1337361},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1189,7 +1111,6 @@
 		{"resource.007", 0, "7db4d0a1d8d547c0019cb7d2a6acbdd4", 1338473},
 		{NULL, 0, NULL, 0}}, Common::FR_FRA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1207,7 +1128,6 @@
 		{"resource.007", 0, "dc10c107e0923b902326a040b9c166b9", 1337859},
 		{NULL, 0, NULL, 0}}, Common::IT_ITA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1225,7 +1145,6 @@
 		{"resource.007", 0, "431def14ca29cdb5e6a5e84d3f38f679", 1240176},
 		{NULL, 0, NULL, 0}}, Common::PL_POL, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1238,7 +1157,6 @@
 		{"resource.msg", 0, "54d1fdc936f98c81f9e4c19e04fb1510", 8260},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1250,7 +1168,6 @@
 		{"resource.msg", 0, "3cf5de44de36191f109d425b8450efc8", 258590},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1262,7 +1179,6 @@
 		{"resource.msg", 0, "756297b2155db9e43f621c6f6fb763c3", 282822},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1274,7 +1190,6 @@
 		{"resource.000", 0, "233394a5f33b475ae5975e7e9a420865", 8376352},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_1_1,
 		SCI_VERSION_1_1
 	},
 
@@ -1287,7 +1202,6 @@
 		{"resource.msg", 0, "41eed2d3893e1ca6c3695deba4e9d2e8", 267102},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1299,7 +1213,6 @@
 		{"resource.000", 0, "eb63ea3a2c2469dc2d777d351c626404", 203882535},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -1310,7 +1223,6 @@
 		{"resource.000", 0, "51c1ead1163e19a2de8f121c39df7a76", 200764100},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -1321,7 +1233,6 @@
 		{"resource.000", 0, "eb63ea3a2c2469dc2d777d351c626404", 206626576},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -1332,7 +1243,6 @@
 		{"resource.000", 0, "51c1ead1163e19a2de8f121c39df7a76", 200764100},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -1343,7 +1253,6 @@
 		{"resource.000", 0, "d9659d2cf0c269c6a9dc776707f5bea0", 2433827},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 #endif // ENABLE_SCI32
@@ -1361,7 +1270,6 @@
 		{"resource.005", 0, "bfd870d51dc97729f0914095f58e6957", 676881},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1376,7 +1284,6 @@
 		{"resource.004", 0, "e45c888d9c7c04aec0a20e9f820b79ff", 683737},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1387,7 +1294,6 @@
 		{"resource.001", 0, "0c8912290af0890f8d95faeb4ddb2d68", 333031},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1401,7 +1307,6 @@
 		{"resource.004", 0, "e45c888d9c7c04aec0a20e9f820b79ff", 683807},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1418,7 +1323,6 @@
 		{"resource.007", 0, "e45c888d9c7c04aec0a20e9f820b79ff", 317687},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1435,7 +1339,6 @@
 		{"resource.007", 0, "e45c888d9c7c04aec0a20e9f820b79ff", 317687},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1447,7 +1350,6 @@
 		{"resource.000", 0, "2b2b1b4f7584f9b38fd13f6ab95634d1", 781912},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1459,7 +1361,6 @@
 		{"resource.000", 0, "57084910bc923bff5d6d9bc1b56e9604", 5035964},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1471,7 +1372,6 @@
 		{"resource.000", 0, "82578b8d5a7e09c4c58891ca49fae35b", 5598672},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1483,7 +1383,6 @@
 		{"resource.msg", 0, "795c928cd00dfec9fbc62ebcd12e1f65", 303185},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1495,7 +1394,6 @@
 		{"resource.msg", 0, "71f1f0cd9f082da2e750c793a8ed9d84", 286141},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1509,7 +1407,6 @@
 		{"resource.003", 0, "685cd6c1e05a695ab1e0db826337ee2a", 553279},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1524,7 +1421,6 @@
 		{"resource.003", 0, "4a34c3367c2fe7eb380d741374da1989", 572251},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1537,7 +1433,6 @@
 		{"resource.002", 0, "85d6935ef77e6b0e16bc307640a0d913", 1088312},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1550,7 +1445,6 @@
 		{"resource.002", 0, "85b030bb66d5342b0a068f1208c431a8", 1078443},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1561,7 +1455,6 @@
 		{"resource.001", 0, "0c0768215c562d9dace4a5ca53696cf3", 359913},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1577,7 +1470,6 @@
 		{"resource.003", 0, "ac175df0ea9a2cba57f0248651856d27", 376556},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1591,7 +1483,6 @@
 		{"resource.002", 0, "b7409ab32bc3bee2d6cce887cd33f2b6", 1092160},
 		{NULL, 0, NULL, 0}}, Common::RU_RUS, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1606,7 +1497,6 @@
 		{"resource.004", 0, "a0d4a625311d307257da7fc43d00459d", 717844},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1618,7 +1508,6 @@
 		{"resource.001", 0, "9f5520f0297206928df0b0b36493cd33", 127532},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1634,7 +1523,6 @@
 		{"resource.006", 0, "4a24443a25e2b1492462a52809605dc2", 345683},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1650,7 +1538,6 @@
 		{"resource.006", 0, "96033f57accfca903750413fd09193c8", 345818},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1667,7 +1554,6 @@
 		{"resource.005", 0, "433911eb764089d493aed1f958a5615a", 524259},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1681,7 +1567,6 @@
 		{"resource.004", 0, "f18441027154292836b973c655fa3175", 513651},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1698,7 +1583,6 @@
 		{"resource.007", 0, "f18441027154292836b973c655fa3175", 257174},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1710,7 +1594,6 @@
 		{"resource.002", 0, "f773d79b93dfd4052ec8c1cc64c1e6ab", 268299},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1725,7 +1608,6 @@
 		{"resource.004", 0, "3827a9b17b926e12dcc336860f50612a", 691932},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1740,7 +1622,6 @@
 		{"resource.004", 0, "65f1bdaa20f6d0470e9d969f22473873", 690826},
 		{NULL, 0, NULL, 0}}, Common::FR_FRA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		GF_FOR_SCI0_BEFORE_629,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_0
 	},
 
@@ -1758,7 +1639,6 @@
 		{"resource.006", 0, "bafc64e3144f115dc58c6aee02de98fb", 715598},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1777,7 +1657,6 @@
 		{"resource.007", 0, "59eba83ad465b08d763b44f86afa86f6", 683135},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1788,7 +1667,6 @@
 		{"resource.001", 0, "8bd8d9c0b5f455ee1269d63ce86c50dd", 531380},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1806,7 +1684,6 @@
 		{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 1030656},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1824,7 +1701,6 @@
 		{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 993408},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1843,7 +1719,6 @@
 		{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 958842},
 		{NULL, 0, NULL, 0}}, Common::FR_FRA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1862,7 +1737,6 @@
 		{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 987222},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1873,7 +1747,6 @@
 		{"resource.000", 0, "a8989a5a89e7d4f702b26b378c7a357a", 7001981},
 		{NULL, 0, NULL, 0}}, Common::IT_ITA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
@@ -1884,7 +1757,6 @@
 		{"resource.000", 0, "4462fe48c7452d98fddcec327a3e738d", 5789138},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1895,7 +1767,6 @@
 		{"resource.000", 0, "57d5fe8bb9e044158514476ea7678eb0", 5754790},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1906,7 +1777,6 @@
 		{"resource.000", 0, "f6cbc6da7b90ea135883e0759848ca2c", 5773160},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1917,7 +1787,6 @@
 		{"resource.000", 0, "f6cbc6da7b90ea135883e0759848ca2c", 5776092},
 		{NULL, 0, NULL, 0}}, Common::FR_FRA, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1928,7 +1797,6 @@
 		{"resource.000", 0, "7884a8db9253e29e6b37a2651fd90ba3", 5733116},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1939,7 +1807,6 @@
 		{"resource.001", 0, "3733433b517ec3d14a3331d9ab3842ae", 344830},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1_1
 	},
 
@@ -1951,7 +1818,6 @@
 		{"resource.000", 0, "9a9f4870504444cda863dd14d077a680", 18520872},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -1962,7 +1828,6 @@
 		{"resource.000", 0, "bd944d2b06614a5b39f1586906f0ee88", 18534274},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NONE},
 		0,
-		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_32
 	},
 
@@ -1973,7 +1838,6 @@
 		{"resource.000", 0, "bd944d2b06614a5b39f1586906f0ee88", 18538987},

@@ Diff output truncated at 100000 characters. @@

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