[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