[Scummvm-cvs-logs] SF.net SVN: scummvm:[39100] scummvm/branches/branch-0-13-0

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Wed Mar 4 01:49:10 CET 2009


Revision: 39100
          http://scummvm.svn.sourceforge.net/scummvm/?rev=39100&view=rev
Author:   lordhoto
Date:     2009-03-04 00:49:10 +0000 (Wed, 04 Mar 2009)

Log Message:
-----------
Partial (manual) backport of r39099:
- Make Lands of Lore optionally compileable as suggested by _sev. (via ENABLE_LOL define)
- Change default build system to support LoL as a subengine of KYRA. LoL is currently disabled by default.

Modified Paths:
--------------
    scummvm/branches/branch-0-13-0/configure
    scummvm/branches/branch-0-13-0/engines/engines.mk
    scummvm/branches/branch-0-13-0/engines/kyra/detection.cpp
    scummvm/branches/branch-0-13-0/engines/kyra/kyra_hof.cpp
    scummvm/branches/branch-0-13-0/engines/kyra/kyra_hof.h
    scummvm/branches/branch-0-13-0/engines/kyra/kyra_v1.cpp
    scummvm/branches/branch-0-13-0/engines/kyra/module.mk
    scummvm/branches/branch-0-13-0/engines/kyra/resource.h
    scummvm/branches/branch-0-13-0/engines/kyra/sequences_hof.cpp
    scummvm/branches/branch-0-13-0/engines/kyra/staticres.cpp

Modified: scummvm/branches/branch-0-13-0/configure
===================================================================
--- scummvm/branches/branch-0-13-0/configure	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/configure	2009-03-04 00:49:10 UTC (rev 39100)
@@ -94,7 +94,8 @@
 add_engine gob "Gobli*ns" yes
 add_engine groovie "Groovie" yes
 add_engine igor "Igor: Objective Uikokahonia" no
-add_engine kyra "Legend of Kyrandia" yes
+add_engine kyra "Legend of Kyrandia" yes "lol"
+add_engine lol "Lands of Lore" no
 add_engine lure "Lure of the Temptress" yes
 add_engine m4 "M4/MADS" no
 add_engine made "MADE" no

Modified: scummvm/branches/branch-0-13-0/engines/engines.mk
===================================================================
--- scummvm/branches/branch-0-13-0/engines/engines.mk	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/engines/engines.mk	2009-03-04 00:49:10 UTC (rev 39100)
@@ -57,6 +57,10 @@
 MODULES += engines/kyra
 endif
 
+ifdef ENABLE_LOL
+DEFINES += -DENABLE_LOL
+endif
+
 ifdef ENABLE_LURE
 DEFINES += -DENABLE_LURE=$(ENABLE_LURE)
 MODULES += engines/lure

Modified: scummvm/branches/branch-0-13-0/engines/kyra/detection.cpp
===================================================================
--- scummvm/branches/branch-0-13-0/engines/kyra/detection.cpp	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/engines/kyra/detection.cpp	2009-03-04 00:49:10 UTC (rev 39100)
@@ -26,7 +26,10 @@
 #include "kyra/kyra_lok.h"
 #include "kyra/kyra_hof.h"
 #include "kyra/kyra_mr.h"
+
+#ifdef ENABLE_LOL
 #include "kyra/lol.h"
+#endif // ENABLE_LOL
 
 #include "common/config-manager.h"
 #include "common/advancedDetector.h"
@@ -844,7 +847,7 @@
 		KYRA3_CD_FAN_FLAGS(Common::IT_ITA, Common::FR_FRA)
 	},
 
-#if 0
+#ifdef ENABLE_LOL
 	// Lands of Lore CD
 	{
 		{
@@ -1020,7 +1023,7 @@
 		},
 		LOL_DEMO_FLAGS
 	},
-#endif
+#endif // ENABLE_LOL
 
 	{ AD_TABLE_END_MARKER, FLAGS(0, 0, 0, 0, 0, 0, 0) }
 };
@@ -1029,9 +1032,9 @@
 	{ "kyra1", "The Legend of Kyrandia" },
 	{ "kyra2", "The Legend of Kyrandia: The Hand of Fate" },
 	{ "kyra3", "The Legend of Kyrandia: Malcolm's Revenge" },
-#if 0
+#ifdef ENABLE_LOL
 	{ "lol", "Lands of Lore: The Throne of Chaos" },
-#endif
+#endif // ENABLE_LOL
 	{ 0, 0 }
 };
 
@@ -1123,9 +1126,11 @@
 	case Kyra::GI_KYRA3:
 		*engine = new Kyra::KyraEngine_MR(syst, flags);
 		break;
