- Make Lands of Lore compileable optionally 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.

(- Minor enum name fixes for Lands of Lore code.)

svn-id: r39099
This commit is contained in:
Johannes Schickel 2009-03-04 00:45:34 +00:00
parent bc3702dcdb
commit 3a35b5b5f2
12 changed files with 300 additions and 219 deletions

3
configure vendored
View file

@ -94,7 +94,8 @@ add_engine drascula "Drascula: The Vampire Strikes Back" yes
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

View file

@ -57,6 +57,10 @@ DEFINES += -DENABLE_KYRA=$(ENABLE_KYRA)
MODULES += engines/kyra
endif
ifdef ENABLE_LOL
DEFINES += -DENABLE_LOL
endif
ifdef ENABLE_LURE
DEFINES += -DENABLE_LURE=$(ENABLE_LURE)
MODULES += engines/lure

View file

@ -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 "engines/advancedDetector.h"
@ -844,6 +847,7 @@ const KYRAGameDescription adGameDescs[] = {
KYRA3_CD_FAN_FLAGS(Common::IT_ITA, Common::FR_FRA)
},
#ifdef ENABLE_LOL
// Lands of Lore CD
{
{
@ -1019,6 +1023,7 @@ const KYRAGameDescription adGameDescs[] = {
},
LOL_DEMO_FLAGS
},
#endif // ENABLE_LOL
{ AD_TABLE_END_MARKER, FLAGS(0, 0, 0, 0, 0, 0, 0) }
};
@ -1027,7 +1032,9 @@ const PlainGameDescriptor gameList[] = {
{ "kyra1", "The Legend of Kyrandia" },
{ "kyra2", "The Legend of Kyrandia: The Hand of Fate" },
{ "kyra3", "The Legend of Kyrandia: Malcolm's Revenge" },
#ifdef ENABLE_LOL
{ "lol", "Lands of Lore: The Throne of Chaos" },
#endif // ENABLE_LOL
{ 0, 0 }
};
@ -1119,9 +1126,11 @@ bool KyraMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGame
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");

View file

