From 64228b19731b1995eee7e75ef7849849fdd36525 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Tue, 9 Sep 2008 15:59:52 +0000 Subject: New version of the create_drascula tool svn-id: r34465 --- tools/create_drascula/create_drascula.cpp | 12 +++- tools/create_drascula/create_drascula.h | 26 ++++++++ tools/create_drascula/staticdata.h | 98 +++++++++++++++++++++++++++++++ 3 files changed, 135 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3