+#ifdef ENABLE_LOL
 	case Kyra::GI_LOL:
 		*engine = new Kyra::LoLEngine(syst, flags);
 		break;
+#endif // ENABLE_LOL
 	default:
 		res = false;
 		warning("Kyra engine: unknown gameID");

Modified: scummvm/branches/branch-0-13-0/engines/kyra/kyra_hof.cpp
===================================================================
--- scummvm/branches/branch-0-13-0/engines/kyra/kyra_hof.cpp	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/engines/kyra/kyra_hof.cpp	2009-03-04 00:49:10 UTC (rev 39100)
@@ -283,9 +283,11 @@
 			seq_showStarcraftLogo();
 
 		if (_flags.isDemo && !_flags.isTalkie) {
+#ifdef ENABLE_LOL
 			if (_flags.gameID == GI_LOL)
 				seq_playSequences(kSequenceLolDemoScene1, kSequenceLolDemoScene6);
 			else
+#endif // ENABLE_LOL
 				seq_playSequences(kSequenceDemoVirgin, kSequenceDemoFisher);
 			_menuChoice = 4;
 		} else {

Modified: scummvm/branches/branch-0-13-0/engines/kyra/kyra_hof.h
===================================================================
--- scummvm/branches/branch-0-13-0/engines/kyra/kyra_hof.h	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/engines/kyra/kyra_hof.h	2009-03-04 00:49:10 UTC (rev 39100)
@@ -97,6 +97,7 @@
 	kSequenceDemoDig
 };
 
+#ifdef ENABLE_LOL
 enum kSequencesLolDemo {
 	kSequenceLolDemoScene1 = 0,
 	kSequenceLolDemoText1,
@@ -110,6 +111,7 @@
 	kSequenceLolDemoText5,
 	kSequenceLolDemoScene6
 };
+#endif // ENABLE_LOL
 
 class WSAMovie_v2;
 class KyraEngine_HoF;
@@ -256,6 +258,7 @@
 	int seq_demoBail(WSAMovie_v2 *wsaObj, int x, int y, int frm);
 	int seq_demoDig(WSAMovie_v2 *wsaObj, int x, int y, int frm);
 
+#ifdef ENABLE_LOL
 	int seq_lolDemoScene1(WSAMovie_v2 *wsaObj, int x, int y, int frm);
 	int seq_lolDemoScene2(WSAMovie_v2 *wsaObj, int x, int y, int frm);
 	int seq_lolDemoScene3(WSAMovie_v2 *wsaObj, int x, int y, int frm);
@@ -263,6 +266,7 @@
 	int seq_lolDemoScene5(WSAMovie_v2 *wsaObj, int x, int y, int frm);
 	int seq_lolDemoText5(WSAMovie_v2 *wsaObj, int x, int y, int frm);
 	int seq_lolDemoScene6(WSAMovie_v2 *wsaObj, int x, int y, int frm);
+#endif // ENABLE_LOL
 
 	void seq_sequenceCommand(int command);
 	void seq_loadNestedSequence(int wsaNum, int seqNum);

Modified: scummvm/branches/branch-0-13-0/engines/kyra/kyra_v1.cpp
===================================================================
--- scummvm/branches/branch-0-13-0/engines/kyra/kyra_v1.cpp	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/engines/kyra/kyra_v1.cpp	2009-03-04 00:49:10 UTC (rev 39100)
@@ -161,7 +161,11 @@
 		// but the static resource loader and the sequence player will
 		// need correct IDs.
 		if (_res->exists("scene1.cps"))
+#ifdef ENABLE_LOL
 			_flags.gameID = GI_LOL;
+#else
+			error("Lands of Lore demo is not supported in this build.");
+#endif // !ENABLE_LOL
 	}
 
 	_staticres = new StaticResource(this);

Modified: scummvm/branches/branch-0-13-0/engines/kyra/module.mk
===================================================================
--- scummvm/branches/branch-0-13-0/engines/kyra/module.mk	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/engines/kyra/module.mk	2009-03-04 00:49:10 UTC (rev 39100)
@@ -12,18 +12,15 @@
 	gui_v2.o \
 	gui_hof.o \
 	gui_mr.o \
-	gui_lol.o \
 	items_lok.o \
 	items_v2.o \
 	items_hof.o \
 	items_mr.o \
-	items_lol.o \
 	kyra_v1.o \
 	kyra_lok.o \
 	kyra_v2.o \
 	kyra_hof.o \
 	kyra_mr.o \