@ -283,9 +283,11 @@ Common::Error KyraEngine_HoF::go() {
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 {

View file

@ -97,6 +97,7 @@ enum kNestedSequencesDemo {
kSequenceDemoDig
};
#ifdef ENABLE_LOL
enum kSequencesLolDemo {
kSequenceLolDemoScene1 = 0,
kSequenceLolDemoText1,
@ -110,6 +111,7 @@ enum kSequencesLolDemo {
kSequenceLolDemoText5,
kSequenceLolDemoScene6
};
#endif // ENABLE_LOL
class WSAMovie_v2;
class KyraEngine_HoF;
@ -256,6 +258,7 @@ protected:
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 @@ protected:
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);

View file

@ -161,7 +161,11 @@ Common::Error KyraEngine_v1::init() {
// 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);

View file

@ -12,18 +12,15 @@ MODULE_OBJS := \
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 @@ MODULE_OBJS := \
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,12 +42,10 @@ MODULE_OBJS := \
script_v2.o \
script_hof.o \
script_mr.o \
script_lol.o \
script.o \
script_tim.o \
seqplayer.o \
sequences_lok.o \
sequences_lol.o \
sequences_v2.o \
sequences_hof.o \
sequences_mr.o \
@ -63,22 +56,33 @@ MODULE_OBJS := \
sound.o \
sound_lok.o \
sprites.o \
sprites_lol.o \
staticres.o \
text.o \
text_lok.o \
text_lol.o \
text_hof.o \
text_mr.o \
timer.o \
timer_lok.o \
timer_lol.o \
timer_hof.o \
timer_mr.o \
util.o \
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 \
sequences_lol.o \
sprites_lol.o \
text_lol.o \
timer_lol.o
endif
# This module can be built as a plugin
ifeq ($(ENABLE_KYRA), DYNAMIC_PLUGIN)
PLUGIN := 1

View file

@ -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,71 +214,73 @@ enum kKyraResources {
k3ItemMagicTable,
k3ItemStringMap,
lolCharacterDefs,
lolIngameSfxFiles,
lolIngameSfxIndex,
lolMusicTrackMap,
lolIngameGMSfxIndex,
lolIngameMT32SfxIndex,
//lolIngameADLSfxIndex,
lolSpellProperties,
lolGameShapeMap,
lolCharInvIndex,
lolCharInvDefs,
lolCharDefsMan,
lolCharDefsWoman,
lolCharDefsKieran,
//lolCharDefsUnk,
lolCharDefsAkshel,
lolExpRequirements,
lolMonsterModifiers,
lolMonsterLevelOffsets,
lolMonsterDirFlags,
lolMonsterScaleY,
lolMonsterScaleX,
lolMonsterScaleWH,
lolInventoryDesc,
#ifdef ENABLE_LOL
kLolCharacterDefs,
kLolIngameSfxFiles,
kLolIngameSfxIndex,
kLolMusicTrackMap,
kLolIngameGMSfxIndex,
kLolIngameMT32SfxIndex,
//kLolIngameADLSfxIndex,
kLolSpellProperties,
kLolGameShapeMap,
kLolCharInvIndex,
kLolCharInvDefs,
kLolCharDefsMan,
kLolCharDefsWoman,
kLolCharDefsKieran,
//kLolCharDefsUnk,
kLolCharDefsAkshel,
kLolExpRequirements,
kLolMonsterModifiers,
kLolMonsterLevelOffsets,
kLolMonsterDirFlags,
kLolMonsterScaleY,
kLolMonsterScaleX,
kLolMonsterScaleWH,
kLolInventoryDesc,
lolLevelShpList,
lolLevelDatList,
lolCompassDefs,
kLolLevelShpList,
kLolLevelDatList,
kLolCompassDefs,
lolDscUnk1,
lolDscShapeIndex,
lolDscOvlMap,
lolDscScaleWidthData,
lolDscScaleHeightData,
lolDscX,
lolDscY,
lolDscTileIndex,
lolDscUnk2,
lolDscDoorShapeIndex,
lolDscDimData1,
lolDscDimData2,
lolDscBlockMap,
lolDscDimMap,
lolDscDoor1,
lolDscDoorScale,
lolDscDoor4,
lolDscDoorX,
lolDscDoorY,
lolDscOvlIndex,
lolDscBlockIndex,
kLolDscUnk1,
kLolDscShapeIndex,
kLolDscOvlMap,
kLolDscScaleWidthData,
kLolDscScaleHeightData,
kLolDscX,
kLolDscY,
kLolDscTileIndex,
kLolDscUnk2,
kLolDscDoorShapeIndex,
kLolDscDimData1,
kLolDscDimData2,
kLolDscBlockMap,
kLolDscDimMap,
kLolDscDoor1,
kLolDscDoorScale,
kLolDscDoor4,
kLolDscDoorX,
kLolDscDoorY,
kLolDscOvlIndex,
kLolDscBlockIndex,
lolScrollXTop,
lolScrollYTop,
lolScrollXBottom,
lolScrollYBottom,
kLolScrollXTop,
kLolScrollYTop,
kLolScrollXBottom,
kLolScrollYBottom,
lolButtonDefs,
lolButtonList1,
lolButtonList2,
lolButtonList3,
lolButtonList4,
lolButtonList5,
lolButtonList6,
lolButtonList7,
lolButtonList8,
kLolButtonDefs,
kLolButtonList1,
kLolButtonList2,
kLolButtonList3,
kLolButtonList4,
kLolButtonList5,
kLolButtonList6,
kLolButtonList7,
kLolButtonList8,
#endif // ENABLE_LOL
kMaxResIDs
};
@ -303,12 +308,14 @@ public:
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);
const uint32 *loadRawDataBe32(int id, int &entries);
const ButtonDef *loadButtonDefs(int id, int &entries);
#endif // ENABLE_LOL
// use '-1' to prefetch/unload all ids
// prefetchId retruns false if only on of the resources
@ -340,12 +347,14 @@ private:
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 loadRawDataBe32(const char *filename, void *&ptr, int &size);
bool loadButtonDefs(const char *filename, void *&ptr, int &size);
#endif // ENABLE_LOL
void freeRawData(void *&ptr, int &size);
void freeStringTable(void *&ptr, int &size);
@ -355,12 +364,14 @@ private:
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);
void freeRawDataBe32(void *&ptr, int &size);
void freeButtonDefs(void *&ptr, int &size);
#endif // ENABLE_LOL
const char *getFilename(const char *name);
Common::SeekableReadStream *getFile(const char *name);
@ -377,12 +388,12 @@ private:
k2ShpAnimDataV1,
k2ShpAnimDataV2,
lolCharData,
lolSpellData,
lolCompassData,
lolRawDataBe16,
lolRawDataBe32,
lolButtonData
kLolCharData,
kLolSpellData,
kLolCompassData,
kLolRawDataBe16,
kLolRawDataBe32,
kLolButtonData
};
struct BuiltinRes {

View file

@ -28,8 +28,11 @@
#include "kyra/resource.h"
#include "kyra/sound.h"
#include "kyra/wsamovie.h"
#ifdef ENABLE_LOL
#include "kyra/lol.h"
#include "kyra/screen_lol.h"
#endif // ENABLE_LOL
#include "common/endian.h"
@ -706,6 +709,9 @@ int TIMInterpreter::cmd_stopAllFuncs(const uint16 *param) {
return -1;
}
// TODO: Consider moving to another file
#ifdef ENABLE_LOL
// LOL version of the TIM interpreter
TIMInterpreter_LoL::TIMInterpreter_LoL(LoLEngine *engine, Screen_v2 *screen_v2, OSystem *system) :
@ -1097,6 +1103,7 @@ int TIMInterpreter_LoL::cmd_dialogueBox(const uint16 *param) {
return -3;
}
#endif // ENABLE_LOL
} // end of namespace Kyra

View file

@ -187,6 +187,7 @@ protected:
#undef cmd_return
};
#ifdef ENABLE_LOL
class LoLEngine;
class Screen_LoL;
class TIMInterpreter_LoL : public TIMInterpreter {
@ -235,6 +236,7 @@ private:
int cmd_processDialogue(const uint16 *param);
int cmd_dialogueBox(const uint16 *param);
};
#endif // ENABLE_LOL
} // end of namespace Kyra

View file

