aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2008-09-09 15:59:52 +0000
committerFilippos Karapetis2008-09-09 15:59:52 +0000
commit64228b19731b1995eee7e75ef7849849fdd36525 (patch)
tree58a3bf61e11163d97019cb9b6389ff60c15fabe2
parent932399481a4463eb3f7a018913b2d7330a292c12 (diff)
downloadscummvm-rg350-64228b19731b1995eee7e75ef7849849fdd36525.tar.gz
scummvm-rg350-64228b19731b1995eee7e75ef7849849fdd36525.tar.bz2
scummvm-rg350-64228b19731b1995eee7e75ef7849849fdd36525.zip
New version of the create_drascula tool
svn-id: r34465
-rw-r--r--tools/create_drascula/create_drascula.cpp12
-rw-r--r--tools/create_drascula/create_drascula.h26
-rw-r--r--tools/create_drascula/staticdata.h98
3 files changed, 135 insertions, 1 deletions
diff --git a/tools/create_drascula/create_drascula.cpp b/tools/create_drascula/create_drascula.cpp
index 2676376e42..4917b1cb32 100644
--- a/tools/create_drascula/create_drascula.cpp
+++ b/tools/create_drascula/create_drascula.cpp
@@ -38,7 +38,7 @@
#include "create_drascula.h"
#include "staticdata.h"
-#define DRASCULA_DAT_VER 2 // 1 byte
+#define DRASCULA_DAT_VER 3 // 1 byte
static void writeByte(FILE *fp, uint8 b) {
fwrite(&b, 1, 1, fp);
@@ -172,6 +172,16 @@ int main(int argc, char *argv[]) {
writeSint16BE(outFile, roomActions[i].speechID);
}
+ // Write talk sequences
+ writeUint16BE(outFile, ARRAYSIZE(talkSequences));
+
+ for (i = 0; i < ARRAYSIZE(talkSequences); i++) {
+ writeSint16BE(outFile, talkSequences[i].chapter);
+ writeSint16BE(outFile, talkSequences[i].sequence);
+ writeSint16BE(outFile, talkSequences[i].commandType);
+ writeSint16BE(outFile, talkSequences[i].action);
+ }
+
// langs
writeUint16BE(outFile, NUM_LANGS);
diff --git a/tools/create_drascula/create_drascula.h b/tools/create_drascula/create_drascula.h
index ed81651e86..6b4ad9ee95 100644
--- a/tools/create_drascula/create_drascula.h
+++ b/tools/create_drascula/create_drascula.h
@@ -93,5 +93,31 @@ struct RoomUpdate {
int type; // 0 - background, 1 - rect
};
+enum TalkSequenceCommands {
+ kPause = 0,
+ kSetFlag = 1,
+ kClearFlag = 2,
+ kPickObject = 3,
+ kAddObject = 4,
+ kBreakOut = 5,
+ kTalkerGeneral = 6,
+ kTalkerDrunk = 7,
+ kTalkerPianist = 8,
+ kTalkerBJ = 9,
+ kTalkerVBNormal = 10,
+ kTalkerVBDoor = 11,
+ kTalkerIgorSeated = 12,
+ kTalkerWerewolf = 13,
+ kTalkerMus = 14,
+ kTalkerDrascula = 15,
+ kTalkerBartender = 16
+};
+
+struct TalkSequenceCommand {
+ int chapter;
+ int sequence;
+ int commandType;
+ int action;
+};
#endif /* CREATE_DRASCULA_H */
diff --git a/tools/create_drascula/staticdata.h b/tools/create_drascula/staticdata.h
index 67a1e1abcf..7364c5f89c 100644
--- a/tools/create_drascula/staticdata.h
+++ b/tools/create_drascula/staticdata.h
@@ -636,6 +636,104 @@ RoomTalkAction roomActions[] = {
};
+TalkSequenceCommand talkSequences[] = {
+ // Chapter, sequence, command type, action
+ { 1, 10, kTalkerDrunk, 1 },
+ { 1, 11, kTalkerDrunk, 2 },
+ { 1, 12, kTalkerDrunk, 3 },
+ //
+ { 2, 8, kTalkerPianist, 6 },
+ { 2, 8, kTalkerGeneral, 358 },
+ { 2, 8, kTalkerPianist, 7 },
+ { 2, 8, kTalkerPianist, 8 },
+ { 2, 9, kTalkerPianist, 9 },
+ { 2, 9, kTalkerPianist, 10 },
+ { 2, 9, kTalkerPianist, 11 },
+ { 2, 10, kTalkerPianist, 12 },
+ { 2, 10, kTalkerGeneral, 361 },
+ { 2, 10, kPause, 40 },
+ { 2, 10, kTalkerPianist, 13 },
+ { 2, 10, kTalkerGeneral, 362 },
+ { 2, 10, kTalkerPianist, 14 },
+ { 2, 10, kTalkerGeneral, 363 },
+ { 2, 10, kTalkerPianist, 15 },
+ { 2, 10, kTalkerGeneral, 364 },
+ { 2, 10, kTalkerPianist, 16 },
+ { 2, 10, kTalkerGeneral, 365 },
+ { 2, 15, kTalkerDrunk, 8 },
+ { 2, 15, kPause, 7 },
+ { 2, 15, kTalkerDrunk, 9 },
+ { 2, 15, kTalkerDrunk, 10 },
+ { 2, 15, kTalkerDrunk, 11 },
+ { 2, 17, kTalkerDrunk, 13 },
+ { 2, 17, kTalkerDrunk, 14 },
+ { 2, 17, kSetFlag, 40 },
+ { 2, 19, kTalkerVBDoor, 5 },
+ { 2, 21, kTalkerVBDoor, 6 },
+ { 2, 28, kTalkerVBNormal, 27 },
+ { 2, 28, kTalkerVBNormal, 28 },
+ { 2, 28, kTalkerVBNormal, 29 },
+ { 2, 28, kTalkerVBNormal, 30 },
+ { 2, 30, kTalkerVBNormal, 31 },
+ { 2, 30, kTalkerGeneral, 396 },
+ //
+ { 4, 2, kTalkerIgorSeated, 16 },
+ { 4, 2, kTalkerGeneral, 278 },
+ { 4, 2, kTalkerIgorSeated, 17 },
+ { 4, 2, kTalkerGeneral, 279 },
+ { 4, 2, kTalkerIgorSeated, 18 },
+ { 4, 3, kTalkerIgorSeated, 19 },
+ { 4, 3, kTalkerIgorSeated, 20 },
+ { 4, 3, kTalkerGeneral, 281 },
+ { 4, 4, kTalkerGeneral, 287 },
+ { 4, 4, kTalkerIgorSeated, 21 },
+ { 4, 4, kTalkerGeneral, 284 },
+ { 4, 4, kTalkerIgorSeated, 22 },
+ { 4, 4, kTalkerGeneral, 285 },
+ { 4, 4, kTalkerIgorSeated, 23 },
+ //
+ { 5, 2, kTalkerBJ, 22 },
+ { 5, 3, kTalkerBJ, 23 },
+ { 5, 3, kPickObject, 10 },
+ { 5, 3, kBreakOut, 1 },
+ { 5, 6, kTalkerWerewolf, 9 },
+ { 5, 6, kTalkerGeneral, 234 },
+ { 5, 7, kTalkerWerewolf, 10 },
+ { 5, 7, kTalkerGeneral, 236 },
+ { 5, 7, kTalkerWerewolf, 11 },
+ { 5, 7, kTalkerWerewolf, 12 },
+ { 5, 7, kTalkerWerewolf, 13 },
+ { 5, 7, kPause, 34 },
+ { 5, 7, kTalkerWerewolf, 14 },
+ { 5, 8, kTalkerWerewolf, 15 },
+ { 5, 8, kTalkerGeneral, 238 },
+ { 5, 8, kTalkerWerewolf, 16 },
+ { 5, 15, kTalkerMus, 4 },
+ { 5, 15, kTalkerMus, 5 },
+ { 5, 15, kTalkerMus, 6 },
+ { 5, 15, kTalkerGeneral, 291 },
+ { 5, 15, kTalkerMus, 7 },
+ { 5, 16, kTalkerMus, 8 },
+ { 5, 17, kTalkerMus, 9 },
+ //
+ { 6, 2, kTalkerDrascula, 24 },
+ { 6, 3, kTalkerDrascula, 24 },
+ { 6, 4, kTalkerDrascula, 25 },
+ { 6, 11, kTalkerBartender, 10 },
+ { 6, 11, kTalkerGeneral, 268 },
+ { 6, 11, kTalkerBartender, 11 },
+ { 6, 12, kTalkerBartender, 12 },
+ { 6, 12, kTalkerGeneral, 270 },
+ { 6, 12, kTalkerBartender, 13 },
+ { 6, 12, kTalkerBartender, 14 },
+ { 6, 13, kTalkerBartender, 15 },
+ { 6, 14, kTalkerBartender, 24 },
+ { 6, 14, kAddObject, 21 },
+ { 6, 14, kSetFlag, 10 },
+ { 6, 14, kBreakOut, 1 },
+ { 6, 15, kTalkerBartender, 16 }
+};
+
const char *_text[NUM_LANGS][NUM_TEXT] = {
{
// 0