-	lol.o \
 	resource.o \
 	resource_intern.o \
 	saveload.o \
@@ -35,10 +32,8 @@
 	scene_v2.o \
 	scene_hof.o \
 	scene_mr.o \
-	scene_lol.o \
 	screen.o \
 	screen_lok.o \
-	screen_lol.o \
 	screen_v2.o \
 	screen_hof.o \
 	screen_mr.o \
@@ -47,7 +42,6 @@
 	script_v2.o \
 	script_hof.o \
 	script_mr.o \
-	script_lol.o \
 	script.o \
 	script_tim.o \
 	seqplayer.o \
@@ -75,6 +69,16 @@
 	vqa.o \
 	wsamovie.o
 
+ifdef ENABLE_LOL
+MODULE_OBJS += \
+	gui_lol.o \
+	items_lol.o \
+	lol.o \
+	scene_lol.o \
+	screen_lol.o \
+	script_lol.o
+endif
+
 # This module can be built as a plugin
 ifeq ($(ENABLE_KYRA), DYNAMIC_PLUGIN)
 PLUGIN := 1

Modified: scummvm/branches/branch-0-13-0/engines/kyra/resource.h
===================================================================
--- scummvm/branches/branch-0-13-0/engines/kyra/resource.h	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/engines/kyra/resource.h	2009-03-04 00:49:10 UTC (rev 39100)
@@ -39,7 +39,10 @@
 
 #include "kyra/kyra_v1.h"
 #include "kyra/kyra_hof.h"
+
+#ifdef ENABLE_LOL
 #include "kyra/lol.h"
+#endif // ENABLE_LOL
 
 namespace Kyra {
 
@@ -211,6 +214,7 @@
 	k3ItemMagicTable,
 	k3ItemStringMap,
 
+#ifdef ENABLE_LOL
 	lolCharacterDefs,
 	lolIngameSfxFiles,
 	lolIngameSfxIndex,
@@ -244,6 +248,7 @@
 	lolDscDoorY,
 	lolDscOvlIndex,
 	lolDscBlockIndex,
+#endif // ENABLE_LOL
 
 	kMaxResIDs
 };
@@ -271,10 +276,12 @@
 	const HofSeqData *loadHofSequenceData(int id, int &entries);
 	const ItemAnimData_v1 *loadShapeAnimData_v1(int id, int &entries);
 	const ItemAnimData_v2 *loadShapeAnimData_v2(int id, int &entries);
+#ifdef ENABLE_LOL
 	const LoLCharacter *loadCharData(int id, int &entries);
 	const SpellProperty *loadSpellData(int id, int &entries);
 	const CompassDef *loadCompassData(int id, int &entries);
 	const uint16 *loadRawDataBe16(int id, int &entries);
+#endif // ENABLE_LOL
 
 	// use '-1' to prefetch/unload all ids
 	// prefetchId retruns false if only on of the resources
@@ -306,10 +313,12 @@
 	bool loadHofSequenceData(const char *filename, void *&ptr, int &size);
 	bool loadShapeAnimData_v1(const char *filename, void *&ptr, int &size);
 	bool loadShapeAnimData_v2(const char *filename, void *&ptr, int &size);
+#ifdef ENABLE_LOL
 	bool loadCharData(const char *filename, void *&ptr, int &size);
 	bool loadSpellData(const char *filename, void *&ptr, int &size);
 	bool loadCompassData(const char *filename, void *&ptr, int &size);
-	bool loadRawDataBe16(const char *filename, void *&ptr, int &size);	
+	bool loadRawDataBe16(const char *filename, void *&ptr, int &size);
+#endif // ENABLE_LOL
 
 	void freeRawData(void *&ptr, int &size);
 	void freeStringTable(void *&ptr, int &size);
@@ -319,10 +328,12 @@
 	void freeHofSequenceData(void *&ptr, int &size);
 	void freeHofShapeAnimDataV1(void *&ptr, int &size);
 	void freeHofShapeAnimDataV2(void *&ptr, int &size);
+#ifdef ENABLE_LOL
 	void freeCharData(void *&ptr, int &size);
 	void freeSpellData(void *&ptr, int &size);
 	void freeCompassData(void *&ptr, int &size);
 	void freeRawDataBe16(void *&ptr, int &size);
+#endif // ENABLE_LOL
 
 	const char *getFilename(const char *name);
 	Common::SeekableReadStream *getFile(const char *name);

Modified: scummvm/branches/branch-0-13-0/engines/kyra/sequences_hof.cpp
===================================================================
--- scummvm/branches/branch-0-13-0/engines/kyra/sequences_hof.cpp	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/engines/kyra/sequences_hof.cpp	2009-03-04 00:49:10 UTC (rev 39100)
@@ -1796,6 +1796,7 @@
 	return frm;
 }
 