@ -1796,6 +1796,7 @@ int KyraEngine_HoF::seq_demoDig(WSAMovie_v2 *wsaObj, int x, int y, int frm) {
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 @@ int KyraEngine_HoF::seq_lolDemoScene6(WSAMovie_v2 *wsaObj, int x, int y, int frm
return 0;
}
#endif // ENABLE_LOL
uint32 KyraEngine_HoF::seq_activeTextsTimeLeft() {
uint32 res = 0;

View file

@ -27,20 +27,23 @@
#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"
#include "kyra/gui_lok.h"
#include "kyra/gui_hof.h"
#include "kyra/gui_mr.h"
#ifdef ENABLE_LOL
#include "kyra/lol.h"
#include "kyra/screen_lol.h"
#include "kyra/gui_lol.h"
#endif // ENABLE_LOL
namespace Kyra {
@ -222,12 +225,14 @@ bool StaticResource::init() {
{ k2ShpAnimDataV1, proc(loadShapeAnimData_v1), proc(freeHofShapeAnimDataV1) },
{ k2ShpAnimDataV2, proc(loadShapeAnimData_v2), proc(freeHofShapeAnimDataV2) },
{ lolCharData, proc(loadCharData), proc(freeCharData) },
{ lolSpellData, proc(loadSpellData), proc(freeSpellData) },
{ lolCompassData, proc(loadCompassData), proc(freeCompassData) },
{ lolRawDataBe16, proc(loadRawDataBe16), proc(freeRawDataBe16) },
{ lolRawDataBe32, proc(loadRawDataBe32), proc(freeRawDataBe32) },
{ lolButtonData, proc(loadButtonDefs), proc(freeButtonDefs) },
#ifdef ENABLE_LOL
{ kLolCharData, proc(loadCharData), proc(freeCharData) },
{ kLolSpellData, proc(loadSpellData), proc(freeSpellData) },
{ kLolCompassData, proc(loadCompassData), proc(freeCompassData) },
{ kLolRawDataBe16, proc(loadRawDataBe16), proc(freeRawDataBe16) },
{ kLolRawDataBe32, proc(loadRawDataBe32), proc(freeRawDataBe32) },
{ kLolButtonData, proc(loadButtonDefs), proc(freeButtonDefs) },
#endif // ENABLE_LOL
{ 0, 0, 0 }
};
@ -362,7 +367,8 @@ bool StaticResource::init() {
{ 0, 0, 0 }
};
static const FilenameTable lolStaticRes[] = {
#ifdef ENABLE_LOL
static const FilenameTable kLolStaticRes[] = {
// Demo Sequence Player
{ k2SeqplayPakFiles, kStringList, "S_PAKFILES.TXT" },
{ k2SeqplayStrings, kLanguageList, "S_STRINGS." },
@ -371,73 +377,74 @@ bool StaticResource::init() {
{ k2SeqplayIntroTracks, kStringList, "S_INTRO.TRA" },
// Ingame
{ lolCharacterDefs, lolCharData, "CHARACTER.DEF" },
{ lolIngameSfxFiles, kStringList, "SFXFILES.TRA" },
{ lolIngameSfxIndex, kRawData, "SFXINDEX.MAP" },
{ lolMusicTrackMap, kRawData, "MUSIC.MAP" },
{ lolIngameGMSfxIndex, kRawData, "SFX_GM.MAP" },
{ lolIngameMT32SfxIndex, kRawData, "SFX_MT32.MAP" },
{ lolSpellProperties, lolSpellData, "SPELLS.DEF" },
{ lolGameShapeMap, kRawData, "GAMESHP.MAP" },
{ lolCharInvIndex, kRawData, "CHARINV.MAP" },
{ lolCharInvDefs, kRawData, "CHARINV.DEF" },
{ lolCharDefsMan, lolRawDataBe16, "CHMAN.DEF" },
{ lolCharDefsWoman, lolRawDataBe16, "CHWOMAN.DEF" },
{ lolCharDefsKieran, lolRawDataBe16, "CHKIERAN.DEF" },
//{ lolCharDefsUnk, lolRawDataBe16, "CHUNK.DEF" },
{ lolCharDefsAkshel, lolRawDataBe16, "CHAKSHEL.DEF" },
{ lolExpRequirements, lolRawDataBe32, "EXPERIENCE.DEF" },
{ lolMonsterModifiers, lolRawDataBe16, "MONSTMOD.DEF" },
{ lolMonsterLevelOffsets, kRawData, "MONSTLVL.DEF" },
{ lolMonsterDirFlags, kRawData, "MONSTDIR.DEF" },
{ lolMonsterScaleY, kRawData, "MONSTZY.DEF" },
{ lolMonsterScaleX, kRawData, "MONSTZX.DEF" },
{ lolMonsterScaleWH, lolRawDataBe16, "MONSTSCL.DEF" },
{ lolInventoryDesc, lolRawDataBe16, "INVDESC.DEF" },
{ kLolCharacterDefs, kLolCharData, "CHARACTER.DEF" },
{ kLolIngameSfxFiles, kStringList, "SFXFILES.TRA" },
{ kLolIngameSfxIndex, kRawData, "SFXINDEX.MAP" },
{ kLolMusicTrackMap, kRawData, "MUSIC.MAP" },
{ kLolIngameGMSfxIndex, kRawData, "SFX_GM.MAP" },
{ kLolIngameMT32SfxIndex, kRawData, "SFX_MT32.MAP" },
{ kLolSpellProperties, kLolSpellData, "SPELLS.DEF" },
{ kLolGameShapeMap, kRawData, "GAMESHP.MAP" },
{ kLolCharInvIndex, kRawData, "CHARINV.MAP" },
{ kLolCharInvDefs, kRawData, "CHARINV.DEF" },
{ kLolCharDefsMan, kLolRawDataBe16, "CHMAN.DEF" },
{ kLolCharDefsWoman, kLolRawDataBe16, "CHWOMAN.DEF" },
{ kLolCharDefsKieran, kLolRawDataBe16, "CHKIERAN.DEF" },
//{ kLolCharDefsUnk, kLolRawDataBe16, "CHUNK.DEF" },
{ kLolCharDefsAkshel, kLolRawDataBe16, "CHAKSHEL.DEF" },
{ kLolExpRequirements, kLolRawDataBe32, "EXPERIENCE.DEF" },
{ kLolMonsterModifiers, kLolRawDataBe16, "MONSTMOD.DEF" },
{ kLolMonsterLevelOffsets, kRawData, "MONSTLVL.DEF" },
{ kLolMonsterDirFlags, kRawData, "MONSTDIR.DEF" },
{ kLolMonsterScaleY, kRawData, "MONSTZY.DEF" },
{ kLolMonsterScaleX, kRawData, "MONSTZX.DEF" },
{ kLolMonsterScaleWH, kLolRawDataBe16, "MONSTSCL.DEF" },
{ kLolInventoryDesc, kLolRawDataBe16, "INVDESC.DEF" },
{ lolLevelShpList, kStringList, "SHPFILES.TXT" },
{ lolLevelDatList, kStringList, "DATFILES.TXT" },
{ lolCompassDefs, lolCompassData, "COMPASS.DEF" },
{ kLolLevelShpList, kStringList, "SHPFILES.TXT" },
{ kLolLevelDatList, kStringList, "DATFILES.TXT" },
{ kLolCompassDefs, kLolCompassData, "COMPASS.DEF" },
{ lolDscUnk1, kRawData, "DSCSHPU1.DEF" },
{ lolDscShapeIndex, kRawData, "DSCSHPI1.DEF" },
{ lolDscOvlMap, kRawData, "DSCSHPI2.DEF" },
{ lolDscScaleWidthData, lolRawDataBe16, "DSCSHPW.DEF" },
{ lolDscScaleHeightData, lolRawDataBe16, "DSCSHPH.DEF" },
{ lolDscX, lolRawDataBe16, "DSCSHPX.DEF" },
{ lolDscY, kRawData, "DSCSHPY.DEF" },
{ lolDscTileIndex, kRawData, "DSCSHPT.DEF" },
{ lolDscUnk2, kRawData, "DSCSHPU2.DEF" },
{ lolDscDoorShapeIndex, kRawData, "DSCDOOR.DEF" },
{ lolDscDimData1, kRawData, "DSCDIM1.DEF" },
{ lolDscDimData2, kRawData, "DSCDIM2.DEF" },
{ lolDscBlockMap, kRawData, "DSCBLOCK1.DEF" },
{ lolDscDimMap, kRawData, "DSCDIM.DEF" },
{ lolDscDoorScale, lolRawDataBe16, "DSCDOOR3.DEF" },
{ lolDscDoor4, lolRawDataBe16, "DSCDOOR4.DEF" },
{ lolDscOvlIndex, kRawData, "DSCBLOCK2.DEF" },
{ lolDscBlockIndex, kRawData, "DSCBLOCKX.DEF" },
{ lolDscDoor1, kRawData, "DSCDOOR1.DEF" },
{ lolDscDoorX, lolRawDataBe16, "DSCDOORX.DEF" },
{ lolDscDoorY, lolRawDataBe16, "DSCDOORY.DEF" },
{ kLolDscUnk1, kRawData, "DSCSHPU1.DEF" },
{ kLolDscShapeIndex, kRawData, "DSCSHPI1.DEF" },
{ kLolDscOvlMap, kRawData, "DSCSHPI2.DEF" },
{ kLolDscScaleWidthData, kLolRawDataBe16, "DSCSHPW.DEF" },
{ kLolDscScaleHeightData, kLolRawDataBe16, "DSCSHPH.DEF" },
{ kLolDscX, kLolRawDataBe16, "DSCSHPX.DEF" },
{ kLolDscY, kRawData, "DSCSHPY.DEF" },
{ kLolDscTileIndex, kRawData, "DSCSHPT.DEF" },
{ kLolDscUnk2, kRawData, "DSCSHPU2.DEF" },
{ kLolDscDoorShapeIndex, kRawData, "DSCDOOR.DEF" },
{ kLolDscDimData1, kRawData, "DSCDIM1.DEF" },
{ kLolDscDimData2, kRawData, "DSCDIM2.DEF" },
{ kLolDscBlockMap, kRawData, "DSCBLOCK1.DEF" },
{ kLolDscDimMap, kRawData, "DSCDIM.DEF" },
{ kLolDscDoorScale, kLolRawDataBe16, "DSCDOOR3.DEF" },
{ kLolDscDoor4, kLolRawDataBe16, "DSCDOOR4.DEF" },
{ kLolDscOvlIndex, kRawData, "DSCBLOCK2.DEF" },
{ kLolDscBlockIndex, kRawData, "DSCBLOCKX.DEF" },
{ kLolDscDoor1, kRawData, "DSCDOOR1.DEF" },
{ kLolDscDoorX, kLolRawDataBe16, "DSCDOORX.DEF" },
{ kLolDscDoorY, kLolRawDataBe16, "DSCDOORY.DEF" },
{ lolScrollXTop, kRawData, "SCROLLXT.DEF" },
{ lolScrollYTop, kRawData, "SCROLLYT.DEF" },
{ lolScrollXBottom, kRawData, "SCROLLXB.DEF" },
{ lolScrollYBottom, kRawData, "SCROLLYB.DEF" },
{ kLolScrollXTop, kRawData, "SCROLLXT.DEF" },
{ kLolScrollYTop, kRawData, "SCROLLYT.DEF" },
{ kLolScrollXBottom, kRawData, "SCROLLXB.DEF" },
{ kLolScrollYBottom, kRawData, "SCROLLYB.DEF" },
{ lolButtonDefs, lolButtonData, "BUTTONS.DEF" },
{ lolButtonList1, lolRawDataBe16, "BUTTON1.LST" },
{ lolButtonList2, lolRawDataBe16, "BUTTON2.LST" },
{ lolButtonList3, lolRawDataBe16, "BUTTON3.LST" },
{ lolButtonList4, lolRawDataBe16, "BUTTON4.LST" },
{ lolButtonList5, lolRawDataBe16, "BUTTON5.LST" },
{ lolButtonList6, lolRawDataBe16, "BUTTON6.LST" },
{ lolButtonList7, lolRawDataBe16, "BUTTON7.LST" },
{ lolButtonList8, lolRawDataBe16, "BUTTON84.LST" },
{ kLolButtonDefs, kLolButtonData, "BUTTONS.DEF" },
{ kLolButtonList1, kLolRawDataBe16, "BUTTON1.LST" },
{ kLolButtonList2, kLolRawDataBe16, "BUTTON2.LST" },
{ kLolButtonList3, kLolRawDataBe16, "BUTTON3.LST" },
{ kLolButtonList4, kLolRawDataBe16, "BUTTON4.LST" },
{ kLolButtonList5, kLolRawDataBe16, "BUTTON5.LST" },
{ kLolButtonList6, kLolRawDataBe16, "BUTTON6.LST" },
{ kLolButtonList7, kLolRawDataBe16, "BUTTON7.LST" },
{ kLolButtonList8, kLolRawDataBe16, "BUTTON84.LST" },
{ 0, 0, 0 }
};
#endif // ENABLE_LOL
if (_vm->game() == GI_KYRA1) {
_builtIn = 0;
@ -448,11 +455,13 @@ bool StaticResource::init() {
} 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;
_filenameTable = kLolStaticRes;
#endif // ENABLE_LOL
} else {
error("StaticResource: Unknown game ID");
}
@ -499,29 +508,31 @@ const ItemAnimData_v2 *StaticResource::loadShapeAnimData_v2(int id, int &entries
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);
return (const LoLCharacter*)getData(id, kLolCharData, entries);
}
const SpellProperty *StaticResource::loadSpellData(int id, int &entries) {
return (const SpellProperty*)getData(id, lolSpellData, entries);
return (const SpellProperty*)getData(id, kLolSpellData, entries);
}
const CompassDef *StaticResource::loadCompassData(int id, int &entries) {
return (const CompassDef*)getData(id, lolCompassData, entries);
return (const CompassDef*)getData(id, kLolCompassData, entries);
}
const uint16 *StaticResource::loadRawDataBe16(int id, int &entries) {
return (const uint16*)getData(id, lolRawDataBe16, entries);
return (const uint16*)getData(id, kLolRawDataBe16, entries);
}
const uint32 *StaticResource::loadRawDataBe32(int id, int &entries) {
return (const uint32*)getData(id, lolRawDataBe32, entries);
return (const uint32*)getData(id, kLolRawDataBe32, entries);
}
const ButtonDef *StaticResource::loadButtonDefs(int id, int &entries) {
return (const ButtonDef*)getData(id, lolButtonData, entries);
return (const ButtonDef*)getData(id, kLolButtonData, entries);
}
#endif // ENABLE_LOL
bool StaticResource::prefetchId(int id) {
if (id == -1) {
@ -951,6 +962,7 @@ bool StaticResource::loadShapeAnimData_v2(const char *filename, void *&ptr, int
return true;
}
#ifdef ENABLE_LOL
bool StaticResource::loadCharData(const char *filename, void *&ptr, int &size) {
Common::SeekableReadStream *file = getFile(filename);
@ -1127,6 +1139,7 @@ bool StaticResource::loadButtonDefs(const char *filename, void *&ptr, int &size)
return true;
}
#endif // ENABLE_LOL
void StaticResource::freeRawData(void *&ptr, int &size) {
uint8 *data = (uint8*)ptr;
@ -1196,6 +1209,7 @@ void StaticResource::freeHofShapeAnimDataV2(void *&ptr, int &size) {
size = 0;
}
#ifdef ENABLE_LOL
void StaticResource::freeCharData(void *&ptr, int &size) {
LoLCharacter *d = (LoLCharacter *)ptr;
delete[] d;
@ -1237,6 +1251,7 @@ void StaticResource::freeButtonDefs(void *&ptr, int &size) {
ptr = 0;
size = 0;
}
#endif // ENABLE_LOL
void StaticResource::freePaletteTable(void *&ptr, int &size) {
uint8 **data = (uint8**)ptr;
@ -1696,17 +1711,27 @@ void KyraEngine_HoF::initStaticResource() {
&KyraEngine_HoF::seq_demoDig, 0
};
static const SeqProc lolDemoSequenceCallbacks[] = {
#ifdef ENABLE_LOL
static const SeqProc kLolDemoSequenceCallbacks[] = {
&KyraEngine_HoF::seq_lolDemoScene1, 0, &KyraEngine_HoF::seq_lolDemoScene2, 0,
&KyraEngine_HoF::seq_lolDemoScene3, 0, &KyraEngine_HoF::seq_lolDemoScene4, 0,
&KyraEngine_HoF::seq_lolDemoScene5, &KyraEngine_HoF::seq_lolDemoText5,
&KyraEngine_HoF::seq_lolDemoScene6, 0
};
static const SeqProc lolDemoNestedSequenceCallbacks[] = { 0 };
static const SeqProc kLolDemoNestedSequenceCallbacks[] = { 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 ? kLolDemoSequenceCallbacks :
#endif // ENABLE_LOL
((_flags.isDemo && !_flags.isTalkie) ? hofDemoSequenceCallbacks : hofSequenceCallbacks);
_callbackN =
#ifdef ENABLE_LOL
_flags.gameID == GI_LOL ? kLolDemoNestedSequenceCallbacks :
#endif // ENABLE_LOL
((_flags.isDemo && !_flags.isTalkie) ? hofDemoNestedSequenceCallbacks : hofNestedSequenceCallbacks);
}
void KyraEngine_MR::initStaticResource() {
@ -1721,77 +1746,79 @@ void KyraEngine_MR::initStaticResource() {
_itemStringMap = _staticres->loadRawData(k3ItemStringMap, _itemStringMapSize);
}
#ifdef ENABLE_LOL
// TODO: move this to kLol.cpp maybe?
void LoLEngine::initStaticResource() {
_charDefaults = _staticres->loadCharData(lolCharacterDefs, _charDefaultsSize);
_ingameSoundIndex = (const uint16 *)_staticres->loadRawData(lolIngameSfxIndex, _ingameSoundIndexSize);
_musicTrackMap = _staticres->loadRawData(lolMusicTrackMap, _musicTrackMapSize);
_ingameGMSoundIndex = _staticres->loadRawData(lolIngameGMSfxIndex, _ingameGMSoundIndexSize);
_ingameMT32SoundIndex = _staticres->loadRawData(lolIngameMT32SfxIndex, _ingameMT32SoundIndexSize);
//_ingameADLSoundIndex = _staticres->loadRawData(lolIngameADLSfxIndex, _ingameADLSoundIndexSize);
_spellProperties = _staticres->loadSpellData(lolSpellProperties, _spellPropertiesSize);
_gameShapeMap = (const int8*)_staticres->loadRawData(lolGameShapeMap, _gameShapeMapSize);
_charInvIndex = _staticres->loadRawData(lolCharInvIndex, _charInvIndexSize);
_charInvDefs = (const int8*)_staticres->loadRawData(lolCharInvDefs, _charInvDefsSize);
_charDefsMan = _staticres->loadRawDataBe16(lolCharDefsMan, _charDefsManSize);
_charDefsWoman = _staticres->loadRawDataBe16(lolCharDefsWoman, _charDefsWomanSize);
_charDefsKieran = _staticres->loadRawDataBe16(lolCharDefsKieran, _charDefsKieranSize);
_charDefsAkshel = _staticres->loadRawDataBe16(lolCharDefsAkshel, _charDefsAkshelSize);
_expRequirements = (const int32*)_staticres->loadRawDataBe32(lolExpRequirements, _expRequirementsSize);
_monsterModifiers = _staticres->loadRawDataBe16(lolMonsterModifiers, _monsterModifiersSize);
_monsterLevelOffs = (const int8*)_staticres->loadRawData(lolMonsterLevelOffsets, _monsterLevelOffsSize);
_monsterDirFlags = _staticres->loadRawData(lolMonsterDirFlags, _monsterDirFlagsSize);
_monsterScaleX = (const int8*)_staticres->loadRawData(lolMonsterScaleX, _monsterScaleXSize);
_monsterScaleY = (const int8*)_staticres->loadRawData(lolMonsterScaleY, _monsterScaleYSize);
_monsterScaleWH = _staticres->loadRawDataBe16(lolMonsterScaleWH, _monsterScaleWHSize);
_inventorySlotDesc = _staticres->loadRawDataBe16(lolInventoryDesc, _inventorySlotDescSize);
_levelShpList = _staticres->loadStrings(lolLevelShpList, _levelShpListSize);
_levelDatList = _staticres->loadStrings(lolLevelDatList, _levelDatListSize);
_compassDefs = _staticres->loadCompassData(lolCompassDefs, _compassDefsSize);
_charDefaults = _staticres->loadCharData(kLolCharacterDefs, _charDefaultsSize);
_ingameSoundIndex = (const uint16 *)_staticres->loadRawData(kLolIngameSfxIndex, _ingameSoundIndexSize);
_musicTrackMap = _staticres->loadRawData(kLolMusicTrackMap, _musicTrackMapSize);
_ingameGMSoundIndex = _staticres->loadRawData(kLolIngameGMSfxIndex, _ingameGMSoundIndexSize);
_ingameMT32SoundIndex = _staticres->loadRawData(kLolIngameMT32SfxIndex, _ingameMT32SoundIndexSize);
//_ingameADLSoundIndex = _staticres->loadRawData(kLolIngameADLSfxIndex, _ingameADLSoundIndexSize);
_spellProperties = _staticres->loadSpellData(kLolSpellProperties, _spellPropertiesSize);
_gameShapeMap = (const int8*)_staticres->loadRawData(kLolGameShapeMap, _gameShapeMapSize);
_charInvIndex = _staticres->loadRawData(kLolCharInvIndex, _charInvIndexSize);
_charInvDefs = (const int8*)_staticres->loadRawData(kLolCharInvDefs, _charInvDefsSize);
_charDefsMan = _staticres->loadRawDataBe16(kLolCharDefsMan, _charDefsManSize);
_charDefsWoman = _staticres->loadRawDataBe16(kLolCharDefsWoman, _charDefsWomanSize);
_charDefsKieran = _staticres->loadRawDataBe16(kLolCharDefsKieran, _charDefsKieranSize);
_charDefsAkshel = _staticres->loadRawDataBe16(kLolCharDefsAkshel, _charDefsAkshelSize);
_expRequirements = (const int32*)_staticres->loadRawDataBe32(kLolExpRequirements, _expRequirementsSize);
_monsterModifiers = _staticres->loadRawDataBe16(kLolMonsterModifiers, _monsterModifiersSize);
_monsterLevelOffs = (const int8*)_staticres->loadRawData(kLolMonsterLevelOffsets, _monsterLevelOffsSize);
_monsterDirFlags = _staticres->loadRawData(kLolMonsterDirFlags, _monsterDirFlagsSize);
_monsterScaleX = (const int8*)_staticres->loadRawData(kLolMonsterScaleX, _monsterScaleXSize);
_monsterScaleY = (const int8*)_staticres->loadRawData(kLolMonsterScaleY, _monsterScaleYSize);
_monsterScaleWH = _staticres->loadRawDataBe16(kLolMonsterScaleWH, _monsterScaleWHSize);
_inventorySlotDesc = _staticres->loadRawDataBe16(kLolInventoryDesc, _inventorySlotDescSize);
_levelShpList = _staticres->loadStrings(kLolLevelShpList, _levelShpListSize);
_levelDatList = _staticres->loadStrings(kLolLevelDatList, _levelDatListSize);
_compassDefs = _staticres->loadCompassData(kLolCompassDefs, _compassDefsSize);
_dscUnk1 = (const int8*)_staticres->loadRawData(lolDscUnk1, _dscUnk1Size);
_dscShapeIndex = (const int8*)_staticres->loadRawData(lolDscShapeIndex, _dscShapeIndexSize);
_dscOvlMap = _staticres->loadRawData(lolDscOvlMap, _dscOvlMapSize);
_dscShapeScaleW = _staticres->loadRawDataBe16(lolDscScaleWidthData, _dscShapeScaleWSize);
_dscShapeScaleH = _staticres->loadRawDataBe16(lolDscScaleHeightData, _dscShapeScaleHSize);
_dscShapeX = (const int16*)_staticres->loadRawDataBe16(lolDscX, _dscShapeXSize);
_dscShapeY = (const int8*)_staticres->loadRawData(lolDscY, _dscShapeYSize);
_dscTileIndex = _staticres->loadRawData(lolDscTileIndex, _dscTileIndexSize);
_dscUnk2 = _staticres->loadRawData(lolDscUnk2, _dscUnk2Size);
_dscDoorShpIndex = _staticres->loadRawData(lolDscDoorShapeIndex, _dscDoorShpIndexSize);
_dscDim1 = (const int8*)_staticres->loadRawData(lolDscDimData1, _dscDim1Size);
_dscDim2 = (const int8*)_staticres->loadRawData(lolDscDimData2, _dscDim2Size);
_dscBlockMap = _staticres->loadRawData(lolDscBlockMap, _dscBlockMapSize);
_dscDimMap = _staticres->loadRawData(lolDscDimMap, _dscDimMapSize);
_dscDoorMonsterScaleTable = _staticres->loadRawDataBe16(lolDscDoorScale, _dscDoorMonsterScaleTableSize);
_dscShapeOvlIndex = _staticres->loadRawData(lolDscOvlIndex, _dscShapeOvlIndexSize);
_dscDoor4 = _staticres->loadRawDataBe16(lolDscDoor4, _dscDoor4Size);
_dscBlockIndex = (const int8*)_staticres->loadRawData(lolDscBlockIndex, _dscBlockIndexSize);
_dscDoor1 = _staticres->loadRawData(lolDscDoor1, _dscDoor1Size);
_dscDoorMonsterX = (const int16*)_staticres->loadRawDataBe16(lolDscDoorX, _dscDoorMonsterXSize);
_dscDoorMonsterY = (const int16*)_staticres->loadRawDataBe16(lolDscDoorY, _dscDoorMonsterYSize);
_dscUnk1 = (const int8*)_staticres->loadRawData(kLolDscUnk1, _dscUnk1Size);
_dscShapeIndex = (const int8*)_staticres->loadRawData(kLolDscShapeIndex, _dscShapeIndexSize);
_dscOvlMap = _staticres->loadRawData(kLolDscOvlMap, _dscOvlMapSize);
_dscShapeScaleW = _staticres->loadRawDataBe16(kLolDscScaleWidthData, _dscShapeScaleWSize);
_dscShapeScaleH = _staticres->loadRawDataBe16(kLolDscScaleHeightData, _dscShapeScaleHSize);
_dscShapeX = (const int16*)_staticres->loadRawDataBe16(kLolDscX, _dscShapeXSize);
_dscShapeY = (const int8*)_staticres->loadRawData(kLolDscY, _dscShapeYSize);
_dscTileIndex = _staticres->loadRawData(kLolDscTileIndex, _dscTileIndexSize);
_dscUnk2 = _staticres->loadRawData(kLolDscUnk2, _dscUnk2Size);
_dscDoorShpIndex = _staticres->loadRawData(kLolDscDoorShapeIndex, _dscDoorShpIndexSize);
_dscDim1 = (const int8*)_staticres->loadRawData(kLolDscDimData1, _dscDim1Size);
_dscDim2 = (const int8*)_staticres->loadRawData(kLolDscDimData2, _dscDim2Size);
_dscBlockMap = _staticres->loadRawData(kLolDscBlockMap, _dscBlockMapSize);
_dscDimMap = _staticres->loadRawData(kLolDscDimMap, _dscDimMapSize);
_dscDoorMonsterScaleTable = _staticres->loadRawDataBe16(kLolDscDoorScale, _dscDoorMonsterScaleTableSize);
_dscShapeOvlIndex = _staticres->loadRawData(kLolDscOvlIndex, _dscShapeOvlIndexSize);
_dscDoor4 = _staticres->loadRawDataBe16(kLolDscDoor4, _dscDoor4Size);
_dscBlockIndex = (const int8*)_staticres->loadRawData(kLolDscBlockIndex, _dscBlockIndexSize);
_dscDoor1 = _staticres->loadRawData(kLolDscDoor1, _dscDoor1Size);
_dscDoorMonsterX = (const int16*)_staticres->loadRawDataBe16(kLolDscDoorX, _dscDoorMonsterXSize);
_dscDoorMonsterY = (const int16*)_staticres->loadRawDataBe16(kLolDscDoorY, _dscDoorMonsterYSize);
_scrollXTop = _staticres->loadRawData(lolScrollXTop, _scrollXTopSize);
_scrollYTop = _staticres->loadRawData(lolScrollYTop, _scrollYTopSize);
_scrollXBottom = _staticres->loadRawData(lolScrollXBottom, _scrollXBottomSize);
_scrollYBottom = _staticres->loadRawData(lolScrollYBottom, _scrollYBottomSize);
_scrollXTop = _staticres->loadRawData(kLolScrollXTop, _scrollXTopSize);
_scrollYTop = _staticres->loadRawData(kLolScrollYTop, _scrollYTopSize);
_scrollXBottom = _staticres->loadRawData(kLolScrollXBottom, _scrollXBottomSize);
_scrollYBottom = _staticres->loadRawData(kLolScrollYBottom, _scrollYBottomSize);
const char *const *tmpSndList = _staticres->loadStrings(lolIngameSfxFiles, _ingameSoundListSize);
const char *const *tmpSndList = _staticres->loadStrings(kLolIngameSfxFiles, _ingameSoundListSize);
_ingameSoundList = new char*[_ingameSoundListSize];
for (int i = 0; i < _ingameSoundListSize; i++) {
_ingameSoundList[i] = new char[strlen(tmpSndList[i]) + 1];
strcpy(_ingameSoundList[i], tmpSndList[i]);
}
_staticres->unloadId(lolIngameSfxFiles);
_staticres->unloadId(kLolIngameSfxFiles);
_buttonData = _staticres->loadButtonDefs(lolButtonDefs, _buttonDataSize);
_buttonList1 = (const int16*)_staticres->loadRawDataBe16(lolButtonList1, _buttonList1Size);
_buttonList2 = (const int16*)_staticres->loadRawDataBe16(lolButtonList2, _buttonList2Size);
_buttonList3 = (const int16*)_staticres->loadRawDataBe16(lolButtonList3, _buttonList3Size);
_buttonList4 = (const int16*)_staticres->loadRawDataBe16(lolButtonList4, _buttonList4Size);
_buttonList5 = (const int16*)_staticres->loadRawDataBe16(lolButtonList5, _buttonList5Size);
_buttonList6 = (const int16*)_staticres->loadRawDataBe16(lolButtonList6, _buttonList6Size);
_buttonList7 = (const int16*)_staticres->loadRawDataBe16(lolButtonList7, _buttonList7Size);
_buttonList8 = (const int16*)_staticres->loadRawDataBe16(lolButtonList8, _buttonList8Size);
_buttonData = _staticres->loadButtonDefs(kLolButtonDefs, _buttonDataSize);
_buttonList1 = (const int16*)_staticres->loadRawDataBe16(kLolButtonList1, _buttonList1Size);
_buttonList2 = (const int16*)_staticres->loadRawDataBe16(kLolButtonList2, _buttonList2Size);
_buttonList3 = (const int16*)_staticres->loadRawDataBe16(kLolButtonList3, _buttonList3Size);
_buttonList4 = (const int16*)_staticres->loadRawDataBe16(kLolButtonList4, _buttonList4Size);
_buttonList5 = (const int16*)_staticres->loadRawDataBe16(kLolButtonList5, _buttonList5Size);
_buttonList6 = (const int16*)_staticres->loadRawDataBe16(kLolButtonList6, _buttonList6Size);
_buttonList7 = (const int16*)_staticres->loadRawDataBe16(kLolButtonList7, _buttonList7Size);
_buttonList8 = (const int16*)_staticres->loadRawDataBe16(kLolButtonList8, _buttonList8Size);
}
void LoLEngine::assignButtonCallback(Button *button, int index) {
@ -1897,6 +1924,7 @@ void LoLEngine::assignButtonCallback(Button *button, int index) {
button->buttonCallback = buttonCallbacks[index];
}
#endif // ENABLE_LOL
const ScreenDim Screen_LoK::_screenDimTable[] = {
{ 0x00, 0x00, 0x28, 0xC8, 0x0F, 0x0C, 0x00, 0x00 },
@ -2851,6 +2879,7 @@ const int8 KyraEngine_MR::_albumWSAY[] = {
// 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 },
@ -2962,5 +2991,7 @@ const uint8 LoLEngine::_charInfoFrameTable[] = {
0x8, 0x9, 0xA, 0xB, 0xA, 0x9, 0x8, 0x7
};
#endif // ENABLE_LOL
} // End of namespace Kyra