aboutsummaryrefslogtreecommitdiff
path: root/tools/create_kyradat
diff options
context:
space:
mode:
authorFlorian Kagerer2008-08-02 23:11:31 +0000
committerFlorian Kagerer2008-08-02 23:11:31 +0000
commit4c74db446385611a158efcdab67a27107d8b20aa (patch)
tree53d89e48fc0c43451c27acd395849172a070cd8c /tools/create_kyradat
parentda2720d498c160c39435b42d9f1a18d2a0a328e1 (diff)
downloadscummvm-rg350-4c74db446385611a158efcdab67a27107d8b20aa.tar.gz
scummvm-rg350-4c74db446385611a158efcdab67a27107d8b20aa.tar.bz2
scummvm-rg350-4c74db446385611a158efcdab67a27107d8b20aa.zip
add non-interactive lol demo
svn-id: r33556
Diffstat (limited to 'tools/create_kyradat')
-rw-r--r--tools/create_kyradat/create_kyradat.cpp21
-rw-r--r--tools/create_kyradat/create_kyradat.h11
-rw-r--r--tools/create_kyradat/hof_demo.h5
-rw-r--r--tools/create_kyradat/lol_demo.h15
-rw-r--r--tools/create_kyradat/misc.h11
5 files changed, 51 insertions, 12 deletions
diff --git a/tools/create_kyradat/create_kyradat.cpp b/tools/create_kyradat/create_kyradat.cpp
index 173ba0f993..e4127303e1 100644
--- a/tools/create_kyradat/create_kyradat.cpp
+++ b/tools/create_kyradat/create_kyradat.cpp
@@ -31,7 +31,7 @@
#include "md5.h"
enum {
- kKyraDatVersion = 28,
+ kKyraDatVersion = 29,
kIndexSize = 12
};
@@ -53,6 +53,8 @@ enum {
#include "malcolm.h"
+#include "lol_demo.h"
+
const Game kyra1FanTranslations[] = {
{ kKyra1, IT_ITA, kTalkieVersion, "d0f1752098236083d81b9497bd2b6989", kyra1FreCD },
GAME_DUMMY_ENTRY
@@ -251,6 +253,11 @@ const ExtractFilename extractFilenames[] = {
{ k3ItemMagicTable, k3TypeRaw16to8, "ITEMMAGIC.MAP" },
{ k3ItemStringMap, kTypeRawData, "ITEMSTRINGS.MAP" },
+ // LANDS OF LORE
+
+ // Demo Sequence Player
+ { lSeqplayIntroTracks, k2TypeSoundList, "S_INTRO.TRA" },
+
{ -1, 0, 0 }
};
@@ -288,7 +295,7 @@ bool getFilename(char *dstFilename, const Game *g, const int id) {
void createFilename(char *dstFilename, const int gid, const int lang, const int special, const char *filename) {
strcpy(dstFilename, filename);
- static const char *gidExtensions[] = { "", ".K2", ".K3" };
+ static const char *gidExtensions[] = { "", ".K2", ".K3", 0, ".LOL" };
strcat(dstFilename, gidExtensions[gid]);
for (const SpecialExtension *specialE = specialTable; specialE->special != -1; ++specialE) {
@@ -311,7 +318,7 @@ void createLangFilename(char *dstFilename, const int gid, const int lang, const
}
}
- static const char *gidExtensions[] = { "", ".K2", ".K3" };
+ static const char *gidExtensions[] = { "", ".K2", ".K3", 0, ".LOL" };
strcat(dstFilename, gidExtensions[gid]);
for (const SpecialExtension *specialE = specialTable; specialE->special != -1; ++specialE) {
@@ -723,11 +730,11 @@ bool extractHofSeqData(PAKFile &out, const Game *g, const byte *data, const uint
controlOffs = 0;
WRITE_BE_UINT16(output, controlOffs);
- if (g->special != k2DemoVersion)
+ if (g->special != k2DemoVersion && g->special != k2DemoLol)
ptr += 4;
output += 2;
- if (g->special != k2DemoVersion) {
+ if (g->special != k2DemoVersion && g->special != k2DemoLol) {
for (int w = 0; w < 2; w++) { //startupCommand, finalCommand
WRITE_BE_UINT16(output, READ_LE_UINT16(ptr));
ptr += 2;
@@ -1065,7 +1072,7 @@ uint32 getFeatures(const Game *g) {
if (g->special == kTalkieVersion || g->special == k2CDFile1E || g->special == k2CDFile1F || g->special == k2CDFile1G || g->special == k2CDFile2E || g->special == k2CDFile2F || g->special == k2CDFile2G || g->game == kKyra3)
features |= GF_TALKIE;
- else if (g->special == kDemoVersion || g->special == k2DemoVersion)
+ else if (g->special == kDemoVersion || g->special == k2DemoVersion || g->special == k2DemoLol)
features |= GF_DEMO;
else if (g->special == kFMTownsVersionE || g->special == kFMTownsVersionJ ||
g->special == k2TownsFile1E || g->special == k2TownsFile1J ||
@@ -1344,6 +1351,8 @@ const Game *gameDescs[] = {
kyra3Games,
+ lolDemos,
+
0
};
diff --git a/tools/create_kyradat/create_kyradat.h b/tools/create_kyradat/create_kyradat.h
index c8bcb7d583..62dac117b4 100644
--- a/tools/create_kyradat/create_kyradat.h
+++ b/tools/create_kyradat/create_kyradat.h
@@ -174,6 +174,8 @@ enum kExtractID {
k3ItemMagicTable,
k3ItemStringMap,
+ lSeqplayIntroTracks,
+
kMaxResIDs
};
@@ -212,10 +214,10 @@ enum kSpecial {
k2FloppyFile2 = 16,
k2DemoVersion = 17,
-
k2DemoVersionTlkE = 18,
k2DemoVersionTlkF = 19,
- k2DemoVersionTlkG = 20
+ k2DemoVersionTlkG = 20,
+ k2DemoLol = 21
};
struct SpecialExtension {
@@ -225,8 +227,9 @@ struct SpecialExtension {
enum kGame {
kKyra1 = 0,
- kKyra2,
- kKyra3
+ kKyra2 = 1,
+ kKyra3 = 2,
+ kLol = 4
};
struct Game {
diff --git a/tools/create_kyradat/hof_demo.h b/tools/create_kyradat/hof_demo.h
index f7b15ffa3d..2eaaa3c413 100644
--- a/tools/create_kyradat/hof_demo.h
+++ b/tools/create_kyradat/hof_demo.h
@@ -26,7 +26,8 @@ const Game kyra2Demos[] = {
{ kKyra2, EN_ANY, k2DemoVersion, "a620a37579dd44ab0403482285e3897f", kyra2Demo},
{ kKyra2, EN_ANY, k2CDFile2E, "fa54d8abfe05f9186c05f7de7eaf1480", kyra2DemoCDE},
{ kKyra2, FR_FRA, k2CDFile2F, "fa54d8abfe05f9186c05f7de7eaf1480", kyra2DemoCDF},
- { kKyra2, DE_DEU, k2CDFile2G, "fa54d8abfe05f9186c05f7de7eaf1480", kyra2DemoCDG},
-
+ { kKyra2, DE_DEU, k2CDFile2G, "fa54d8abfe05f9186c05f7de7eaf1480", kyra2DemoCDG},
GAME_DUMMY_ENTRY
};
+
+
diff --git a/tools/create_kyradat/lol_demo.h b/tools/create_kyradat/lol_demo.h
new file mode 100644
index 0000000000..ce114f4e73
--- /dev/null
+++ b/tools/create_kyradat/lol_demo.h
@@ -0,0 +1,15 @@
+const ExtractEntry lolDemo[] = {
+ { k2SeqplayPakFiles, 0x0001AC10, 0x0001AC1C },
+ { k2SeqplayStrings, 0x0001B5EE, 0x0001B6F0 },
+ { k2SeqplaySfxFiles, 0x0001B6F0, 0x0001B7B5 },
+ { k2SeqplaySeqData, 0x0001B320, 0x0001B56C },
+ { lSeqplayIntroTracks, 0x0001B7B5, 0x0001B7CF },
+ { -1, 0, 0 }
+};
+
+const Game lolDemos[] = {
+ { kLol, EN_ANY, k2DemoLol, "30bb5af87d38adb47d3e6ce06b1cb042", lolDemo},
+ GAME_DUMMY_ENTRY
+};
+
+
diff --git a/tools/create_kyradat/misc.h b/tools/create_kyradat/misc.h
index 1e1cd29cc9..836cc3954c 100644
--- a/tools/create_kyradat/misc.h
+++ b/tools/create_kyradat/misc.h
@@ -472,6 +472,15 @@ const int kyra3Need[] = {
-1
};
+const int lolDemoNeed[] = {
+ k2SeqplayPakFiles,
+ k2SeqplayStrings,
+ k2SeqplaySeqData,
+ k2SeqplaySfxFiles,
+ lSeqplayIntroTracks,
+ -1
+};
+
const GameNeed gameNeedTable[] = {
{ kKyra1, -1, kyra1FloppyNeed },
{ kKyra1, kTalkieVersion, kyra1CDNeed },
@@ -496,6 +505,7 @@ const GameNeed gameNeedTable[] = {
{ kKyra2, k2DemoVersionTlkE, kyra2TlkDemoNeed},
{ kKyra2, k2DemoVersionTlkF, kyra2TlkDemoNeed},
{ kKyra2, k2DemoVersionTlkG, kyra2TlkDemoNeed},
+ { kLol, k2DemoLol, lolDemoNeed},
{ kKyra3, -1, kyra3Need },
@@ -520,6 +530,7 @@ const SpecialExtension specialTable[] = {
{ k2TownsFile2E, "TNS" },
{ k2TownsFile2J, "TNS" },
{ k2DemoVersion, "DEM" },
+ { k2DemoLol, "DEM" },
{ -1, 0 }
};