+#ifdef ENABLE_LOL
 int KyraEngine_HoF::seq_lolDemoScene1(WSAMovie_v2 *wsaObj, int x, int y, int frm) {
 	uint8 *tmpPal = _screen->getPalette(2);
 
@@ -1971,6 +1972,7 @@
 
 	return 0;
 }
+#endif // ENABLE_LOL
 
 uint32 KyraEngine_HoF::seq_activeTextsTimeLeft() {
 	uint32 res = 0;

Modified: scummvm/branches/branch-0-13-0/engines/kyra/staticres.cpp
===================================================================
--- scummvm/branches/branch-0-13-0/engines/kyra/staticres.cpp	2009-03-04 00:45:34 UTC (rev 39099)
+++ scummvm/branches/branch-0-13-0/engines/kyra/staticres.cpp	2009-03-04 00:49:10 UTC (rev 39100)
@@ -27,13 +27,11 @@
 #include "common/md5.h"
 #include "kyra/kyra_v1.h"
 #include "kyra/kyra_lok.h"
-#include "kyra/lol.h"
 #include "kyra/kyra_v2.h"
 #include "kyra/kyra_hof.h"
 #include "kyra/kyra_mr.h"
 #include "kyra/screen.h"
 #include "kyra/screen_lok.h"
-#include "kyra/screen_lol.h"
 #include "kyra/screen_hof.h"
 #include "kyra/screen_mr.h"
 #include "kyra/resource.h"
@@ -41,6 +39,11 @@
 #include "kyra/gui_hof.h"
 #include "kyra/gui_mr.h"
 
+#ifdef ENABLE_LOL
+#include "kyra/lol.h"
+#include "kyra/screen_lol.h"
+#endif // ENABLE_LOL
+
 namespace Kyra {
 
 #define RESFILE_VERSION 35
@@ -221,10 +224,12 @@
 		{ k2ShpAnimDataV1, proc(loadShapeAnimData_v1), proc(freeHofShapeAnimDataV1) },
 		{ k2ShpAnimDataV2, proc(loadShapeAnimData_v2), proc(freeHofShapeAnimDataV2) },
 
+#ifdef ENABLE_LOL
 		{ lolCharData, proc(loadCharData), proc(freeCharData) },
 		{ lolSpellData, proc(loadSpellData), proc(freeSpellData) },
 		{ lolCompassData, proc(loadCompassData), proc(freeCompassData) },
 		{ lolRawDataBe16, proc(loadRawDataBe16), proc(freeRawDataBe16) },
+#endif // ENABLE_LOL
 
 		{ 0, 0, 0 }
 	};
@@ -359,6 +364,7 @@
 		{ 0, 0, 0 }
 	};
 
+#ifdef ENABLE_LOL
 	static const FilenameTable lolStaticRes[] = {
 		// Demo Sequence Player
 		{ k2SeqplayPakFiles, kStringList, "S_PAKFILES.TXT" },
@@ -404,6 +410,7 @@
 
 		{ 0, 0, 0 }
 	};
+#endif // ENABLE_LOL
 
 	if (_vm->game() == GI_KYRA1) {
 		_builtIn = 0;
@@ -414,11 +421,13 @@
 	} else if (_vm->game() == GI_KYRA3) {
 		_builtIn = 0;
 		_filenameTable = kyra3StaticRes;
+#ifdef ENABLE_LOL
 	} else if (_vm->game() == GI_LOL) {
 		if (!_vm->gameFlags().isDemo && !_vm->gameFlags().isTalkie)
 			return true;
 		_builtIn = 0;
 		_filenameTable = lolStaticRes;
+#endif // ENABLE_LOL
 	} else {
 		error("StaticResource: Unknown game ID");
 	}
@@ -465,6 +474,7 @@
 	return (const ItemAnimData_v2*)getData(id, k2ShpAnimDataV2, entries);
 }
 
+#ifdef ENABLE_LOL
 const LoLCharacter *StaticResource::loadCharData(int id, int &entries) {
 	return (const LoLCharacter*)getData(id, lolCharData, entries);
 }
@@ -480,6 +490,7 @@
 const uint16 *StaticResource::loadRawDataBe16(int id, int &entries) {
 	return (const uint16*)getData(id, lolRawDataBe16, entries);
 }
+#endif // ENABLE_LOL
 
 bool StaticResource::prefetchId(int id) {
 	if (id == -1) {
@@ -909,6 +920,7 @@
 	return true;
 }
 
+#ifdef ENABLE_LOL
 bool StaticResource::loadCharData(const char *filename, void *&ptr, int &size) {
 	Common::SeekableReadStream *file = getFile(filename);
 
@@ -1046,6 +1058,7 @@
 	
 	return true;
 }
+#endif // ENABLE_LOL
 
 void StaticResource::freeRawData(void *&ptr, int &size) {
 	uint8 *data = (uint8*)ptr;
@@ -1115,6 +1128,7 @@
 	size = 0;
 }
 
+#ifdef ENABLE_LOL
 void StaticResource::freeCharData(void *&ptr, int &size) {
 	LoLCharacter *d = (LoLCharacter *)ptr;
 	delete[] d;
@@ -1142,6 +1156,7 @@
 	ptr = 0;
 	size = 0;
 }
+#endif // ENABLE_LOL
 
 void StaticResource::freePaletteTable(void *&ptr, int &size) {
 	uint8 **data = (uint8**)ptr;
@@ -1601,6 +1616,7 @@
 		&KyraEngine_HoF::seq_demoDig, 0
 	};
 
+#ifdef ENABLE_LOL
 	static const SeqProc lolDemoSequenceCallbacks[] = {
 		&KyraEngine_HoF::seq_lolDemoScene1, 0, &KyraEngine_HoF::seq_lolDemoScene2, 0,
 		&KyraEngine_HoF::seq_lolDemoScene3, 0, &KyraEngine_HoF::seq_lolDemoScene4, 0,
@@ -1609,9 +1625,18 @@
 	};
 
 	static const SeqProc lolDemoNestedSequenceCallbacks[] = { 0	};
+#endif // ENABLE_LOL
 
-	_callbackS = _flags.gameID == GI_LOL ? lolDemoSequenceCallbacks : ((_flags.isDemo && !_flags.isTalkie) ? hofDemoSequenceCallbacks : hofSequenceCallbacks);
-	_callbackN = _flags.gameID == GI_LOL ? lolDemoNestedSequenceCallbacks : ((_flags.isDemo && !_flags.isTalkie) ? hofDemoNestedSequenceCallbacks : hofNestedSequenceCallbacks);
+	_callbackS =
+#ifdef ENABLE_LOL
+		_flags.gameID == GI_LOL ? lolDemoSequenceCallbacks :
+#endif // ENABLE_LOL
+		((_flags.isDemo && !_flags.isTalkie) ? hofDemoSequenceCallbacks : hofSequenceCallbacks);
+	_callbackN =
+#ifdef ENABLE_LOL
+		_flags.gameID == GI_LOL ? lolDemoNestedSequenceCallbacks :
+#endif // ENABLE_LOL
+		((_flags.isDemo && !_flags.isTalkie) ? hofDemoNestedSequenceCallbacks : hofNestedSequenceCallbacks);
 }
 
 void KyraEngine_MR::initStaticResource() {
@@ -1626,6 +1651,7 @@
 	_itemStringMap = _staticres->loadRawData(k3ItemStringMap, _itemStringMapSize);
 }
 
+#ifdef ENABLE_LOL
 void LoLEngine::initStaticResource() {
 	_charDefaults = _staticres->loadCharData(lolCharacterDefs, _charDefaultsSize);	
 	_ingameSoundIndex = (const uint16 *)_staticres->loadRawData(lolIngameSfxIndex, _ingameSoundIndexSize);
@@ -1668,6 +1694,7 @@
 	}
 	_staticres->unloadId(lolIngameSfxFiles);
 }
+#endif // ENABLE_LOL
 
 const ScreenDim Screen_LoK::_screenDimTable[] = {
 	{ 0x00, 0x00, 0x28, 0xC8, 0x0F, 0x0C, 0x00, 0x00 },
@@ -2622,6 +2649,7 @@
 
 // lands of lore static res
 
+#ifdef ENABLE_LOL
 const ScreenDim Screen_LoL::_screenDimTable[] = {
 	{ 0x00, 0x00, 0x28, 0xC8, 0xC7, 0xCF, 0x00, 0x00 },	// Taken from Intro
 	{ 0x08, 0x48, 0x18, 0x38, 0xFE, 0x01, 0x00, 0x00 },
@@ -2732,6 +2760,7 @@
 	0xB, 0xA, 0x9, 0x8, 0x7, 0x0, 0x0, 0x7,
 	0x8, 0x9, 0xA, 0xB, 0xA, 0x9, 0x8, 0x7
 };
+#endif // ENABLE_LOL
 
 } // End of namespace Kyra
 


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