From 60f287c85d146c0bc8eca96fb9570036426c4ec1 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Wed, 4 Jan 2012 22:59:21 +1100 Subject: MORTEVIELLE: New create_mortdat project to create a mort.dat data file At the moment, this extracts needed font data from the mort.com executable. --- devtools/create_mortdat/create_mortdat.cpp | 152 +++++++++++++++++++++++++++++ devtools/create_mortdat/module.mk | 11 +++ 2 files changed, 163 insertions(+) create mode 100644 devtools/create_mortdat/create_mortdat.cpp create mode 100644 devtools/create_mortdat/module.mk (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp new file mode 100644 index 0000000000..62b81806bc --- /dev/null +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -0,0 +1,152 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * This is a utility for extracting needed resource data from different language + * version of the Lure of the Temptress lure.exe executable files into a new file + * lure.dat - this file is required for the ScummVM Lure of the Temptress module + * to work properly + */ + +// Disable symbol overrides so that we can use system headers. +#define FORBIDDEN_SYMBOL_ALLOW_ALL + +// HACK to allow building with the SDL backend on MinGW +// see bug #1800764 "TOOLS: MinGW tools building broken" +#ifdef main +#undef main +#endif // main + +#include +#include +#include + +#include "common/endian.h" + +enum AccessMode { + kFileReadMode = 1, + kFileWriteMode = 2 +}; + +class File { +private: + FILE *f; +public: + bool open(const char *filename, AccessMode mode = kFileReadMode) { + f = fopen(filename, (mode == kFileReadMode) ? "rb" : "wb"); + return (f != NULL); + } + void close() { + fclose(f); + f = NULL; + } + int seek(int32 offset, int whence = SEEK_SET) { + return fseek(f, offset, whence); + } + long read(void *buffer, int len) { + return fread(buffer, 1, len, f); + } + void write(const void *buffer, int len) { + fwrite(buffer, 1, len, f); + } + byte readByte() { + byte v; + read(&v, sizeof(byte)); + return v; + } + uint16 readWord() { + uint16 v; + read(&v, sizeof(uint16)); + return FROM_LE_16(v); + } + uint32 readLong() { + uint32 v; + read(&v, sizeof(uint32)); + return FROM_LE_32(v); + } + void writeByte(byte v) { + write(&v, sizeof(byte)); + } + void writeWord(uint16 v) { + uint16 vTemp = TO_LE_16(v); + write(&vTemp, sizeof(uint16)); + } + void writeLong(uint32 v) { + uint32 vTemp = TO_LE_32(v); + write(&vTemp, sizeof(uint32)); + } + uint32 pos() { + return ftell(f); + } +}; + +File outputFile, mortCom; + +/*-------------------------------------------------------------------------*/ + +#define VERSION_MAJOR 1 +#define VERSION_MINOR 0 + +void openOutputFile(const char *outFilename) { + outputFile.open(outFilename, kFileWriteMode); + + // Write header + outputFile.write("mort", 4); + outputFile.writeByte(VERSION_MAJOR); + outputFile.writeByte(VERSION_MINOR); +} + +void process() { + byte checkBuffer[7]; + byte fontBuffer[121 * 6]; + + // Move to just prior the font data and verify that we're reading the known mort.com + mortCom.seek(0x36b0); + mortCom.read(checkBuffer, 7); + + if ((checkBuffer[0] != 0x59) || (checkBuffer[1] != 0x5B) || (checkBuffer[2] != 0x58) || + (checkBuffer[3] != 0xC3) || (checkBuffer[4] != 0xE8) || (checkBuffer[5] != 0xD6) || + (checkBuffer[6] != 0x02)) { + printf("Invalid mort.com input file"); + exit(0); + } + + // Read in the data + mortCom.read(fontBuffer, 121 * 6); + + // Write out a section header to the output file and the font data + char fontHeader[4] = { 'F', 'O', 'N', 'T' }; + outputFile.write(fontHeader, 4); + outputFile.write(fontBuffer, 121 * 6); +} + +int main(int argc, char *argv[]) { + if (argc != 3) { + printf("Format: input_filename output_filename\n", argv[0]); + exit(0); + } + + mortCom.open(argv[1], kFileReadMode); + openOutputFile(argv[2]); + + process(); + + mortCom.close(); + outputFile.close(); +} diff --git a/devtools/create_mortdat/module.mk b/devtools/create_mortdat/module.mk new file mode 100644 index 0000000000..86b14d8284 --- /dev/null +++ b/devtools/create_mortdat/module.mk @@ -0,0 +1,11 @@ + +MODULE := devtools/create_mortdat + +MODULE_OBJS := \ + create_mortdat.o \ + +# Set the name of the executable +TOOL_EXECUTABLE := create_mortdat + +# Include common rules +include $(srcdir)/rules.mk -- cgit v1.2.3 From 1727798a8ea95574ecf6d43ec2fc071b6cb87d0b Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 5 Jan 2012 07:56:45 +1100 Subject: MORTEVIELLE: Implemented loading of the font data, and rewrote drawing routines to use it. --- devtools/create_mortdat/create_mortdat.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 62b81806bc..aa7da0169a 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -107,7 +107,7 @@ void openOutputFile(const char *outFilename) { outputFile.open(outFilename, kFileWriteMode); // Write header - outputFile.write("mort", 4); + outputFile.write("MORT", 4); outputFile.writeByte(VERSION_MAJOR); outputFile.writeByte(VERSION_MINOR); } @@ -132,7 +132,9 @@ void process() { // Write out a section header to the output file and the font data char fontHeader[4] = { 'F', 'O', 'N', 'T' }; - outputFile.write(fontHeader, 4); + outputFile.write(fontHeader, 4); // Section Id + outputFile.writeWord(121 * 6); // Section size + outputFile.write(fontBuffer, 121 * 6); } -- cgit v1.2.3 From 74d6a7bd01133d89ffde196dfcd339679ac8ee14 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 29 Jan 2012 21:17:12 +1100 Subject: MORTEVIELLE: Creation of a tool to extract game strings --- devtools/extract_mort/extract_mort.cpp | 373 +++++++++++++++++++++++++++++++++ devtools/extract_mort/module.mk | 11 + 2 files changed, 384 insertions(+) create mode 100644 devtools/extract_mort/extract_mort.cpp create mode 100644 devtools/extract_mort/module.mk (limited to 'devtools') diff --git a/devtools/extract_mort/extract_mort.cpp b/devtools/extract_mort/extract_mort.cpp new file mode 100644 index 0000000000..9e5641759b --- /dev/null +++ b/devtools/extract_mort/extract_mort.cpp @@ -0,0 +1,373 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * This is a utility for extracting needed resource data from different language + * version of the Lure of the Temptress lure.exe executable files into a new file + * lure.dat - this file is required for the ScummVM Lure of the Temptress module + * to work properly + */ + +// Disable symbol overrides so that we can use system headers. +#define FORBIDDEN_SYMBOL_ALLOW_ALL + +// HACK to allow building with the SDL backend on MinGW +// see bug #1800764 "TOOLS: MinGW tools building broken" +#ifdef main +#undef main +#endif // main + +#include +#include +#include + +#include "common/endian.h" + +enum AccessMode { + kFileReadMode = 1, + kFileWriteMode = 2 +}; + +class File { +private: + FILE *f; +public: + bool open(const char *filename, AccessMode mode = kFileReadMode) { + f = fopen(filename, (mode == kFileReadMode) ? "rb" : "wb"); + return (f != NULL); + } + void close() { + fclose(f); + f = NULL; + } + int seek(int32 offset, int whence = SEEK_SET) { + return fseek(f, offset, whence); + } + long read(void *buffer, int len) { + return fread(buffer, 1, len, f); + } + void write(const void *buffer, int len) { + fwrite(buffer, 1, len, f); + } + byte readByte() { + byte v; + read(&v, sizeof(byte)); + return v; + } + uint16 readWord() { + uint16 v; + read(&v, sizeof(uint16)); + return FROM_LE_16(v); + } + uint32 readLong() { + uint32 v; + read(&v, sizeof(uint32)); + return FROM_LE_32(v); + } + void readString(char *sLine) { + while ((*sLine = readByte()) != '\n') + ++sLine; + + *sLine = '\0'; + } + void writeByte(byte v) { + write(&v, sizeof(byte)); + } + void writeWord(uint16 v) { + uint16 vTemp = TO_LE_16(v); + write(&vTemp, sizeof(uint16)); + } + void writeLong(uint32 v) { + uint32 vTemp = TO_LE_32(v); + write(&vTemp, sizeof(uint32)); + } + void writeString(const char *s) { + fprintf(f, "%s", s); + } + uint32 pos() { + return ftell(f); + } + uint32 size() { + int pos = ftell(f); + fseek (f, 0, SEEK_END); + int end = ftell (f); + fseek (f, pos, SEEK_SET); + + return end; + } +}; + +File textFile, txxInp, txxNtp; + +/*-------------------------------------------------------------------------*/ + +#define BUFFER_SIZE 32768 + +const byte tabdr[32] = { + 32, 101, 115, 97, 114, 105, 110, + 117, 116, 111, 108, 13, 100, 99, + 112, 109, 46, 118, 130, 39, 102, + 98, 44, 113, 104, 103, 33, 76, + 85, 106, 30, 31 +}; + +const byte tab30[32] = { + 69, 67, 74, 138, 133, 120, 77, 122, + 121, 68, 65, 63, 73, 80, 83, 82, + 156, 45, 58, 79, 49, 86, 78, 84, + 71, 81, 64, 66, 135, 34, 136, 91 +}; + +const byte tab31[32]= { + 93, 47, 48, 53, 50, 70, 124, 75, + 72, 147, 140, 150, 151, 57, 56, 51, + 107, 139, 55, 89, 131, 37, 54, 88, + 119, 0, 0, 0, 0, 0, 0, 0 +}; + +/** + * Extracts a single character from the game data + */ +static void extractCharacter(unsigned char &c, int &idx, int &pt, bool &the_end, const uint16 *strData) { + uint16 oct, ocd; + + /* 5-8 */ + oct = FROM_LE_16(strData[idx]); + + oct = ((uint16)(oct << (16 - pt))) >> (16 - pt); + if (pt < 6) { + idx = idx + 1; + oct = oct << (5 - pt); + pt = pt + 11; + oct = oct | (FROM_LE_16(strData[idx]) >> pt); + } else { + pt = pt - 5; + oct = (uint)oct >> pt; + } + + switch (oct) { + case 11 : { + c = '$'; + the_end = true; + } + break; + case 30: + case 31 : { + ocd = FROM_LE_16(strData[idx]); + ocd = (uint16)(ocd << (16 - pt)) >> (16 - pt); + if (pt < 6) { + idx = idx + 1; + ocd = ocd << (5 - pt); + pt = pt + 11; + ocd = ocd | (FROM_LE_16(strData[idx]) >> pt); + } else { + pt = pt - 5; + ocd = (uint)ocd >> pt; + } + if (oct == 30) + c = (char)tab30[ocd]; + else + c = (char)tab31[ocd]; + + if (c == '\0') { + the_end = true; + } + } + break; + default: + c = (char)tabdr[oct]; + } +} + +/** + * Puts a compressed 5-bit value into the string data buffer + */ +static void addCompressedValue(int oct, int &indis, int &point, uint16 *strData) { + // Write out the part of the value that fits into the current word + if (point < 5) + strData[indis] |= oct >> (5 - point); + else + strData[indis] |= oct << (point - 5); + + // Handling of there's any overlap into the next word + if (point < 5) { + // Overlapping into next word + ++indis; + + // Get the bits that fall into the next word and set it + int remainder = oct & ((1 << (5 - point)) - 1); + strData[indis] |= remainder << (16 - (5 - point)); + + point += -5 + 16; + } else { + point -= 5; + if (point == 0) { + point = 16; + ++indis; + } + } +} + +/** + * Compresses a single passed character and stores it in the compressed strings buffer + */ +static void compressCharacter(unsigned char ch, int &indis, int &point, uint16 *strData) { + if (ch == '$') { + // End of string + addCompressedValue(11, indis, point, strData); + return; + } + + // Scan through the tabdr array for a match + for (int idx = 0; idx < 30; ++idx) { + if ((idx != 11) && (tabdr[idx] == ch)) { + addCompressedValue(idx, indis, point, strData); + return; + } + } + + // Scan through the tab30 array + for (int idx = 0; idx < 32; ++idx) { + if (tab30[idx] == ch) { + addCompressedValue(30, indis, point, strData); + addCompressedValue(idx, indis, point, strData); + return; + } + } + + // Scan through the tab31 array + for (int idx = 0; idx < 32; ++idx) { + if (tab31[idx] == ch) { + addCompressedValue(31, indis, point, strData); + addCompressedValue(idx, indis, point, strData); + return; + } + } + + printf("Encountered invalid character '%c' when compressing strings\n", ch); + exit(1); +} + +/** + * string extractor + */ +static void export_strings(const char *textFilename) { + char buffer[BUFFER_SIZE]; + uint16 *strData; + + // Open input and output files + txxInp.open("TXX.INP", kFileReadMode); + txxNtp.open("TXX.NTP", kFileReadMode); + textFile.open(textFilename, kFileWriteMode); + + // Read all the compressed string data into a buffer + strData = (uint16 *)malloc(txxInp.size()); + txxInp.read(strData, txxInp.size()); + + // Loop through getting each string + for (unsigned int strIndex = 0; strIndex < (txxNtp.size() / 3); ++strIndex) { + int indis = txxNtp.readWord(); + int point = txxNtp.readByte(); + + // Extract the string + int charIndex = 0; + unsigned char ch; + bool endFlag = false; + do { + extractCharacter(ch, indis, point, endFlag, strData); + buffer[charIndex++] = ch; + if (ch == BUFFER_SIZE) { + printf("Extracted string exceeded allowed buffer size.\n"); + exit(1); + } + } while (!endFlag); + + // Write out the string + buffer[charIndex++] = '\n'; + buffer[charIndex] = '\0'; + textFile.writeString(buffer); + } + + // Close the files and free the buffer + free(strData); + txxInp.close(); + txxNtp.close(); + textFile.close(); +} + +/** + * string importer + */ +static void import_strings(const char *textFilename) { + // Open input and output files + txxInp.open("TXX.INP", kFileWriteMode); + txxNtp.open("TXX.NTP", kFileWriteMode); + textFile.open(textFilename, kFileReadMode); + + // Set up a buffer for the output compressed strings + uint16 strData[BUFFER_SIZE]; + memset(strData, 0, BUFFER_SIZE); + char sLine[BUFFER_SIZE]; + + int indis = 0; + int point = 16; + + while (textFile.pos() < textFile.size()) { + // Read in the next source line + textFile.readString(sLine); + + // Write out the index entry for the string + txxNtp.writeWord(indis); + txxNtp.writeByte(point); + + // Loop through writing out the characters to the compressed data buffer + char *s = sLine; + while (*s) { + compressCharacter(*s, indis, point, strData); + ++s; + } + } + + // Write out the compressed data + if (point != 16) + ++indis; + txxInp.write(strData, indis); + + // Close the files + txxInp.close(); + txxNtp.close(); + textFile.close(); +} + + +int main(int argc, char *argv[]) { + if (argc != 3) { + printf("Format: %s export|import output_file\n", argv[0]); + printf("The program must be run from the directory with the Mortville Manor game files.\n"); + exit(0); + } + + // Do the processing + if (!strcmp(argv[1], "export")) + export_strings(argv[2]); + else if (!strcmp(argv[1], "import")) + import_strings(argv[2]); + else + printf("Unknown operation specified\n"); +} diff --git a/devtools/extract_mort/module.mk b/devtools/extract_mort/module.mk new file mode 100644 index 0000000000..cbdcd251d9 --- /dev/null +++ b/devtools/extract_mort/module.mk @@ -0,0 +1,11 @@ + +MODULE := devtools/extract_mort + +MODULE_OBJS := \ + extract_mort.o \ + +# Set the name of the executable +TOOL_EXECUTABLE := extract_mort + +# Include common rules +include $(srcdir)/rules.mk -- cgit v1.2.3 From 42ff1a89db077ede823425c75339ad235f047916 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 29 Jan 2012 22:16:15 +1100 Subject: MORTEVIELLE: Minor bugfixes to string extraction tool --- devtools/extract_mort/extract_mort.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/extract_mort/extract_mort.cpp b/devtools/extract_mort/extract_mort.cpp index 9e5641759b..192ea50723 100644 --- a/devtools/extract_mort/extract_mort.cpp +++ b/devtools/extract_mort/extract_mort.cpp @@ -296,6 +296,9 @@ static void export_strings(const char *textFilename) { printf("Extracted string exceeded allowed buffer size.\n"); exit(1); } + + if (indis >= (txxInp.size() / 2)) + endFlag = true; } while (!endFlag); // Write out the string @@ -347,7 +350,7 @@ static void import_strings(const char *textFilename) { // Write out the compressed data if (point != 16) ++indis; - txxInp.write(strData, indis); + txxInp.write(strData, indis * 2); // Close the files txxInp.close(); -- cgit v1.2.3 From e57a6a8c07bac4d9b69d89baca638beda34485d6 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 12 Feb 2012 19:36:13 +1100 Subject: MORTEVIELLE: Added list of static executable strings to create_mortdat tool --- devtools/create_mortdat/create_mortdat.cpp | 164 ++++++++++++++++++++++++++++- 1 file changed, 163 insertions(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index aa7da0169a..773ddaeeed 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -91,6 +91,9 @@ public: uint32 vTemp = TO_LE_32(v); write(&vTemp, sizeof(uint32)); } + void writeString(const char *s) { + write(s, strlen(s) + 1); + } uint32 pos() { return ftell(f); } @@ -112,7 +115,10 @@ void openOutputFile(const char *outFilename) { outputFile.writeByte(VERSION_MINOR); } -void process() { +/** + * Write out the data for the font + */ +void writeFontBlock() { byte checkBuffer[7]; byte fontBuffer[121 * 6]; @@ -138,6 +144,162 @@ void process() { outputFile.write(fontBuffer, 121 * 6); } +void writeStaticStrings(const char **strings, int languageId) { + // Write out a section header + char sStaticStrings[4] = { 'S', 'S', 'T', 'R' }; + outputFile.write(sStaticStrings, 4); + + // Figure out the block size + int blockSize = 1; + const char **s = &strings[0]; + while (*s) { + blockSize += strlen(*s) + 1; + ++s; + } + + outputFile.writeWord(blockSize); + + // Write out a byte indicating the language for this block + outputFile.writeByte(languageId); + + // Write out each of the strings + s = &strings[0]; + while (*s) { + outputFile.writeString(*s); + ++s; + } +} + +/** + * Write out the French strings previously hard-coded into the application + */ +void writeEnglishStaticStrings() { + const char *string_list[] = { + "[2][ ][YES][NO]", + "Go to", + "Someone enters, looks surised, but says nothing", + "Cool", + " Lourde ", + "Malsaine", + "Idem", + "You", + "are", + "Alone", + + "Gosh! You hear some noise...", + " | You should have noticed, | ", + "% of hints...", + "Do you want to wake up?", + "OK", + "", + " Save", + + " Load", + " Restart ", + "F3: More", + "F8: Restart", + "Hide self", + "take", + " probe ", + " raise ", + " -SUITE- ", + " -STOP- ", + "[1] [So, use the DEP menu] [Ok]", + "lift", + "read", + + "look", + "search", + "open", + "put", + "turn", + "tie", + "close", + "hit", + "pose", + "smash", + + "smell", + "scratch", + "probe", + "[1] [ | Before, use the DEP menu...] [Ok]", + "& day", + NULL + }; + + writeStaticStrings(string_list, 1); +} + +/** + * Write out the French strings previously hard-coded into the application + */ +void writeFrenchStaticStrings() { + const char *string_list[] = { + "[2][ ][OUI][NON]", + "aller", + "quelqu'un entre, parait ‚tonn‚ mais ne dit rien", + "Cool", + " Lourde ", + "Malsaine", + "Idem", + "Vous", + "ˆtes", + "SEUL", + + "Mince! Vous entendez du bruit...", + " | Vous devriez avoir remarqu‚| ", + "% des indices...", + "D‚sirez-vous vous r‚veiller?", + "OK", + "", + " Sauvegarde", + + " Chargement", + " Recommence ", + "F3: Encore", + "F8: Suite", + "se cacher", + + "prendre", + " sonder ", + "soulever", + " -SUITE- ", + " -STOP- ", + "[1][Alors, utilisez le menu DEP...][ok]", + "soulever", + "lire", + + "regarder", + "fouiller", + "ouvrir", + "mettre", + "tourner", + "attacher", + "fermer", + "frapper", + "poser", + "d‚foncer", + + "sentir", + "gratter", + "sonder", + "[1][ | Avant, utilisez le menu DEP...][ok]", + "& jour", + NULL + }; + + writeStaticStrings(string_list, 0); +} + +void process() { + writeFontBlock(); + writeEnglishStaticStrings(); + writeFrenchStaticStrings(); +} + +/** + * Main method + */ int main(int argc, char *argv[]) { if (argc != 3) { printf("Format: input_filename output_filename\n", argv[0]); -- cgit v1.2.3 From 855fed35d0c7548c43ceb9a77f811c15c60ea325 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 12 Feb 2012 21:06:41 +1100 Subject: MORTEVIELLE: Fixed English strings for F3 and F8 --- devtools/create_mortdat/create_mortdat.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 773ddaeeed..aff67dc949 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -196,8 +196,8 @@ void writeEnglishStaticStrings() { " Load", " Restart ", - "F3: More", - "F8: Restart", + "F3: Repeat", + "F8: Proceed", "Hide self", "take", " probe ", -- cgit v1.2.3 From 3529fec5a9ceda657faffa1c9e403aff841388ba Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 18 Feb 2012 13:55:07 +0100 Subject: TOOLS: Add header files to create_mortdat, remove second parameter --- devtools/create_mortdat/create_mortdat.cpp | 197 ++--------------------------- devtools/create_mortdat/create_mortdat.h | 90 +++++++++++++ devtools/create_mortdat/enginetext.h | 136 ++++++++++++++++++++ 3 files changed, 236 insertions(+), 187 deletions(-) create mode 100644 devtools/create_mortdat/create_mortdat.h create mode 100644 devtools/create_mortdat/enginetext.h (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index aff67dc949..2f1539822d 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -38,74 +38,11 @@ #include #include "common/endian.h" - -enum AccessMode { - kFileReadMode = 1, - kFileWriteMode = 2 -}; - -class File { -private: - FILE *f; -public: - bool open(const char *filename, AccessMode mode = kFileReadMode) { - f = fopen(filename, (mode == kFileReadMode) ? "rb" : "wb"); - return (f != NULL); - } - void close() { - fclose(f); - f = NULL; - } - int seek(int32 offset, int whence = SEEK_SET) { - return fseek(f, offset, whence); - } - long read(void *buffer, int len) { - return fread(buffer, 1, len, f); - } - void write(const void *buffer, int len) { - fwrite(buffer, 1, len, f); - } - byte readByte() { - byte v; - read(&v, sizeof(byte)); - return v; - } - uint16 readWord() { - uint16 v; - read(&v, sizeof(uint16)); - return FROM_LE_16(v); - } - uint32 readLong() { - uint32 v; - read(&v, sizeof(uint32)); - return FROM_LE_32(v); - } - void writeByte(byte v) { - write(&v, sizeof(byte)); - } - void writeWord(uint16 v) { - uint16 vTemp = TO_LE_16(v); - write(&vTemp, sizeof(uint16)); - } - void writeLong(uint32 v) { - uint32 vTemp = TO_LE_32(v); - write(&vTemp, sizeof(uint32)); - } - void writeString(const char *s) { - write(s, strlen(s) + 1); - } - uint32 pos() { - return ftell(f); - } -}; - -File outputFile, mortCom; +#include "create_mortdat.h" +#include "enginetext.h" /*-------------------------------------------------------------------------*/ -#define VERSION_MAJOR 1 -#define VERSION_MINOR 0 - void openOutputFile(const char *outFilename) { outputFile.open(outFilename, kFileWriteMode); @@ -171,143 +108,29 @@ void writeStaticStrings(const char **strings, int languageId) { } /** - * Write out the French strings previously hard-coded into the application - */ -void writeEnglishStaticStrings() { - const char *string_list[] = { - "[2][ ][YES][NO]", - "Go to", - "Someone enters, looks surised, but says nothing", - "Cool", - " Lourde ", - "Malsaine", - "Idem", - "You", - "are", - "Alone", - - "Gosh! You hear some noise...", - " | You should have noticed, | ", - "% of hints...", - "Do you want to wake up?", - "OK", - "", - " Save", - - " Load", - " Restart ", - "F3: Repeat", - "F8: Proceed", - "Hide self", - "take", - " probe ", - " raise ", - " -SUITE- ", - " -STOP- ", - "[1] [So, use the DEP menu] [Ok]", - "lift", - "read", - - "look", - "search", - "open", - "put", - "turn", - "tie", - "close", - "hit", - "pose", - "smash", - - "smell", - "scratch", - "probe", - "[1] [ | Before, use the DEP menu...] [Ok]", - "& day", - NULL - }; - - writeStaticStrings(string_list, 1); -} - -/** - * Write out the French strings previously hard-coded into the application + * Write out the strings previously hard-coded into the engine */ -void writeFrenchStaticStrings() { - const char *string_list[] = { - "[2][ ][OUI][NON]", - "aller", - "quelqu'un entre, parait ‚tonn‚ mais ne dit rien", - "Cool", - " Lourde ", - "Malsaine", - "Idem", - "Vous", - "ˆtes", - "SEUL", - - "Mince! Vous entendez du bruit...", - " | Vous devriez avoir remarqu‚| ", - "% des indices...", - "D‚sirez-vous vous r‚veiller?", - "OK", - "", - " Sauvegarde", - - " Chargement", - " Recommence ", - "F3: Encore", - "F8: Suite", - "se cacher", - - "prendre", - " sonder ", - "soulever", - " -SUITE- ", - " -STOP- ", - "[1][Alors, utilisez le menu DEP...][ok]", - "soulever", - "lire", - - "regarder", - "fouiller", - "ouvrir", - "mettre", - "tourner", - "attacher", - "fermer", - "frapper", - "poser", - "d‚foncer", - - "sentir", - "gratter", - "sonder", - "[1][ | Avant, utilisez le menu DEP...][ok]", - "& jour", - NULL - }; - - writeStaticStrings(string_list, 0); +void writeEngineStrings() { + writeStaticStrings(engineDataEn, 1); + writeStaticStrings(engineDataFr, 0); } void process() { writeFontBlock(); - writeEnglishStaticStrings(); - writeFrenchStaticStrings(); + writeEngineStrings(); } /** * Main method */ int main(int argc, char *argv[]) { - if (argc != 3) { - printf("Format: input_filename output_filename\n", argv[0]); + if (argc != 2) { + printf("Usage:\n%s input_filename\nWhere input_filename is the name of the Mortevielle DOS executable", argv[0]); exit(0); } mortCom.open(argv[1], kFileReadMode); - openOutputFile(argv[2]); + openOutputFile("mort.dat"); process(); diff --git a/devtools/create_mortdat/create_mortdat.h b/devtools/create_mortdat/create_mortdat.h new file mode 100644 index 0000000000..c46ad8aa26 --- /dev/null +++ b/devtools/create_mortdat/create_mortdat.h @@ -0,0 +1,90 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * This is a utility for extracting needed resource data from different language + * version of the Mortevielle executable files into a new file mort.dat - this + * is required for the ScummVM Mortevielle module to work properly + */ + +#define VERSION_MAJOR 1 +#define VERSION_MINOR 0 + +enum AccessMode { + kFileReadMode = 1, + kFileWriteMode = 2 +}; + +class File { +private: + FILE *f; +public: + bool open(const char *filename, AccessMode mode = kFileReadMode) { + f = fopen(filename, (mode == kFileReadMode) ? "rb" : "wb"); + return (f != NULL); + } + void close() { + fclose(f); + f = NULL; + } + int seek(int32 offset, int whence = SEEK_SET) { + return fseek(f, offset, whence); + } + long read(void *buffer, int len) { + return fread(buffer, 1, len, f); + } + void write(const void *buffer, int len) { + fwrite(buffer, 1, len, f); + } + byte readByte() { + byte v; + read(&v, sizeof(byte)); + return v; + } + uint16 readWord() { + uint16 v; + read(&v, sizeof(uint16)); + return FROM_LE_16(v); + } + uint32 readLong() { + uint32 v; + read(&v, sizeof(uint32)); + return FROM_LE_32(v); + } + void writeByte(byte v) { + write(&v, sizeof(byte)); + } + void writeWord(uint16 v) { + uint16 vTemp = TO_LE_16(v); + write(&vTemp, sizeof(uint16)); + } + void writeLong(uint32 v) { + uint32 vTemp = TO_LE_32(v); + write(&vTemp, sizeof(uint32)); + } + void writeString(const char *s) { + write(s, strlen(s) + 1); + } + uint32 pos() { + return ftell(f); + } +}; + +File outputFile, mortCom; + diff --git a/devtools/create_mortdat/enginetext.h b/devtools/create_mortdat/enginetext.h new file mode 100644 index 0000000000..fb4d12d966 --- /dev/null +++ b/devtools/create_mortdat/enginetext.h @@ -0,0 +1,136 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * This is a utility for extracting needed resource data from different language + * version of the Mortevielle executable files into a new file mort.dat - this + * is required for the ScummVM Mortevielle module to work properly + */ + +#ifndef ENGINEDATA_H +#define ENGINEDATA_H + +const char *engineDataEn[] = { + "[2][ ][YES][NO]", + "Go to", + "Someone enters, looks surised, but says nothing", + "Cool", + " Lourde ", + "Malsaine", + "Idem", + "You", + "are", + "Alone", + + "Gosh! You hear some noise...", + " | You should have noticed, | ", + "% of hints...", + "Do you want to wake up?", + "OK", + "", + " Save", + + " Load", + " Restart ", + "F3: Repeat", + "F8: Proceed", + "Hide self", + "take", + " probe ", + " raise ", + " -SUITE- ", + " -STOP- ", + "[1] [So, use the DEP menu] [Ok]", + "lift", + "read", + + "look", + "search", + "open", + "put", + "turn", + "tie", + "close", + "hit", + "pose", + "smash", + + "smell", + "scratch", + "probe", + "[1] [ | Before, use the DEP menu...] [Ok]", + "& day", + NULL +}; + +const char *engineDataFr[] = { + "[2][ ][OUI][NON]", + "aller", + "quelqu'un entre, parait ‚tonn‚ mais ne dit rien", + "Cool", + " Lourde ", + "Malsaine", + "Idem", + "Vous", + "ˆtes", + "SEUL", + + "Mince! Vous entendez du bruit...", + " | Vous devriez avoir remarqu‚| ", + "% des indices...", + "D‚sirez-vous vous r‚veiller?", + "OK", + "", + " Sauvegarde", + + " Chargement", + " Recommence ", + "F3: Encore", + "F8: Suite", + "se cacher", + + "prendre", + " sonder ", + "soulever", + " -SUITE- ", + " -STOP- ", + "[1][Alors, utilisez le menu DEP...][ok]", + "soulever", + "lire", + + "regarder", + "fouiller", + "ouvrir", + "mettre", + "tourner", + "attacher", + "fermer", + "frapper", + "poser", + "d‚foncer", + + "sentir", + "gratter", + "sonder", + "[1][ | Avant, utilisez le menu DEP...][ok]", + "& jour", + NULL +}; + +#endif -- cgit v1.2.3 From 13692fc18fa85fd05c47b58d55e1a38f05c000ce Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 18 Feb 2012 18:02:25 +0100 Subject: TOOL: Use a define for output name --- devtools/create_mortdat/create_mortdat.cpp | 2 +- devtools/create_mortdat/create_mortdat.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 2f1539822d..eb476c187a 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -130,7 +130,7 @@ int main(int argc, char *argv[]) { } mortCom.open(argv[1], kFileReadMode); - openOutputFile("mort.dat"); + openOutputFile(MORT_DAT); process(); diff --git a/devtools/create_mortdat/create_mortdat.h b/devtools/create_mortdat/create_mortdat.h index c46ad8aa26..d9c7561d93 100644 --- a/devtools/create_mortdat/create_mortdat.h +++ b/devtools/create_mortdat/create_mortdat.h @@ -31,6 +31,8 @@ enum AccessMode { kFileWriteMode = 2 }; +#define MORT_DAT "mort.dat" + class File { private: FILE *f; -- cgit v1.2.3 From 45fb3b9153af98216a2fa9add347a3446d7bf1b3 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 18 Feb 2012 19:32:59 +0100 Subject: TOOLS: Add ingame text. This will allow us to get an English version, and will help when we'll try to support Atari/Amiga version using hardcoded ingame texts --- devtools/create_mortdat/create_mortdat.cpp | 10 + devtools/create_mortdat/gametext.h | 1206 ++++++++++++++++++++++++++++ 2 files changed, 1216 insertions(+) create mode 100644 devtools/create_mortdat/gametext.h (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index eb476c187a..de4bb415d4 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -40,6 +40,7 @@ #include "common/endian.h" #include "create_mortdat.h" #include "enginetext.h" +#include "gametext.h" /*-------------------------------------------------------------------------*/ @@ -115,9 +116,18 @@ void writeEngineStrings() { writeStaticStrings(engineDataFr, 0); } +/** + * Write out the strings used in the game + */ +void writeGameStrings() { + writeStaticStrings(gameDataEn, 1); + writeStaticStrings(gameDataFr, 0); +} + void process() { writeFontBlock(); writeEngineStrings(); + writeGameStrings(); } /** diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h new file mode 100644 index 0000000000..6905fdf7c6 --- /dev/null +++ b/devtools/create_mortdat/gametext.h @@ -0,0 +1,1206 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * This is a utility for extracting needed resource data from different language + * version of the Mortevielle executable files into a new file mort.dat - this + * is required for the ScummVM Mortevielle module to work properly + */ + +#ifndef GAMEDATA_H +#define GAMEDATA_H + +const char *gameDataEn[] = { + "Calm within the storm$", + "Discussed in colours$", + "Your mauve!$", + "Be kind enough to leave the room...$", + "If you're NOT overdrawn...$", + "If you're feeling blue...$", + "Read what's on the walls?$", + "Water sports$", + "Room for envy?$", + "A glance at the forbidden$", + "Smell of a woodfire and tobacco$", + "Tobacco and old books$", + "Onions, cinnamon and spirits$", + "A place seldom visited$", + "Humidity and decay$", + "Sorry, no ""door to door""$", + "Rotting corpse: deady cryptomania$", + "And what's more, there are disused traps$", + "It's already open$", + "Danger: avalanches$", + "Proper Charlie's place?$", + "An imposing building$", + "The other side of the mystery$", + "Strange horoscope$", + "Look out... but she wishes well?$", + "An oak door$", + "A photograph$", + "The coat of arms$", + "$", + "Max, the servant, welcomes you and shows you to your room$", + "Mortville 6/2/51@ My dear Jerome@Regarding my telegram, I must tell you the reason for my wor-@ries. A year ago, Murielle, my lady companion, disappeared. The de@part may have had something to do@with the financial success of themanor, or... A silence hard to un@derstand for my son Guy. Not ha@ving been able to see the light of day over this affair, I count @on you to sort things out. If my state of health doesn't improve, @take the decisions that you feel @are apropriate.@ Kind regards, Julia DEFRANCK$", + "Later, Guy will inform you of Leo's suicide after a@heavy bet at the races$", + "F3: AGAIN F8: STOP$", + "The master of the premises$", + "The future heir$", + "JULIA's son$", + "A pretty picture$", + "Superman!$", + "Ida's husband$", + "Interesting remarks?$", + "Service included!$", + "Nothing underneath$", + "You could hear a pin drop$", + "Half an hour passes: nothing! Wait any longer?$", + "Admire! Contemplate!$", + "No! Nothing!$", + "Impossible$", + "That stains!$", + "A treatise on the history of the area$", + "A few coins...$", + "First commandment...$", + "Pleasing to the nostrils!$", + "Spades, Hearts...$", + "Just a spoonful of sugar...$", + "A romantic novel$", + "Worth more than a penny, (whistle)$", + "Just needs a little patience$", + "Watch the sharp bends$", + "Deep and dark$", + "Normal sensations$", + "Sniff!$", + "Not discreet! Be content to watch!$", + "Bless you! Dusty!$", + "The canvas is signed, the wallpaper is not!$", + "Nothing, Unlucky!$", + "Be more discreet!$", + "The shutters are closed$", + "Snow! And more snow!$", + "Brilliant! The work of a master!$", + "No doubt at all! A genuine fake!$", + "Hmm! A cheap reproduction!$", + "A rare and valuable piece$", + "Nothing special$", + "Linen, personal belongings...$", + "Not just anywhere!$", + "It's not time!$", + "One doesn't speak with ones mouth full!$", + "Someone comes in, messes about then goes out again$", + "Someone's approaching your hiding-place$", + "Someone surprises you!$", + "Impossible! You're too loaded!$", + "Try again!$", + "Still puzzled!?$", + "You leave Mortville.In Paris a message awaits you...$", + "You hurt yourself$", + "Nothing more here$", + "The sound seems normal$", + "It doesn't move$", + "You are answered$", + "Not the right moment!$", + "The same matter, from another angle!$", + "The reflection is tarnished, but the frame is gold!$", + "Bric-a-brac$", + "Face to face with failure!$", + "Smells like something you'd rather not see!$", + "Cleaning products$", + "Got an itch?$", + "It's stuck, frozen. Brrr!$", + "All the locks are jammed!$", + "Papers$", + "No! Father christmas hasn't got himself stuck!$", + "It leads onto a corridor$", + "China, silverware...$", + "No! It's not Julia's remains!$", + "An old engraving$", + "You find a deep diamond-shaped opening$", + "The wall slides open! A passage! Do you follow it?$", + "The passageway closes$", + "A secret drawer: a notebook! Do you read it?$", + "The drawer shuts$", + "Nothing! Flesh and blood stuck to the stone$", + "Certain details lead you to believe death was not immediate!$", + "A rotten affair!$", + "Did she cling to dear life with just one finger?$", + "Has the treasure packed its trunk?$", + "A slot the size of a coin$", + "Part of the stone wall pivots.A crypt! Do you enter?$", + "The ring turns, the wall closes$", + "A stone column behind the altar$", + "There is a noise!$", + "Occupied!$", + "Take another chance?$", + "Too deep!$", + "The cellar wall pivots$", + "Nothing$", + "The one and only!$", + "The object slides to the bottom$", + "You have nothing in hand$", + "It is not open$", + "There is already something$", + "The door is locked$", + "No reply$", + "A solid wooden ball$", + "There's no more space$", + "A wooden ball pierced through the side$", + "? ?$", + "Your move$", + "OK !$", + "Suddenly Max arrives with your suitcase: \"Thank you for your @visit!\".Mister discreet \"private eye\" (in need of a private optici@an!). Thoroughly demoralised, you@leave the manor. You are useless!$", + "Leo interrupts: \"The storm has died down,I am going into town in@1 hour. Get ready\". You have lost@time...but not your life$", + "Congestion, the deadly flu... You@are stuck here! Your whole case@sinks slowly beneath the water$", + "The water is rising fast,freezing your last illusions. Before you@have time to react...you are dead$", + "As soon as you reach the bottom of the well, a hand cuts the rope@Farewell sweet life!$", + "The storm covers your footprints.A wall of silence falls heavily@on your shoulders. Slowly you succumb to frosbite...$", + "You're not completely alone! A cold blade plunges into your backup@In future, be more care!$", + "You don't know what implication Leo may have had in Murielle's@death. Was she dead outright? In@any case,the family problems thatyou have uncovered in the course@of your enquiries would explain Leo's behaviour. You're not sure@that's the reason Julia had asked@for your help, but that's reason enough for you!Out of respect for@her, after taking certain precau-@tions you have a revealing talk with Leo.$", + "$", + "You don't have the keys to the manor. Your cries rest unheard@You're going to catch... your death!$", + "With a circular movement, the sword slices across you. Guts and@intestines spill out all over. A sorry state of affairs!$", + "Home, Sweet home !$", + "The mystery behind a closed door$", + "Bewitching charm of these old rooms$", + "An empty stomach$", + "Closer to heaven? Not so sure$", + "Afraid of the dark?$", + "Old rugs and a glint of gold$", + "Anguish!$", + "Safe? Perhaps not!$", + "A little ill at ease, eh!?$", + "Always further$", + "Your way of the cross!$", + "On the trail of...$", + "Watch what's hiding$", + "The road down to hell$", + "Feeling well? You look a little pale$", + "What lurks behind...?$", + "Close-up on:$", + "You notice, amongst other things$", + "And...$", + "That's all!$", + "A bit of reading$", + "The adventure awaits, you set off!$", + "Don't mess up YOUR next ADVENTURE!$", + "I don't understand$", + "There is an easier way$", + "No, not just now$", + "Too late$", + "$", + "Like a deep stony stare, a solitary eye that points towards the@stars; the artery that links hea-ven and hell. You must fathom@these depths keeping hold of that@which is, and will become. Monday, Tuesday, Wednesday, Sunday, from@Monday 1st to Sunday 1st,plunging from one day to the next your@\"IS\" or \"WILL BECOME\". Carrying your burden with love and light,@the smallest oversight will seal your fate.$", + "10/1/51: We think we've solved the mystery of the manuscript and@located the crypt. Is it the idea@of success in what seems like a dream that disturbs me so? I feel@I have committed myself rather too much, as far as Leo is concer@ned... No! I should go on. @I should have put Guy in the pic-ture but for a week now, I've had@no news of him$", + "Take your prayers as you would to the holy place. From the pillar@of wisdom, bring the sun to his@knees. Thus will it show you the place to offer alms of another@kind and like young Arthur, open the way of darkness.White is your@colour, golden your hearth. So@advance with caution Orpheus and light your way unto the sad@virgin. Offer her the circle of the man with three faces. That he@may regain the world and turn with it to its original@inglory!$", + "The mountains are the fangs in a monstrous mouth opening on the@finity of a celestial orgy, grin-ding the stars as we grind our@teeth into dust. You will drop your chord of stone at your feet.@The laugh of silence at the@highest pitch, and in your right hand, the measure of genius. Thus@will you pass between the two crescents beyond the abyss of the@wall of silence. The key to the melody is within your grasp. It@suffices to find the note that clashes.$", + " 9/12 INTER. 518 3/13 EXPENS. 23@ 9/12 SALES 1203 7/12 CHEQUE 1598@ TOTAL 1721 TOTAL 1721$", + " 5/1/51@@ Luc, my love@ Guy knows about us. After an argument I told him everything! I@think only of you. Max keeps pes-tering me, but it's finished with @him. He should stick to his pots and pans! When can you and I be alone together? For you I would@get a divorce.@I love you.@ Eva$", + " Mortville, 10/2/51@@ Pat@ I recall you owe me 50000 frs that I lent you for your business@I need that money, can you repay me quickly?@ Guy$", + " Mortville, 15/2/51@ Dear Sir@ I am writing to you on the sub-ject of our business deal. I have@decided to go all the way in the certainty that my partner, Pat@DEFRANCK, has been forging the accounts. @In spite of$", + "A pipe$", + "A pen$", + "A lighter$", + "A retort$", + "A shaving brush$", + "A tin of paint$", + "A flute$", + "An expensive ring$", + "A reel of thread$", + "An old book$", + "A wallet$", + "A dagger$", + "A pistol$", + "A bible$", + "A candle$", + "A jewellery box$", + "An iron$", + "A photo$", + "A pocket watch$", + "A rope$", + "Keys$", + "A pearl necklace$", + "A bottle of perfume$", + "Binoculars$", + "Glasses$", + "A leather purse$", + "A tennis ball$", + "Ammunition$", + "A cut-throat razor$", + "A hairbrush$", + "A clothes brush$", + "A pack of cards$", + "A shoe horn$", + "A screwdriver$", + "A hammer$", + "Keys$", + "Keys$", + "An ashtray$", + "A paintbrush$", + "A rope$", + "A wooden object$", + "Sleeping pills$", + "A gold ring$", + "A jewellery box$", + "An alarm clock$", + "A coat of armour$", + "A candlestick$", + "A pair of gloves$", + "A engraved goblet$", + "A parchment$", + "A dagger$", + "A dossier$", + "A parchment$", + "A parchment$", + "A dossier$", + "A dossier$", + "A letter$", + "A novel$", + "A wooden rod$", + "An envelope$", + "A letter$", + "An envelope$", + "Julia$", + "Julia's death$", + "Julia's relationships$", + "A message from Julia$", + "Julia's inheritance$", + "Julia's final actions$", + "Julia's gifts$", + "Julia's bedroom$", + "The photo at Julia's home$", + "Julia and yourself...$", + "L‚o's occupations$", + "Pat's occupations$", + "Guy's occupations$", + "Bob's occupations$", + "Eva's occupations$", + "Luc's occupations$", + "Ida's occupations$", + "Max's occupations$", + "Your occupations$", + "L‚o's relationships$", + "Pat's relationships$", + "Guy's relationships$", + "Bob's relationships$", + "Eva's relationships$", + "Luc's relationships$", + "Ida's relationships$", + "Max's relationships$", + "Your relationships$", + "Murielle$", + "Murielle's relationships$", + "Murielle and yourself...$", + "Murielle's disappearance$", + "The wall of silence$", + "The manuscripts$", + "The coat of arms$", + "Engravings in the cellar$", + "The well$", + "The secret passages$", + "The chapel$", + "The paintings$", + "The photo of the attic$", + "The body in the crypt$", + "$", + "$", + "END OF THE CONVERSATION$", + "TBT - Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", + "TBT - C'est le massif montagneux que l'on aper‡oit devant le manoir$", + "TBT - Je n'en sais rien !$", + "TBT - Elle est morte d'une embolie pulmonaire$", + "TBT - Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", + "TBT - Madame DEFRANCK est morte d'un coup de froid$", + "TBT - Elle est morte d'une embolie pulmonaire$", + "TBT - Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", + "TBT - Ce sont toujours les meilleurs qui partent les premiers$", + "TBT - J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", + "TBT - C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", + "TBT - C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", + "TBT - Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir ...$", + "TBT - Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", + "TBT - C'est un homme dynamique qui a r‚ussi dans le parfum$", + "TBT - Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", + "TBT - J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", + "TBT - Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", + "TBT - Ce sont ses affaires ...$", + "TBT - Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", + "TBT - Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", + "TBT - Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", + "TBT - Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", + "TBT - Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", + "TBT - Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", + "TBT - Mais ! Vous n'avez pas encore d‚couvert son occupation principale ..?$", + "TBT - Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs . Elle est toujours trŠs bien habill‚e$", + "TBT - Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", + "TBT - Les bijoux ...$", + "TBT - Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", + "TBT - Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", + "TBT - Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", + "TBT - Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", + "TBT - Une femme comme il n'y en a plus : Elle s'interesse a tout !$", + "TBT - Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", + "TBT - Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", + "TBT - Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", + "TBT - Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", + "TBT - C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", + "TBT - Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", + "TBT - C'est un homme de caractŠre . Il faut savoir le prendre ..$", + "TBT - Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", + "TBT - Relations ? Relations amicales ? Relations financiŠres sans doute$", + "TBT - Moi je n'ai rien … lui reprocher$", + "TBT - C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", + "TBT - Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", + "TBT - A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", + "TBT - Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", + "TBT - Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", + "TBT - J'aime bien tout le monde, tant qu'on ne m'escroque pas$", + "TBT - Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", + "TBT - Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", + "TBT - Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", + "TBT - Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", + "TBT - C'est pour un rendez-vous ?$", + "TBT - Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", + "TBT - Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", + "TBT - La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", + "TBT - C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", + "TBT - Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", + "TBT - C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", + "TBT - Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", + "TBT - Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", + "TBT - C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", + "TBT - Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", + "TBT - C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", + "TBT - C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", + "TBT - Murielle a ‚t‚ la dame de compagnie de Julia$", + "TBT - Elle aussi, faisait des recherches ...$", + "TBT - C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", + "TBT - Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", + "TBT - Je crois que tout le monde l'aimait bien$", + "TBT - Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", + "TBT - A part L‚o, elle avait de trŠs bon rapport avec Max ...$", + "TBT - Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", + "TBT - A part sa famille, pas grand monde$", + "TBT - Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", + "TBT - Non rien !$", + "TBT - Non ... Pas que le sache$", + "TBT - J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", + "TBT - Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", + "TBT - Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", + "TBT - A part la lettre pour vous que j'ai post‚, rien de bien important !$", + "TBT - J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", + "TBT - Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", + "TBT - Son dernier pr‚sent m'a surpris$", + "TBT - Quel cadeau ?$", + "TBT - Un chandellier ...$", + "TBT - Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", + "TBT - Et bien oui ! Comme tout le monde, je crois$", + "TBT - Un poignard$", + "TBT - Je n'ai jamais ‚t‚ fouiller dans le grenier !$", + "TBT - Vous avez un don de double-vue ou un passe-partout$", + "TBT - Le portrait d'une jeune fille : C'est Murielle ...$", + "TBT - Vous savez, je la connaissais assez peu$", + "TBT - Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", + "TBT - C'est la seule femme vraiment interessante que j'ai rencontr‚$", + "TBT - Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", + "TBT - Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", + "TBT - Si la chambre est ferm‚e, demandez … L‚o$", + "TBT - J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", + "TBT - Vous savez ce que c'est : Des relations familiales$", + "TBT - Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", + "TBT - Je l'aimais autant qu'elle m'aimais, je crois$", + "TBT - De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", + "TBT - C'est sans doute la photo de Murielle avec le filleul de Julia$", + "TBT - Je ne me rappelle pas$", + "TBT - C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", + "TBT - Vous ˆtes bien curieux !... C'est sans valeur$", + "TBT - Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", + "TBT - Dommage que la devise soit manquante ...$", + "TBT - C'est trŠs beau ... Et trŠs vieux ...$", + "TBT - Tiens ! C'est un endroit que je n'ai jamais visit‚$", + "TBT - D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", + "TBT - Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", + "TBT - Profond et inqui‚tant : Le progrŠs a du bon$", + "TBT - Ca reste pour moi le plus grand des mystŠres$", + "TBT - Les derniers temps elle parlait d'un voyage . Et puis ...$", + "TBT - Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", + "TBT - De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", + "TBT - Quoi ?! Quel corps ? Quel crypte ?$", + "TBT - Si il y en a, je ne les ai jamais trouv‚ ...$", + "TBT - Bien s–r ! ... Et des fant“mes aussi ...$", + "TBT - C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", + "TBT - Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", + "TBT - Julia aimait beaucoup la peinture$", + "TBT - Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", + "TBT - Que faites-vous l… ?$", + "TBT - Je suis s–r que vous cherchez quelque chose ici$", + "TBT - Je vous ‚coute$", + "TBT - Que d‚sirez-vous ?$", + "TBT - Oui ?$", + "TBT - Je suis … vous ...$", + "TBT - C'est pourquoi ?$", + "TBT - Allez-y$", + "TBT - C'est … quel sujet ?$", + "TBT - Max : … votre service, monsieur$", + "TBT - De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", + "TBT - Vous ˆtes trop curieux !$", + "TBT - J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", + "TBT - En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", + "TBT - F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", + "TBT - Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", + "to the bureau$", + "to the kitchen$", + "to the cellar$", + "to the landing$", + "outside$", + "to the dining room$", + "inside the manor$", + "front of the manor$", + "to the chapel$", + "to the weel$", + "north$", + "behind the manor$", + "south$", + "east$", + "west$", + "towards the manor$", + "further$", + "in the water$", + "out of the weel$", + "in the weel$", + "choice on screen$", + "In the MYSTERY series...$", + "MORTVILLE MANOR$", + "$", + "From an original idea of...$", + "Bernard GRELAUD and Bruno GOURIER$", + "$", + "Directed by: KYILKHOR CREATION and LANGLOIS$", + "$", + "With the cooperation of...$", + "B‚atrice et Jean_Luc LANGLOIS$", + "for the music and the voices,$", + "Bernard GRELAUD for the graphic conception,$", + "MARIA-DOLORES for the graphic direction,$", + "Bruno GOURIER for the technical direction,$", + "Mick ANDON for the translation. $", + "$", + "Publisher: KYILKHOR and B&JL LANGLOIS $", + "COPYRIGHT 1987: KYILKHOR and B&JL LANGLOIS$", + "$", + "YOUR MOVE$", + "attach$", + "wait$", + "force$", + "sleep$", + "listen$", + "enter$", + "close$", + "search$", + "knock$", + "scratch$", + "read$", + "eat$", + "place$", + "open$", + "take$", + "look$", + "smell$", + "sound$", + "leave$", + "lift$", + "turn$", + "hide yourself$", + "search$", + "read$", + "put$", + "look$", + "Leo$", + "Pat$", + "Guy$", + "Eva$", + "Bob$", + "Luc$", + "Ida$", + "Max$", + "JULIA...$", + "- Did she commit suicide?$", + "- Was she murdered?$", + "- Did she die by accident?$", + "- Did she die of natural causes?$", + "Where did the money come from@for the restoration of the manor?$", + "- Blackmail$", + "- Honest work$", + "- Inheritance$", + "- Races$", + "- Rents$", + "- Hold-up$", + "- Other$", + "What is Leo's hobby?$", + "- Historical research$", + "- Politics$", + "- Painting$", + "- Drugs$", + "- Occult sciences$", + "- Management of a sect$", + "Julia left several clues that are@represented in one place. Which?$", + "- Chapel$", + "- Outside$", + "- Cellar$", + "- Attic$", + "- Kitchen$", + "- Dining room$", + "- Julia's room$", + "- Leo's room$", + "- Pat's room$", + "- Bob's room$", + "- Max's room$", + "- Luc/Ida's room$", + "- Guy/Eva's room$", + "The main clue that leads you@to the underground door is:$", + "- A dagger$", + "- A ring$", + "- A book$", + "- A parchment$", + "- A letter$", + "- A pendulum$", + "How many parchments were there in the manor?$", + "- 0$", + "- 1$", + "- 2$", + "- 3$", + "- 4$", + "- 5$", + "How many persons are involved in@this story?@(Julia included, but not yourself)$", + "- 9$", + "- 10$", + "- 11$", + "What was the first name@of the unknown character?$", + "- Mireille$", + "- Françoise$", + "- Maguy$", + "- Emilie$", + "- Murielle$", + "- Sophie$", + "Wo did Murielle have an affair with?$", + "- Bob$", + "- Luc$", + "- Guy$", + "- Leo$", + "- Max$", + "Murielle shared an occupation@with one other person. Who?$", + "[1][You realize that certain elements of|this investigation remain a mystery for you.|Therefore, you decide first to learn|more before undertaking new risks..][ok]$", + "[3][ | insert disk 1 | in drive A ][ok]$", + "[1][ | Disk error | All stop... ][ok]$", + "[1][ | You should have noticed |00% of the clues ][ok]$", + "[3][ | insert disk 2 | in drive A ][ok]$", + "TBT - [1][|Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", + "TBT - MASTER .$", + "TBT - rorL$", + NULL +}; + +const char *gameDataFr[] = { + "Le calme dans la tourmente$", + "Des go—ts et des couleurs!$", + "Mauve qui peut!$", + "PriŠre de laisser en sortant...$", + "Trou noir troublant$", + "Bleu... comme \"peur bleue\"!$", + "Chambre de \"Saigneur\"!$", + "Histoire d'eaux$", + "Vert nid$", + "Coup d'oeil sur l'interdit$", + "Odeur de feux de bois et de tabac$", + "Tabac et vieux bouquins$", + "Oignons, cannelle et spiritueux$", + "Un endroit bien peu visit‚$", + "Humidit‚ et moisissure$", + "Avis aux colporteurs...$", + "Corps putr‚fi‚ : cryptomanie mortelle!$", + "Et en plus... des piŠges d‚samorc‚s!$", + "C'est d‚j… ouvert$", + "Danger : avalanches$", + "Une odeur de saintet‚!$", + "Une bƒtisse imposante$", + "L'envers du mystŠre!$", + "Dr“le d'horoscope!$", + "Tant va la cruche...$", + "Une porte en chŠne$", + "Une photo$", + "Les armoiries$", + "$", + "Max, le domestique, vous accueille puis vous conduit … votre chambre$", + "Mortevielle, le 16/2/51@ Mon cher J‚r“me,@ Suite … mon t‚l‚gramme, je vous fais part des raisons de mon inqui‚tude :il y a un an, Murielle, ma dame de compagnie, disparaissait . D‚part ayant rapport avec le renouveau financier du Manoir, ou... Silence difficile … comprendre, surtout pour mon fils Guy . N'ayant pu jusqu'… pr‚sent, faire le jour sur cette affaire, je compte sur vous pour la mener … bien . Si mon ‚tat de sant‚ ne s'am‚liorait pas, prenez les d‚cisions qui vous sembleront le plus appropri‚es...@ Amiti‚s. JULIA DEFRANCK$", + "Plus tard, Guy vous apprendra le suicide de L‚o... aprŠs un pari insens‚ aux courses!$", + "F3: encore@F8: suite$", + "Le maŒtre des lieux$", + "Le futur h‚ritier$", + "Le fils de JULIA$", + "Joli brin!!!$", + "Superman!$", + "Le mari d'Ida$", + "Propos int‚ressants?$", + "Service compris...$", + "Rien dessous!$", + "Un ange passe...$", + "Une 1/2 h passe: rien! Attendez-vous encore?$", + "Admirez! Contemplez!$", + "Non ! Rien !$", + "Impossible$", + "‡a tache !$", + "Un trait‚ sur l'histoire de la r‚gion$", + "Quelques piŠces$", + "Premier commandement...$", + "Des p‚tales plein les narines !$", + "Pique, Coeur...$", + "‡a ne manque pas de cachets !$", + "Un roman d'amour$", + "Souffler n'est pas jouer$", + "Pas une r‚ussite!$", + "Gare aux rebondissements !$", + "Sombre et profond...$", + "Sensations normales$", + "Sniff!$", + "Pas discret ! Contentez-vous de regarder !$", + "Atchoum! De la p... poussiŠre$", + "La toile est sign‚e... pas le papier peint !$", + "Pas de chance, rien !$", + "Soyez plus discret !$", + "Les volets sont clos$", + "De la neige, encore de la neige !$", + "G‚nial : une toile de maŒtre !$", + "Aucun doute : une v‚ritable imitation$", + "Hum ! Vous tiquez : de l'antique en toc !$", + "Une piŠce rare de valeur !$", + "Rien de remarquable$", + "Linge, objets personnels...$", + "Pas n'importe o— !$", + "Ce n'est pas l'heure !$", + "On ne parle pas la bouche pleine ! Donc, une fois le repas termin‚...$", + "Quelqu'un entre, s'affaire, ressort...$", + "On s'approche de votre cachette !$", + "On vous surprend !$", + "Non : vous ˆtes trop charg‚ !$", + "Essayez de nouveau$", + "Vous restez perplexe !?$", + "Vous quittez le Manoir. A Paris, un message vous attend...$", + "A‹e, a‹e, a‹e !$", + "Rien de plus$", + "Le son paraŒt normal$", + "Ca ne bouge pas$", + "On vous r‚pond$", + "Pas le moment !$", + "Mˆme matiŠre, autre face !$", + "Le reflet est piqu‚, mais le cadre est d'or$", + "Bibelots, babioles...$", + "Vous essuyez un ‚chec !$", + "Il est des odeurs... qu'il vaut mieux ne pas voir !$", + "Des produits m‚nagers$", + "‡a vous d‚mange ?$", + "C'est coinc‚, gel‚ ! Brrrr...$", + "Les huisseries sont bloqu‚es !$", + "Des papiers...$", + "Non ! Le pŠre Noˆl n'est pas coinc‚ !$", + "‡a donne sur un couloir$", + "Vaisselle, argenterie...$", + "Non ! Ce ne sont pas les restes de Julia !$", + "Une gravure ancienne$", + "Il y a une profonde ouverture en losange$", + "Le mur coulisse... Un passage ! L'empruntez-vous ?$", + "Le passage se ferme$", + "Un tiroir secret... Un livret ! Le lisez-vous ?$", + "Le tiroir se referme$", + "Rien ! Sang et chairs collent … la pierre !$", + "Des d‚tails vous font supposer que... la mort ne fut pas imm‚diate !$", + "Des projets v‚reux ?$", + "Sa vie n'aurait-elle tenu qu'… un doigt ?$", + "Un tr‚sor se serait-il fait la malle ?$", + "Une fente de la taille d'une piŠce !$", + "Quelques pierres pivotent... Une crypte ! Y p‚n‚trez-vous ?$", + "La bague tourne, le mur se referme...$", + "Une colonne de pierres derriŠre l'autel$", + "Il y a du bruit...$", + "Occup‚ !$", + "Retentez-vous votre chance ?$", + "Trop profond !$", + "Le mur de la cave pivote$", + "Nothing !$", + "L'unique !$", + "L'objet glisse au fond...$", + "Vous n'avez rien en main$", + "Ce n'est pas ouvert$", + "Il y a d‚j… quelque chose$", + "La porte est ferm‚e$", + "Pas de r‚ponse$", + "Une boule de bois pleine$", + "Il n'y a plus de place$", + "Une boule de bois perc‚e par le travers$", + "? ?$", + "A vous de jouer$", + "OK !$", + "Soudain Max survient avec votre valise : \"Merci de votre visite ! D‚tective \"priv‚\"... de bon sens et de discr‚tion sans doute\" . D‚‡u d‚moralis‚, vous quittez le manoir@Vous Štes NUL !$", + "L‚o vous interrompt : \"la tempŠte est calm‚e. Je pars en ville dans 1 heure. Tenez-vous prˆt!\"... Bon... Vous avez perdu du temps... mais pas la vie$", + "Congestion, grippe fatale : vous y restez ! Votre enquŠte tombe … l'eau$", + "L'eau monte trŠs vite et refroidit vos derniŠres illusions... Avant que vous n'ayez eu le temps de r‚agir, vous Štes mort!$", + "A peine Štes-vous au fond du puits qu'une main tranche la corde... Adieu la vie!$", + "La tempŠte recouvre vos traces . Un mur de silence s'abat sur vos ‚paules . Lentement vous succombez … la morsure du froid !$", + "Pas si seul que ‡a ! Une lame glac‚e s'enfonce dans votre dos. A l'avenir, soyez plus prudent!$", + "Vous ignorez la responsabilit‚ exacte de L‚o dans la mort de Murielle... Est-elle morte sur le coup ? De toutes fa‡ons les problŠmes familiaux d‚couverts lors de votre enquŠte justifient l'attitude de L‚o... Vous n'Štes pas s—r que Julia vous ait appel‚ pour ‡a mais c'est suffisant pour vous ! Par respect pour elle, et aprŠs certaines pr‚cautions, vous avez une entrevue r‚v‚latrice avec L‚o$", + "$", + "Vous n'avez pas les clefs du Manoir . Vos appels restent sans r‚ponse . Vous allez attraper... la mort !$", + "D'un mouvement circulaire, l'‚p‚e vous fend par le travers : tripes et boyaux … l'air, bonjour les vers!$", + "Home, Sweet home !$", + "MystŠre d'une porte close$", + "Charme envo—tant de vieilles piŠces$", + "La faim au ventre$", + "Plus prŠs du ciel? Pas s—r !$", + "Peur du noir?$", + "Vieux tapis et reflets d'or$", + "Angoisse !$", + "Sauv‚ ? Pas certain !$", + "Mal … l'aise, hein !$", + "Toujours plus loin !$", + "Votre chemin de croix !$", + "A la d‚couverte de...$", + "Attention … ce que cache...$", + "Une descente aux Enfers !$", + "Si ce n'est pas dans vos cordes :@ ne soyez pas sot!$", + "Avant la mise en piŠce !$", + "Gros plan sur :$", + "Vous remarquez particuliŠrement...$", + "Et encore...$", + "C'est fini !$", + "Un peu de lecture$", + "L'aventure vous attend, vous partez...$", + "Ne ratez pas VOTRE prochaine AVENTURE...$", + "Je ne comprends pas$", + "Il y a plus simple$", + "Non ! Pas ce coup-ci$", + "Trop tard$", + "$", + "Comme un regard profond tout couvert de peaux-pierres, pointant son oeil obscur aux astres de lumiŠre, il est la gorge reliant le ciel et les enfers . Il faut aller au fond de cette artŠre comme un rat au coeur mˆme de la terre !@Lundi, Mardi, Mercredi, Dimanche du 1e lundi au 1e dimanche, tu installeras \"ce rat\" entre chacun des jours . N'omets rien car ta venue serait ta retenue !@Porte ton fardeau comme un oeuf nouveau et donne lui le jour avec force et amour.$", + "10/1/50: Nous avons r‚solu le mystŠre du manuscrit et localis‚ la crypte . Est-ce l'id‚e d'aboutir dans ce qui n'‚tait qu'un \"rŠve\" qui me rend si anxieuse ?@Je regrette de m'ˆtre engag‚e vis … vis de L‚o . Non! je dois continuer ! J'aurais d— mettre Guy au courant... mais, depuis une semaine, je n'ai aucune nouvelle .$", + "Porte ta priŠre au lieu saint qui se doit, changes-en l'air, tu auras la matiŠre !@Du pilier de la haute sagesse, le soleil aux genoux te montrera l'espace par lequel ton …me s'ouvrira un chemin et gagnera son Šre . Avance comme un Orph‚e peu soucieux des t‚nŠbres : le blanc est ta couleur, l'or ta demeure . Eclaire ton chemin jusqu'… la myst‚rieuse . Offre-lui le cercle de l'homme aux trois facettes . Qu'il regagne le monde et qu'il tourne avec lui dans la richesse premiŠre.$", + "Les montagnes sont les crocs d'une gueule dantesque ouverte … l'infini de quelqu' orgie c‚leste, mastiquant des ‚toiles comme nous broyons du noir .@Tu d‚poseras l'accord de pierre … tes pieds, le rire du silence sur la gamme d'en haut et dans ta main droite, une toile d'un mŠtre . Tu passeras ainsi entre les deux croissants, par del… les abŒmes du Mur du Silence . La Cl‚ des champs est … ta port‚e, tu n'as qu'… retrouver la note qui d‚note.$", + " DECEMBRE@ 9 REMISE 518 13 AGIOS 23@ 19 VIREMENT 1203 17 TRESOR 1598@ TOTAL 1721 TOTAL 1721$", + " Le 5/01/51@@ Luc, mon amour@ Guy connaŒt notre liaison . A la suite d'une dispute, je lui ai tout dit . Je ne pense qu'… toi ! Max me relance mais j'ai d‚finitivement rompu avec lui . Qu'il reste … ses gamelles . Quand pourrons-nous nous voir seuls ? Pour toi je divorcerai... Je t'aime .@ ton Eva$", + " Mortevielle, le 10/2/51@@ Pat,@ Je te rappelle que tu me dois 50000 F que je t'ai pr‚t‚s pour ton affaire . J'en ai besoin, peux-tu me les rendre assez vite?@ Guy$", + " Mortevielle, le 15/2/51@ MaŒtre,@ Je vous ‚cris au sujet de notre affaire. Je suis d‚cid‚ … aller jusqu'au bout, certain que mon associ‚, Pat DEFRANCK, a falsifi‚ un livre de comptes . Malgr‚$", + "Une pipe$", + "Un stylo … plume$", + "Un briquet … essence$", + "Une cornue$", + "Un blaireau$", + "Un pot de peinture$", + "Une flute$", + "Une bague de valeur$", + "Une bobine de fil$", + "Un vieux bouquin$", + "Un porte-monnaie$", + "Un poignard$", + "Un r‚volver$", + "Une bible$", + "Une bougie$", + "Un coffret … bijoux$", + "Un fer … repasser$", + "Une photo$", + "Une montre … gousset$", + "Une corde$", + "Des clefs$", + "Un collier de perles$", + "Un flacon de parfum$", + "Des jumelles$", + "Des lunettes$", + "Une bourse en cuir$", + "Une balle de tennis$", + "Des munitions$", + "Un rasoir … main$", + "Une brosse … cheveux$", + "Une brosse … linge$", + "Un jeu de cartes$", + "Un chausse pied$", + "Un tournevis$", + "Un marteau$", + "Des clefs$", + "Des clefs$", + "Un cendrier$", + "Un pinceau$", + "Une corde$", + "Un objet en bois$", + "Des somnifŠres$", + "Une bague en or$", + "Un coffret … bijoux$", + "Un r‚veil matin$", + "Une cotte de mailles$", + "Un chandellier$", + "Une paire de gants$", + "Une coupe cisel‚e$", + "Un parchemin$", + "Un poignard$", + "Un dossier$", + "Un parchemin$", + "Un parchemin$", + "Un dossier$", + "Un dossier$", + "Une lettre$", + "Un roman$", + "Une baguette en bois$", + "Une enveloppe$", + "Une lettre$", + "Une enveloppe$", + "Julia$", + "La mort de Julia$", + "Les relations de Julia$", + "Un message de Julia$", + "L'h‚ritage de Julia$", + "Derniers actes de Julia$", + "Les cadeaux de Julia$", + "La chambre de Julia$", + "La photo chez Julia$", + "Julia et vous...$", + "Les occupations de L‚o$", + "Les occupations de Pat$", + "Les occupations de Guy$", + "Les occupations de Bob$", + "Les occupations d'Eva$", + "Les occupations de Luc$", + "Les occupations d'Ida$", + "Les occupations de Max$", + "Vos occupations$", + "Les relations de L‚o$", + "Les relations de Pat$", + "Les relations de Guy$", + "Les relations de Bob$", + "Les relations d'Eva$", + "Les relations de Luc$", + "Les relations d'Ida$", + "Les relations de Max$", + "Vos relations$", + "Murielle$", + "Les relations de Murielle$", + "Murielle et vous...$", + "Disparition de Murielle$", + "Le mur du silence$", + "Les manuscrits$", + "Le blason$", + "Les gravures dans la cave$", + "Le puits$", + "Les passages secrets$", + "La chapelle$", + "Les tableaux$", + "La photo du grenier$", + "Le corps dans la crypte$", + "$", + "$", + "FIN DE LA CONVERSATION$", + "Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", + "C'est le massif montagneux que l'on aper‡oit devant le manoir$", + "Je n'en sais rien !$", + "Elle est morte d'une embolie pulmonaire$", + "Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", + "Madame DEFRANCK est morte d'un coup de froid$", + "Elle est morte d'une embolie pulmonaire$", + "Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", + "Ce sont toujours les meilleurs qui partent les premiers$", + "J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", + "C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", + "C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", + "Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir ...$", + "Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", + "C'est un homme dynamique qui a r‚ussi dans le parfum$", + "Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", + "J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", + "Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", + "Ce sont ses affaires ...$", + "Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", + "Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", + "Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", + "Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", + "Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", + "Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", + "Mais ! Vous n'avez pas encore d‚couvert son occupation principale ..?$", + "Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs . Elle est toujours trŠs bien habill‚e$", + "Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", + "Les bijoux ...$", + "Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", + "Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", + "Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", + "Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", + "Une femme comme il n'y en a plus : Elle s'interesse a tout !$", + "Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", + "Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", + "Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", + "Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", + "C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", + "Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", + "C'est un homme de caractŠre . Il faut savoir le prendre ..$", + "Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", + "Relations ? Relations amicales ? Relations financiŠres sans doute$", + "Moi je n'ai rien … lui reprocher$", + "C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", + "Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", + "A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", + "Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", + "Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", + "J'aime bien tout le monde, tant qu'on ne m'escroque pas$", + "Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", + "Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", + "Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", + "Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", + "C'est pour un rendez-vous ?$", + "Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", + "Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", + "La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", + "C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", + "Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", + "C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", + "Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", + "Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", + "C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", + "Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", + "C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", + "C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", + "Murielle a ‚t‚ la dame de compagnie de Julia$", + "Elle aussi, faisait des recherches ...$", + "C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", + "Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", + "Je crois que tout le monde l'aimait bien$", + "Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", + "A part L‚o, elle avait de trŠs bon rapport avec Max ...$", + "Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", + "A part sa famille, pas grand monde$", + "Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", + "Non rien !$", + "Non ... Pas que le sache$", + "J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", + "Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", + "Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", + "A part la lettre pour vous que j'ai post‚, rien de bien important !$", + "J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", + "Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", + "Son dernier pr‚sent m'a surpris$", + "Quel cadeau ?$", + "Un chandellier ...$", + "Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", + "Et bien oui ! Comme tout le monde, je crois$", + "Un poignard$", + "Je n'ai jamais ‚t‚ fouiller dans le grenier !$", + "Vous avez un don de double-vue ou un passe-partout$", + "Le portrait d'une jeune fille : C'est Murielle ...$", + "Vous savez, je la connaissais assez peu$", + "Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", + "C'est la seule femme vraiment interessante que j'ai rencontr‚$", + "Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", + "Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", + "Si la chambre est ferm‚e, demandez … L‚o$", + "J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", + "Vous savez ce que c'est : Des relations familiales$", + "Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", + "Je l'aimais autant qu'elle m'aimais, je crois$", + "De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", + "C'est sans doute la photo de Murielle avec le filleul de Julia$", + "Je ne me rappelle pas$", + "C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", + "Vous ˆtes bien curieux !... C'est sans valeur$", + "Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", + "Dommage que la devise soit manquante ...$", + "C'est trŠs beau ... Et trŠs vieux ...$", + "Tiens ! C'est un endroit que je n'ai jamais visit‚$", + "D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", + "Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", + "Profond et inqui‚tant : Le progrŠs a du bon$", + "Ca reste pour moi le plus grand des mystŠres$", + "Les derniers temps elle parlait d'un voyage . Et puis ...$", + "Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", + "De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", + "Quoi ?! Quel corps ? Quel crypte ?$", + "Si il y en a, je ne les ai jamais trouv‚ ...$", + "Bien s–r ! ... Et des fant“mes aussi ...$", + "C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", + "Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", + "Julia aimait beaucoup la peinture$", + "Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", + "Que faites-vous l… ?$", + "Je suis s–r que vous cherchez quelque chose ici$", + "Je vous ‚coute$", + "Que d‚sirez-vous ?$", + "Oui ?$", + "Je suis … vous ...$", + "C'est pourquoi ?$", + "Allez-y$", + "C'est … quel sujet ?$", + "Max : … votre service, monsieur$", + "De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", + "Vous ˆtes trop curieux !$", + "J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", + "En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", + "F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", + "Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", + " au bureau$", + " … la cuisine$", + " … la cave$", + " dans le couloir$", + " dehors$", + " la salle … manger$", + " dans le manoir$", + " devant le manoir$", + " … la chapelle$", + " devant le puits$", + " au nord$", + " derriŠre le manoir$", + " au sud$", + " … l'est$", + " … l'ouest$", + " vers le manoir$", + " plus loin$", + " dans l'eau$", + " hors du puits$", + " dans le puits$", + " choix sur ‚cran$", + " Dans la serie MYSTERE...$", + " LE MANOIR DE MORTEVIELLE$", + "$", + " Sur une idee de...$", + " Bernard GRELAUD et Bruno GOURIER$", + "$", + " Realisation: LANKHOR$", + "$", + " Avec la participation de...$", + " Beatrice et Jean-Luc LANGLOIS$", + " pour la musique et les voix,$", + " Bernard GRELAUD pour la conception graphique,$", + " MARIA-DOLORES pour la realisation graphique,$", + " Bruno GOURIER pour la realisation technique,$", + " Clement ROQUES pour l'adaptation sur IBM PC et compatibles .$", + "$", + " Edition: LANKHOR$", + " COPYRIGHT 1988: LANKHOR$", + "$", + " A VOUS DE JOUER$", + " attacher$", + " attendre$", + " d‚foncer$", + " dormir$", + " ‚couter$", + " entrer$", + " fermer$", + " fouiller$", + " frapper$", + " gratter$", + " lire$", + " manger$", + " mettre$", + " ouvrir$", + " prendre$", + " regarder$", + " sentir$", + " sonder$", + " sortir$", + " soulever$", + " tourner$", + " se cacher$", + " fouiller$", + " lire$", + " poser$", + " regarder$", + " L‚o$", + " Pat$", + " Guy$", + " Eva$", + " Bob$", + " Luc$", + " Ida$", + " Max$", + "Comment Julia est-elle morte ?$", + "Elle s'est suicid‚e$", + "Elle est morte assassin‚e$", + "Elle est morte accidentellement$", + "Elle est morte naturellement$", + "D'o— provenait l'argent qui a permis la restauration du manoir ?$", + "chantage$", + "travail$", + "h‚ritage$", + "courses$", + "rentes$", + "hold-up$", + "d‚couverte$", + "Quel est le hobby de L‚o ?$", + "recherches historiques$", + "politique$", + "peinture$", + "drogue$", + "sciences occultes$", + "direction d'une secte$", + "Julia a laiss‚ une s‚rie d'indices . Ceux-ci sont repr‚sent‚s en un seul lieu . Lequel ?$", + "Chapelle$", + "Ext‚rieur$", + "Cave$", + "Grenier$", + "Cuisine$", + "Salle … manger$", + "Chambre Julia$", + "Chambre L‚o$", + "Chambre Pat$", + "Chambre Bob$", + "Chambre Max$", + "Chambre Luc/Ida$", + "Chambre Guy/Eva$", + "L'indice principal qui vous a permis d'arriver … la porte du souterrain est :$", + "Un poignard$", + "Une bague$", + "Un livre$", + "Un parchemin$", + "Une lettre$", + "Un pendule$", + "Combien y avait-il de parchemin dans le manoir ?$", + "Aucun$", + "Un seul$", + "Deux$", + "Trois$", + "Quatre$", + "Cinq$", + "Combien de personnes sont m‚l‚es … cette histoire - Julia y comprise, vous except‚ - ?$", + "Neuf$", + "Dix$", + "Onze$", + "Quel ‚tait le pr‚nom de la personne inconnue ?$", + "Mireille$", + "Fran‡oise$", + "Maguy$", + "Emilie$", + "Murielle$", + "Sophie$", + "De qui Murielle ‚tait-elle la maŒtresse ?$", + "Bob$", + "Luc$", + "Guy$", + "L‚o$", + "Max$", + "Murielle partageait une occupation avec une autre personne . Qui ?$", + "[1][|Seul le hazard vous a permis d'arriver ici . Vous pr‚f‚rez|retourner enqu‚ter afin de mieux comprendre ...][ok]$", + "[1][|Ins‚rez la disquette 1 dans le lecteur A][ok]$", + "[1][|! ERREUR DISQUETTE !|On arrete tout][ok]$", + "[1][|Vous devriez avoir remarqu‚|00% des indices][ok]$", + "[1][|Ins‚rez la disquette 2 dans le lecteur A][ok]$", + "[1][|Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", + " MASTER .$", + " rorL$", +}; + +#endif -- cgit v1.2.3 From ecda7b6b8f1b3105686bd99e262ca26cce4e22fe Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 19 Feb 2012 11:12:17 +0100 Subject: TOOLS: Mortevielle - Remove extra spaces in one of the words --- devtools/create_mortdat/enginetext.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/enginetext.h b/devtools/create_mortdat/enginetext.h index fb4d12d966..d9b3b05e2b 100644 --- a/devtools/create_mortdat/enginetext.h +++ b/devtools/create_mortdat/enginetext.h @@ -106,7 +106,7 @@ const char *engineDataFr[] = { "se cacher", "prendre", - " sonder ", + "sonder", "soulever", " -SUITE- ", " -STOP- ", -- cgit v1.2.3 From ce56512c99b522e3942a84993360203d5f9e8fbc Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 26 Feb 2012 02:04:25 +0100 Subject: MORTEVIELLE: First "English" version. DAT file needs to be rebuilt --- devtools/create_mortdat/create_mortdat.cpp | 19 ++++++++++++------- devtools/create_mortdat/create_mortdat.h | 5 +++++ 2 files changed, 17 insertions(+), 7 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index de4bb415d4..4c1dd14fdb 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -82,10 +82,15 @@ void writeFontBlock() { outputFile.write(fontBuffer, 121 * 6); } -void writeStaticStrings(const char **strings, int languageId) { +void writeStaticStrings(const char **strings, DataType dataType, int languageId) { // Write out a section header char sStaticStrings[4] = { 'S', 'S', 'T', 'R' }; - outputFile.write(sStaticStrings, 4); + char sGameStrings[4] = { 'G', 'S', 'T', 'R' }; + + if (dataType == kStaticStrings) + outputFile.write(sStaticStrings, 4); + else if (dataType == kGameStrings) + outputFile.write(sGameStrings, 4); // Figure out the block size int blockSize = 1; @@ -112,22 +117,22 @@ void writeStaticStrings(const char **strings, int languageId) { * Write out the strings previously hard-coded into the engine */ void writeEngineStrings() { - writeStaticStrings(engineDataEn, 1); - writeStaticStrings(engineDataFr, 0); + writeStaticStrings(engineDataEn, kStaticStrings, 1); + writeStaticStrings(engineDataFr, kStaticStrings, 0); } /** * Write out the strings used in the game */ void writeGameStrings() { - writeStaticStrings(gameDataEn, 1); - writeStaticStrings(gameDataFr, 0); + writeStaticStrings(gameDataEn, kGameStrings, 1); + writeStaticStrings(gameDataFr, kGameStrings, 0); } void process() { writeFontBlock(); - writeEngineStrings(); writeGameStrings(); + writeEngineStrings(); } /** diff --git a/devtools/create_mortdat/create_mortdat.h b/devtools/create_mortdat/create_mortdat.h index d9c7561d93..0aa6b529df 100644 --- a/devtools/create_mortdat/create_mortdat.h +++ b/devtools/create_mortdat/create_mortdat.h @@ -31,6 +31,11 @@ enum AccessMode { kFileWriteMode = 2 }; +enum DataType { + kStaticStrings = 0, + kGameStrings = 1 +}; + #define MORT_DAT "mort.dat" class File { -- cgit v1.2.3 From 4361f843fdcd545305067daa43e48360eef05539 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 28 Feb 2012 07:55:43 +0100 Subject: TOOLS: Mortevielle - Add missing heading space for several sentences used in menus, in the English version --- devtools/create_mortdat/gametext.h | 360 ++++++++++++++++++------------------- 1 file changed, 180 insertions(+), 180 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index 6905fdf7c6..b9ef039c74 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -213,68 +213,68 @@ const char *gameDataEn[] = { " 5/1/51@@ Luc, my love@ Guy knows about us. After an argument I told him everything! I@think only of you. Max keeps pes-tering me, but it's finished with @him. He should stick to his pots and pans! When can you and I be alone together? For you I would@get a divorce.@I love you.@ Eva$", " Mortville, 10/2/51@@ Pat@ I recall you owe me 50000 frs that I lent you for your business@I need that money, can you repay me quickly?@ Guy$", " Mortville, 15/2/51@ Dear Sir@ I am writing to you on the sub-ject of our business deal. I have@decided to go all the way in the certainty that my partner, Pat@DEFRANCK, has been forging the accounts. @In spite of$", - "A pipe$", - "A pen$", - "A lighter$", - "A retort$", - "A shaving brush$", - "A tin of paint$", - "A flute$", - "An expensive ring$", - "A reel of thread$", - "An old book$", - "A wallet$", - "A dagger$", - "A pistol$", - "A bible$", - "A candle$", - "A jewellery box$", - "An iron$", - "A photo$", - "A pocket watch$", - "A rope$", - "Keys$", - "A pearl necklace$", - "A bottle of perfume$", - "Binoculars$", - "Glasses$", - "A leather purse$", - "A tennis ball$", - "Ammunition$", - "A cut-throat razor$", - "A hairbrush$", - "A clothes brush$", - "A pack of cards$", - "A shoe horn$", - "A screwdriver$", - "A hammer$", - "Keys$", - "Keys$", - "An ashtray$", - "A paintbrush$", - "A rope$", - "A wooden object$", - "Sleeping pills$", - "A gold ring$", - "A jewellery box$", - "An alarm clock$", - "A coat of armour$", - "A candlestick$", - "A pair of gloves$", - "A engraved goblet$", - "A parchment$", - "A dagger$", - "A dossier$", - "A parchment$", - "A parchment$", - "A dossier$", - "A dossier$", - "A letter$", - "A novel$", - "A wooden rod$", - "An envelope$", - "A letter$", - "An envelope$", + " A pipe$", + " A pen$", + " A lighter$", + " A retort$", + " A shaving brush$", + " A tin of paint$", + " A flute$", + " An expensive ring$", + " A reel of thread$", + " An old book$", + " A wallet$", + " A dagger$", + " A pistol$", + " A bible$", + " A candle$", + " A jewellery box$", + " An iron$", + " A photo$", + " A pocket watch$", + " A rope$", + " Keys$", + " A pearl necklace$", + " A bottle of perfume$", + " Binoculars$", + " Glasses$", + " A leather purse$", + " A tennis ball$", + " Ammunition$", + " A cut-throat razor$", + " A hairbrush$", + " A clothes brush$", + " A pack of cards$", + " A shoe horn$", + " A screwdriver$", + " A hammer$", + " Keys$", + " Keys$", + " An ashtray$", + " A paintbrush$", + " A rope$", + " A wooden object$", + " Sleeping pills$", + " A gold ring$", + " A jewellery box$", + " An alarm clock$", + " A coat of armour$", + " A candlestick$", + " A pair of gloves$", + " A engraved goblet$", + " A parchment$", + " A dagger$", + " A dossier$", + " A parchment$", + " A parchment$", + " A dossier$", + " A dossier$", + " A letter$", + " A novel$", + " A wooden rod$", + " An envelope$", + " A letter$", + " An envelope$", "Julia$", "Julia's death$", "Julia's relationships$", @@ -463,27 +463,27 @@ const char *gameDataEn[] = { "TBT - En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", "TBT - F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", "TBT - Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", - "to the bureau$", - "to the kitchen$", - "to the cellar$", - "to the landing$", - "outside$", - "to the dining room$", - "inside the manor$", - "front of the manor$", - "to the chapel$", - "to the weel$", - "north$", - "behind the manor$", - "south$", - "east$", - "west$", - "towards the manor$", - "further$", - "in the water$", - "out of the weel$", - "in the weel$", - "choice on screen$", + " to the bureau$", + " to the kitchen$", + " to the cellar$", + " to the landing$", + " outside$", + " to the dining room$", + " inside the manor$", + " front of the manor$", + " to the chapel$", + " to the weel$", + " north$", + " behind the manor$", + " south$", + " east$", + " west$", + " towards the manor$", + " further$", + " in the water$", + " out of the weel$", + " in the weel$", + " choice on screen$", "In the MYSTERY series...$", "MORTVILLE MANOR$", "$", @@ -504,40 +504,40 @@ const char *gameDataEn[] = { "COPYRIGHT 1987: KYILKHOR and B&JL LANGLOIS$", "$", "YOUR MOVE$", - "attach$", - "wait$", - "force$", - "sleep$", - "listen$", - "enter$", - "close$", - "search$", - "knock$", - "scratch$", - "read$", - "eat$", - "place$", - "open$", - "take$", - "look$", - "smell$", - "sound$", - "leave$", - "lift$", - "turn$", - "hide yourself$", - "search$", - "read$", - "put$", - "look$", - "Leo$", - "Pat$", - "Guy$", - "Eva$", - "Bob$", - "Luc$", - "Ida$", - "Max$", + " attach$", + " wait$", + " force$", + " sleep$", + " listen$", + " enter$", + " close$", + " search$", + " knock$", + " scratch$", + " read$", + " eat$", + " place$", + " open$", + " take$", + " look$", + " smell$", + " sound$", + " leave$", + " lift$", + " turn$", + " hide yourself$", + " search$", + " read$", + " put$", + " look$", + " Leo$", + " Pat$", + " Guy$", + " Eva$", + " Bob$", + " Luc$", + " Ida$", + " Max$", "JULIA...$", "- Did she commit suicide?$", "- Was she murdered?$", @@ -592,7 +592,7 @@ const char *gameDataEn[] = { "- 11$", "What was the first name@of the unknown character?$", "- Mireille$", - "- Françoise$", + "- Fran‡oise$", "- Maguy$", "- Emilie$", "- Murielle$", @@ -802,68 +802,68 @@ const char *gameDataFr[] = { " Le 5/01/51@@ Luc, mon amour@ Guy connaŒt notre liaison . A la suite d'une dispute, je lui ai tout dit . Je ne pense qu'… toi ! Max me relance mais j'ai d‚finitivement rompu avec lui . Qu'il reste … ses gamelles . Quand pourrons-nous nous voir seuls ? Pour toi je divorcerai... Je t'aime .@ ton Eva$", " Mortevielle, le 10/2/51@@ Pat,@ Je te rappelle que tu me dois 50000 F que je t'ai pr‚t‚s pour ton affaire . J'en ai besoin, peux-tu me les rendre assez vite?@ Guy$", " Mortevielle, le 15/2/51@ MaŒtre,@ Je vous ‚cris au sujet de notre affaire. Je suis d‚cid‚ … aller jusqu'au bout, certain que mon associ‚, Pat DEFRANCK, a falsifi‚ un livre de comptes . Malgr‚$", - "Une pipe$", - "Un stylo … plume$", - "Un briquet … essence$", - "Une cornue$", - "Un blaireau$", - "Un pot de peinture$", - "Une flute$", - "Une bague de valeur$", - "Une bobine de fil$", - "Un vieux bouquin$", - "Un porte-monnaie$", - "Un poignard$", - "Un r‚volver$", - "Une bible$", - "Une bougie$", - "Un coffret … bijoux$", - "Un fer … repasser$", - "Une photo$", - "Une montre … gousset$", - "Une corde$", - "Des clefs$", - "Un collier de perles$", - "Un flacon de parfum$", - "Des jumelles$", - "Des lunettes$", - "Une bourse en cuir$", - "Une balle de tennis$", - "Des munitions$", - "Un rasoir … main$", - "Une brosse … cheveux$", - "Une brosse … linge$", - "Un jeu de cartes$", - "Un chausse pied$", - "Un tournevis$", - "Un marteau$", - "Des clefs$", - "Des clefs$", - "Un cendrier$", - "Un pinceau$", - "Une corde$", - "Un objet en bois$", - "Des somnifŠres$", - "Une bague en or$", - "Un coffret … bijoux$", - "Un r‚veil matin$", - "Une cotte de mailles$", - "Un chandellier$", - "Une paire de gants$", - "Une coupe cisel‚e$", - "Un parchemin$", - "Un poignard$", - "Un dossier$", - "Un parchemin$", - "Un parchemin$", - "Un dossier$", - "Un dossier$", - "Une lettre$", - "Un roman$", - "Une baguette en bois$", - "Une enveloppe$", - "Une lettre$", - "Une enveloppe$", + " Une pipe$", + " Un stylo … plume$", + " Un briquet … essence$", + " Une cornue$", + " Un blaireau$", + " Un pot de peinture$", + " Une flute$", + " Une bague de valeur$", + " Une bobine de fil$", + " Un vieux bouquin$", + " Un porte-monnaie$", + " Un poignard$", + " Un r‚volver$", + " Une bible$", + " Une bougie$", + " Un coffret … bijoux$", + " Un fer … repasser$", + " Une photo$", + " Une montre … gousset$", + " Une corde$", + " Des clefs$", + " Un collier de perles$", + " Un flacon de parfum$", + " Des jumelles$", + " Des lunettes$", + " Une bourse en cuir$", + " Une balle de tennis$", + " Des munitions$", + " Un rasoir … main$", + " Une brosse … cheveux$", + " Une brosse … linge$", + " Un jeu de cartes$", + " Un chausse pied$", + " Un tournevis$", + " Un marteau$", + " Des clefs$", + " Des clefs$", + " Un cendrier$", + " Un pinceau$", + " Une corde$", + " Un objet en bois$", + " Des somnifŠres$", + " Une bague en or$", + " Un coffret … bijoux$", + " Un r‚veil matin$", + " Une cotte de mailles$", + " Un chandellier$", + " Une paire de gants$", + " Une coupe cisel‚e$", + " Un parchemin$", + " Un poignard$", + " Un dossier$", + " Un parchemin$", + " Un parchemin$", + " Un dossier$", + " Un dossier$", + " Une lettre$", + " Un roman$", + " Une baguette en bois$", + " Une enveloppe$", + " Une lettre$", + " Une enveloppe$", "Julia$", "La mort de Julia$", "Les relations de Julia$", -- cgit v1.2.3 From d8b8f93c4c51ac0ea8dbc105e3dad17c36866e18 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 29 Mar 2012 12:40:49 +0200 Subject: MORTEVIELLE: Start updating tools to add support to German DOS version --- devtools/create_mortdat/create_mortdat.cpp | 31 +- devtools/create_mortdat/enginetext.h | 53 +++ devtools/create_mortdat/gametext.h | 602 ++++++++++++++++++++++++++++- devtools/extract_mort/extract_mort.cpp | 15 +- 4 files changed, 681 insertions(+), 20 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 4c1dd14fdb..6fe115d5c4 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -57,25 +57,32 @@ void openOutputFile(const char *outFilename) { * Write out the data for the font */ void writeFontBlock() { + const int knownAddr[2] = {0x36b0, 0x36c0}; byte checkBuffer[7]; byte fontBuffer[121 * 6]; // Move to just prior the font data and verify that we're reading the known mort.com - mortCom.seek(0x36b0); - mortCom.read(checkBuffer, 7); - - if ((checkBuffer[0] != 0x59) || (checkBuffer[1] != 0x5B) || (checkBuffer[2] != 0x58) || - (checkBuffer[3] != 0xC3) || (checkBuffer[4] != 0xE8) || (checkBuffer[5] != 0xD6) || - (checkBuffer[6] != 0x02)) { - printf("Invalid mort.com input file"); - exit(0); + for (int i = 0; i <= 2; ++i) { + if ( i == 2) { + printf("Invalid mort.com input file"); + exit(0); + } + + mortCom.seek(knownAddr[i]); + mortCom.read(checkBuffer, 7); + + if ((checkBuffer[0] == 0x59) && (checkBuffer[1] == 0x5B) && (checkBuffer[2] == 0x58) || + (checkBuffer[3] == 0xC3) && (checkBuffer[4] == 0xE8) && (checkBuffer[5] == 0xD6) || + (checkBuffer[6] == 0x02)) { + break; + } } // Read in the data mortCom.read(fontBuffer, 121 * 6); // Write out a section header to the output file and the font data - char fontHeader[4] = { 'F', 'O', 'N', 'T' }; + const char fontHeader[4] = { 'F', 'O', 'N', 'T' }; outputFile.write(fontHeader, 4); // Section Id outputFile.writeWord(121 * 6); // Section size @@ -84,8 +91,8 @@ void writeFontBlock() { void writeStaticStrings(const char **strings, DataType dataType, int languageId) { // Write out a section header - char sStaticStrings[4] = { 'S', 'S', 'T', 'R' }; - char sGameStrings[4] = { 'G', 'S', 'T', 'R' }; + const char sStaticStrings[4] = { 'S', 'S', 'T', 'R' }; + const char sGameStrings[4] = { 'G', 'S', 'T', 'R' }; if (dataType == kStaticStrings) outputFile.write(sStaticStrings, 4); @@ -119,6 +126,7 @@ void writeStaticStrings(const char **strings, DataType dataType, int languageId) void writeEngineStrings() { writeStaticStrings(engineDataEn, kStaticStrings, 1); writeStaticStrings(engineDataFr, kStaticStrings, 0); + writeStaticStrings(engineDataDe, kStaticStrings, 2); } /** @@ -127,6 +135,7 @@ void writeEngineStrings() { void writeGameStrings() { writeStaticStrings(gameDataEn, kGameStrings, 1); writeStaticStrings(gameDataFr, kGameStrings, 0); + writeStaticStrings(gameDataDe, kGameStrings, 2); } void process() { diff --git a/devtools/create_mortdat/enginetext.h b/devtools/create_mortdat/enginetext.h index d9b3b05e2b..68db310a6b 100644 --- a/devtools/create_mortdat/enginetext.h +++ b/devtools/create_mortdat/enginetext.h @@ -133,4 +133,57 @@ const char *engineDataFr[] = { NULL }; +const char *engineDataDe[] = { + "[2][ ][JA][NEIN]", + "Go to", + "Someone enters, looks surised, but says nothing", + "Cool", + "Schwer", + "Ungesund", + "Idem", + "You", + "are", + "Alone", + + "Verdammt! Sie hoeren ein Geraeush...", + "Sie haetten ", + "% der Hinweise| bemerken muessen...", + "Do you want to wake up?", + "OK", + "", + " schreiben", + + " lesen", + " Restart ", + "F3 nochmals", + "F8: stop", + "Hide self", + "take", + " probe ", + " raise ", + " -WEITER- ", + " -STOP- ", + "[1][ Benutzen Sie jetzt das Menue DEP...][OK]", + "lift", + "read", + + "look", + "search", + "open", + "put", + "turn", + "tie", + "close", + "hit", + "pose", + "smash", + + "smell", + "scratch", + "probe", + "[1][ Benutzen Sie jetzt das Menue DEP...][OK]", + "& tag", + NULL +}; + #endif diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index b9ef039c74..0e0948e95f 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -609,7 +609,7 @@ const char *gameDataEn[] = { "[1][ | Disk error | All stop... ][ok]$", "[1][ | You should have noticed |00% of the clues ][ok]$", "[3][ | insert disk 2 | in drive A ][ok]$", - "TBT - [1][|Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", + "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", "TBT - MASTER .$", "TBT - rorL$", NULL @@ -1193,14 +1193,602 @@ const char *gameDataFr[] = { "L‚o$", "Max$", "Murielle partageait une occupation avec une autre personne . Qui ?$", - "[1][|Seul le hazard vous a permis d'arriver ici . Vous pr‚f‚rez|retourner enqu‚ter afin de mieux comprendre ...][ok]$", - "[1][|Ins‚rez la disquette 1 dans le lecteur A][ok]$", - "[1][|! ERREUR DISQUETTE !|On arrete tout][ok]$", - "[1][|Vous devriez avoir remarqu‚|00% des indices][ok]$", - "[1][|Ins‚rez la disquette 2 dans le lecteur A][ok]$", - "[1][|Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", + "[1][ |Seul le hazard vous a permis d'arriver ici . Vous pr‚f‚rez|retourner enqu‚ter afin de mieux comprendre ...][ok]$", + "[1][ |Ins‚rez la disquette 1 dans le lecteur A][ok]$", + "[1][ |! ERREUR DISQUETTE !|On arrete tout][ok]$", + "[1][ |Vous devriez avoir remarqu‚|00% des indices][ok]$", + "[1][ |Ins‚rez la disquette 2 dans le lecteur A][ok]$", + "[1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", " MASTER .$", " rorL$", }; +const char *gameDataDe[] = { + "TBT - Calm within the storm$", + "TBT - Discussed in colours$", + "TBT - Your mauve!$", + "TBT - Be kind enough to leave the room...$", + "TBT - If you're NOT overdrawn...$", + "TBT - If you're feeling blue...$", + "TBT - Read what's on the walls?$", + "TBT - Water sports$", + "TBT - Room for envy?$", + "TBT - A glance at the forbidden$", + "TBT - Smell of a woodfire and tobacco$", + "TBT - Tobacco and old books$", + "TBT - Onions, cinnamon and spirits$", + "TBT - A place seldom visited$", + "TBT - Humidity and decay$", + "TBT - Sorry, no ""door to door""$", + "TBT - Rotting corpse: deady cryptomania$", + "TBT - And what's more, there are disused traps$", + "TBT - It's already open$", + "TBT - Danger: avalanches$", + "TBT - Proper Charlie's place?$", + "TBT - An imposing building$", + "TBT - The other side of the mystery$", + "TBT - Strange horoscope$", + "TBT - Look out... but she wishes well?$", + "TBT - An oak door$", + "TBT - A photograph$", + "TBT - The coat of arms$", + "TBT - $", + "TBT - Max, the servant, welcomes you and shows you to your room$", + "TBT - Mortville 6/2/51@ My dear Jerome@Regarding my telegram, I must tell you the reason for my wor-@ries. A year ago, Murielle, my lady companion, disappeared. The de@part may have had something to do@with the financial success of themanor, or... A silence hard to un@derstand for my son Guy. Not ha@ving been able to see the light of day over this affair, I count @on you to sort things out. If my state of health doesn't improve, @take the decisions that you feel @are apropriate.@ Kind regards, Julia DEFRANCK$", + "TBT - Later, Guy will inform you of Leo's suicide after a@heavy bet at the races$", + "TBT - F3: AGAIN F8: STOP$", + "TBT - The master of the premises$", + "TBT - The future heir$", + "TBT - JULIA's son$", + "TBT - A pretty picture$", + "TBT - Superman!$", + "TBT - Ida's husband$", + "TBT - Interesting remarks?$", + "TBT - Service included!$", + "TBT - Nothing underneath$", + "TBT - You could hear a pin drop$", + "TBT - Half an hour passes: nothing! Wait any longer?$", + "TBT - Admire! Contemplate!$", + "TBT - No! Nothing!$", + "TBT - Impossible$", + "TBT - That stains!$", + "TBT - A treatise on the history of the area$", + "TBT - A few coins...$", + "TBT - First commandment...$", + "TBT - Pleasing to the nostrils!$", + "TBT - Spades, Hearts...$", + "TBT - Just a spoonful of sugar...$", + "TBT - A romantic novel$", + "TBT - Worth more than a penny, (whistle)$", + "TBT - Just needs a little patience$", + "TBT - Watch the sharp bends$", + "TBT - Deep and dark$", + "TBT - Normal sensations$", + "TBT - Sniff!$", + "TBT - Not discreet! Be content to watch!$", + "TBT - Bless you! Dusty!$", + "TBT - The canvas is signed, the wallpaper is not!$", + "TBT - Nothing, Unlucky!$", + "TBT - Be more discreet!$", + "TBT - The shutters are closed$", + "TBT - Snow! And more snow!$", + "TBT - Brilliant! The work of a master!$", + "TBT - No doubt at all! A genuine fake!$", + "TBT - Hmm! A cheap reproduction!$", + "TBT - A rare and valuable piece$", + "TBT - Nothing special$", + "TBT - Linen, personal belongings...$", + "TBT - Not just anywhere!$", + "TBT - It's not time!$", + "TBT - One doesn't speak with ones mouth full!$", + "TBT - Someone comes in, messes about then goes out again$", + "TBT - Someone's approaching your hiding-place$", + "TBT - Someone surprises you!$", + "TBT - Impossible! You're too loaded!$", + "TBT - Try again!$", + "TBT - Still puzzled!?$", + "TBT - You leave Mortville.In Paris a message awaits you...$", + "TBT - You hurt yourself$", + "TBT - Nothing more here$", + "TBT - The sound seems normal$", + "TBT - It doesn't move$", + "TBT - You are answered$", + "TBT - Not the right moment!$", + "TBT - The same matter, from another angle!$", + "TBT - The reflection is tarnished, but the frame is gold!$", + "TBT - Bric-a-brac$", + "TBT - Face to face with failure!$", + "TBT - Smells like something you'd rather not see!$", + "TBT - Cleaning products$", + "TBT - Got an itch?$", + "TBT - It's stuck, frozen. Brrr!$", + "TBT - All the locks are jammed!$", + "TBT - Papers$", + "TBT - No! Father christmas hasn't got himself stuck!$", + "TBT - It leads onto a corridor$", + "TBT - China, silverware...$", + "TBT - No! It's not Julia's remains!$", + "TBT - An old engraving$", + "TBT - You find a deep diamond-shaped opening$", + "TBT - The wall slides open! A passage! Do you follow it?$", + "TBT - The passageway closes$", + "TBT - A secret drawer: a notebook! Do you read it?$", + "TBT - The drawer shuts$", + "TBT - Nothing! Flesh and blood stuck to the stone$", + "TBT - Certain details lead you to believe death was not immediate!$", + "TBT - A rotten affair!$", + "TBT - Did she cling to dear life with just one finger?$", + "TBT - Has the treasure packed its trunk?$", + "TBT - A slot the size of a coin$", + "TBT - Part of the stone wall pivots.A crypt! Do you enter?$", + "TBT - The ring turns, the wall closes$", + "TBT - A stone column behind the altar$", + "TBT - There is a noise!$", + "TBT - Occupied!$", + "TBT - Take another chance?$", + "TBT - Too deep!$", + "TBT - The cellar wall pivots$", + "TBT - Nothing$", + "TBT - The one and only!$", + "TBT - The object slides to the bottom$", + "TBT - You have nothing in hand$", + "TBT - It is not open$", + "TBT - There is already something$", + "TBT - The door is locked$", + "TBT - No reply$", + "TBT - A solid wooden ball$", + "TBT - There's no more space$", + "TBT - A wooden ball pierced through the side$", + "TBT - ? ?$", + "TBT - Your move$", + "TBT - OK !$", + "TBT - Suddenly Max arrives with your suitcase: \"Thank you for your @visit!\".Mister discreet \"private eye\" (in need of a private optici@an!). Thoroughly demoralised, you@leave the manor. You are useless!$", + "TBT - Leo interrupts: \"The storm has died down,I am going into town in@1 hour. Get ready\". You have lost@time...but not your life$", + "TBT - Congestion, the deadly flu... You@are stuck here! Your whole case@sinks slowly beneath the water$", + "TBT - The water is rising fast,freezing your last illusions. Before you@have time to react...you are dead$", + "TBT - As soon as you reach the bottom of the well, a hand cuts the rope@Farewell sweet life!$", + "TBT - The storm covers your footprints.A wall of silence falls heavily@on your shoulders. Slowly you succumb to frosbite...$", + "TBT - You're not completely alone! A cold blade plunges into your backup@In future, be more care!$", + "TBT - You don't know what implication Leo may have had in Murielle's@death. Was she dead outright? In@any case,the family problems thatyou have uncovered in the course@of your enquiries would explain Leo's behaviour. You're not sure@that's the reason Julia had asked@for your help, but that's reason enough for you!Out of respect for@her, after taking certain precau-@tions you have a revealing talk with Leo.$", + "TBT - $", + "TBT - You don't have the keys to the manor. Your cries rest unheard@You're going to catch... your death!$", + "TBT - With a circular movement, the sword slices across you. Guts and@intestines spill out all over. A sorry state of affairs!$", + "TBT - Home, Sweet home !$", + "TBT - The mystery behind a closed door$", + "TBT - Bewitching charm of these old rooms$", + "TBT - An empty stomach$", + "TBT - Closer to heaven? Not so sure$", + "TBT - Afraid of the dark?$", + "TBT - Old rugs and a glint of gold$", + "TBT - Anguish!$", + "TBT - Safe? Perhaps not!$", + "TBT - A little ill at ease, eh!?$", + "TBT - Always further$", + "TBT - Your way of the cross!$", + "TBT - On the trail of...$", + "TBT - Watch what's hiding$", + "TBT - The road down to hell$", + "TBT - Feeling well? You look a little pale$", + "TBT - What lurks behind...?$", + "TBT - Close-up on:$", + "TBT - You notice, amongst other things$", + "TBT - And...$", + "TBT - That's all!$", + "TBT - A bit of reading$", + "TBT - The adventure awaits, you set off!$", + "TBT - Don't mess up YOUR next ADVENTURE!$", + "TBT - I don't understand$", + "TBT - There is an easier way$", + "TBT - No, not just now$", + "TBT - Too late$", + "TBT - $", + "TBT - Like a deep stony stare, a solitary eye that points towards the@stars; the artery that links hea-ven and hell. You must fathom@these depths keeping hold of that@which is, and will become. Monday, Tuesday, Wednesday, Sunday, from@Monday 1st to Sunday 1st,plunging from one day to the next your@\"IS\" or \"WILL BECOME\". Carrying your burden with love and light,@the smallest oversight will seal your fate.$", + "TBT - 10/1/51: We think we've solved the mystery of the manuscript and@located the crypt. Is it the idea@of success in what seems like a dream that disturbs me so? I feel@I have committed myself rather too much, as far as Leo is concer@ned... No! I should go on. @I should have put Guy in the pic-ture but for a week now, I've had@no news of him$", + "TBT - Take your prayers as you would to the holy place. From the pillar@of wisdom, bring the sun to his@knees. Thus will it show you the place to offer alms of another@kind and like young Arthur, open the way of darkness.White is your@colour, golden your hearth. So@advance with caution Orpheus and light your way unto the sad@virgin. Offer her the circle of the man with three faces. That he@may regain the world and turn with it to its original@inglory!$", + "TBT - The mountains are the fangs in a monstrous mouth opening on the@finity of a celestial orgy, grin-ding the stars as we grind our@teeth into dust. You will drop your chord of stone at your feet.@The laugh of silence at the@highest pitch, and in your right hand, the measure of genius. Thus@will you pass between the two crescents beyond the abyss of the@wall of silence. The key to the melody is within your grasp. It@suffices to find the note that clashes.$", + "TBT - 9/12 INTER. 518 3/13 EXPENS. 23@ 9/12 SALES 1203 7/12 CHEQUE 1598@ TOTAL 1721 TOTAL 1721$", + "TBT - 5/1/51@@ Luc, my love@ Guy knows about us. After an argument I told him everything! I@think only of you. Max keeps pes-tering me, but it's finished with @him. He should stick to his pots and pans! When can you and I be alone together? For you I would@get a divorce.@I love you.@ Eva$", + "TBT - Mortville, 10/2/51@@ Pat@ I recall you owe me 50000 frs that I lent you for your business@I need that money, can you repay me quickly?@ Guy$", + "TBT - Mortville, 15/2/51@ Dear Sir@ I am writing to you on the sub-ject of our business deal. I have@decided to go all the way in the certainty that my partner, Pat@DEFRANCK, has been forging the accounts. @In spite of$", + "TBT - A pipe$", + "TBT - A pen$", + "TBT - A lighter$", + "TBT - A retort$", + "TBT - A shaving brush$", + "TBT - A tin of paint$", + "TBT - A flute$", + "TBT - An expensive ring$", + "TBT - A reel of thread$", + "TBT - An old book$", + "TBT - A wallet$", + "TBT - A dagger$", + "TBT - A pistol$", + "TBT - A bible$", + "TBT - A candle$", + "TBT - A jewellery box$", + "TBT - An iron$", + "TBT - A photo$", + "TBT - A pocket watch$", + "TBT - A rope$", + "TBT - Keys$", + "TBT - A pearl necklace$", + "TBT - A bottle of perfume$", + "TBT - Binoculars$", + "TBT - Glasses$", + "TBT - A leather purse$", + "TBT - A tennis ball$", + "TBT - Ammunition$", + "TBT - A cut-throat razor$", + "TBT - A hairbrush$", + "TBT - A clothes brush$", + "TBT - A pack of cards$", + "TBT - A shoe horn$", + "TBT - A screwdriver$", + "TBT - A hammer$", + "TBT - Keys$", + "TBT - Keys$", + "TBT - An ashtray$", + "TBT - A paintbrush$", + "TBT - A rope$", + "TBT - A wooden object$", + "TBT - Sleeping pills$", + "TBT - A gold ring$", + "TBT - A jewellery box$", + "TBT - An alarm clock$", + "TBT - A coat of armour$", + "TBT - A candlestick$", + "TBT - A pair of gloves$", + "TBT - A engraved goblet$", + "TBT - A parchment$", + "TBT - A dagger$", + "TBT - A dossier$", + "TBT - A parchment$", + "TBT - A parchment$", + "TBT - A dossier$", + "TBT - A dossier$", + "TBT - A letter$", + "TBT - A novel$", + "TBT - A wooden rod$", + "TBT - An envelope$", + "TBT - A letter$", + "TBT - An envelope$", + "TBT - Julia$", + "TBT - Julia's death$", + "TBT - Julia's relationships$", + "TBT - A message from Julia$", + "TBT - Julia's inheritance$", + "TBT - Julia's final actions$", + "TBT - Julia's gifts$", + "TBT - Julia's bedroom$", + "TBT - The photo at Julia's home$", + "TBT - Julia and yourself...$", + "TBT - L‚o's occupations$", + "TBT - Pat's occupations$", + "TBT - Guy's occupations$", + "TBT - Bob's occupations$", + "TBT - Eva's occupations$", + "TBT - Luc's occupations$", + "TBT - Ida's occupations$", + "TBT - Max's occupations$", + "TBT - Your occupations$", + "TBT - L‚o's relationships$", + "TBT - Pat's relationships$", + "TBT - Guy's relationships$", + "TBT - Bob's relationships$", + "TBT - Eva's relationships$", + "TBT - Luc's relationships$", + "TBT - Ida's relationships$", + "TBT - Max's relationships$", + "TBT - Your relationships$", + "TBT - Murielle$", + "TBT - Murielle's relationships$", + "TBT - Murielle and yourself...$", + "TBT - Murielle's disappearance$", + "TBT - The wall of silence$", + "TBT - The manuscripts$", + "TBT - The coat of arms$", + "TBT - Engravings in the cellar$", + "TBT - The well$", + "TBT - The secret passages$", + "TBT - The chapel$", + "TBT - The paintings$", + "TBT - The photo of the attic$", + "TBT - The body in the crypt$", + "TBT - $", + "TBT - $", + "TBT - END OF THE CONVERSATION$", + "TBT - Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", + "TBT - C'est le massif montagneux que l'on aper‡oit devant le manoir$", + "TBT - Je n'en sais rien !$", + "TBT - Elle est morte d'une embolie pulmonaire$", + "TBT - Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", + "TBT - Madame DEFRANCK est morte d'un coup de froid$", + "TBT - Elle est morte d'une embolie pulmonaire$", + "TBT - Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", + "TBT - Ce sont toujours les meilleurs qui partent les premiers$", + "TBT - J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", + "TBT - C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", + "TBT - C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", + "TBT - Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir ...$", + "TBT - Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", + "TBT - C'est un homme dynamique qui a r‚ussi dans le parfum$", + "TBT - Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", + "TBT - J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", + "TBT - Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", + "TBT - Ce sont ses affaires ...$", + "TBT - Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", + "TBT - Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", + "TBT - Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", + "TBT - Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", + "TBT - Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", + "TBT - Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", + "TBT - Mais ! Vous n'avez pas encore d‚couvert son occupation principale ..?$", + "TBT - Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs . Elle est toujours trŠs bien habill‚e$", + "TBT - Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", + "TBT - Les bijoux ...$", + "TBT - Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", + "TBT - Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", + "TBT - Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", + "TBT - Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", + "TBT - Une femme comme il n'y en a plus : Elle s'interesse a tout !$", + "TBT - Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", + "TBT - Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", + "TBT - Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", + "TBT - Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", + "TBT - C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", + "TBT - Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", + "TBT - C'est un homme de caractŠre . Il faut savoir le prendre ..$", + "TBT - Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", + "TBT - Relations ? Relations amicales ? Relations financiŠres sans doute$", + "TBT - Moi je n'ai rien … lui reprocher$", + "TBT - C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", + "TBT - Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", + "TBT - A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", + "TBT - Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", + "TBT - Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", + "TBT - J'aime bien tout le monde, tant qu'on ne m'escroque pas$", + "TBT - Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", + "TBT - Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", + "TBT - Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", + "TBT - Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", + "TBT - C'est pour un rendez-vous ?$", + "TBT - Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", + "TBT - Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", + "TBT - La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", + "TBT - C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", + "TBT - Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", + "TBT - C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", + "TBT - Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", + "TBT - Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", + "TBT - C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", + "TBT - Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", + "TBT - C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", + "TBT - C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", + "TBT - Murielle a ‚t‚ la dame de compagnie de Julia$", + "TBT - Elle aussi, faisait des recherches ...$", + "TBT - C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", + "TBT - Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", + "TBT - Je crois que tout le monde l'aimait bien$", + "TBT - Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", + "TBT - A part L‚o, elle avait de trŠs bon rapport avec Max ...$", + "TBT - Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", + "TBT - A part sa famille, pas grand monde$", + "TBT - Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", + "TBT - Non rien !$", + "TBT - Non ... Pas que le sache$", + "TBT - J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", + "TBT - Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", + "TBT - Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", + "TBT - A part la lettre pour vous que j'ai post‚, rien de bien important !$", + "TBT - J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", + "TBT - Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", + "TBT - Son dernier pr‚sent m'a surpris$", + "TBT - Quel cadeau ?$", + "TBT - Un chandellier ...$", + "TBT - Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", + "TBT - Et bien oui ! Comme tout le monde, je crois$", + "TBT - Un poignard$", + "TBT - Je n'ai jamais ‚t‚ fouiller dans le grenier !$", + "TBT - Vous avez un don de double-vue ou un passe-partout$", + "TBT - Le portrait d'une jeune fille : C'est Murielle ...$", + "TBT - Vous savez, je la connaissais assez peu$", + "TBT - Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", + "TBT - C'est la seule femme vraiment interessante que j'ai rencontr‚$", + "TBT - Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", + "TBT - Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", + "TBT - Si la chambre est ferm‚e, demandez … L‚o$", + "TBT - J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", + "TBT - Vous savez ce que c'est : Des relations familiales$", + "TBT - Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", + "TBT - Je l'aimais autant qu'elle m'aimais, je crois$", + "TBT - De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", + "TBT - C'est sans doute la photo de Murielle avec le filleul de Julia$", + "TBT - Je ne me rappelle pas$", + "TBT - C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", + "TBT - Vous ˆtes bien curieux !... C'est sans valeur$", + "TBT - Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", + "TBT - Dommage que la devise soit manquante ...$", + "TBT - C'est trŠs beau ... Et trŠs vieux ...$", + "TBT - Tiens ! C'est un endroit que je n'ai jamais visit‚$", + "TBT - D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", + "TBT - Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", + "TBT - Profond et inqui‚tant : Le progrŠs a du bon$", + "TBT - Ca reste pour moi le plus grand des mystŠres$", + "TBT - Les derniers temps elle parlait d'un voyage . Et puis ...$", + "TBT - Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", + "TBT - De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", + "TBT - Quoi ?! Quel corps ? Quel crypte ?$", + "TBT - Si il y en a, je ne les ai jamais trouv‚ ...$", + "TBT - Bien s–r ! ... Et des fant“mes aussi ...$", + "TBT - C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", + "TBT - Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", + "TBT - Julia aimait beaucoup la peinture$", + "TBT - Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", + "TBT - Que faites-vous l… ?$", + "TBT - Je suis s–r que vous cherchez quelque chose ici$", + "TBT - Je vous ‚coute$", + "TBT - Que d‚sirez-vous ?$", + "TBT - Oui ?$", + "TBT - Je suis … vous ...$", + "TBT - C'est pourquoi ?$", + "TBT - Allez-y$", + "TBT - C'est … quel sujet ?$", + "TBT - Max : … votre service, monsieur$", + "TBT - De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", + "TBT - Vous ˆtes trop curieux !$", + "TBT - J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", + "TBT - En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", + "TBT - F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", + "TBT - Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", + "TBT - to the bureau$", + "TBT - to the kitchen$", + "TBT - to the cellar$", + "TBT - to the landing$", + "TBT - outside$", + "TBT - to the dining room$", + "TBT - inside the manor$", + "TBT - front of the manor$", + "TBT - to the chapel$", + "TBT - to the weel$", + "TBT - north$", + "TBT - behind the manor$", + "TBT - south$", + "TBT - east$", + "TBT - west$", + "TBT - towards the manor$", + "TBT - further$", + "TBT - in the water$", + "TBT - out of the weel$", + "TBT - in the weel$", + "TBT - choice on screen$", + "TBT - In the MYSTERY series...$", + "TBT - MORTVILLE MANOR$", + "TBT - $", + "TBT - From an original idea of...$", + "TBT - Bernard GRELAUD and Bruno GOURIER$", + "TBT - $", + "TBT - Directed by: KYILKHOR CREATION and LANGLOIS$", + "TBT - $", + "TBT - With the cooperation of...$", + "TBT - B‚atrice et Jean_Luc LANGLOIS$", + "TBT - for the music and the voices,$", + "TBT - Bernard GRELAUD for the graphic conception,$", + "TBT - MARIA-DOLORES for the graphic direction,$", + "TBT - Bruno GOURIER for the technical direction,$", + "TBT - Mick ANDON for the translation. $", + "TBT - $", + "TBT - Publisher: KYILKHOR and B&JL LANGLOIS $", + "TBT - COPYRIGHT 1987: KYILKHOR and B&JL LANGLOIS$", + "TBT - $", + "TBT - YOUR MOVE$", + "TBT - attach$", + "TBT - wait$", + "TBT - force$", + "TBT - sleep$", + "TBT - listen$", + "TBT - enter$", + "TBT - close$", + "TBT - search$", + "TBT - knock$", + "TBT - scratch$", + "TBT - read$", + "TBT - eat$", + "TBT - place$", + "TBT - open$", + "TBT - take$", + "TBT - look$", + "TBT - smell$", + "TBT - sound$", + "TBT - leave$", + "TBT - lift$", + "TBT - turn$", + "TBT - hide yourself$", + "TBT - search$", + "TBT - read$", + "TBT - put$", + "TBT - look$", + "TBT - Leo$", + "TBT - Pat$", + "TBT - Guy$", + "TBT - Eva$", + "TBT - Bob$", + "TBT - Luc$", + "TBT - Ida$", + "TBT - Max$", + "TBT - JULIA...$", + "TBT - - Did she commit suicide?$", + "TBT - - Was she murdered?$", + "TBT - - Did she die by accident?$", + "TBT - - Did she die of natural causes?$", + "TBT - Where did the money come from@for the restoration of the manor?$", + "TBT - - Blackmail$", + "TBT - - Honest work$", + "TBT - - Inheritance$", + "TBT - - Races$", + "TBT - - Rents$", + "TBT - - Hold-up$", + "TBT - - Other$", + "TBT - What is Leo's hobby?$", + "TBT - - Historical research$", + "TBT - - Politics$", + "TBT - - Painting$", + "TBT - - Drugs$", + "TBT - - Occult sciences$", + "TBT - - Management of a sect$", + "TBT - Julia left several clues that are@represented in one place. Which?$", + "TBT - - Chapel$", + "TBT - - Outside$", + "TBT - - Cellar$", + "TBT - - Attic$", + "TBT - - Kitchen$", + "TBT - - Dining room$", + "TBT - - Julia's room$", + "TBT - - Leo's room$", + "TBT - - Pat's room$", + "TBT - - Bob's room$", + "TBT - - Max's room$", + "TBT - - Luc/Ida's room$", + "TBT - - Guy/Eva's room$", + "TBT - The main clue that leads you@to the underground door is:$", + "TBT - - A dagger$", + "TBT - - A ring$", + "TBT - - A book$", + "TBT - - A parchment$", + "TBT - - A letter$", + "TBT - - A pendulum$", + "TBT - How many parchments were there in the manor?$", + "TBT - - 0$", + "TBT - - 1$", + "TBT - - 2$", + "TBT - - 3$", + "TBT - - 4$", + "TBT - - 5$", + "TBT - How many persons are involved in@this story?@(Julia included, but not yourself)$", + "TBT - - 9$", + "TBT - - 10$", + "TBT - - 11$", + "TBT - What was the first name@of the unknown character?$", + "TBT - - Mireille$", + "TBT - - Fran‡oise$", + "TBT - - Maguy$", + "TBT - - Emilie$", + "TBT - - Murielle$", + "TBT - - Sophie$", + "TBT - Wo did Murielle have an affair with?$", + "TBT - - Bob$", + "TBT - - Luc$", + "TBT - - Guy$", + "TBT - - Leo$", + "TBT - - Max$", + "TBT - Murielle shared an occupation@with one other person. Who?$", + "TBT - [1][You realize that certain elements of|this investigation remain a mystery for you.|Therefore, you decide first to learn|more before undertaking new risks..][ok]$", + "TBT - [3][ | insert disk 1 | in drive A ][ok]$", + "TBT - [1][ | Disk error | All stop... ][ok]$", + "TBT - [1][ | You should have noticed |00% of the clues ][ok]$", + "TBT - [3][ | insert disk 2 | in drive A ][ok]$", + "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", + "TBT - MASTER .$", + "TBT - rorL$", + NULL +}; #endif diff --git a/devtools/extract_mort/extract_mort.cpp b/devtools/extract_mort/extract_mort.cpp index 192ea50723..477ca44631 100644 --- a/devtools/extract_mort/extract_mort.cpp +++ b/devtools/extract_mort/extract_mort.cpp @@ -272,11 +272,22 @@ static void export_strings(const char *textFilename) { uint16 *strData; // Open input and output files - txxInp.open("TXX.INP", kFileReadMode); - txxNtp.open("TXX.NTP", kFileReadMode); + if (!txxInp.open("TXX.INP", kFileReadMode)) { + if (!txxInp.open("TXX.MOR", kFileReadMode)) { + printf("Missing TXX.INP/MOR"); + exit(-1); + } + } + if (!txxNtp.open("TXX.NTP", kFileReadMode)) { + if (!txxNtp.open("TXX.IND", kFileReadMode)) { + printf("Missing TXX.NTP/IND"); + exit(-1); + } + } textFile.open(textFilename, kFileWriteMode); // Read all the compressed string data into a buffer + printf("%d %d", txxInp.size(), txxNtp.size()); strData = (uint16 *)malloc(txxInp.size()); txxInp.read(strData, txxInp.size()); -- cgit v1.2.3 From 4c9c1e17d174528877a5b0b9e175c9853c833d50 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 30 May 2012 23:29:25 +0200 Subject: TOOLS: Translate a couple of strings used in Mortevielle English --- devtools/create_mortdat/enginetext.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/enginetext.h b/devtools/create_mortdat/enginetext.h index 68db310a6b..c4929141d3 100644 --- a/devtools/create_mortdat/enginetext.h +++ b/devtools/create_mortdat/enginetext.h @@ -30,9 +30,9 @@ const char *engineDataEn[] = { "[2][ ][YES][NO]", "Go to", "Someone enters, looks surised, but says nothing", - "Cool", - " Lourde ", - "Malsaine", + " Cool ", + "Oppressive", + " Tense ", "Idem", "You", "are", @@ -47,14 +47,14 @@ const char *engineDataEn[] = { " Save", " Load", - " Restart ", + " Restart", "F3: Repeat", "F8: Proceed", "Hide self", "take", " probe ", " raise ", - " -SUITE- ", + " -MORE- ", " -STOP- ", "[1] [So, use the DEP menu] [Ok]", "lift", -- cgit v1.2.3 From 42b0f5535e8bc55417af91bc49e1ebf8500d4bd4 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 20 Feb 2013 23:54:14 +0100 Subject: MORTEVIELLE:Add initial English translation --- devtools/create_mortdat/gametext.h | 286 ++++++++++++++++++------------------- 1 file changed, 143 insertions(+), 143 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index 0e0948e95f..9efb55bc53 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -320,149 +320,149 @@ const char *gameDataEn[] = { "$", "$", "END OF THE CONVERSATION$", - "TBT - Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", - "TBT - C'est le massif montagneux que l'on aper‡oit devant le manoir$", - "TBT - Je n'en sais rien !$", - "TBT - Elle est morte d'une embolie pulmonaire$", - "TBT - Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", - "TBT - Madame DEFRANCK est morte d'un coup de froid$", - "TBT - Elle est morte d'une embolie pulmonaire$", - "TBT - Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", - "TBT - Ce sont toujours les meilleurs qui partent les premiers$", - "TBT - J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", - "TBT - C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", - "TBT - C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", - "TBT - Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir ...$", - "TBT - Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", - "TBT - C'est un homme dynamique qui a r‚ussi dans le parfum$", - "TBT - Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", - "TBT - J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", - "TBT - Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", - "TBT - Ce sont ses affaires ...$", - "TBT - Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", - "TBT - Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", - "TBT - Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", - "TBT - Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", - "TBT - Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", - "TBT - Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", - "TBT - Mais ! Vous n'avez pas encore d‚couvert son occupation principale ..?$", - "TBT - Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs . Elle est toujours trŠs bien habill‚e$", - "TBT - Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", - "TBT - Les bijoux ...$", - "TBT - Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", - "TBT - Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", - "TBT - Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", - "TBT - Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", - "TBT - Une femme comme il n'y en a plus : Elle s'interesse a tout !$", - "TBT - Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", - "TBT - Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", - "TBT - Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", - "TBT - Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", - "TBT - C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", - "TBT - Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", - "TBT - C'est un homme de caractŠre . Il faut savoir le prendre ..$", - "TBT - Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", - "TBT - Relations ? Relations amicales ? Relations financiŠres sans doute$", - "TBT - Moi je n'ai rien … lui reprocher$", - "TBT - C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", - "TBT - Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", - "TBT - A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", - "TBT - Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", - "TBT - Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", - "TBT - J'aime bien tout le monde, tant qu'on ne m'escroque pas$", - "TBT - Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", - "TBT - Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", - "TBT - Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", - "TBT - Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", - "TBT - C'est pour un rendez-vous ?$", - "TBT - Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", - "TBT - Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", - "TBT - La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", - "TBT - C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", - "TBT - Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", - "TBT - C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", - "TBT - Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", - "TBT - Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", - "TBT - C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", - "TBT - Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", - "TBT - C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", - "TBT - C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", - "TBT - Murielle a ‚t‚ la dame de compagnie de Julia$", - "TBT - Elle aussi, faisait des recherches ...$", - "TBT - C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", - "TBT - Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", - "TBT - Je crois que tout le monde l'aimait bien$", - "TBT - Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", - "TBT - A part L‚o, elle avait de trŠs bon rapport avec Max ...$", - "TBT - Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", - "TBT - A part sa famille, pas grand monde$", - "TBT - Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", - "TBT - Non rien !$", - "TBT - Non ... Pas que le sache$", - "TBT - J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", - "TBT - Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", - "TBT - Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", - "TBT - A part la lettre pour vous que j'ai post‚, rien de bien important !$", - "TBT - J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", - "TBT - Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", - "TBT - Son dernier pr‚sent m'a surpris$", - "TBT - Quel cadeau ?$", - "TBT - Un chandellier ...$", - "TBT - Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", - "TBT - Et bien oui ! Comme tout le monde, je crois$", - "TBT - Un poignard$", - "TBT - Je n'ai jamais ‚t‚ fouiller dans le grenier !$", - "TBT - Vous avez un don de double-vue ou un passe-partout$", - "TBT - Le portrait d'une jeune fille : C'est Murielle ...$", - "TBT - Vous savez, je la connaissais assez peu$", - "TBT - Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", - "TBT - C'est la seule femme vraiment interessante que j'ai rencontr‚$", - "TBT - Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", - "TBT - Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", - "TBT - Si la chambre est ferm‚e, demandez … L‚o$", - "TBT - J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", - "TBT - Vous savez ce que c'est : Des relations familiales$", - "TBT - Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", - "TBT - Je l'aimais autant qu'elle m'aimais, je crois$", - "TBT - De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", - "TBT - C'est sans doute la photo de Murielle avec le filleul de Julia$", - "TBT - Je ne me rappelle pas$", - "TBT - C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", - "TBT - Vous ˆtes bien curieux !... C'est sans valeur$", - "TBT - Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", - "TBT - Dommage que la devise soit manquante ...$", - "TBT - C'est trŠs beau ... Et trŠs vieux ...$", - "TBT - Tiens ! C'est un endroit que je n'ai jamais visit‚$", - "TBT - D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", - "TBT - Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", - "TBT - Profond et inqui‚tant : Le progrŠs a du bon$", - "TBT - Ca reste pour moi le plus grand des mystŠres$", - "TBT - Les derniers temps elle parlait d'un voyage . Et puis ...$", - "TBT - Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", - "TBT - De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", - "TBT - Quoi ?! Quel corps ? Quel crypte ?$", - "TBT - Si il y en a, je ne les ai jamais trouv‚ ...$", - "TBT - Bien s–r ! ... Et des fant“mes aussi ...$", - "TBT - C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", - "TBT - Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", - "TBT - Julia aimait beaucoup la peinture$", - "TBT - Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", - "TBT - Que faites-vous l… ?$", - "TBT - Je suis s–r que vous cherchez quelque chose ici$", - "TBT - Je vous ‚coute$", - "TBT - Que d‚sirez-vous ?$", - "TBT - Oui ?$", - "TBT - Je suis … vous ...$", - "TBT - C'est pourquoi ?$", - "TBT - Allez-y$", - "TBT - C'est … quel sujet ?$", - "TBT - Max : … votre service, monsieur$", - "TBT - De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", - "TBT - Vous ˆtes trop curieux !$", - "TBT - J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", - "TBT - En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", - "TBT - F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", - "TBT - Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", + "That was the name old people gave to the mountain range that lies at the foot of the manor!$", + "These are the mountains one can see in front of the manor$", + "I don't know!$", + "She died from pulmonary embolism$", + "Mother died suddenly. And yet her health had seemed to improve‚$", + "Miss DEFRANCK died from a cold$", + "She died from pulmonary embolism$", + "Excuse me but I prefer to say nothing for now$", + "Only the good die young$", + "I loved my mother . My only regret is that she died in the DEFRANCK's manor$", + "That region has a lot of history and there is plenty to keep me busy. And also I love horses..$", + "He is a history enthusiast and a gambler. By the way he won a large sum one year ago$", + "He is already very busy with the management and maintenance of the mansion...$", + "I am the CEO of a small perfume company. But when I am here, I rest$", + "He is a dynamic man who has succeeded in perfurmes$", + "Him! He is an upstart rogue! Perfumes must have killed his common sense. Moreover, when he's here he spends his evenings in his room$", + "I was very concerned about my mother's health, and now I don't feel like doing anything at all$", + "He would have done better to look after me a bit more and a bit less after his mother$", + "(313) It is his business...$", + "He does not have much luck at the moment although his business is satisfactory$", + "I work with Pat but it's not going too well at the moment$", + "Oh really?! He has activities? He better take care of them seriously then$", + "Him and Pat are patners. I think it's going pretty well$", + "I take care of myself and that's already lots. How about you?$", + "(319) Oh that! I trust her. She knows how to keep herself busy$", + "(320) What! You have not yet discovered her main occupation..?$", + "She is working in the decoration business, and tastefully with that. She is always very well dressed$", + "If you like jewels, I have some good deals to propose for a short while$", + "The jewels...$", + "I don't know, but I'd like him to give me a bit more slack!$", + "When one is a housewife, one always find something to do...$", + "She could stay there doing nothing, but no! She sews, she reads ...$", + "She probably doesn't have very fulfilling occupations...$", + "A woman like there is no more: She is interested in everything!$", + "With the cooking and the cleaning I do not have much time for you$", + "I do not know how he manages to do everything. That's wonderful!$", + "He would do more if he showed less interest in gossip and alcohol$", + "I am very independant. As long as nobody interferes in my business: No problem$", + "He is selfish. I wonder if he likes something else than his horses and grimoires$", + "I think he gets along well with everyone, except, perhaps, with Guy$", + "He has a temper. You have to learn how to deal with him ..$", + "Business is business. As for the family, I leave it as it is ...$", + "Relations? Friendly relations? Financial relations, without a doubt$", + "Oh I don't have anything against him$", + "He is a resourceful businessman. He sometimes tries to swim upstream but … he will always find a way to make it work$", + "(340) They all bore me .. No! Not even that .. Even if .. some people ..$", + "Contrary to his mother, he is a very shy person ! So when you say relations ..$", + "He must be trying very hard to remain nice despite all his troubles$", + "(343) His romantic relationship: it's over. His relationship with me: hasn't really started. As for the other ones: I don't follow the \"other ones\"$", + "I like everyone, as long as they are not trying to screw me over$", + "It is not enough to have a bit of money and to know how to talk for everyone to like you$", + "Not much to say about him .. He is a nice and generous man. And what's more, he can be quite funny$", + "Nowadays I get along rather well with everyone. But, here, I am not going to say more about this$", + "(348) Nice feathers, but a bird's brain... Ask her husband$", + "Is it for an appointment?$", + "(350) She is very lively! She does not burden herself with stupids prejudices$", + "In my line of work, one mostly encounters beautiful women and gangsters$", + "The only sure thing he has going for him, it's his jewelery .. And his wife, but he doesn't realize that$", + "It's an interesting character. Who is not always very easy to follow, but worth knowing$", + "I hate no one, but I like things and people when they stay where they should be$", + "This stays between us. But you see: when I speak with her, I soon start to feel a bit uncomfortable!$", + "You'd have to try hard to not get along with her$", + "You know, in my line of work you hear everything but don't remember anything, and service is well done$", + "He's a submissive hypocrite! Personally I don't trust him$", + "I don't know what he thinks deep down inside, but he's always polite and impeccable$", + "Someone who lived in the manor, a year ago .. maybe more$", + "She was more than a friend to my mother. In these moments, I would have loved to have her by my side$", + "Murielle has been Julia's lady-in-waiting$", + "She, too, was doing some research ...$", + "She was a very educated person. Her abrupt leaving, a year ago, surprised me and caused me great sorrow$", + "Her and Leo shared a common passion for history and the local area$", + "I think everyone liked her$", + "She got along with everyone. She loved her son dearly. As for the relations between mother-in-law and daughter-in-law ..$", + "Apart from Leo, she got along very well with Max ...$", + "Even if your relations were unfrequent, Jerome, there was still a place for you in her heart ...$", + "(370) Apart from her family, not a lot of people$", + "Oh right! I think she deeply regretted this friend's leaving .. err! Marielle .. or Mireille ...$", + "No, nothing!$", + "No … Not that I know of$", + "I met Julia when buying the manor. It was the only thing she owned. But all my wealth was hers ...$", + "Apart from a few personal belongings, I think she didn't own anything anymore$", + "I think all her fortune came from Leo. So, pfft!$", + "(377) Apart from the letter for you I posted, nothing very important!$", + "I was very happy she gave me her bound bible as a present$", + "It happened fast and she didn't have time to make any particular will$", + "Her last gift suprised me$", + "Which gift?$", + "A chandelier ...$", + "Yes, I got a present. My wife even got a bible$", + "Well yes! Like everyone, I believe$", + "A dagger$", + "I have never been looking around in the attic!$", + "(387) You either can read the past or pick a door$", + "The portrait of a young girl: it's Murielle ...$", + "You know, I didn't know her that well$", + "She was very charming, but above all she was Julia's lady-in-waiting$", + "She was the only truly interesting woman I've met$", + "She had a great knowledge in history, and you learned a great deal when you asked her about it$", + "(393) I've always wondered why some people fancied her!$", + "If the room is closed, ask Leo$", + "(395) I closed her door after her death and I'd like it to remain this way for a while$", + "You know how it is: family relations$", + "All those years, I've never regretted serving her$", + "I loved her as much as she loved me, I think$", + "What made you think you could enter my wife's room?!!$", + "It must be the picture of Murielle with Julia's godson$", + "I don't remember$", + "This is Murielle. I took that picture, and actually they developed it backwards$", + "You sure are curious!... It's not worth anything$", + "(404) Grimoires, parchment and manuscripts: it is Leo's realm$", + "Too bad the motto doesn't appear here ...$", + "This is beautiful … And very old ...$", + "Hey! That's a place I've never visited$", + "According to Leo, it seems that the Moons are more recent$", + "Even under this weather, you managed to find a sun ...$", + "Profound and disturbing: Progress is good$", + "For me, it remains the biggest of all mysteries$", + "The last days she was talking about a trip. And then ...$", + "A little over a year ago, one night, she decided to leave ...$", + "In any case, she wasn't meant to live here$", + "What?! Whose body? Which crypt?$", + "If there are any, I have never found them ...$", + "Of course! And ghosts too ...$", + "It's the oldest in the area: it is from the 11th century$", + "It was slightly renovated after the French Revolution$", + "Julia loved paintings$", + "They are different in styles, but not all of them are worth a lot$", + "What are you doing h-$", + "I'm sure you are looking for something in here$", + "I'm listening$", + "What do you want?$", + "Yes?$", + "I'm all yours ...$", + "What's the matter?$", + "Go ahead$", + "What is it about?$", + "Max: at your service, sir$", + "In any case you have no business being in here! Get out!!$", + "You are too curious!$", + "Jerome! It's been a while … I'm very sad to announce you that Julia died. Her family is here: Guy, her son; Eva, her daughter-in-law; Leo, her husband, of course; her son-in-law Pat; cousins, too: Bob, Ida, Luc. The storm is getting stronger, you must stay here. Meals are served at 12am and 7pm, and there is a mass at the chapel every day at 10am$", + "When I saw you I knew you would uncover the truth … I knew why you were here: I had found the draft of Julia's letter. But I love to play, so … She hadn't wanted your task to be too easy, to protect me, probably, but she couldn't die knowing this mystery would remain unsolved. Did you find out that the wall of silence is the name the builders gave, during the construction of the manor, to the wall on which the coat of arms hangs? .. And those gifts Julia left before dying were as many false leads, and their true purpose was to highlight how important the parchments were … That's right, more than a year ago I was working with Murielle on the decryption of those manuscripts I had just found. My wife made the connection between our work and Murielle's disappearance, but she never had any proof. Except that ring she found one day while going through my belongings. One night, we went exploring the secret passage we had found. Murielle died by accident in the room of the Virgin. I quickly took the ring from her, found the treasure and ran away. I didn't think she was still alive, and I didn't say a word because I needed the money. I told everyone the money was coming from a winning bet at the horseraces … Leave now, since you're not a policeman. Leave me alone!$", + "February 1951 ,,, Occupation: private eye. The cold was freezing Paris off, and my cases as well, when ...$", + "A letter, a call, memories from a childhood not that long ago. Echoes of the many games we played in the disused rooms of Mortville Manor … And Julia, now an old woman.$", " to the bureau$", " to the kitchen$", " to the cellar$", -- cgit v1.2.3 From 2ea263f62bbab12447d1f0080f8d93f1d706eeaf Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 22 Feb 2013 13:42:01 +0100 Subject: MORTEVIELLE: Fix minor glitches in DAT file --- devtools/create_mortdat/gametext.h | 760 ++++++++++++++++++------------------- 1 file changed, 380 insertions(+), 380 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index 9efb55bc53..bd3c340f1b 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -285,7 +285,7 @@ const char *gameDataEn[] = { "Julia's bedroom$", "The photo at Julia's home$", "Julia and yourself...$", - "L‚o's occupations$", + "Léo's occupations$", "Pat's occupations$", "Guy's occupations$", "Bob's occupations$", @@ -294,7 +294,7 @@ const char *gameDataEn[] = { "Ida's occupations$", "Max's occupations$", "Your occupations$", - "L‚o's relationships$", + "Léo's relationships$", "Pat's relationships$", "Guy's relationships$", "Bob's relationships$", @@ -324,7 +324,7 @@ const char *gameDataEn[] = { "These are the mountains one can see in front of the manor$", "I don't know!$", "She died from pulmonary embolism$", - "Mother died suddenly. And yet her health had seemed to improve‚$", + "Mother died suddenly. And yet her health had seemed to improve$", "Miss DEFRANCK died from a cold$", "She died from pulmonary embolism$", "Excuse me but I prefer to say nothing for now$", @@ -345,13 +345,13 @@ const char *gameDataEn[] = { "Him and Pat are patners. I think it's going pretty well$", "I take care of myself and that's already lots. How about you?$", "(319) Oh that! I trust her. She knows how to keep herself busy$", - "(320) What! You have not yet discovered her main occupation..?$", + "(320) What! You have not yet discovered her main occupation...?$", "She is working in the decoration business, and tastefully with that. She is always very well dressed$", "If you like jewels, I have some good deals to propose for a short while$", "The jewels...$", "I don't know, but I'd like him to give me a bit more slack!$", "When one is a housewife, one always find something to do...$", - "She could stay there doing nothing, but no! She sews, she reads ...$", + "She could stay there doing nothing, but no! She sews, she reads...$", "She probably doesn't have very fulfilling occupations...$", "A woman like there is no more: She is interested in everything!$", "With the cooking and the cleaning I do not have much time for you$", @@ -360,24 +360,24 @@ const char *gameDataEn[] = { "I am very independant. As long as nobody interferes in my business: No problem$", "He is selfish. I wonder if he likes something else than his horses and grimoires$", "I think he gets along well with everyone, except, perhaps, with Guy$", - "He has a temper. You have to learn how to deal with him ..$", - "Business is business. As for the family, I leave it as it is ...$", + "He has a temper. You have to learn how to deal with him...$", + "Business is business. As for the family, I leave it as it is...$", "Relations? Friendly relations? Financial relations, without a doubt$", "Oh I don't have anything against him$", - "He is a resourceful businessman. He sometimes tries to swim upstream but … he will always find a way to make it work$", - "(340) They all bore me .. No! Not even that .. Even if .. some people ..$", - "Contrary to his mother, he is a very shy person ! So when you say relations ..$", + "He is a resourceful businessman. He sometimes tries to swim upstream but... he will always find a way to make it work$", + "(340) They all bore me... No! Not even that... Even if... some people...$", + "Contrary to his mother, he is a very shy person ! So when you say relations...$", "He must be trying very hard to remain nice despite all his troubles$", "(343) His romantic relationship: it's over. His relationship with me: hasn't really started. As for the other ones: I don't follow the \"other ones\"$", "I like everyone, as long as they are not trying to screw me over$", "It is not enough to have a bit of money and to know how to talk for everyone to like you$", - "Not much to say about him .. He is a nice and generous man. And what's more, he can be quite funny$", + "Not much to say about him... He is a nice and generous man. And what's more, he can be quite funny$", "Nowadays I get along rather well with everyone. But, here, I am not going to say more about this$", "(348) Nice feathers, but a bird's brain... Ask her husband$", "Is it for an appointment?$", "(350) She is very lively! She does not burden herself with stupids prejudices$", "In my line of work, one mostly encounters beautiful women and gangsters$", - "The only sure thing he has going for him, it's his jewelery .. And his wife, but he doesn't realize that$", + "The only sure thing he has going for him, it's his jewelery... And his wife, but he doesn't realize that$", "It's an interesting character. Who is not always very easy to follow, but worth knowing$", "I hate no one, but I like things and people when they stay where they should be$", "This stays between us. But you see: when I speak with her, I soon start to feel a bit uncomfortable!$", @@ -385,21 +385,21 @@ const char *gameDataEn[] = { "You know, in my line of work you hear everything but don't remember anything, and service is well done$", "He's a submissive hypocrite! Personally I don't trust him$", "I don't know what he thinks deep down inside, but he's always polite and impeccable$", - "Someone who lived in the manor, a year ago .. maybe more$", + "Someone who lived in the manor, a year ago... maybe more$", "She was more than a friend to my mother. In these moments, I would have loved to have her by my side$", "Murielle has been Julia's lady-in-waiting$", - "She, too, was doing some research ...$", + "She, too, was doing some research...$", "She was a very educated person. Her abrupt leaving, a year ago, surprised me and caused me great sorrow$", "Her and Leo shared a common passion for history and the local area$", "I think everyone liked her$", - "She got along with everyone. She loved her son dearly. As for the relations between mother-in-law and daughter-in-law ..$", - "Apart from Leo, she got along very well with Max ...$", - "Even if your relations were unfrequent, Jerome, there was still a place for you in her heart ...$", + "She got along with everyone. She loved her son dearly. As for the relations between mother-in-law and daughter-in-law...$", + "Apart from Leo, she got along very well with Max....$", + "Even if your relations were unfrequent, Jerome, there was still a place for you in her heart...$", "(370) Apart from her family, not a lot of people$", - "Oh right! I think she deeply regretted this friend's leaving .. err! Marielle .. or Mireille ...$", + "Oh right! I think she deeply regretted this friend's leaving... err! Marielle... or Mireille...$", "No, nothing!$", - "No … Not that I know of$", - "I met Julia when buying the manor. It was the only thing she owned. But all my wealth was hers ...$", + "No... Not that I know of$", + "I met Julia when buying the manor. It was the only thing she owned. But all my wealth was hers...$", "Apart from a few personal belongings, I think she didn't own anything anymore$", "I think all her fortune came from Leo. So, pfft!$", "(377) Apart from the letter for you I posted, nothing very important!$", @@ -407,13 +407,13 @@ const char *gameDataEn[] = { "It happened fast and she didn't have time to make any particular will$", "Her last gift suprised me$", "Which gift?$", - "A chandelier ...$", + "A chandelier...$", "Yes, I got a present. My wife even got a bible$", "Well yes! Like everyone, I believe$", "A dagger$", "I have never been looking around in the attic!$", "(387) You either can read the past or pick a door$", - "The portrait of a young girl: it's Murielle ...$", + "The portrait of a young girl: it's Murielle...$", "You know, I didn't know her that well$", "She was very charming, but above all she was Julia's lady-in-waiting$", "She was the only truly interesting woman I've met$", @@ -430,19 +430,19 @@ const char *gameDataEn[] = { "This is Murielle. I took that picture, and actually they developed it backwards$", "You sure are curious!... It's not worth anything$", "(404) Grimoires, parchment and manuscripts: it is Leo's realm$", - "Too bad the motto doesn't appear here ...$", - "This is beautiful … And very old ...$", + "Too bad the motto doesn't appear here...$", + "This is beautiful... And very old...$", "Hey! That's a place I've never visited$", "According to Leo, it seems that the Moons are more recent$", - "Even under this weather, you managed to find a sun ...$", + "Even under this weather, you managed to find a sun...$", "Profound and disturbing: Progress is good$", "For me, it remains the biggest of all mysteries$", - "The last days she was talking about a trip. And then ...$", - "A little over a year ago, one night, she decided to leave ...$", + "The last days she was talking about a trip. And then...$", + "A little over a year ago, one night, she decided to leave...$", "In any case, she wasn't meant to live here$", "What?! Whose body? Which crypt?$", - "If there are any, I have never found them ...$", - "Of course! And ghosts too ...$", + "If there are any, I have never found them...$", + "Of course! And ghosts too...$", "It's the oldest in the area: it is from the 11th century$", "It was slightly renovated after the French Revolution$", "Julia loved paintings$", @@ -452,17 +452,17 @@ const char *gameDataEn[] = { "I'm listening$", "What do you want?$", "Yes?$", - "I'm all yours ...$", + "I'm all yours...$", "What's the matter?$", "Go ahead$", "What is it about?$", "Max: at your service, sir$", "In any case you have no business being in here! Get out!!$", "You are too curious!$", - "Jerome! It's been a while … I'm very sad to announce you that Julia died. Her family is here: Guy, her son; Eva, her daughter-in-law; Leo, her husband, of course; her son-in-law Pat; cousins, too: Bob, Ida, Luc. The storm is getting stronger, you must stay here. Meals are served at 12am and 7pm, and there is a mass at the chapel every day at 10am$", - "When I saw you I knew you would uncover the truth … I knew why you were here: I had found the draft of Julia's letter. But I love to play, so … She hadn't wanted your task to be too easy, to protect me, probably, but she couldn't die knowing this mystery would remain unsolved. Did you find out that the wall of silence is the name the builders gave, during the construction of the manor, to the wall on which the coat of arms hangs? .. And those gifts Julia left before dying were as many false leads, and their true purpose was to highlight how important the parchments were … That's right, more than a year ago I was working with Murielle on the decryption of those manuscripts I had just found. My wife made the connection between our work and Murielle's disappearance, but she never had any proof. Except that ring she found one day while going through my belongings. One night, we went exploring the secret passage we had found. Murielle died by accident in the room of the Virgin. I quickly took the ring from her, found the treasure and ran away. I didn't think she was still alive, and I didn't say a word because I needed the money. I told everyone the money was coming from a winning bet at the horseraces … Leave now, since you're not a policeman. Leave me alone!$", - "February 1951 ,,, Occupation: private eye. The cold was freezing Paris off, and my cases as well, when ...$", - "A letter, a call, memories from a childhood not that long ago. Echoes of the many games we played in the disused rooms of Mortville Manor … And Julia, now an old woman.$", + "Jerome! It's been a while... I'm very sad to announce you that Julia died. Her family is here: Guy, her son; Eva, her daughter-in-law; Leo, her husband, of course; her son-in-law Pat; cousins, too: Bob, Ida, Luc. The storm is getting stronger, you must stay here. Meals are served at 12am and 7pm, and there is a mass at the chapel every day at 10am$", + "When I saw you I knew you would uncover the truth... I knew why you were here: I had found the draft of Julia's letter. But I love to play, so à She hadn't wanted your task to be too easy, to protect me, probably, but she couldn't die knowing this mystery would remain unsolved. Did you find out that the wall of silence is the name the builders gave, during the construction of the manor, to the wall on which the coat of arms hangs?.. And those gifts Julia left before dying were as many false leads, and their true purpose was to highlight how important the parchments were à That's right, more than a year ago I was working with Murielle on the decryption of those manuscripts I had just found. My wife made the connection between our work and Murielle's disappearance, but she never had any proof. Except that ring she found one day while going through my belongings. One night, we went exploring the secret passage we had found. Murielle died by accident in the room of the Virgin. I quickly took the ring from her, found the treasure and ran away. I didn't think she was still alive, and I didn't say a word because I needed the money. I told everyone the money was coming from a winning bet at the horseraces à Leave now, since you're not a policeman. Leave me alone!$", + "February 1951... Occupation: private eye. The cold was freezing Paris off, and my cases as well, when...$", + "A letter, a call, memories from a childhood not that long ago. Echoes of the many games we played in the disused rooms of Mortville Manor... And Julia, now an old woman.$", " to the bureau$", " to the kitchen$", " to the cellar$", @@ -493,7 +493,7 @@ const char *gameDataEn[] = { "Directed by: KYILKHOR CREATION and LANGLOIS$", "$", "With the cooperation of...$", - "B‚atrice et Jean_Luc LANGLOIS$", + "Béatrice et Jean_Luc LANGLOIS$", "for the music and the voices,$", "Bernard GRELAUD for the graphic conception,$", "MARIA-DOLORES for the graphic direction,$", @@ -592,7 +592,7 @@ const char *gameDataEn[] = { "- 11$", "What was the first name@of the unknown character?$", "- Mireille$", - "- Fran‡oise$", + "- Françoise$", "- Maguy$", "- Emilie$", "- Murielle$", @@ -609,7 +609,7 @@ const char *gameDataEn[] = { "[1][ | Disk error | All stop... ][ok]$", "[1][ | You should have noticed |00% of the clues ][ok]$", "[3][ | insert disk 2 | in drive A ][ok]$", - "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", + "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'état de vos connaissances][ok]$", "TBT - MASTER .$", "TBT - rorL$", NULL @@ -617,9 +617,9 @@ const char *gameDataEn[] = { const char *gameDataFr[] = { "Le calme dans la tourmente$", - "Des go—ts et des couleurs!$", + "Des goûts et des couleurs!$", "Mauve qui peut!$", - "PriŠre de laisser en sortant...$", + "Prière de laisser en sortant...$", "Trou noir troublant$", "Bleu... comme \"peur bleue\"!$", "Chambre de \"Saigneur\"!$", @@ -629,33 +629,33 @@ const char *gameDataFr[] = { "Odeur de feux de bois et de tabac$", "Tabac et vieux bouquins$", "Oignons, cannelle et spiritueux$", - "Un endroit bien peu visit‚$", - "Humidit‚ et moisissure$", + "Un endroit bien peu visité$", + "Humidité et moisissure$", "Avis aux colporteurs...$", - "Corps putr‚fi‚ : cryptomanie mortelle!$", - "Et en plus... des piŠges d‚samorc‚s!$", - "C'est d‚j… ouvert$", + "Corps putréfié : cryptomanie mortelle!$", + "Et en plus... des pièges désamorcés!$", + "C'est déjà ouvert$", "Danger : avalanches$", - "Une odeur de saintet‚!$", + "Une odeur de sainteté!$", "Une bƒtisse imposante$", - "L'envers du mystŠre!$", - "Dr“le d'horoscope!$", + "L'envers du mystère!$", + "Drôle d'horoscope!$", "Tant va la cruche...$", - "Une porte en chŠne$", + "Une porte en chène$", "Une photo$", "Les armoiries$", "$", - "Max, le domestique, vous accueille puis vous conduit … votre chambre$", - "Mortevielle, le 16/2/51@ Mon cher J‚r“me,@ Suite … mon t‚l‚gramme, je vous fais part des raisons de mon inqui‚tude :il y a un an, Murielle, ma dame de compagnie, disparaissait . D‚part ayant rapport avec le renouveau financier du Manoir, ou... Silence difficile … comprendre, surtout pour mon fils Guy . N'ayant pu jusqu'… pr‚sent, faire le jour sur cette affaire, je compte sur vous pour la mener … bien . Si mon ‚tat de sant‚ ne s'am‚liorait pas, prenez les d‚cisions qui vous sembleront le plus appropri‚es...@ Amiti‚s. JULIA DEFRANCK$", - "Plus tard, Guy vous apprendra le suicide de L‚o... aprŠs un pari insens‚ aux courses!$", + "Max, le domestique, vous accueille puis vous conduit à votre chambre$", + "Mortevielle, le 16/2/51@ Mon cher Jérôme,@ Suite à mon télégramme, je vous fais part des raisons de mon inquiétude :il y a un an, Murielle, ma dame de compagnie, disparaissait . Départ ayant rapport avec le renouveau financier du Manoir, ou... Silence difficile à comprendre, surtout pour mon fils Guy . N'ayant pu jusqu'à présent, faire le jour sur cette affaire, je compte sur vous pour la mener à bien . Si mon état de santé ne s'améliorait pas, prenez les décisions qui vous sembleront le plus appropriées...@ Amitiés. JULIA DEFRANCK$", + "Plus tard, Guy vous apprendra le suicide de Léo... après un pari insensé aux courses!$", "F3: encore@F8: suite$", - "Le maŒtre des lieux$", - "Le futur h‚ritier$", + "Le maître des lieux$", + "Le futur héritier$", "Le fils de JULIA$", "Joli brin!!!$", "Superman!$", "Le mari d'Ida$", - "Propos int‚ressants?$", + "Propos intéressants?$", "Service compris...$", "Rien dessous!$", "Un ange passe...$", @@ -663,61 +663,61 @@ const char *gameDataFr[] = { "Admirez! Contemplez!$", "Non ! Rien !$", "Impossible$", - "‡a tache !$", - "Un trait‚ sur l'histoire de la r‚gion$", - "Quelques piŠces$", + "ça tache !$", + "Un traité sur l'histoire de la région$", + "Quelques pièces$", "Premier commandement...$", - "Des p‚tales plein les narines !$", + "Des pétales plein les narines !$", "Pique, Coeur...$", - "‡a ne manque pas de cachets !$", + "ça ne manque pas de cachets !$", "Un roman d'amour$", "Souffler n'est pas jouer$", - "Pas une r‚ussite!$", + "Pas une réussite!$", "Gare aux rebondissements !$", "Sombre et profond...$", "Sensations normales$", "Sniff!$", "Pas discret ! Contentez-vous de regarder !$", - "Atchoum! De la p... poussiŠre$", - "La toile est sign‚e... pas le papier peint !$", + "Atchoum! De la p... poussière$", + "La toile est signée... pas le papier peint !$", "Pas de chance, rien !$", "Soyez plus discret !$", "Les volets sont clos$", "De la neige, encore de la neige !$", - "G‚nial : une toile de maŒtre !$", - "Aucun doute : une v‚ritable imitation$", + "Génial : une toile de maître !$", + "Aucun doute : une véritable imitation$", "Hum ! Vous tiquez : de l'antique en toc !$", - "Une piŠce rare de valeur !$", + "Une pièce rare de valeur !$", "Rien de remarquable$", "Linge, objets personnels...$", - "Pas n'importe o— !$", + "Pas n'importe où !$", "Ce n'est pas l'heure !$", - "On ne parle pas la bouche pleine ! Donc, une fois le repas termin‚...$", + "On ne parle pas la bouche pleine ! Donc, une fois le repas terminé...$", "Quelqu'un entre, s'affaire, ressort...$", "On s'approche de votre cachette !$", "On vous surprend !$", - "Non : vous ˆtes trop charg‚ !$", + "Non : vous êtes trop chargé !$", "Essayez de nouveau$", "Vous restez perplexe !?$", "Vous quittez le Manoir. A Paris, un message vous attend...$", - "A‹e, a‹e, a‹e !$", + "Aïe, aïe, aïe !$", "Rien de plus$", - "Le son paraŒt normal$", + "Le son paraît normal$", "Ca ne bouge pas$", - "On vous r‚pond$", + "On vous répond$", "Pas le moment !$", - "Mˆme matiŠre, autre face !$", - "Le reflet est piqu‚, mais le cadre est d'or$", + "Même matière, autre face !$", + "Le reflet est piqué, mais le cadre est d'or$", "Bibelots, babioles...$", - "Vous essuyez un ‚chec !$", + "Vous essuyez un échec !$", "Il est des odeurs... qu'il vaut mieux ne pas voir !$", - "Des produits m‚nagers$", - "‡a vous d‚mange ?$", - "C'est coinc‚, gel‚ ! Brrrr...$", - "Les huisseries sont bloqu‚es !$", + "Des produits ménagers$", + "ça vous démange ?$", + "C'est coincé, gelé ! Brrrr...$", + "Les huisseries sont bloquées !$", "Des papiers...$", - "Non ! Le pŠre Noˆl n'est pas coinc‚ !$", - "‡a donne sur un couloir$", + "Non ! Le père Noêl n'est pas coincé !$", + "ça donne sur un couloir$", "Vaisselle, argenterie...$", "Non ! Ce ne sont pas les restes de Julia !$", "Une gravure ancienne$", @@ -726,17 +726,17 @@ const char *gameDataFr[] = { "Le passage se ferme$", "Un tiroir secret... Un livret ! Le lisez-vous ?$", "Le tiroir se referme$", - "Rien ! Sang et chairs collent … la pierre !$", - "Des d‚tails vous font supposer que... la mort ne fut pas imm‚diate !$", - "Des projets v‚reux ?$", - "Sa vie n'aurait-elle tenu qu'… un doigt ?$", - "Un tr‚sor se serait-il fait la malle ?$", - "Une fente de la taille d'une piŠce !$", - "Quelques pierres pivotent... Une crypte ! Y p‚n‚trez-vous ?$", + "Rien ! Sang et chairs collent à la pierre !$", + "Des détails vous font supposer que... la mort ne fut pas immédiate !$", + "Des projets véreux ?$", + "Sa vie n'aurait-elle tenu qu'à un doigt ?$", + "Un trésor se serait-il fait la malle ?$", + "Une fente de la taille d'une pièce !$", + "Quelques pierres pivotent... Une crypte ! Y pénétrez-vous ?$", "La bague tourne, le mur se referme...$", - "Une colonne de pierres derriŠre l'autel$", + "Une colonne de pierres derrière l'autel$", "Il y a du bruit...$", - "Occup‚ !$", + "Occupé !$", "Retentez-vous votre chance ?$", "Trop profond !$", "Le mur de la cave pivote$", @@ -745,45 +745,45 @@ const char *gameDataFr[] = { "L'objet glisse au fond...$", "Vous n'avez rien en main$", "Ce n'est pas ouvert$", - "Il y a d‚j… quelque chose$", - "La porte est ferm‚e$", - "Pas de r‚ponse$", + "Il y a déjà quelque chose$", + "La porte est fermée$", + "Pas de réponse$", "Une boule de bois pleine$", "Il n'y a plus de place$", - "Une boule de bois perc‚e par le travers$", + "Une boule de bois percée par le travers$", "? ?$", "A vous de jouer$", "OK !$", - "Soudain Max survient avec votre valise : \"Merci de votre visite ! D‚tective \"priv‚\"... de bon sens et de discr‚tion sans doute\" . D‚‡u d‚moralis‚, vous quittez le manoir@Vous Štes NUL !$", - "L‚o vous interrompt : \"la tempŠte est calm‚e. Je pars en ville dans 1 heure. Tenez-vous prˆt!\"... Bon... Vous avez perdu du temps... mais pas la vie$", - "Congestion, grippe fatale : vous y restez ! Votre enquŠte tombe … l'eau$", - "L'eau monte trŠs vite et refroidit vos derniŠres illusions... Avant que vous n'ayez eu le temps de r‚agir, vous Štes mort!$", - "A peine Štes-vous au fond du puits qu'une main tranche la corde... Adieu la vie!$", - "La tempŠte recouvre vos traces . Un mur de silence s'abat sur vos ‚paules . Lentement vous succombez … la morsure du froid !$", - "Pas si seul que ‡a ! Une lame glac‚e s'enfonce dans votre dos. A l'avenir, soyez plus prudent!$", - "Vous ignorez la responsabilit‚ exacte de L‚o dans la mort de Murielle... Est-elle morte sur le coup ? De toutes fa‡ons les problŠmes familiaux d‚couverts lors de votre enquŠte justifient l'attitude de L‚o... Vous n'Štes pas s—r que Julia vous ait appel‚ pour ‡a mais c'est suffisant pour vous ! Par respect pour elle, et aprŠs certaines pr‚cautions, vous avez une entrevue r‚v‚latrice avec L‚o$", + "Soudain Max survient avec votre valise : \"Merci de votre visite ! Détective \"privé\"... de bon sens et de discrétion sans doute\" . Déçu démoralisé, vous quittez le manoir@Vous ètes NUL !$", + "Léo vous interrompt : \"la tempète est calmée. Je pars en ville dans 1 heure. Tenez-vous prêt!\"... Bon... Vous avez perdu du temps... mais pas la vie$", + "Congestion, grippe fatale : vous y restez ! Votre enquète tombe à l'eau$", + "L'eau monte très vite et refroidit vos dernières illusions... Avant que vous n'ayez eu le temps de réagir, vous ètes mort!$", + "A peine ètes-vous au fond du puits qu'une main tranche la corde... Adieu la vie!$", + "La tempète recouvre vos traces . Un mur de silence s'abat sur vos épaules . Lentement vous succombez à la morsure du froid !$", + "Pas si seul que ça ! Une lame glacée s'enfonce dans votre dos. A l'avenir, soyez plus prudent!$", + "Vous ignorez la responsabilité exacte de Léo dans la mort de Murielle... Est-elle morte sur le coup ? De toutes façons les problèmes familiaux découverts lors de votre enquète justifient l'attitude de Léo... Vous n'ètes pas sûr que Julia vous ait appelé pour ça mais c'est suffisant pour vous ! Par respect pour elle, et après certaines précautions, vous avez une entrevue révélatrice avec Léo$", "$", - "Vous n'avez pas les clefs du Manoir . Vos appels restent sans r‚ponse . Vous allez attraper... la mort !$", - "D'un mouvement circulaire, l'‚p‚e vous fend par le travers : tripes et boyaux … l'air, bonjour les vers!$", + "Vous n'avez pas les clefs du Manoir . Vos appels restent sans réponse . Vous allez attraper... la mort !$", + "D'un mouvement circulaire, l'épée vous fend par le travers : tripes et boyaux à l'air, bonjour les vers!$", "Home, Sweet home !$", - "MystŠre d'une porte close$", - "Charme envo—tant de vieilles piŠces$", + "Mystère d'une porte close$", + "Charme envoûtant de vieilles pièces$", "La faim au ventre$", - "Plus prŠs du ciel? Pas s—r !$", + "Plus près du ciel? Pas sûr !$", "Peur du noir?$", "Vieux tapis et reflets d'or$", "Angoisse !$", - "Sauv‚ ? Pas certain !$", - "Mal … l'aise, hein !$", + "Sauvé ? Pas certain !$", + "Mal à l'aise, hein !$", "Toujours plus loin !$", "Votre chemin de croix !$", - "A la d‚couverte de...$", - "Attention … ce que cache...$", + "A la découverte de...$", + "Attention à ce que cache...$", "Une descente aux Enfers !$", "Si ce n'est pas dans vos cordes :@ ne soyez pas sot!$", - "Avant la mise en piŠce !$", + "Avant la mise en pièce !$", "Gros plan sur :$", - "Vous remarquez particuliŠrement...$", + "Vous remarquez particulièrement...$", "Et encore...$", "C'est fini !$", "Un peu de lecture$", @@ -794,17 +794,17 @@ const char *gameDataFr[] = { "Non ! Pas ce coup-ci$", "Trop tard$", "$", - "Comme un regard profond tout couvert de peaux-pierres, pointant son oeil obscur aux astres de lumiŠre, il est la gorge reliant le ciel et les enfers . Il faut aller au fond de cette artŠre comme un rat au coeur mˆme de la terre !@Lundi, Mardi, Mercredi, Dimanche du 1e lundi au 1e dimanche, tu installeras \"ce rat\" entre chacun des jours . N'omets rien car ta venue serait ta retenue !@Porte ton fardeau comme un oeuf nouveau et donne lui le jour avec force et amour.$", - "10/1/50: Nous avons r‚solu le mystŠre du manuscrit et localis‚ la crypte . Est-ce l'id‚e d'aboutir dans ce qui n'‚tait qu'un \"rŠve\" qui me rend si anxieuse ?@Je regrette de m'ˆtre engag‚e vis … vis de L‚o . Non! je dois continuer ! J'aurais d— mettre Guy au courant... mais, depuis une semaine, je n'ai aucune nouvelle .$", - "Porte ta priŠre au lieu saint qui se doit, changes-en l'air, tu auras la matiŠre !@Du pilier de la haute sagesse, le soleil aux genoux te montrera l'espace par lequel ton …me s'ouvrira un chemin et gagnera son Šre . Avance comme un Orph‚e peu soucieux des t‚nŠbres : le blanc est ta couleur, l'or ta demeure . Eclaire ton chemin jusqu'… la myst‚rieuse . Offre-lui le cercle de l'homme aux trois facettes . Qu'il regagne le monde et qu'il tourne avec lui dans la richesse premiŠre.$", - "Les montagnes sont les crocs d'une gueule dantesque ouverte … l'infini de quelqu' orgie c‚leste, mastiquant des ‚toiles comme nous broyons du noir .@Tu d‚poseras l'accord de pierre … tes pieds, le rire du silence sur la gamme d'en haut et dans ta main droite, une toile d'un mŠtre . Tu passeras ainsi entre les deux croissants, par del… les abŒmes du Mur du Silence . La Cl‚ des champs est … ta port‚e, tu n'as qu'… retrouver la note qui d‚note.$", + "Comme un regard profond tout couvert de peaux-pierres, pointant son oeil obscur aux astres de lumière, il est la gorge reliant le ciel et les enfers . Il faut aller au fond de cette artère comme un rat au coeur même de la terre !@Lundi, Mardi, Mercredi, Dimanche du 1e lundi au 1e dimanche, tu installeras \"ce rat\" entre chacun des jours . N'omets rien car ta venue serait ta retenue !@Porte ton fardeau comme un oeuf nouveau et donne lui le jour avec force et amour.$", + "10/1/50: Nous avons résolu le mystère du manuscrit et localisé la crypte . Est-ce l'idée d'aboutir dans ce qui n'était qu'un \"rêve\" qui me rend si anxieuse ?@Je regrette de m'être engagée vis à vis de Léo . Non! je dois continuer ! J'aurais dû mettre Guy au courant... mais, depuis une semaine, je n'ai aucune nouvelle .$", + "Porte ta prière au lieu saint qui se doit, changes-en l'air, tu auras la matière !@Du pilier de la haute sagesse, le soleil aux genoux te montrera l'espace par lequel ton âme s'ouvrira un chemin et gagnera son ère . Avance comme un Orphée peu soucieux des ténèbres : le blanc est ta couleur, l'or ta demeure . Eclaire ton chemin jusqu'à la mystérieuse . Offre-lui le cercle de l'homme aux trois facettes . Qu'il regagne le monde et qu'il tourne avec lui dans la richesse première.$", + "Les montagnes sont les crocs d'une gueule dantesque ouverte à l'infini de quelqu' orgie céleste, mastiquant des étoiles comme nous broyons du noir .@Tu déposeras l'accord de pierre à tes pieds, le rire du silence sur la gamme d'en haut et dans ta main droite, une toile d'un mètre . Tu passeras ainsi entre les deux croissants, par delà les abîmes du Mur du Silence . La Clé des champs est à ta portée, tu n'as qu'à retrouver la note qui dénote.$", " DECEMBRE@ 9 REMISE 518 13 AGIOS 23@ 19 VIREMENT 1203 17 TRESOR 1598@ TOTAL 1721 TOTAL 1721$", - " Le 5/01/51@@ Luc, mon amour@ Guy connaŒt notre liaison . A la suite d'une dispute, je lui ai tout dit . Je ne pense qu'… toi ! Max me relance mais j'ai d‚finitivement rompu avec lui . Qu'il reste … ses gamelles . Quand pourrons-nous nous voir seuls ? Pour toi je divorcerai... Je t'aime .@ ton Eva$", - " Mortevielle, le 10/2/51@@ Pat,@ Je te rappelle que tu me dois 50000 F que je t'ai pr‚t‚s pour ton affaire . J'en ai besoin, peux-tu me les rendre assez vite?@ Guy$", - " Mortevielle, le 15/2/51@ MaŒtre,@ Je vous ‚cris au sujet de notre affaire. Je suis d‚cid‚ … aller jusqu'au bout, certain que mon associ‚, Pat DEFRANCK, a falsifi‚ un livre de comptes . Malgr‚$", + " Le 5/01/51@@ Luc, mon amour@ Guy connaît notre liaison . A la suite d'une dispute, je lui ai tout dit . Je ne pense qu'à toi ! Max me relance mais j'ai définitivement rompu avec lui . Qu'il reste à ses gamelles . Quand pourrons-nous nous voir seuls ? Pour toi je divorcerai... Je t'aime .@ ton Eva$", + " Mortevielle, le 10/2/51@@ Pat,@ Je te rappelle que tu me dois 50000 F que je t'ai prétés pour ton affaire . J'en ai besoin, peux-tu me les rendre assez vite?@ Guy$", + " Mortevielle, le 15/2/51@ Maître,@ Je vous écris au sujet de notre affaire. Je suis décidé à aller jusqu'au bout, certain que mon associé, Pat DEFRANCK, a falsifié un livre de comptes . Malgré$", " Une pipe$", - " Un stylo … plume$", - " Un briquet … essence$", + " Un stylo à plume$", + " Un briquet à essence$", " Une cornue$", " Un blaireau$", " Un pot de peinture$", @@ -814,13 +814,13 @@ const char *gameDataFr[] = { " Un vieux bouquin$", " Un porte-monnaie$", " Un poignard$", - " Un r‚volver$", + " Un révolver$", " Une bible$", " Une bougie$", - " Un coffret … bijoux$", - " Un fer … repasser$", + " Un coffret à bijoux$", + " Un fer à repasser$", " Une photo$", - " Une montre … gousset$", + " Une montre à gousset$", " Une corde$", " Des clefs$", " Un collier de perles$", @@ -830,9 +830,9 @@ const char *gameDataFr[] = { " Une bourse en cuir$", " Une balle de tennis$", " Des munitions$", - " Un rasoir … main$", - " Une brosse … cheveux$", - " Une brosse … linge$", + " Un rasoir à main$", + " Une brosse à cheveux$", + " Une brosse à linge$", " Un jeu de cartes$", " Un chausse pied$", " Un tournevis$", @@ -843,14 +843,14 @@ const char *gameDataFr[] = { " Un pinceau$", " Une corde$", " Un objet en bois$", - " Des somnifŠres$", + " Des somnifères$", " Une bague en or$", - " Un coffret … bijoux$", - " Un r‚veil matin$", + " Un coffret à bijoux$", + " Un réveil matin$", " Une cotte de mailles$", " Un chandellier$", " Une paire de gants$", - " Une coupe cisel‚e$", + " Une coupe ciselée$", " Un parchemin$", " Un poignard$", " Un dossier$", @@ -868,13 +868,13 @@ const char *gameDataFr[] = { "La mort de Julia$", "Les relations de Julia$", "Un message de Julia$", - "L'h‚ritage de Julia$", + "L'héritage de Julia$", "Derniers actes de Julia$", "Les cadeaux de Julia$", "La chambre de Julia$", "La photo chez Julia$", "Julia et vous...$", - "Les occupations de L‚o$", + "Les occupations de Léo$", "Les occupations de Pat$", "Les occupations de Guy$", "Les occupations de Bob$", @@ -883,7 +883,7 @@ const char *gameDataFr[] = { "Les occupations d'Ida$", "Les occupations de Max$", "Vos occupations$", - "Les relations de L‚o$", + "Les relations de Léo$", "Les relations de Pat$", "Les relations de Guy$", "Les relations de Bob$", @@ -910,169 +910,169 @@ const char *gameDataFr[] = { "$", "FIN DE LA CONVERSATION$", "Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", - "C'est le massif montagneux que l'on aper‡oit devant le manoir$", + "C'est le massif montagneux que l'on aperçoit devant le manoir$", "Je n'en sais rien !$", "Elle est morte d'une embolie pulmonaire$", - "Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", + "Ma mére est morte soudainement . Son état semblait pourtant s'être amélioré$", "Madame DEFRANCK est morte d'un coup de froid$", "Elle est morte d'une embolie pulmonaire$", - "Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", + "Pardonnez moi mais je préfère, actuellement garder le silence$", "Ce sont toujours les meilleurs qui partent les premiers$", - "J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", - "C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", - "C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", - "Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir ...$", - "Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", - "C'est un homme dynamique qui a r‚ussi dans le parfum$", - "Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", - "J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", - "Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", + "J'aimais beaucoup ma mère . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", + "C'est une région qui a un passé chargé et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", + "C'est un passionné d'histoire et un joueur invétéré . D'ailleurs, voici un an il a gagné une grosse somme$", + "Il a déjà beaucoup a faire avec la gestion et l'entretien du manoir ...$", + "Je suis PDG d'une petite société de parfums . Mais quand je suis ici, je me repose$", + "C'est un homme dynamique qui a réussi dans le parfum$", + "Lui ! C'est un arriviste véreux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soirées dans sa chambre$", + "J'ai été très préoccupé par la santé de ma mère, et maintenant je n'ai plus goût à rien$", + "Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mère$", "Ce sont ses affaires ...$", "Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", - "Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", - "Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", - "Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", - "Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", - "Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", - "Mais ! Vous n'avez pas encore d‚couvert son occupation principale ..?$", - "Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs . Elle est toujours trŠs bien habill‚e$", - "Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", + "Je travaille avec Pat mais ça ne va pas très fort en ce moment$", + "Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper sérieusement alors$", + "Lui et Pat sont associés . Je crois que ça ne va pas trop mal$", + "Je m'occupe de moi et c'est déjà beaucoup . Et vous ?$", + "Oh ça ! Je lui fais confiance . Elle sait s'occuper$", + "Mais ! Vous n'avez pas encore découvert son occupation principale ...?$", + "Elle fait dans la décoration avec beaucoup degoût d'ailleurs . Elle est toujours très bien habillée$", + "Si les bijoux vous interessent, j'ai quelques affaires interessantes à saisir rapidement$", "Les bijoux ...$", "Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", - "Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", + "Quand on est une femme d'intérieur on trouve toujours de quoi s'occuper...$", "Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", - "Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", + "Elle n'a sûrement pas des occupations très épanouissantes ...$", "Une femme comme il n'y en a plus : Elle s'interesse a tout !$", - "Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", + "Entre la cuisine et le ménage, je n'ai pas beaucoup de temps à vous accorder$", "Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", - "Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", - "Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", - "C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", - "Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", - "C'est un homme de caractŠre . Il faut savoir le prendre ..$", - "Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", - "Relations ? Relations amicales ? Relations financiŠres sans doute$", - "Moi je n'ai rien … lui reprocher$", - "C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", - "Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", - "A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", - "Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", - "Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", + "Il en ferait plus si il s'occupait moins des ragôts et de la bouteille$", + "Je suis très indépendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problème$", + "C'est un égoïste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", + "Je crois qu'il s'entend bien avec tout le monde, mis à part, peut être, avec Guy$", + "C'est un homme de caractère . Il faut savoir le prendre ..$", + "Les affaires sont les affaires . Quant à la famille, je la laisse pour ce qu'elle est ...$", + "Relations ? Relations amicales ? Relations financières sans doute$", + "Moi je n'ai rien à lui reprocher$", + "C'est un homme d'affaire débrouillard . Il nage parfois à contre-courant mais ... il s'en sortira toujours$", + "Ils m'ennuient tous .. Non ! Ce n'est même pas ça .. Quoique .. certains ..$", + "A l'inverse de sa mère, c'est une personne très renfermée ! Alors question relations ..$", + "Il doit sans doute faire beaucoup d'effort pour rester agréable malgré tous ses ennuis$", + "Ses relations amoureuses : C'est terminé . Ses relations avec moi : Pas vraiment commencées . Quant aux autres : Je ne suis pas les \"autres\"$", "J'aime bien tout le monde, tant qu'on ne m'escroque pas$", - "Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", - "Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", - "Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", - "Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", + "Il ne suffit pas d'avoir un peu d'argent et d'être beau parleur pour plaire à tout le monde$", + "Sans histoire .. C'est quelqu'un d'agréable et généreux . De plus, il ne manque pas d'humour$", + "Actuellement je m'entends plutôt bien avec tout le monde . Mais, ici, je ne vais pas m'étendre sur le sujet$", + "Beau plumage, mais ça ne vole pas haut ... Parlez en à son mari$", "C'est pour un rendez-vous ?$", - "Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", - "Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", - "La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", - "C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", - "Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", - "C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", - "Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", - "Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", + "Elle est très vivante ! Elle ne s'embarrasse pas de préjugés stupides$", + "Dans mon métier, on côtoit surtout des belles femmes et des truands$", + "La seule valeur sûre chez lui, c'est ses bijoux .. Et sa femme, mais ça il ne s'en rend pas compte$", + "C'est quelqu'un d'interessant . De pas toujours facile à comprendre, mais qui mérite le détour$", + "Je ne déteste personne, mais j'aime les choses et les gens quand ils sont à leur place$", + "C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite à l'étroit !$", + "Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volonté$", + "Vous savez dans mon métier on entend tout mais on ne retient rien, et le service est bien fait$", "C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", - "Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", - "C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", - "C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", - "Murielle a ‚t‚ la dame de compagnie de Julia$", + "Je ne connait pas le fond de sa pensée mais c'est quelqu'un de toujours très correct et impeccable$", + "C'était une personne qui a vécu au manoir, il y a un an .. peut être plus$", + "C'était plus qu'une amie pour ma mère . En ces moments, j'aurais aimé qu'elle soit à mes cotés$", + "Murielle a été la dame de compagnie de Julia$", "Elle aussi, faisait des recherches ...$", - "C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", - "Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", + "C'était une femme très cultivée . Son brusque départ, il y a un an, m'a surpris et beaucoup chagriné$", + "Elle partageait avec Léo sa passion de l'histoire et de la région$", "Je crois que tout le monde l'aimait bien$", - "Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", - "A part L‚o, elle avait de trŠs bon rapport avec Max ...$", - "Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", + "Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mère, belle-fille ..$", + "A part Léo, elle avait de très bon rapport avec Max ...$", + "Bien que vos relations furent peu soutenues, Jérôme, elle vous portait toujours dans son coeur ...$", "A part sa famille, pas grand monde$", - "Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", + "Ah oui ! Je crois qu'elle a beaucoup regretté le départ de cette amie .. euh ! Marielle .. ou Mireille ...$", "Non rien !$", "Non ... Pas que le sache$", - "J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", - "Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", - "Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", - "A part la lettre pour vous que j'ai post‚, rien de bien important !$", - "J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", - "Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", - "Son dernier pr‚sent m'a surpris$", + "J'ai connu Julia en achetant le manoir . C'était son seul bien . Mais toute ma fortune était la sienne ...$", + "Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien à elle$", + "Je crois que toute sa fortune venait de Léo . Alors, Pfuuut !$", + "A part la lettre pour vous que j'ai posté, rien de bien important !$", + "J'ai été très heureuse qu'elle m'offre sa bible reliée$", + "Ca a été rapide et elle n'a pas eu le temps de prendre des dispositions particulières$", + "Son dernier présent m'a surpris$", "Quel cadeau ?$", "Un chandellier ...$", - "Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", + "Oui, j'ai eu un cadeau . Ma femme a même eu une bible$", "Et bien oui ! Comme tout le monde, je crois$", "Un poignard$", - "Je n'ai jamais ‚t‚ fouiller dans le grenier !$", + "Je n'ai jamais été fouiller dans le grenier !$", "Vous avez un don de double-vue ou un passe-partout$", "Le portrait d'une jeune fille : C'est Murielle ...$", "Vous savez, je la connaissais assez peu$", - "Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", - "C'est la seule femme vraiment interessante que j'ai rencontr‚$", - "Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", - "Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", - "Si la chambre est ferm‚e, demandez … L‚o$", - "J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", + "Elle était très charmante, mais c'était surtout la dame de compagnie de Julia$", + "C'est la seule femme vraiment interessante que j'ai rencontré$", + "Elle avait de grandes connaissances historiques, et la consulter était très enrichissant$", + "Je me suis toujours demandé ce que certains pouvaient lui trouver !$", + "Si la chambre est fermée, demandez à Léo$", + "J'ai fermé sa chambre après sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", "Vous savez ce que c'est : Des relations familiales$", - "Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", + "Durant toutes ces années, je ne l'ai jamais servie à contre-coeur$", "Je l'aimais autant qu'elle m'aimais, je crois$", - "De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", + "De quel droit avez-vous pénétré dans la chambre de ma femme ?!!$", "C'est sans doute la photo de Murielle avec le filleul de Julia$", "Je ne me rappelle pas$", - "C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", - "Vous ˆtes bien curieux !... C'est sans valeur$", - "Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", + "C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tirée à l'envers$", + "Vous êtes bien curieux !... C'est sans valeur$", + "Grimoires, parchemins et manuscrits : C'est le domaine de Léo$", "Dommage que la devise soit manquante ...$", - "C'est trŠs beau ... Et trŠs vieux ...$", - "Tiens ! C'est un endroit que je n'ai jamais visit‚$", - "D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", - "Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", - "Profond et inqui‚tant : Le progrŠs a du bon$", - "Ca reste pour moi le plus grand des mystŠres$", + "C'est très beau ... Et très vieux ...$", + "Tiens ! C'est un endroit que je n'ai jamais visité$", + "D'aprés Léo, il semblerait que les Lunes soient plus récentes$", + "Même par ce temps, vous avez déniché un soleil ...$", + "Profond et inquiétant : Le progrès a du bon$", + "Ca reste pour moi le plus grand des mystères$", "Les derniers temps elle parlait d'un voyage . Et puis ...$", - "Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", - "De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", + "Il y a un peu plus d'un an, un soir, elle a décidé de partir ...$", + "De toutes façons elle n'était pas faite pour vivre ici$", "Quoi ?! Quel corps ? Quel crypte ?$", - "Si il y en a, je ne les ai jamais trouv‚ ...$", - "Bien s–r ! ... Et des fant“mes aussi ...$", - "C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", - "Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", + "Si il y en a, je ne les ai jamais trouvé ...$", + "Bien sûr ! ... Et des fantômes aussi ...$", + "C'est la plus vielle de la région : Elle date du XI eme siècle$", + "Elle fut légèrement restaurée après la révolution$", "Julia aimait beaucoup la peinture$", - "Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", - "Que faites-vous l… ?$", - "Je suis s–r que vous cherchez quelque chose ici$", - "Je vous ‚coute$", - "Que d‚sirez-vous ?$", + "Ils ont différents styles, mais n'ont pas tous une très grande valeur$", + "Que faites-vous là ?$", + "Je suis sûr que vous cherchez quelque chose ici$", + "Je vous écoute$", + "Que désirez-vous ?$", "Oui ?$", - "Je suis … vous ...$", + "Je suis à vous ...$", "C'est pourquoi ?$", "Allez-y$", - "C'est … quel sujet ?$", - "Max : … votre service, monsieur$", - "De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", - "Vous ˆtes trop curieux !$", - "J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", - "En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", - "F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", - "Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", + "C'est à quel sujet ?$", + "Max : à votre service, monsieur$", + "De toutes façons vous n'avez rien à faire ici ! Sortez !!$", + "Vous êtes trop curieux !$", + "Jérôme ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . Léo, son mari bien sûr . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempète redouble, il vous faut rester . Les repas sont à 12h et 19h et il y a un recueillement à la chapelle tous les jours à 10h$", + "En vous voyant j'ai compris que vous decouvririez la vérité ... Car je savais pourquoi vous veniez : J'avais retrouvé le brouillon de la lettre de Julia . Mais je suis très joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me protéger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous découvert que le mur du silence est le nom que les maçons ont donné au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laissé avant de mourir étaient autant de faux indices qui ne servaient qu'à faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au décryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouvé un jour dans mes affaires . Une nuit, nous nous sommes aventurés dans le passage secret que nous avions découvert . Murielle est morte par accident dans la pièce de la vierge . J'ai récupéré la bague rapidement, trouvé le trésor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'êtes pas de la police . Laissez moi seul !$", + "Février 1951 ... Profession : detective privé . Le froid figeait Paris et mes affaires lorsque ...$", + "Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les pièces délabrées du manoir de Mortevielle . Julia, une vieille femme a présent .$", " au bureau$", - " … la cuisine$", - " … la cave$", + " à la cuisine$", + " à la cave$", " dans le couloir$", " dehors$", - " la salle … manger$", + " la salle à manger$", " dans le manoir$", " devant le manoir$", - " … la chapelle$", + " à la chapelle$", " devant le puits$", " au nord$", - " derriŠre le manoir$", + " derrière le manoir$", " au sud$", - " … l'est$", - " … l'ouest$", + " à l'est$", + " à l'ouest$", " vers le manoir$", " plus loin$", " dans l'eau$", " hors du puits$", " dans le puits$", - " choix sur ‚cran$", + " choix sur écran$", " Dans la serie MYSTERE...$", " LE MANOIR DE MORTEVIELLE$", "$", @@ -1095,9 +1095,9 @@ const char *gameDataFr[] = { " A VOUS DE JOUER$", " attacher$", " attendre$", - " d‚foncer$", + " défoncer$", " dormir$", - " ‚couter$", + " écouter$", " entrer$", " fermer$", " fouiller$", @@ -1119,7 +1119,7 @@ const char *gameDataFr[] = { " lire$", " poser$", " regarder$", - " L‚o$", + " Léo$", " Pat$", " Guy$", " Eva$", @@ -1128,40 +1128,40 @@ const char *gameDataFr[] = { " Ida$", " Max$", "Comment Julia est-elle morte ?$", - "Elle s'est suicid‚e$", - "Elle est morte assassin‚e$", + "Elle s'est suicidée$", + "Elle est morte assassinée$", "Elle est morte accidentellement$", "Elle est morte naturellement$", - "D'o— provenait l'argent qui a permis la restauration du manoir ?$", + "D'où provenait l'argent qui a permis la restauration du manoir ?$", "chantage$", "travail$", - "h‚ritage$", + "héritage$", "courses$", "rentes$", "hold-up$", - "d‚couverte$", - "Quel est le hobby de L‚o ?$", + "découverte$", + "Quel est le hobby de Léo ?$", "recherches historiques$", "politique$", "peinture$", "drogue$", "sciences occultes$", "direction d'une secte$", - "Julia a laiss‚ une s‚rie d'indices . Ceux-ci sont repr‚sent‚s en un seul lieu . Lequel ?$", + "Julia a laissé une série d'indices . Ceux-ci sont représentés en un seul lieu . Lequel ?$", "Chapelle$", - "Ext‚rieur$", + "Extérieur$", "Cave$", "Grenier$", "Cuisine$", - "Salle … manger$", + "Salle à manger$", "Chambre Julia$", - "Chambre L‚o$", + "Chambre Léo$", "Chambre Pat$", "Chambre Bob$", "Chambre Max$", "Chambre Luc/Ida$", "Chambre Guy/Eva$", - "L'indice principal qui vous a permis d'arriver … la porte du souterrain est :$", + "L'indice principal qui vous a permis d'arriver à la porte du souterrain est :$", "Un poignard$", "Une bague$", "Un livre$", @@ -1175,30 +1175,30 @@ const char *gameDataFr[] = { "Trois$", "Quatre$", "Cinq$", - "Combien de personnes sont m‚l‚es … cette histoire - Julia y comprise, vous except‚ - ?$", + "Combien de personnes sont mélées à cette histoire - Julia y comprise, vous excepté - ?$", "Neuf$", "Dix$", "Onze$", - "Quel ‚tait le pr‚nom de la personne inconnue ?$", + "Quel était le prénom de la personne inconnue ?$", "Mireille$", - "Fran‡oise$", + "Françoise$", "Maguy$", "Emilie$", "Murielle$", "Sophie$", - "De qui Murielle ‚tait-elle la maŒtresse ?$", + "De qui Murielle était-elle la maîtresse ?$", "Bob$", "Luc$", "Guy$", - "L‚o$", + "Léo$", "Max$", "Murielle partageait une occupation avec une autre personne . Qui ?$", - "[1][ |Seul le hazard vous a permis d'arriver ici . Vous pr‚f‚rez|retourner enqu‚ter afin de mieux comprendre ...][ok]$", - "[1][ |Ins‚rez la disquette 1 dans le lecteur A][ok]$", + "[1][ |Seul le hazard vous a permis d'arriver ici . Vous préférez|retourner enquéter afin de mieux comprendre ...][ok]$", + "[1][ |Insérez la disquette 1 dans le lecteur A][ok]$", "[1][ |! ERREUR DISQUETTE !|On arrete tout][ok]$", - "[1][ |Vous devriez avoir remarqu‚|00% des indices][ok]$", - "[1][ |Ins‚rez la disquette 2 dans le lecteur A][ok]$", - "[1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", + "[1][ |Vous devriez avoir remarqué|00% des indices][ok]$", + "[1][ |Insérez la disquette 2 dans le lecteur A][ok]$", + "[1][ |Avant d'aller plus loin, vous faites|un point sur l'état de vos connaissances][ok]$", " MASTER .$", " rorL$", }; @@ -1462,7 +1462,7 @@ const char *gameDataDe[] = { "TBT - Julia's bedroom$", "TBT - The photo at Julia's home$", "TBT - Julia and yourself...$", - "TBT - L‚o's occupations$", + "TBT - Léo's occupations$", "TBT - Pat's occupations$", "TBT - Guy's occupations$", "TBT - Bob's occupations$", @@ -1471,7 +1471,7 @@ const char *gameDataDe[] = { "TBT - Ida's occupations$", "TBT - Max's occupations$", "TBT - Your occupations$", - "TBT - L‚o's relationships$", + "TBT - Léo's relationships$", "TBT - Pat's relationships$", "TBT - Guy's relationships$", "TBT - Bob's relationships$", @@ -1498,148 +1498,148 @@ const char *gameDataDe[] = { "TBT - $", "TBT - END OF THE CONVERSATION$", "TBT - Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", - "TBT - C'est le massif montagneux que l'on aper‡oit devant le manoir$", + "TBT - C'est le massif montagneux que l'on aperçoit devant le manoir$", "TBT - Je n'en sais rien !$", "TBT - Elle est morte d'une embolie pulmonaire$", - "TBT - Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", + "TBT - Ma mére est morte soudainement . Son état semblait pourtant s'être amélioré$", "TBT - Madame DEFRANCK est morte d'un coup de froid$", "TBT - Elle est morte d'une embolie pulmonaire$", - "TBT - Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", + "TBT - Pardonnez moi mais je préfère, actuellement garder le silence$", "TBT - Ce sont toujours les meilleurs qui partent les premiers$", - "TBT - J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", - "TBT - C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", - "TBT - C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", - "TBT - Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir ...$", - "TBT - Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", - "TBT - C'est un homme dynamique qui a r‚ussi dans le parfum$", - "TBT - Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", - "TBT - J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", - "TBT - Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", + "TBT - J'aimais beaucoup ma mère . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", + "TBT - C'est une région qui a un passé chargé et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", + "TBT - C'est un passionné d'histoire et un joueur invétéré . D'ailleurs, voici un an il a gagné une grosse somme$", + "TBT - Il a déjà beaucoup a faire avec la gestion et l'entretien du manoir ...$", + "TBT - Je suis PDG d'une petite société de parfums . Mais quand je suis ici, je me repose$", + "TBT - C'est un homme dynamique qui a réussi dans le parfum$", + "TBT - Lui ! C'est un arriviste véreux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soirées dans sa chambre$", + "TBT - J'ai été très préoccupé par la santé de ma mère, et maintenant je n'ai plus goût à rien$", + "TBT - Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mère$", "TBT - Ce sont ses affaires ...$", "TBT - Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", - "TBT - Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", - "TBT - Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", - "TBT - Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", - "TBT - Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", - "TBT - Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", - "TBT - Mais ! Vous n'avez pas encore d‚couvert son occupation principale ..?$", - "TBT - Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs . Elle est toujours trŠs bien habill‚e$", - "TBT - Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", + "TBT - Je travaille avec Pat mais ça ne va pas très fort en ce moment$", + "TBT - Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper sérieusement alors$", + "TBT - Lui et Pat sont associés . Je crois que ça ne va pas trop mal$", + "TBT - Je m'occupe de moi et c'est déjà beaucoup . Et vous ?$", + "TBT - Oh ça ! Je lui fais confiance . Elle sait s'occuper$", + "TBT - Mais ! Vous n'avez pas encore découvert son occupation principale ..?$", + "TBT - Elle fait dans la décoration avec beaucoup degoût d'ailleurs . Elle est toujours très bien habillée$", + "TBT - Si les bijoux vous interessent, j'ai quelques affaires interessantes à saisir rapidement$", "TBT - Les bijoux ...$", "TBT - Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", - "TBT - Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", + "TBT - Quand on est une femme d'intérieur on trouve toujours de quoi s'occuper...$", "TBT - Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", - "TBT - Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", + "TBT - Elle n'a sûrement pas des occupations très épanouissantes ...$", "TBT - Une femme comme il n'y en a plus : Elle s'interesse a tout !$", - "TBT - Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", + "TBT - Entre la cuisine et le ménage, je n'ai pas beaucoup de temps à vous accorder$", "TBT - Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", - "TBT - Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", - "TBT - Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", - "TBT - C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", - "TBT - Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", - "TBT - C'est un homme de caractŠre . Il faut savoir le prendre ..$", - "TBT - Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", - "TBT - Relations ? Relations amicales ? Relations financiŠres sans doute$", - "TBT - Moi je n'ai rien … lui reprocher$", - "TBT - C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", - "TBT - Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", - "TBT - A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", - "TBT - Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", - "TBT - Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", + "TBT - Il en ferait plus si il s'occupait moins des ragôts et de la bouteille$", + "TBT - Je suis très indépendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problème$", + "TBT - C'est un égoïste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", + "TBT - Je crois qu'il s'entend bien avec tout le monde, mis à part, peut être, avec Guy$", + "TBT - C'est un homme de caractère . Il faut savoir le prendre ..$", + "TBT - Les affaires sont les affaires . Quant à la famille, je la laisse pour ce qu'elle est ...$", + "TBT - Relations ? Relations amicales ? Relations financières sans doute$", + "TBT - Moi je n'ai rien à lui reprocher$", + "TBT - C'est un homme d'affaire débrouillard . Il nage parfois à contre-courant mais ... il s'en sortira toujours$", + "TBT - Ils m'ennuient tous .. Non ! Ce n'est même pas ça .. Quoique .. certains ..$", + "TBT - A l'inverse de sa mère, c'est une personne très renfermée ! Alors question relations ..$", + "TBT - Il doit sans doute faire beaucoup d'effort pour rester agréable malgré tous ses ennuis$", + "TBT - Ses relations amoureuses : C'est terminé . Ses relations avec moi : Pas vraiment commencées . Quant aux autres : Je ne suis pas les \"autres\"$", "TBT - J'aime bien tout le monde, tant qu'on ne m'escroque pas$", - "TBT - Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", - "TBT - Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", - "TBT - Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", - "TBT - Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", + "TBT - Il ne suffit pas d'avoir un peu d'argent et d'être beau parleur pour plaire à tout le monde$", + "TBT - Sans histoire .. C'est quelqu'un d'agréable et généreux . De plus, il ne manque pas d'humour$", + "TBT - Actuellement je m'entends plutôt bien avec tout le monde . Mais, ici, je ne vais pas m'étendre sur le sujet$", + "TBT - Beau plumage, mais ça ne vole pas haut ... Parlez en à son mari$", "TBT - C'est pour un rendez-vous ?$", - "TBT - Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", - "TBT - Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", - "TBT - La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", - "TBT - C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", - "TBT - Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", - "TBT - C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", - "TBT - Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", - "TBT - Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", + "TBT - Elle est très vivante ! Elle ne s'embarrasse pas de préjugés stupides$", + "TBT - Dans mon métier, on côtoit surtout des belles femmes et des truands$", + "TBT - La seule valeur sûre chez lui, c'est ses bijoux .. Et sa femme, mais ça il ne s'en rend pas compte$", + "TBT - C'est quelqu'un d'interessant . De pas toujours facile à comprendre, mais qui mérite le détour$", + "TBT - Je ne déteste personne, mais j'aime les choses et les gens quand ils sont à leur place$", + "TBT - C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite à l'étroit !$", + "TBT - Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volonté$", + "TBT - Vous savez dans mon métier on entend tout mais on ne retient rien, et le service est bien fait$", "TBT - C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", - "TBT - Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", - "TBT - C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", - "TBT - C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", - "TBT - Murielle a ‚t‚ la dame de compagnie de Julia$", + "TBT - Je ne connait pas le fond de sa pensée mais c'est quelqu'un de toujours très correct et impeccable$", + "TBT - C'était une personne qui a vécu au manoir, il y a un an .. peut être plus$", + "TBT - C'était plus qu'une amie pour ma mère . En ces moments, j'aurais aimé qu'elle soit à mes cotés$", + "TBT - Murielle a été la dame de compagnie de Julia$", "TBT - Elle aussi, faisait des recherches ...$", - "TBT - C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", - "TBT - Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", + "TBT - C'était une femme très cultivée . Son brusque départ, il y a un an, m'a surpris et beaucoup chagriné$", + "TBT - Elle partageait avec Léo sa passion de l'histoire et de la région$", "TBT - Je crois que tout le monde l'aimait bien$", - "TBT - Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", - "TBT - A part L‚o, elle avait de trŠs bon rapport avec Max ...$", - "TBT - Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", + "TBT - Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mère, belle-fille ..$", + "TBT - A part Léo, elle avait de très bon rapport avec Max ...$", + "TBT - Bien que vos relations furent peu soutenues, Jérôme, elle vous portait toujours dans son coeur ...$", "TBT - A part sa famille, pas grand monde$", - "TBT - Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", + "TBT - Ah oui ! Je crois qu'elle a beaucoup regretté le départ de cette amie .. euh ! Marielle .. ou Mireille ...$", "TBT - Non rien !$", "TBT - Non ... Pas que le sache$", - "TBT - J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", - "TBT - Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", - "TBT - Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", - "TBT - A part la lettre pour vous que j'ai post‚, rien de bien important !$", - "TBT - J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", - "TBT - Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", - "TBT - Son dernier pr‚sent m'a surpris$", + "TBT - J'ai connu Julia en achetant le manoir . C'était son seul bien . Mais toute ma fortune était la sienne ...$", + "TBT - Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien à elle$", + "TBT - Je crois que toute sa fortune venait de Léo . Alors, Pfuuut !$", + "TBT - A part la lettre pour vous que j'ai posté, rien de bien important !$", + "TBT - J'ai été très heureuse qu'elle m'offre sa bible reliée$", + "TBT - Ca a été rapide et elle n'a pas eu le temps de prendre des dispositions particulières$", + "TBT - Son dernier présent m'a surpris$", "TBT - Quel cadeau ?$", "TBT - Un chandellier ...$", - "TBT - Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", + "TBT - Oui, j'ai eu un cadeau . Ma femme a même eu une bible$", "TBT - Et bien oui ! Comme tout le monde, je crois$", "TBT - Un poignard$", - "TBT - Je n'ai jamais ‚t‚ fouiller dans le grenier !$", + "TBT - Je n'ai jamais été fouiller dans le grenier !$", "TBT - Vous avez un don de double-vue ou un passe-partout$", "TBT - Le portrait d'une jeune fille : C'est Murielle ...$", "TBT - Vous savez, je la connaissais assez peu$", - "TBT - Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", - "TBT - C'est la seule femme vraiment interessante que j'ai rencontr‚$", - "TBT - Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", - "TBT - Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", - "TBT - Si la chambre est ferm‚e, demandez … L‚o$", - "TBT - J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", + "TBT - Elle était très charmante, mais c'était surtout la dame de compagnie de Julia$", + "TBT - C'est la seule femme vraiment interessante que j'ai rencontré$", + "TBT - Elle avait de grandes connaissances historiques, et la consulter était très enrichissant$", + "TBT - Je me suis toujours demandé ce que certains pouvaient lui trouver !$", + "TBT - Si la chambre est fermée, demandez à Léo$", + "TBT - J'ai fermé sa chambre après sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", "TBT - Vous savez ce que c'est : Des relations familiales$", - "TBT - Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", + "TBT - Durant toutes ces années, je ne l'ai jamais servie à contre-coeur$", "TBT - Je l'aimais autant qu'elle m'aimais, je crois$", - "TBT - De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", + "TBT - De quel droit avez-vous pénétré dans la chambre de ma femme ?!!$", "TBT - C'est sans doute la photo de Murielle avec le filleul de Julia$", "TBT - Je ne me rappelle pas$", - "TBT - C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", - "TBT - Vous ˆtes bien curieux !... C'est sans valeur$", - "TBT - Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", + "TBT - C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tirée à l'envers$", + "TBT - Vous êtes bien curieux !... C'est sans valeur$", + "TBT - Grimoires, parchemins et manuscrits : C'est le domaine de Léo$", "TBT - Dommage que la devise soit manquante ...$", - "TBT - C'est trŠs beau ... Et trŠs vieux ...$", - "TBT - Tiens ! C'est un endroit que je n'ai jamais visit‚$", - "TBT - D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", - "TBT - Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", - "TBT - Profond et inqui‚tant : Le progrŠs a du bon$", - "TBT - Ca reste pour moi le plus grand des mystŠres$", + "TBT - C'est très beau ... Et très vieux ...$", + "TBT - Tiens ! C'est un endroit que je n'ai jamais visité$", + "TBT - D'aprés Léo, il semblerait que les Lunes soient plus récentes$", + "TBT - Même par ce temps, vous avez déniché un soleil ...$", + "TBT - Profond et inquiétant : Le progrès a du bon$", + "TBT - Ca reste pour moi le plus grand des mystères$", "TBT - Les derniers temps elle parlait d'un voyage . Et puis ...$", - "TBT - Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", - "TBT - De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", + "TBT - Il y a un peu plus d'un an, un soir, elle a décidé de partir ...$", + "TBT - De toutes façons elle n'était pas faite pour vivre ici$", "TBT - Quoi ?! Quel corps ? Quel crypte ?$", - "TBT - Si il y en a, je ne les ai jamais trouv‚ ...$", - "TBT - Bien s–r ! ... Et des fant“mes aussi ...$", - "TBT - C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", - "TBT - Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", + "TBT - Si il y en a, je ne les ai jamais trouvé ...$", + "TBT - Bien sûr ! ... Et des fantômes aussi ...$", + "TBT - C'est la plus vielle de la région : Elle date du XI eme siècle$", + "TBT - Elle fut légèrement restaurée après la révolution$", "TBT - Julia aimait beaucoup la peinture$", - "TBT - Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", - "TBT - Que faites-vous l… ?$", - "TBT - Je suis s–r que vous cherchez quelque chose ici$", - "TBT - Je vous ‚coute$", - "TBT - Que d‚sirez-vous ?$", + "TBT - Ils ont différents styles, mais n'ont pas tous une très grande valeur$", + "TBT - Que faites-vous là ?$", + "TBT - Je suis sûr que vous cherchez quelque chose ici$", + "TBT - Je vous écoute$", + "TBT - Que désirez-vous ?$", "TBT - Oui ?$", - "TBT - Je suis … vous ...$", + "TBT - Je suis à vous ...$", "TBT - C'est pourquoi ?$", "TBT - Allez-y$", - "TBT - C'est … quel sujet ?$", - "TBT - Max : … votre service, monsieur$", - "TBT - De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", - "TBT - Vous ˆtes trop curieux !$", - "TBT - J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", - "TBT - En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", - "TBT - F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", - "TBT - Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", + "TBT - C'est à quel sujet ?$", + "TBT - Max : à votre service, monsieur$", + "TBT - De toutes façons vous n'avez rien à faire ici ! Sortez !!$", + "TBT - Vous êtes trop curieux !$", + "TBT - Jérôme ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . Léo, son mari bien sûr . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempète redouble, il vous faut rester . Les repas sont à 12h et 19h et il y a un recueillement à la chapelle tous les jours à 10h$", + "TBT - En vous voyant j'ai compris que vous decouvririez la vérité ... Car je savais pourquoi vous veniez : J'avais retrouvé le brouillon de la lettre de Julia . Mais je suis très joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me protéger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous découvert que le mur du silence est le nom que les maçons ont donné au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laissé avant de mourir étaient autant de faux indices qui ne servaient qu'à faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au décryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouvé un jour dans mes affaires . Une nuit, nous nous sommes aventurés dans le passage secret que nous avions découvert . Murielle est morte par accident dans la pièce de la vierge . J'ai récupéré la bague rapidement, trouvé le trésor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'êtes pas de la police . Laissez moi seul !$", + "TBT - Février 1951 ... Profession : detective privé . Le froid figeait Paris et mes affaires lorsque ...$", + "TBT - Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les pièces délabrées du manoir de Mortevielle . Julia, une vieille femme a présent .$", "TBT - to the bureau$", "TBT - to the kitchen$", "TBT - to the cellar$", @@ -1670,7 +1670,7 @@ const char *gameDataDe[] = { "TBT - Directed by: KYILKHOR CREATION and LANGLOIS$", "TBT - $", "TBT - With the cooperation of...$", - "TBT - B‚atrice et Jean_Luc LANGLOIS$", + "TBT - Béatrice et Jean_Luc LANGLOIS$", "TBT - for the music and the voices,$", "TBT - Bernard GRELAUD for the graphic conception,$", "TBT - MARIA-DOLORES for the graphic direction,$", @@ -1769,7 +1769,7 @@ const char *gameDataDe[] = { "TBT - - 11$", "TBT - What was the first name@of the unknown character?$", "TBT - - Mireille$", - "TBT - - Fran‡oise$", + "TBT - - Françoise$", "TBT - - Maguy$", "TBT - - Emilie$", "TBT - - Murielle$", @@ -1786,7 +1786,7 @@ const char *gameDataDe[] = { "TBT - [1][ | Disk error | All stop... ][ok]$", "TBT - [1][ | You should have noticed |00% of the clues ][ok]$", "TBT - [3][ | insert disk 2 | in drive A ][ok]$", - "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", + "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'état de vos connaissances][ok]$", "TBT - MASTER .$", "TBT - rorL$", NULL -- cgit v1.2.3 From 348e149739c6d97f282e352f6a97db6fff0be2dc Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 25 Feb 2013 08:21:38 +0100 Subject: MORTEVIELLE: Integrate translations fixes. --- devtools/create_mortdat/gametext.h | 782 ++++++++++++++++++------------------- 1 file changed, 391 insertions(+), 391 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index bd3c340f1b..ebaa422f2c 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -103,7 +103,7 @@ const char *gameDataEn[] = { "Linen, personal belongings...$", "Not just anywhere!$", "It's not time!$", - "One doesn't speak with ones mouth full!$", + "One doesn't speak with ones mouth full! So once the meal is over...$", "Someone comes in, messes about then goes out again$", "Someone's approaching your hiding-place$", "Someone surprises you!$", @@ -120,7 +120,7 @@ const char *gameDataEn[] = { "The same matter, from another angle!$", "The reflection is tarnished, but the frame is gold!$", "Bric-a-brac$", - "Face to face with failure!$", + "Facing failure!$", "Smells like something you'd rather not see!$", "Cleaning products$", "Got an itch?$", @@ -168,11 +168,11 @@ const char *gameDataEn[] = { "Suddenly Max arrives with your suitcase: \"Thank you for your @visit!\".Mister discreet \"private eye\" (in need of a private optici@an!). Thoroughly demoralised, you@leave the manor. You are useless!$", "Leo interrupts: \"The storm has died down,I am going into town in@1 hour. Get ready\". You have lost@time...but not your life$", "Congestion, the deadly flu... You@are stuck here! Your whole case@sinks slowly beneath the water$", - "The water is rising fast,freezing your last illusions. Before you@have time to react...you are dead$", + "The water is rising fast, freezing your last illusions. Before you@have time to react...you are dead$", "As soon as you reach the bottom of the well, a hand cuts the rope@Farewell sweet life!$", "The storm covers your footprints.A wall of silence falls heavily@on your shoulders. Slowly you succumb to frosbite...$", - "You're not completely alone! A cold blade plunges into your backup@In future, be more care!$", - "You don't know what implication Leo may have had in Murielle's@death. Was she dead outright? In@any case,the family problems thatyou have uncovered in the course@of your enquiries would explain Leo's behaviour. You're not sure@that's the reason Julia had asked@for your help, but that's reason enough for you!Out of respect for@her, after taking certain precau-@tions you have a revealing talk with Leo.$", + "You're not completely alone! A cold blade plunges into your back@In future, be more careful!$", + "You don't know what implication Leo may have had in Murielle's@death. Was she dead outright? In@any case, the family problems that you have uncovered in the course@of your enquiries would explain Leo's behaviour. You're not sure@that's the reason Julia had asked@for your help, but that's reason enough for you!Out of respect for@her, after taking certain precau-@tions you have a revealing talk with Leo.$", "$", "You don't have the keys to the manor. Your cries rest unheard@You're going to catch... your death!$", "With a circular movement, the sword slices across you. Guts and@intestines spill out all over. A sorry state of affairs!$", @@ -205,8 +205,8 @@ const char *gameDataEn[] = { "No, not just now$", "Too late$", "$", - "Like a deep stony stare, a solitary eye that points towards the@stars; the artery that links hea-ven and hell. You must fathom@these depths keeping hold of that@which is, and will become. Monday, Tuesday, Wednesday, Sunday, from@Monday 1st to Sunday 1st,plunging from one day to the next your@\"IS\" or \"WILL BECOME\". Carrying your burden with love and light,@the smallest oversight will seal your fate.$", - "10/1/51: We think we've solved the mystery of the manuscript and@located the crypt. Is it the idea@of success in what seems like a dream that disturbs me so? I feel@I have committed myself rather too much, as far as Leo is concer@ned... No! I should go on. @I should have put Guy in the pic-ture but for a week now, I've had@no news of him$", + "Like a deep stony stare, a solitary eye that points towards the@stars; the artery that links hea-ven and hell. You must fathom@these depths keeping hold of that@which is, and will become. Monday, Tuesday, Wednesday, Sunday, from@the first Monday to the first Sunday,plunging from one day to the next your@\"IS\" or \"WILL BECOME\". Carrying your burden with love and light,@the smallest oversight will seal your fate.$", + "10/1/51: We think we've solved the mystery of the manuscript and@located the crypt. Is it the idea@of success in what seems like a dream that disturbs me so? I feel@I have committed myself rather too much, as far as Leo is @concerned... No! I mustgo on. @I should have put Guy in the picture but for a week now, I've had@no news of him$", "Take your prayers as you would to the holy place. From the pillar@of wisdom, bring the sun to his@knees. Thus will it show you the place to offer alms of another@kind and like young Arthur, open the way of darkness.White is your@colour, golden your hearth. So@advance with caution Orpheus and light your way unto the sad@virgin. Offer her the circle of the man with three faces. That he@may regain the world and turn with it to its original@inglory!$", "The mountains are the fangs in a monstrous mouth opening on the@finity of a celestial orgy, grin-ding the stars as we grind our@teeth into dust. You will drop your chord of stone at your feet.@The laugh of silence at the@highest pitch, and in your right hand, the measure of genius. Thus@will you pass between the two crescents beyond the abyss of the@wall of silence. The key to the melody is within your grasp. It@suffices to find the note that clashes.$", " 9/12 INTER. 518 3/13 EXPENS. 23@ 9/12 SALES 1203 7/12 CHEQUE 1598@ TOTAL 1721 TOTAL 1721$", @@ -285,7 +285,7 @@ const char *gameDataEn[] = { "Julia's bedroom$", "The photo at Julia's home$", "Julia and yourself...$", - "Léo's occupations$", + "L‚o's occupations$", "Pat's occupations$", "Guy's occupations$", "Bob's occupations$", @@ -294,7 +294,7 @@ const char *gameDataEn[] = { "Ida's occupations$", "Max's occupations$", "Your occupations$", - "Léo's relationships$", + "L‚o's relationships$", "Pat's relationships$", "Guy's relationships$", "Bob's relationships$", @@ -324,7 +324,7 @@ const char *gameDataEn[] = { "These are the mountains one can see in front of the manor$", "I don't know!$", "She died from pulmonary embolism$", - "Mother died suddenly. And yet her health had seemed to improve$", + "Mother died suddenly. And yet her health had seemed to improve‚$", "Miss DEFRANCK died from a cold$", "She died from pulmonary embolism$", "Excuse me but I prefer to say nothing for now$", @@ -345,20 +345,20 @@ const char *gameDataEn[] = { "Him and Pat are patners. I think it's going pretty well$", "I take care of myself and that's already lots. How about you?$", "(319) Oh that! I trust her. She knows how to keep herself busy$", - "(320) What! You have not yet discovered her main occupation...?$", + "(320) What! You have not yet discovered her main occupation..?$", "She is working in the decoration business, and tastefully with that. She is always very well dressed$", "If you like jewels, I have some good deals to propose for a short while$", "The jewels...$", "I don't know, but I'd like him to give me a bit more slack!$", "When one is a housewife, one always find something to do...$", "She could stay there doing nothing, but no! She sews, she reads...$", - "She probably doesn't have very fulfilling occupations...$", + "She has probably not very fulfilling occupations...$", "A woman like there is no more: She is interested in everything!$", "With the cooking and the cleaning I do not have much time for you$", - "I do not know how he manages to do everything. That's wonderful!$", + "I do not know how he manages to do everything. That's wonderful!", "He would do more if he showed less interest in gossip and alcohol$", "I am very independant. As long as nobody interferes in my business: No problem$", - "He is selfish. I wonder if he likes something else than his horses and grimoires$", + "He is selfish. I wonder if he likes something other than his horses and grimoires$", "I think he gets along well with everyone, except, perhaps, with Guy$", "He has a temper. You have to learn how to deal with him...$", "Business is business. As for the family, I leave it as it is...$", @@ -388,12 +388,12 @@ const char *gameDataEn[] = { "Someone who lived in the manor, a year ago... maybe more$", "She was more than a friend to my mother. In these moments, I would have loved to have her by my side$", "Murielle has been Julia's lady-in-waiting$", - "She, too, was doing some research...$", + "She, too, was doing some research....$", "She was a very educated person. Her abrupt leaving, a year ago, surprised me and caused me great sorrow$", "Her and Leo shared a common passion for history and the local area$", "I think everyone liked her$", "She got along with everyone. She loved her son dearly. As for the relations between mother-in-law and daughter-in-law...$", - "Apart from Leo, she got along very well with Max....$", + "Apart from Leo, she got along very well with Max...$", "Even if your relations were unfrequent, Jerome, there was still a place for you in her heart...$", "(370) Apart from her family, not a lot of people$", "Oh right! I think she deeply regretted this friend's leaving... err! Marielle... or Mireille...$", @@ -460,10 +460,10 @@ const char *gameDataEn[] = { "In any case you have no business being in here! Get out!!$", "You are too curious!$", "Jerome! It's been a while... I'm very sad to announce you that Julia died. Her family is here: Guy, her son; Eva, her daughter-in-law; Leo, her husband, of course; her son-in-law Pat; cousins, too: Bob, Ida, Luc. The storm is getting stronger, you must stay here. Meals are served at 12am and 7pm, and there is a mass at the chapel every day at 10am$", - "When I saw you I knew you would uncover the truth... I knew why you were here: I had found the draft of Julia's letter. But I love to play, so à She hadn't wanted your task to be too easy, to protect me, probably, but she couldn't die knowing this mystery would remain unsolved. Did you find out that the wall of silence is the name the builders gave, during the construction of the manor, to the wall on which the coat of arms hangs?.. And those gifts Julia left before dying were as many false leads, and their true purpose was to highlight how important the parchments were à That's right, more than a year ago I was working with Murielle on the decryption of those manuscripts I had just found. My wife made the connection between our work and Murielle's disappearance, but she never had any proof. Except that ring she found one day while going through my belongings. One night, we went exploring the secret passage we had found. Murielle died by accident in the room of the Virgin. I quickly took the ring from her, found the treasure and ran away. I didn't think she was still alive, and I didn't say a word because I needed the money. I told everyone the money was coming from a winning bet at the horseraces à Leave now, since you're not a policeman. Leave me alone!$", + "When I saw you I knew you would uncover the truth... I knew why you were here: I had found the draft of Julia's letter. But I love to play, so... She hadn't wanted your task to be too easy, to protect me, probably, but she couldn't die knowing this mystery would remain unsolved. Did you find out that the wall of silence is the name the builders gave, during the construction of the manor, to the wall on which the coat of arms hangs?... And those gifts Julia left before dying were as many false leads, and their true purpose was to highlight how important the parchments were... That's right, more than a year ago I was working with Murielle on the decryption of those manuscripts I had just found. My wife made the connection between our work and Murielle's disappearance, but she never had any proof. Except that ring she found one day while going through my belongings. One night, we went exploring the secret passage we had found. Murielle died by accident in the room of the Virgin. I quickly took the ring from her, found the treasure and ran away. I didn't think she was still alive, and I didn't say a word because I needed the money. I told everyone the money was coming from a winning bet at the horseraces... Leave now, since you're not a policeman. Leave me alone!$", "February 1951... Occupation: private eye. The cold was freezing Paris off, and my cases as well, when...$", "A letter, a call, memories from a childhood not that long ago. Echoes of the many games we played in the disused rooms of Mortville Manor... And Julia, now an old woman.$", - " to the bureau$", + " to the office$", " to the kitchen$", " to the cellar$", " to the landing$", @@ -472,7 +472,7 @@ const char *gameDataEn[] = { " inside the manor$", " front of the manor$", " to the chapel$", - " to the weel$", + " to the well$", " north$", " behind the manor$", " south$", @@ -481,8 +481,8 @@ const char *gameDataEn[] = { " towards the manor$", " further$", " in the water$", - " out of the weel$", - " in the weel$", + " out of the well$", + " in the well$", " choice on screen$", "In the MYSTERY series...$", "MORTVILLE MANOR$", @@ -493,7 +493,7 @@ const char *gameDataEn[] = { "Directed by: KYILKHOR CREATION and LANGLOIS$", "$", "With the cooperation of...$", - "Béatrice et Jean_Luc LANGLOIS$", + "B‚atrice et Jean_Luc LANGLOIS$", "for the music and the voices,$", "Bernard GRELAUD for the graphic conception,$", "MARIA-DOLORES for the graphic direction,$", @@ -543,7 +543,7 @@ const char *gameDataEn[] = { "- Was she murdered?$", "- Did she die by accident?$", "- Did she die of natural causes?$", - "Where did the money come from@for the restoration of the manor?$", + "Where did the money used for the@restoration of the manor come from?$", "- Blackmail$", "- Honest work$", "- Inheritance$", @@ -557,8 +557,8 @@ const char *gameDataEn[] = { "- Painting$", "- Drugs$", "- Occult sciences$", - "- Management of a sect$", - "Julia left several clues that are@represented in one place. Which?$", + "- Leader of a sect$", + "Julia left several clues that are@represented in one place. Which one?$", "- Chapel$", "- Outside$", "- Cellar$", @@ -572,7 +572,7 @@ const char *gameDataEn[] = { "- Max's room$", "- Luc/Ida's room$", "- Guy/Eva's room$", - "The main clue that leads you@to the underground door is:$", + "The main clue that lead you@to the underground door is:$", "- A dagger$", "- A ring$", "- A book$", @@ -580,24 +580,24 @@ const char *gameDataEn[] = { "- A letter$", "- A pendulum$", "How many parchments were there in the manor?$", - "- 0$", - "- 1$", - "- 2$", - "- 3$", - "- 4$", - "- 5$", - "How many persons are involved in@this story?@(Julia included, but not yourself)$", - "- 9$", - "- 10$", - "- 11$", + "- None$", + "- Just one$", + "- Two$", + "- Three$", + "- Four$", + "- Five$", + "How many persons are involved in@this story?@(including Julia, but not yourself)$", + "- Nine$", + "- Ten$", + "- Eleven$", "What was the first name@of the unknown character?$", "- Mireille$", - "- Françoise$", + "- Fran‡oise$", "- Maguy$", "- Emilie$", "- Murielle$", "- Sophie$", - "Wo did Murielle have an affair with?$", + "Who did Murielle have an affair with?$", "- Bob$", "- Luc$", "- Guy$", @@ -609,7 +609,7 @@ const char *gameDataEn[] = { "[1][ | Disk error | All stop... ][ok]$", "[1][ | You should have noticed |00% of the clues ][ok]$", "[3][ | insert disk 2 | in drive A ][ok]$", - "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'état de vos connaissances][ok]$", + "[1][ |Before going any further, you decide to| look back on the knowledge you gained][ok]$", "TBT - MASTER .$", "TBT - rorL$", NULL @@ -617,9 +617,9 @@ const char *gameDataEn[] = { const char *gameDataFr[] = { "Le calme dans la tourmente$", - "Des goûts et des couleurs!$", + "Des go—ts et des couleurs!$", "Mauve qui peut!$", - "Prière de laisser en sortant...$", + "PriŠre de laisser en sortant...$", "Trou noir troublant$", "Bleu... comme \"peur bleue\"!$", "Chambre de \"Saigneur\"!$", @@ -629,33 +629,33 @@ const char *gameDataFr[] = { "Odeur de feux de bois et de tabac$", "Tabac et vieux bouquins$", "Oignons, cannelle et spiritueux$", - "Un endroit bien peu visité$", - "Humidité et moisissure$", + "Un endroit bien peu visit‚$", + "Humidit‚ et moisissure$", "Avis aux colporteurs...$", - "Corps putréfié : cryptomanie mortelle!$", - "Et en plus... des pièges désamorcés!$", - "C'est déjà ouvert$", + "Corps putr‚fi‚ : cryptomanie mortelle!$", + "Et en plus... des piŠges d‚samorc‚s!$", + "C'est d‚j… ouvert$", "Danger : avalanches$", - "Une odeur de sainteté!$", + "Une odeur de saintet‚!$", "Une bƒtisse imposante$", - "L'envers du mystère!$", - "Drôle d'horoscope!$", + "L'envers du mystŠre!$", + "Dr“le d'horoscope!$", "Tant va la cruche...$", - "Une porte en chène$", + "Une porte en chŠne$", "Une photo$", "Les armoiries$", "$", - "Max, le domestique, vous accueille puis vous conduit à votre chambre$", - "Mortevielle, le 16/2/51@ Mon cher Jérôme,@ Suite à mon télégramme, je vous fais part des raisons de mon inquiétude :il y a un an, Murielle, ma dame de compagnie, disparaissait . Départ ayant rapport avec le renouveau financier du Manoir, ou... Silence difficile à comprendre, surtout pour mon fils Guy . N'ayant pu jusqu'à présent, faire le jour sur cette affaire, je compte sur vous pour la mener à bien . Si mon état de santé ne s'améliorait pas, prenez les décisions qui vous sembleront le plus appropriées...@ Amitiés. JULIA DEFRANCK$", - "Plus tard, Guy vous apprendra le suicide de Léo... après un pari insensé aux courses!$", + "Max, le domestique, vous accueille puis vous conduit … votre chambre$", + "Mortevielle, le 16/2/51@ Mon cher J‚r“me,@ Suite … mon t‚l‚gramme, je vous fais part des raisons de mon inqui‚tude :il y a un an, Murielle, ma dame de compagnie, disparaissait . D‚part ayant rapport avec le renouveau financier du Manoir, ou... Silence difficile … comprendre, surtout pour mon fils Guy . N'ayant pu jusqu'… pr‚sent, faire le jour sur cette affaire, je compte sur vous pour la mener … bien . Si mon ‚tat de sant‚ ne s'am‚liorait pas, prenez les d‚cisions qui vous sembleront le plus appropri‚es...@ Amiti‚s. JULIA DEFRANCK$", + "Plus tard, Guy vous apprendra le suicide de L‚o... aprŠs un pari insens‚ aux courses!$", "F3: encore@F8: suite$", - "Le maître des lieux$", - "Le futur héritier$", + "Le maŒtre des lieux$", + "Le futur h‚ritier$", "Le fils de JULIA$", "Joli brin!!!$", "Superman!$", "Le mari d'Ida$", - "Propos intéressants?$", + "Propos int‚ressants?$", "Service compris...$", "Rien dessous!$", "Un ange passe...$", @@ -663,61 +663,61 @@ const char *gameDataFr[] = { "Admirez! Contemplez!$", "Non ! Rien !$", "Impossible$", - "ça tache !$", - "Un traité sur l'histoire de la région$", - "Quelques pièces$", + "‡a tache !$", + "Un trait‚ sur l'histoire de la r‚gion$", + "Quelques piŠces$", "Premier commandement...$", - "Des pétales plein les narines !$", + "Des p‚tales plein les narines !$", "Pique, Coeur...$", - "ça ne manque pas de cachets !$", + "‡a ne manque pas de cachets !$", "Un roman d'amour$", "Souffler n'est pas jouer$", - "Pas une réussite!$", + "Pas une r‚ussite!$", "Gare aux rebondissements !$", "Sombre et profond...$", "Sensations normales$", "Sniff!$", "Pas discret ! Contentez-vous de regarder !$", - "Atchoum! De la p... poussière$", - "La toile est signée... pas le papier peint !$", + "Atchoum! De la p... poussiŠre$", + "La toile est sign‚e... pas le papier peint !$", "Pas de chance, rien !$", "Soyez plus discret !$", "Les volets sont clos$", "De la neige, encore de la neige !$", - "Génial : une toile de maître !$", - "Aucun doute : une véritable imitation$", + "G‚nial : une toile de maŒtre !$", + "Aucun doute : une v‚ritable imitation$", "Hum ! Vous tiquez : de l'antique en toc !$", - "Une pièce rare de valeur !$", + "Une piŠce rare de valeur !$", "Rien de remarquable$", "Linge, objets personnels...$", - "Pas n'importe où !$", + "Pas n'importe o— !$", "Ce n'est pas l'heure !$", - "On ne parle pas la bouche pleine ! Donc, une fois le repas terminé...$", + "On ne parle pas la bouche pleine ! Donc, une fois le repas termin‚...$", "Quelqu'un entre, s'affaire, ressort...$", "On s'approche de votre cachette !$", "On vous surprend !$", - "Non : vous êtes trop chargé !$", + "Non : vous ˆtes trop charg‚ !$", "Essayez de nouveau$", "Vous restez perplexe !?$", "Vous quittez le Manoir. A Paris, un message vous attend...$", - "Aïe, aïe, aïe !$", + "A‹e, a‹e, a‹e !$", "Rien de plus$", - "Le son paraît normal$", + "Le son paraŒt normal$", "Ca ne bouge pas$", - "On vous répond$", + "On vous r‚pond$", "Pas le moment !$", - "Même matière, autre face !$", - "Le reflet est piqué, mais le cadre est d'or$", + "Mˆme matiŠre, autre face !$", + "Le reflet est piqu‚, mais le cadre est d'or$", "Bibelots, babioles...$", - "Vous essuyez un échec !$", + "Vous essuyez un ‚chec !$", "Il est des odeurs... qu'il vaut mieux ne pas voir !$", - "Des produits ménagers$", - "ça vous démange ?$", - "C'est coincé, gelé ! Brrrr...$", - "Les huisseries sont bloquées !$", + "Des produits m‚nagers$", + "‡a vous d‚mange ?$", + "C'est coinc‚, gel‚ ! Brrrr...$", + "Les huisseries sont bloqu‚es !$", "Des papiers...$", - "Non ! Le père Noêl n'est pas coincé !$", - "ça donne sur un couloir$", + "Non ! Le pŠre Noˆl n'est pas coinc‚ !$", + "‡a donne sur un couloir$", "Vaisselle, argenterie...$", "Non ! Ce ne sont pas les restes de Julia !$", "Une gravure ancienne$", @@ -726,17 +726,17 @@ const char *gameDataFr[] = { "Le passage se ferme$", "Un tiroir secret... Un livret ! Le lisez-vous ?$", "Le tiroir se referme$", - "Rien ! Sang et chairs collent à la pierre !$", - "Des détails vous font supposer que... la mort ne fut pas immédiate !$", - "Des projets véreux ?$", - "Sa vie n'aurait-elle tenu qu'à un doigt ?$", - "Un trésor se serait-il fait la malle ?$", - "Une fente de la taille d'une pièce !$", - "Quelques pierres pivotent... Une crypte ! Y pénétrez-vous ?$", + "Rien ! Sang et chairs collent … la pierre !$", + "Des d‚tails vous font supposer que... la mort ne fut pas imm‚diate !$", + "Des projets v‚reux ?$", + "Sa vie n'aurait-elle tenu qu'… un doigt ?$", + "Un tr‚sor se serait-il fait la malle ?$", + "Une fente de la taille d'une piŠce !$", + "Quelques pierres pivotent... Une crypte ! Y p‚n‚trez-vous ?$", "La bague tourne, le mur se referme...$", - "Une colonne de pierres derrière l'autel$", + "Une colonne de pierres derriŠre l'autel$", "Il y a du bruit...$", - "Occupé !$", + "Occup‚ !$", "Retentez-vous votre chance ?$", "Trop profond !$", "Le mur de la cave pivote$", @@ -745,45 +745,45 @@ const char *gameDataFr[] = { "L'objet glisse au fond...$", "Vous n'avez rien en main$", "Ce n'est pas ouvert$", - "Il y a déjà quelque chose$", - "La porte est fermée$", - "Pas de réponse$", + "Il y a d‚j… quelque chose$", + "La porte est ferm‚e$", + "Pas de r‚ponse$", "Une boule de bois pleine$", "Il n'y a plus de place$", - "Une boule de bois percée par le travers$", + "Une boule de bois perc‚e par le travers$", "? ?$", "A vous de jouer$", "OK !$", - "Soudain Max survient avec votre valise : \"Merci de votre visite ! Détective \"privé\"... de bon sens et de discrétion sans doute\" . Déçu démoralisé, vous quittez le manoir@Vous ètes NUL !$", - "Léo vous interrompt : \"la tempète est calmée. Je pars en ville dans 1 heure. Tenez-vous prêt!\"... Bon... Vous avez perdu du temps... mais pas la vie$", - "Congestion, grippe fatale : vous y restez ! Votre enquète tombe à l'eau$", - "L'eau monte très vite et refroidit vos dernières illusions... Avant que vous n'ayez eu le temps de réagir, vous ètes mort!$", - "A peine ètes-vous au fond du puits qu'une main tranche la corde... Adieu la vie!$", - "La tempète recouvre vos traces . Un mur de silence s'abat sur vos épaules . Lentement vous succombez à la morsure du froid !$", - "Pas si seul que ça ! Une lame glacée s'enfonce dans votre dos. A l'avenir, soyez plus prudent!$", - "Vous ignorez la responsabilité exacte de Léo dans la mort de Murielle... Est-elle morte sur le coup ? De toutes façons les problèmes familiaux découverts lors de votre enquète justifient l'attitude de Léo... Vous n'ètes pas sûr que Julia vous ait appelé pour ça mais c'est suffisant pour vous ! Par respect pour elle, et après certaines précautions, vous avez une entrevue révélatrice avec Léo$", + "Soudain Max survient avec votre valise : \"Merci de votre visite ! D‚tective \"priv‚\"... de bon sens et de discr‚tion sans doute\" . D‚‡u d‚moralis‚, vous quittez le manoir@Vous Štes NUL !$", + "L‚o vous interrompt : \"la tempŠte est calm‚e. Je pars en ville dans 1 heure. Tenez-vous prˆt!\"... Bon... Vous avez perdu du temps... mais pas la vie$", + "Congestion, grippe fatale : vous y restez ! Votre enquŠte tombe … l'eau$", + "L'eau monte trŠs vite et refroidit vos derniŠres illusions... Avant que vous n'ayez eu le temps de r‚agir, vous Štes mort!$", + "A peine Štes-vous au fond du puits qu'une main tranche la corde... Adieu la vie!$", + "La tempŠte recouvre vos traces . Un mur de silence s'abat sur vos ‚paules . Lentement vous succombez … la morsure du froid !$", + "Pas si seul que ‡a ! Une lame glac‚e s'enfonce dans votre dos. A l'avenir, soyez plus prudent!$", + "Vous ignorez la responsabilit‚ exacte de L‚o dans la mort de Murielle... Est-elle morte sur le coup ? De toutes fa‡ons les problŠmes familiaux d‚couverts lors de votre enquŠte justifient l'attitude de L‚o... Vous n'Štes pas s—r que Julia vous ait appel‚ pour ‡a mais c'est suffisant pour vous ! Par respect pour elle, et aprŠs certaines pr‚cautions, vous avez une entrevue r‚v‚latrice avec L‚o$", "$", - "Vous n'avez pas les clefs du Manoir . Vos appels restent sans réponse . Vous allez attraper... la mort !$", - "D'un mouvement circulaire, l'épée vous fend par le travers : tripes et boyaux à l'air, bonjour les vers!$", + "Vous n'avez pas les clefs du Manoir . Vos appels restent sans r‚ponse . Vous allez attraper... la mort !$", + "D'un mouvement circulaire, l'‚p‚e vous fend par le travers : tripes et boyaux … l'air, bonjour les vers!$", "Home, Sweet home !$", - "Mystère d'une porte close$", - "Charme envoûtant de vieilles pièces$", + "MystŠre d'une porte close$", + "Charme envo—tant de vieilles piŠces$", "La faim au ventre$", - "Plus près du ciel? Pas sûr !$", + "Plus prŠs du ciel? Pas s—r !$", "Peur du noir?$", "Vieux tapis et reflets d'or$", "Angoisse !$", - "Sauvé ? Pas certain !$", - "Mal à l'aise, hein !$", + "Sauv‚ ? Pas certain !$", + "Mal … l'aise, hein !$", "Toujours plus loin !$", "Votre chemin de croix !$", - "A la découverte de...$", - "Attention à ce que cache...$", + "A la d‚couverte de...$", + "Attention … ce que cache...$", "Une descente aux Enfers !$", "Si ce n'est pas dans vos cordes :@ ne soyez pas sot!$", - "Avant la mise en pièce !$", + "Avant la mise en piŠce !$", "Gros plan sur :$", - "Vous remarquez particulièrement...$", + "Vous remarquez particuliŠrement...$", "Et encore...$", "C'est fini !$", "Un peu de lecture$", @@ -794,17 +794,17 @@ const char *gameDataFr[] = { "Non ! Pas ce coup-ci$", "Trop tard$", "$", - "Comme un regard profond tout couvert de peaux-pierres, pointant son oeil obscur aux astres de lumière, il est la gorge reliant le ciel et les enfers . Il faut aller au fond de cette artère comme un rat au coeur même de la terre !@Lundi, Mardi, Mercredi, Dimanche du 1e lundi au 1e dimanche, tu installeras \"ce rat\" entre chacun des jours . N'omets rien car ta venue serait ta retenue !@Porte ton fardeau comme un oeuf nouveau et donne lui le jour avec force et amour.$", - "10/1/50: Nous avons résolu le mystère du manuscrit et localisé la crypte . Est-ce l'idée d'aboutir dans ce qui n'était qu'un \"rêve\" qui me rend si anxieuse ?@Je regrette de m'être engagée vis à vis de Léo . Non! je dois continuer ! J'aurais dû mettre Guy au courant... mais, depuis une semaine, je n'ai aucune nouvelle .$", - "Porte ta prière au lieu saint qui se doit, changes-en l'air, tu auras la matière !@Du pilier de la haute sagesse, le soleil aux genoux te montrera l'espace par lequel ton âme s'ouvrira un chemin et gagnera son ère . Avance comme un Orphée peu soucieux des ténèbres : le blanc est ta couleur, l'or ta demeure . Eclaire ton chemin jusqu'à la mystérieuse . Offre-lui le cercle de l'homme aux trois facettes . Qu'il regagne le monde et qu'il tourne avec lui dans la richesse première.$", - "Les montagnes sont les crocs d'une gueule dantesque ouverte à l'infini de quelqu' orgie céleste, mastiquant des étoiles comme nous broyons du noir .@Tu déposeras l'accord de pierre à tes pieds, le rire du silence sur la gamme d'en haut et dans ta main droite, une toile d'un mètre . Tu passeras ainsi entre les deux croissants, par delà les abîmes du Mur du Silence . La Clé des champs est à ta portée, tu n'as qu'à retrouver la note qui dénote.$", + "Comme un regard profond tout couvert de peaux-pierres, pointant son oeil obscur aux astres de lumiŠre, il est la gorge reliant le ciel et les enfers . Il faut aller au fond de cette artŠre comme un rat au coeur mˆme de la terre !@Lundi, Mardi, Mercredi, Dimanche du 1e lundi au 1e dimanche, tu installeras \"ce rat\" entre chacun des jours . N'omets rien car ta venue serait ta retenue !@Porte ton fardeau comme un oeuf nouveau et donne lui le jour avec force et amour.$", + "10/1/50: Nous avons r‚solu le mystŠre du manuscrit et localis‚ la crypte . Est-ce l'id‚e d'aboutir dans ce qui n'‚tait qu'un \"rŠve\" qui me rend si anxieuse ?@Je regrette de m'ˆtre engag‚e vis … vis de L‚o . Non! je dois continuer ! J'aurais d— mettre Guy au courant... mais, depuis une semaine, je n'ai aucune nouvelle .$", + "Porte ta priŠre au lieu saint qui se doit, changes-en l'air, tu auras la matiŠre !@Du pilier de la haute sagesse, le soleil aux genoux te montrera l'espace par lequel ton …me s'ouvrira un chemin et gagnera son Šre . Avance comme un Orph‚e peu soucieux des t‚nŠbres : le blanc est ta couleur, l'or ta demeure . Eclaire ton chemin jusqu'… la myst‚rieuse . Offre-lui le cercle de l'homme aux trois facettes . Qu'il regagne le monde et qu'il tourne avec lui dans la richesse premiŠre.$", + "Les montagnes sont les crocs d'une gueule dantesque ouverte … l'infini de quelqu' orgie c‚leste, mastiquant des ‚toiles comme nous broyons du noir .@Tu d‚poseras l'accord de pierre … tes pieds, le rire du silence sur la gamme d'en haut et dans ta main droite, une toile d'un mŠtre . Tu passeras ainsi entre les deux croissants, par del… les abŒmes du Mur du Silence . La Cl‚ des champs est … ta port‚e, tu n'as qu'… retrouver la note qui d‚note.$", " DECEMBRE@ 9 REMISE 518 13 AGIOS 23@ 19 VIREMENT 1203 17 TRESOR 1598@ TOTAL 1721 TOTAL 1721$", - " Le 5/01/51@@ Luc, mon amour@ Guy connaît notre liaison . A la suite d'une dispute, je lui ai tout dit . Je ne pense qu'à toi ! Max me relance mais j'ai définitivement rompu avec lui . Qu'il reste à ses gamelles . Quand pourrons-nous nous voir seuls ? Pour toi je divorcerai... Je t'aime .@ ton Eva$", - " Mortevielle, le 10/2/51@@ Pat,@ Je te rappelle que tu me dois 50000 F que je t'ai prétés pour ton affaire . J'en ai besoin, peux-tu me les rendre assez vite?@ Guy$", - " Mortevielle, le 15/2/51@ Maître,@ Je vous écris au sujet de notre affaire. Je suis décidé à aller jusqu'au bout, certain que mon associé, Pat DEFRANCK, a falsifié un livre de comptes . Malgré$", + " Le 5/01/51@@ Luc, mon amour@ Guy connaŒt notre liaison . A la suite d'une dispute, je lui ai tout dit . Je ne pense qu'… toi ! Max me relance mais j'ai d‚finitivement rompu avec lui . Qu'il reste … ses gamelles . Quand pourrons-nous nous voir seuls ? Pour toi je divorcerai... Je t'aime .@ ton Eva$", + " Mortevielle, le 10/2/51@@ Pat,@ Je te rappelle que tu me dois 50000 F que je t'ai pr‚t‚s pour ton affaire . J'en ai besoin, peux-tu me les rendre assez vite?@ Guy$", + " Mortevielle, le 15/2/51@ MaŒtre,@ Je vous ‚cris au sujet de notre affaire. Je suis d‚cid‚ … aller jusqu'au bout, certain que mon associ‚, Pat DEFRANCK, a falsifi‚ un livre de comptes . Malgr‚$", " Une pipe$", - " Un stylo à plume$", - " Un briquet à essence$", + " Un stylo … plume$", + " Un briquet … essence$", " Une cornue$", " Un blaireau$", " Un pot de peinture$", @@ -814,13 +814,13 @@ const char *gameDataFr[] = { " Un vieux bouquin$", " Un porte-monnaie$", " Un poignard$", - " Un révolver$", + " Un r‚volver$", " Une bible$", " Une bougie$", - " Un coffret à bijoux$", - " Un fer à repasser$", + " Un coffret … bijoux$", + " Un fer … repasser$", " Une photo$", - " Une montre à gousset$", + " Une montre … gousset$", " Une corde$", " Des clefs$", " Un collier de perles$", @@ -830,9 +830,9 @@ const char *gameDataFr[] = { " Une bourse en cuir$", " Une balle de tennis$", " Des munitions$", - " Un rasoir à main$", - " Une brosse à cheveux$", - " Une brosse à linge$", + " Un rasoir … main$", + " Une brosse … cheveux$", + " Une brosse … linge$", " Un jeu de cartes$", " Un chausse pied$", " Un tournevis$", @@ -843,14 +843,14 @@ const char *gameDataFr[] = { " Un pinceau$", " Une corde$", " Un objet en bois$", - " Des somnifères$", + " Des somnifŠres$", " Une bague en or$", - " Un coffret à bijoux$", - " Un réveil matin$", + " Un coffret … bijoux$", + " Un r‚veil matin$", " Une cotte de mailles$", " Un chandellier$", " Une paire de gants$", - " Une coupe ciselée$", + " Une coupe cisel‚e$", " Un parchemin$", " Un poignard$", " Un dossier$", @@ -868,13 +868,13 @@ const char *gameDataFr[] = { "La mort de Julia$", "Les relations de Julia$", "Un message de Julia$", - "L'héritage de Julia$", + "L'h‚ritage de Julia$", "Derniers actes de Julia$", "Les cadeaux de Julia$", "La chambre de Julia$", "La photo chez Julia$", "Julia et vous...$", - "Les occupations de Léo$", + "Les occupations de L‚o$", "Les occupations de Pat$", "Les occupations de Guy$", "Les occupations de Bob$", @@ -883,7 +883,7 @@ const char *gameDataFr[] = { "Les occupations d'Ida$", "Les occupations de Max$", "Vos occupations$", - "Les relations de Léo$", + "Les relations de L‚o$", "Les relations de Pat$", "Les relations de Guy$", "Les relations de Bob$", @@ -910,169 +910,169 @@ const char *gameDataFr[] = { "$", "FIN DE LA CONVERSATION$", "Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", - "C'est le massif montagneux que l'on aperçoit devant le manoir$", + "C'est le massif montagneux que l'on aper‡oit devant le manoir$", "Je n'en sais rien !$", "Elle est morte d'une embolie pulmonaire$", - "Ma mére est morte soudainement . Son état semblait pourtant s'être amélioré$", + "Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", "Madame DEFRANCK est morte d'un coup de froid$", "Elle est morte d'une embolie pulmonaire$", - "Pardonnez moi mais je préfère, actuellement garder le silence$", + "Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", "Ce sont toujours les meilleurs qui partent les premiers$", - "J'aimais beaucoup ma mère . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", - "C'est une région qui a un passé chargé et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", - "C'est un passionné d'histoire et un joueur invétéré . D'ailleurs, voici un an il a gagné une grosse somme$", - "Il a déjà beaucoup a faire avec la gestion et l'entretien du manoir ...$", - "Je suis PDG d'une petite société de parfums . Mais quand je suis ici, je me repose$", - "C'est un homme dynamique qui a réussi dans le parfum$", - "Lui ! C'est un arriviste véreux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soirées dans sa chambre$", - "J'ai été très préoccupé par la santé de ma mère, et maintenant je n'ai plus goût à rien$", - "Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mère$", - "Ce sont ses affaires ...$", + "J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", + "C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", + "C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", + "Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir...$", + "Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", + "C'est un homme dynamique qui a r‚ussi dans le parfum$", + "Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", + "J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", + "Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", + "Ce sont ses affaires...$", "Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", - "Je travaille avec Pat mais ça ne va pas très fort en ce moment$", - "Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper sérieusement alors$", - "Lui et Pat sont associés . Je crois que ça ne va pas trop mal$", - "Je m'occupe de moi et c'est déjà beaucoup . Et vous ?$", - "Oh ça ! Je lui fais confiance . Elle sait s'occuper$", - "Mais ! Vous n'avez pas encore découvert son occupation principale ...?$", - "Elle fait dans la décoration avec beaucoup degoût d'ailleurs . Elle est toujours très bien habillée$", - "Si les bijoux vous interessent, j'ai quelques affaires interessantes à saisir rapidement$", - "Les bijoux ...$", + "Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", + "Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", + "Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", + "Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", + "Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", + "Mais ! Vous n'avez pas encore d‚couvert son occupation principale..?$", + "Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs. Elle est toujours trŠs bien habill‚e$", + "Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", + "Les bijoux...$", "Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", - "Quand on est une femme d'intérieur on trouve toujours de quoi s'occuper...$", + "Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", "Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", - "Elle n'a sûrement pas des occupations très épanouissantes ...$", + "Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", "Une femme comme il n'y en a plus : Elle s'interesse a tout !$", - "Entre la cuisine et le ménage, je n'ai pas beaucoup de temps à vous accorder$", + "Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", "Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", - "Il en ferait plus si il s'occupait moins des ragôts et de la bouteille$", - "Je suis très indépendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problème$", - "C'est un égoïste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", - "Je crois qu'il s'entend bien avec tout le monde, mis à part, peut être, avec Guy$", - "C'est un homme de caractère . Il faut savoir le prendre ..$", - "Les affaires sont les affaires . Quant à la famille, je la laisse pour ce qu'elle est ...$", - "Relations ? Relations amicales ? Relations financières sans doute$", - "Moi je n'ai rien à lui reprocher$", - "C'est un homme d'affaire débrouillard . Il nage parfois à contre-courant mais ... il s'en sortira toujours$", - "Ils m'ennuient tous .. Non ! Ce n'est même pas ça .. Quoique .. certains ..$", - "A l'inverse de sa mère, c'est une personne très renfermée ! Alors question relations ..$", - "Il doit sans doute faire beaucoup d'effort pour rester agréable malgré tous ses ennuis$", - "Ses relations amoureuses : C'est terminé . Ses relations avec moi : Pas vraiment commencées . Quant aux autres : Je ne suis pas les \"autres\"$", + "Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", + "Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", + "C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", + "Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", + "C'est un homme de caractŠre . Il faut savoir le prendre ..$", + "Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", + "Relations ? Relations amicales ? Relations financiŠres sans doute$", + "Moi je n'ai rien … lui reprocher$", + "C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", + "Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", + "A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", + "Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", + "Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", "J'aime bien tout le monde, tant qu'on ne m'escroque pas$", - "Il ne suffit pas d'avoir un peu d'argent et d'être beau parleur pour plaire à tout le monde$", - "Sans histoire .. C'est quelqu'un d'agréable et généreux . De plus, il ne manque pas d'humour$", - "Actuellement je m'entends plutôt bien avec tout le monde . Mais, ici, je ne vais pas m'étendre sur le sujet$", - "Beau plumage, mais ça ne vole pas haut ... Parlez en à son mari$", + "Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", + "Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", + "Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", + "Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", "C'est pour un rendez-vous ?$", - "Elle est très vivante ! Elle ne s'embarrasse pas de préjugés stupides$", - "Dans mon métier, on côtoit surtout des belles femmes et des truands$", - "La seule valeur sûre chez lui, c'est ses bijoux .. Et sa femme, mais ça il ne s'en rend pas compte$", - "C'est quelqu'un d'interessant . De pas toujours facile à comprendre, mais qui mérite le détour$", - "Je ne déteste personne, mais j'aime les choses et les gens quand ils sont à leur place$", - "C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite à l'étroit !$", - "Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volonté$", - "Vous savez dans mon métier on entend tout mais on ne retient rien, et le service est bien fait$", + "Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", + "Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", + "La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", + "C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", + "Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", + "C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", + "Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", + "Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", "C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", - "Je ne connait pas le fond de sa pensée mais c'est quelqu'un de toujours très correct et impeccable$", - "C'était une personne qui a vécu au manoir, il y a un an .. peut être plus$", - "C'était plus qu'une amie pour ma mère . En ces moments, j'aurais aimé qu'elle soit à mes cotés$", - "Murielle a été la dame de compagnie de Julia$", + "Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", + "C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", + "C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", + "Murielle a ‚t‚ la dame de compagnie de Julia$", "Elle aussi, faisait des recherches ...$", - "C'était une femme très cultivée . Son brusque départ, il y a un an, m'a surpris et beaucoup chagriné$", - "Elle partageait avec Léo sa passion de l'histoire et de la région$", + "C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", + "Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", "Je crois que tout le monde l'aimait bien$", - "Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mère, belle-fille ..$", - "A part Léo, elle avait de très bon rapport avec Max ...$", - "Bien que vos relations furent peu soutenues, Jérôme, elle vous portait toujours dans son coeur ...$", + "Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", + "A part L‚o, elle avait de trŠs bon rapport avec Max ...$", + "Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", "A part sa famille, pas grand monde$", - "Ah oui ! Je crois qu'elle a beaucoup regretté le départ de cette amie .. euh ! Marielle .. ou Mireille ...$", + "Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", "Non rien !$", "Non ... Pas que le sache$", - "J'ai connu Julia en achetant le manoir . C'était son seul bien . Mais toute ma fortune était la sienne ...$", - "Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien à elle$", - "Je crois que toute sa fortune venait de Léo . Alors, Pfuuut !$", - "A part la lettre pour vous que j'ai posté, rien de bien important !$", - "J'ai été très heureuse qu'elle m'offre sa bible reliée$", - "Ca a été rapide et elle n'a pas eu le temps de prendre des dispositions particulières$", - "Son dernier présent m'a surpris$", + "J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", + "Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", + "Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", + "A part la lettre pour vous que j'ai post‚, rien de bien important !$", + "J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", + "Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", + "Son dernier pr‚sent m'a surpris$", "Quel cadeau ?$", "Un chandellier ...$", - "Oui, j'ai eu un cadeau . Ma femme a même eu une bible$", + "Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", "Et bien oui ! Comme tout le monde, je crois$", "Un poignard$", - "Je n'ai jamais été fouiller dans le grenier !$", + "Je n'ai jamais ‚t‚ fouiller dans le grenier !$", "Vous avez un don de double-vue ou un passe-partout$", "Le portrait d'une jeune fille : C'est Murielle ...$", "Vous savez, je la connaissais assez peu$", - "Elle était très charmante, mais c'était surtout la dame de compagnie de Julia$", - "C'est la seule femme vraiment interessante que j'ai rencontré$", - "Elle avait de grandes connaissances historiques, et la consulter était très enrichissant$", - "Je me suis toujours demandé ce que certains pouvaient lui trouver !$", - "Si la chambre est fermée, demandez à Léo$", - "J'ai fermé sa chambre après sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", + "Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", + "C'est la seule femme vraiment interessante que j'ai rencontr‚$", + "Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", + "Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", + "Si la chambre est ferm‚e, demandez … L‚o$", + "J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", "Vous savez ce que c'est : Des relations familiales$", - "Durant toutes ces années, je ne l'ai jamais servie à contre-coeur$", + "Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", "Je l'aimais autant qu'elle m'aimais, je crois$", - "De quel droit avez-vous pénétré dans la chambre de ma femme ?!!$", + "De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", "C'est sans doute la photo de Murielle avec le filleul de Julia$", "Je ne me rappelle pas$", - "C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tirée à l'envers$", - "Vous êtes bien curieux !... C'est sans valeur$", - "Grimoires, parchemins et manuscrits : C'est le domaine de Léo$", + "C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", + "Vous ˆtes bien curieux !... C'est sans valeur$", + "Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", "Dommage que la devise soit manquante ...$", - "C'est très beau ... Et très vieux ...$", - "Tiens ! C'est un endroit que je n'ai jamais visité$", - "D'aprés Léo, il semblerait que les Lunes soient plus récentes$", - "Même par ce temps, vous avez déniché un soleil ...$", - "Profond et inquiétant : Le progrès a du bon$", - "Ca reste pour moi le plus grand des mystères$", + "C'est trŠs beau ... Et trŠs vieux ...$", + "Tiens ! C'est un endroit que je n'ai jamais visit‚$", + "D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", + "Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", + "Profond et inqui‚tant : Le progrŠs a du bon$", + "Ca reste pour moi le plus grand des mystŠres$", "Les derniers temps elle parlait d'un voyage . Et puis ...$", - "Il y a un peu plus d'un an, un soir, elle a décidé de partir ...$", - "De toutes façons elle n'était pas faite pour vivre ici$", + "Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", + "De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", "Quoi ?! Quel corps ? Quel crypte ?$", - "Si il y en a, je ne les ai jamais trouvé ...$", - "Bien sûr ! ... Et des fantômes aussi ...$", - "C'est la plus vielle de la région : Elle date du XI eme siècle$", - "Elle fut légèrement restaurée après la révolution$", + "Si il y en a, je ne les ai jamais trouv‚ ...$", + "Bien s–r ! ... Et des fant“mes aussi ...$", + "C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", + "Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", "Julia aimait beaucoup la peinture$", - "Ils ont différents styles, mais n'ont pas tous une très grande valeur$", - "Que faites-vous là ?$", - "Je suis sûr que vous cherchez quelque chose ici$", - "Je vous écoute$", - "Que désirez-vous ?$", + "Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", + "Que faites-vous l… ?$", + "Je suis s–r que vous cherchez quelque chose ici$", + "Je vous ‚coute$", + "Que d‚sirez-vous ?$", "Oui ?$", - "Je suis à vous ...$", + "Je suis … vous ...$", "C'est pourquoi ?$", "Allez-y$", - "C'est à quel sujet ?$", - "Max : à votre service, monsieur$", - "De toutes façons vous n'avez rien à faire ici ! Sortez !!$", - "Vous êtes trop curieux !$", - "Jérôme ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . Léo, son mari bien sûr . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempète redouble, il vous faut rester . Les repas sont à 12h et 19h et il y a un recueillement à la chapelle tous les jours à 10h$", - "En vous voyant j'ai compris que vous decouvririez la vérité ... Car je savais pourquoi vous veniez : J'avais retrouvé le brouillon de la lettre de Julia . Mais je suis très joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me protéger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous découvert que le mur du silence est le nom que les maçons ont donné au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laissé avant de mourir étaient autant de faux indices qui ne servaient qu'à faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au décryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouvé un jour dans mes affaires . Une nuit, nous nous sommes aventurés dans le passage secret que nous avions découvert . Murielle est morte par accident dans la pièce de la vierge . J'ai récupéré la bague rapidement, trouvé le trésor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'êtes pas de la police . Laissez moi seul !$", - "Février 1951 ... Profession : detective privé . Le froid figeait Paris et mes affaires lorsque ...$", - "Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les pièces délabrées du manoir de Mortevielle . Julia, une vieille femme a présent .$", + "C'est … quel sujet ?$", + "Max : … votre service, monsieur$", + "De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", + "Vous ˆtes trop curieux !$", + "J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", + "En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", + "F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", + "Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", " au bureau$", - " à la cuisine$", - " à la cave$", + " … la cuisine$", + " … la cave$", " dans le couloir$", " dehors$", - " la salle à manger$", + " la salle … manger$", " dans le manoir$", " devant le manoir$", - " à la chapelle$", + " … la chapelle$", " devant le puits$", " au nord$", - " derrière le manoir$", + " derriŠre le manoir$", " au sud$", - " à l'est$", - " à l'ouest$", + " … l'est$", + " … l'ouest$", " vers le manoir$", " plus loin$", " dans l'eau$", " hors du puits$", " dans le puits$", - " choix sur écran$", + " choix sur ‚cran$", " Dans la serie MYSTERE...$", " LE MANOIR DE MORTEVIELLE$", "$", @@ -1095,9 +1095,9 @@ const char *gameDataFr[] = { " A VOUS DE JOUER$", " attacher$", " attendre$", - " défoncer$", + " d‚foncer$", " dormir$", - " écouter$", + " ‚couter$", " entrer$", " fermer$", " fouiller$", @@ -1119,7 +1119,7 @@ const char *gameDataFr[] = { " lire$", " poser$", " regarder$", - " Léo$", + " L‚o$", " Pat$", " Guy$", " Eva$", @@ -1128,40 +1128,40 @@ const char *gameDataFr[] = { " Ida$", " Max$", "Comment Julia est-elle morte ?$", - "Elle s'est suicidée$", - "Elle est morte assassinée$", + "Elle s'est suicid‚e$", + "Elle est morte assassin‚e$", "Elle est morte accidentellement$", "Elle est morte naturellement$", - "D'où provenait l'argent qui a permis la restauration du manoir ?$", + "D'o— provenait l'argent qui a permis la restauration du manoir ?$", "chantage$", "travail$", - "héritage$", + "h‚ritage$", "courses$", "rentes$", "hold-up$", - "découverte$", - "Quel est le hobby de Léo ?$", + "d‚couverte$", + "Quel est le hobby de L‚o ?$", "recherches historiques$", "politique$", "peinture$", "drogue$", "sciences occultes$", "direction d'une secte$", - "Julia a laissé une série d'indices . Ceux-ci sont représentés en un seul lieu . Lequel ?$", + "Julia a laiss‚ une s‚rie d'indices . Ceux-ci sont repr‚sent‚s en un seul lieu . Lequel ?$", "Chapelle$", - "Extérieur$", + "Ext‚rieur$", "Cave$", "Grenier$", "Cuisine$", - "Salle à manger$", + "Salle … manger$", "Chambre Julia$", - "Chambre Léo$", + "Chambre L‚o$", "Chambre Pat$", "Chambre Bob$", "Chambre Max$", "Chambre Luc/Ida$", "Chambre Guy/Eva$", - "L'indice principal qui vous a permis d'arriver à la porte du souterrain est :$", + "L'indice principal qui vous a permis d'arriver … la porte du souterrain est :$", "Un poignard$", "Une bague$", "Un livre$", @@ -1175,30 +1175,30 @@ const char *gameDataFr[] = { "Trois$", "Quatre$", "Cinq$", - "Combien de personnes sont mélées à cette histoire - Julia y comprise, vous excepté - ?$", + "Combien de personnes sont m‚l‚es … cette histoire - Julia y comprise, vous except‚ - ?$", "Neuf$", "Dix$", "Onze$", - "Quel était le prénom de la personne inconnue ?$", + "Quel ‚tait le pr‚nom de la personne inconnue ?$", "Mireille$", - "Françoise$", + "Fran‡oise$", "Maguy$", "Emilie$", "Murielle$", "Sophie$", - "De qui Murielle était-elle la maîtresse ?$", + "De qui Murielle ‚tait-elle la maŒtresse ?$", "Bob$", "Luc$", "Guy$", - "Léo$", + "L‚o$", "Max$", "Murielle partageait une occupation avec une autre personne . Qui ?$", - "[1][ |Seul le hazard vous a permis d'arriver ici . Vous préférez|retourner enquéter afin de mieux comprendre ...][ok]$", - "[1][ |Insérez la disquette 1 dans le lecteur A][ok]$", + "[1][ |Seul le hazard vous a permis d'arriver ici . Vous pr‚f‚rez|retourner enqu‚ter afin de mieux comprendre ...][ok]$", + "[1][ |Ins‚rez la disquette 1 dans le lecteur A][ok]$", "[1][ |! ERREUR DISQUETTE !|On arrete tout][ok]$", - "[1][ |Vous devriez avoir remarqué|00% des indices][ok]$", - "[1][ |Insérez la disquette 2 dans le lecteur A][ok]$", - "[1][ |Avant d'aller plus loin, vous faites|un point sur l'état de vos connaissances][ok]$", + "[1][ |Vous devriez avoir remarqu‚|00% des indices][ok]$", + "[1][ |Ins‚rez la disquette 2 dans le lecteur A][ok]$", + "[1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", " MASTER .$", " rorL$", }; @@ -1280,7 +1280,7 @@ const char *gameDataDe[] = { "TBT - Linen, personal belongings...$", "TBT - Not just anywhere!$", "TBT - It's not time!$", - "TBT - One doesn't speak with ones mouth full!$", + "TBT - One doesn't speak with ones mouth full! So once the meal is over...$", "TBT - Someone comes in, messes about then goes out again$", "TBT - Someone's approaching your hiding-place$", "TBT - Someone surprises you!$", @@ -1297,7 +1297,7 @@ const char *gameDataDe[] = { "TBT - The same matter, from another angle!$", "TBT - The reflection is tarnished, but the frame is gold!$", "TBT - Bric-a-brac$", - "TBT - Face to face with failure!$", + "TBT - Facing failure!$", "TBT - Smells like something you'd rather not see!$", "TBT - Cleaning products$", "TBT - Got an itch?$", @@ -1462,7 +1462,7 @@ const char *gameDataDe[] = { "TBT - Julia's bedroom$", "TBT - The photo at Julia's home$", "TBT - Julia and yourself...$", - "TBT - Léo's occupations$", + "TBT - L‚o's occupations$", "TBT - Pat's occupations$", "TBT - Guy's occupations$", "TBT - Bob's occupations$", @@ -1471,7 +1471,7 @@ const char *gameDataDe[] = { "TBT - Ida's occupations$", "TBT - Max's occupations$", "TBT - Your occupations$", - "TBT - Léo's relationships$", + "TBT - L‚o's relationships$", "TBT - Pat's relationships$", "TBT - Guy's relationships$", "TBT - Bob's relationships$", @@ -1498,149 +1498,149 @@ const char *gameDataDe[] = { "TBT - $", "TBT - END OF THE CONVERSATION$", "TBT - Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", - "TBT - C'est le massif montagneux que l'on aperçoit devant le manoir$", + "TBT - C'est le massif montagneux que l'on aper‡oit devant le manoir$", "TBT - Je n'en sais rien !$", "TBT - Elle est morte d'une embolie pulmonaire$", - "TBT - Ma mére est morte soudainement . Son état semblait pourtant s'être amélioré$", + "TBT - Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", "TBT - Madame DEFRANCK est morte d'un coup de froid$", "TBT - Elle est morte d'une embolie pulmonaire$", - "TBT - Pardonnez moi mais je préfère, actuellement garder le silence$", + "TBT - Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", "TBT - Ce sont toujours les meilleurs qui partent les premiers$", - "TBT - J'aimais beaucoup ma mère . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", - "TBT - C'est une région qui a un passé chargé et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", - "TBT - C'est un passionné d'histoire et un joueur invétéré . D'ailleurs, voici un an il a gagné une grosse somme$", - "TBT - Il a déjà beaucoup a faire avec la gestion et l'entretien du manoir ...$", - "TBT - Je suis PDG d'une petite société de parfums . Mais quand je suis ici, je me repose$", - "TBT - C'est un homme dynamique qui a réussi dans le parfum$", - "TBT - Lui ! C'est un arriviste véreux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soirées dans sa chambre$", - "TBT - J'ai été très préoccupé par la santé de ma mère, et maintenant je n'ai plus goût à rien$", - "TBT - Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mère$", + "TBT - J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", + "TBT - C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", + "TBT - C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", + "TBT - Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir ...$", + "TBT - Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", + "TBT - C'est un homme dynamique qui a r‚ussi dans le parfum$", + "TBT - Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", + "TBT - J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", + "TBT - Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", "TBT - Ce sont ses affaires ...$", "TBT - Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", - "TBT - Je travaille avec Pat mais ça ne va pas très fort en ce moment$", - "TBT - Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper sérieusement alors$", - "TBT - Lui et Pat sont associés . Je crois que ça ne va pas trop mal$", - "TBT - Je m'occupe de moi et c'est déjà beaucoup . Et vous ?$", - "TBT - Oh ça ! Je lui fais confiance . Elle sait s'occuper$", - "TBT - Mais ! Vous n'avez pas encore découvert son occupation principale ..?$", - "TBT - Elle fait dans la décoration avec beaucoup degoût d'ailleurs . Elle est toujours très bien habillée$", - "TBT - Si les bijoux vous interessent, j'ai quelques affaires interessantes à saisir rapidement$", + "TBT - Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", + "TBT - Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", + "TBT - Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", + "TBT - Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", + "TBT - Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", + "TBT - Mais ! Vous n'avez pas encore d‚couvert son occupation principale ..?$", + "TBT - Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs . Elle est toujours trŠs bien habill‚e$", + "TBT - Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", "TBT - Les bijoux ...$", "TBT - Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", - "TBT - Quand on est une femme d'intérieur on trouve toujours de quoi s'occuper...$", + "TBT - Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", "TBT - Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", - "TBT - Elle n'a sûrement pas des occupations très épanouissantes ...$", + "TBT - Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", "TBT - Une femme comme il n'y en a plus : Elle s'interesse a tout !$", - "TBT - Entre la cuisine et le ménage, je n'ai pas beaucoup de temps à vous accorder$", + "TBT - Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", "TBT - Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", - "TBT - Il en ferait plus si il s'occupait moins des ragôts et de la bouteille$", - "TBT - Je suis très indépendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problème$", - "TBT - C'est un égoïste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", - "TBT - Je crois qu'il s'entend bien avec tout le monde, mis à part, peut être, avec Guy$", - "TBT - C'est un homme de caractère . Il faut savoir le prendre ..$", - "TBT - Les affaires sont les affaires . Quant à la famille, je la laisse pour ce qu'elle est ...$", - "TBT - Relations ? Relations amicales ? Relations financières sans doute$", - "TBT - Moi je n'ai rien à lui reprocher$", - "TBT - C'est un homme d'affaire débrouillard . Il nage parfois à contre-courant mais ... il s'en sortira toujours$", - "TBT - Ils m'ennuient tous .. Non ! Ce n'est même pas ça .. Quoique .. certains ..$", - "TBT - A l'inverse de sa mère, c'est une personne très renfermée ! Alors question relations ..$", - "TBT - Il doit sans doute faire beaucoup d'effort pour rester agréable malgré tous ses ennuis$", - "TBT - Ses relations amoureuses : C'est terminé . Ses relations avec moi : Pas vraiment commencées . Quant aux autres : Je ne suis pas les \"autres\"$", + "TBT - Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", + "TBT - Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", + "TBT - C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", + "TBT - Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", + "TBT - C'est un homme de caractŠre . Il faut savoir le prendre ..$", + "TBT - Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", + "TBT - Relations ? Relations amicales ? Relations financiŠres sans doute$", + "TBT - Moi je n'ai rien … lui reprocher$", + "TBT - C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", + "TBT - Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", + "TBT - A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", + "TBT - Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", + "TBT - Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", "TBT - J'aime bien tout le monde, tant qu'on ne m'escroque pas$", - "TBT - Il ne suffit pas d'avoir un peu d'argent et d'être beau parleur pour plaire à tout le monde$", - "TBT - Sans histoire .. C'est quelqu'un d'agréable et généreux . De plus, il ne manque pas d'humour$", - "TBT - Actuellement je m'entends plutôt bien avec tout le monde . Mais, ici, je ne vais pas m'étendre sur le sujet$", - "TBT - Beau plumage, mais ça ne vole pas haut ... Parlez en à son mari$", + "TBT - Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", + "TBT - Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", + "TBT - Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", + "TBT - Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", "TBT - C'est pour un rendez-vous ?$", - "TBT - Elle est très vivante ! Elle ne s'embarrasse pas de préjugés stupides$", - "TBT - Dans mon métier, on côtoit surtout des belles femmes et des truands$", - "TBT - La seule valeur sûre chez lui, c'est ses bijoux .. Et sa femme, mais ça il ne s'en rend pas compte$", - "TBT - C'est quelqu'un d'interessant . De pas toujours facile à comprendre, mais qui mérite le détour$", - "TBT - Je ne déteste personne, mais j'aime les choses et les gens quand ils sont à leur place$", - "TBT - C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite à l'étroit !$", - "TBT - Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volonté$", - "TBT - Vous savez dans mon métier on entend tout mais on ne retient rien, et le service est bien fait$", + "TBT - Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", + "TBT - Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", + "TBT - La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", + "TBT - C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", + "TBT - Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", + "TBT - C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", + "TBT - Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", + "TBT - Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", "TBT - C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", - "TBT - Je ne connait pas le fond de sa pensée mais c'est quelqu'un de toujours très correct et impeccable$", - "TBT - C'était une personne qui a vécu au manoir, il y a un an .. peut être plus$", - "TBT - C'était plus qu'une amie pour ma mère . En ces moments, j'aurais aimé qu'elle soit à mes cotés$", - "TBT - Murielle a été la dame de compagnie de Julia$", + "TBT - Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", + "TBT - C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", + "TBT - C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", + "TBT - Murielle a ‚t‚ la dame de compagnie de Julia$", "TBT - Elle aussi, faisait des recherches ...$", - "TBT - C'était une femme très cultivée . Son brusque départ, il y a un an, m'a surpris et beaucoup chagriné$", - "TBT - Elle partageait avec Léo sa passion de l'histoire et de la région$", + "TBT - C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", + "TBT - Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", "TBT - Je crois que tout le monde l'aimait bien$", - "TBT - Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mère, belle-fille ..$", - "TBT - A part Léo, elle avait de très bon rapport avec Max ...$", - "TBT - Bien que vos relations furent peu soutenues, Jérôme, elle vous portait toujours dans son coeur ...$", + "TBT - Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", + "TBT - A part L‚o, elle avait de trŠs bon rapport avec Max ...$", + "TBT - Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", "TBT - A part sa famille, pas grand monde$", - "TBT - Ah oui ! Je crois qu'elle a beaucoup regretté le départ de cette amie .. euh ! Marielle .. ou Mireille ...$", + "TBT - Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", "TBT - Non rien !$", "TBT - Non ... Pas que le sache$", - "TBT - J'ai connu Julia en achetant le manoir . C'était son seul bien . Mais toute ma fortune était la sienne ...$", - "TBT - Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien à elle$", - "TBT - Je crois que toute sa fortune venait de Léo . Alors, Pfuuut !$", - "TBT - A part la lettre pour vous que j'ai posté, rien de bien important !$", - "TBT - J'ai été très heureuse qu'elle m'offre sa bible reliée$", - "TBT - Ca a été rapide et elle n'a pas eu le temps de prendre des dispositions particulières$", - "TBT - Son dernier présent m'a surpris$", + "TBT - J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", + "TBT - Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", + "TBT - Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", + "TBT - A part la lettre pour vous que j'ai post‚, rien de bien important !$", + "TBT - J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", + "TBT - Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", + "TBT - Son dernier pr‚sent m'a surpris$", "TBT - Quel cadeau ?$", "TBT - Un chandellier ...$", - "TBT - Oui, j'ai eu un cadeau . Ma femme a même eu une bible$", + "TBT - Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", "TBT - Et bien oui ! Comme tout le monde, je crois$", "TBT - Un poignard$", - "TBT - Je n'ai jamais été fouiller dans le grenier !$", + "TBT - Je n'ai jamais ‚t‚ fouiller dans le grenier !$", "TBT - Vous avez un don de double-vue ou un passe-partout$", "TBT - Le portrait d'une jeune fille : C'est Murielle ...$", "TBT - Vous savez, je la connaissais assez peu$", - "TBT - Elle était très charmante, mais c'était surtout la dame de compagnie de Julia$", - "TBT - C'est la seule femme vraiment interessante que j'ai rencontré$", - "TBT - Elle avait de grandes connaissances historiques, et la consulter était très enrichissant$", - "TBT - Je me suis toujours demandé ce que certains pouvaient lui trouver !$", - "TBT - Si la chambre est fermée, demandez à Léo$", - "TBT - J'ai fermé sa chambre après sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", + "TBT - Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", + "TBT - C'est la seule femme vraiment interessante que j'ai rencontr‚$", + "TBT - Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", + "TBT - Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", + "TBT - Si la chambre est ferm‚e, demandez … L‚o$", + "TBT - J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", "TBT - Vous savez ce que c'est : Des relations familiales$", - "TBT - Durant toutes ces années, je ne l'ai jamais servie à contre-coeur$", + "TBT - Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", "TBT - Je l'aimais autant qu'elle m'aimais, je crois$", - "TBT - De quel droit avez-vous pénétré dans la chambre de ma femme ?!!$", + "TBT - De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", "TBT - C'est sans doute la photo de Murielle avec le filleul de Julia$", "TBT - Je ne me rappelle pas$", - "TBT - C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tirée à l'envers$", - "TBT - Vous êtes bien curieux !... C'est sans valeur$", - "TBT - Grimoires, parchemins et manuscrits : C'est le domaine de Léo$", + "TBT - C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", + "TBT - Vous ˆtes bien curieux !... C'est sans valeur$", + "TBT - Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", "TBT - Dommage que la devise soit manquante ...$", - "TBT - C'est très beau ... Et très vieux ...$", - "TBT - Tiens ! C'est un endroit que je n'ai jamais visité$", - "TBT - D'aprés Léo, il semblerait que les Lunes soient plus récentes$", - "TBT - Même par ce temps, vous avez déniché un soleil ...$", - "TBT - Profond et inquiétant : Le progrès a du bon$", - "TBT - Ca reste pour moi le plus grand des mystères$", + "TBT - C'est trŠs beau ... Et trŠs vieux ...$", + "TBT - Tiens ! C'est un endroit que je n'ai jamais visit‚$", + "TBT - D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", + "TBT - Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", + "TBT - Profond et inqui‚tant : Le progrŠs a du bon$", + "TBT - Ca reste pour moi le plus grand des mystŠres$", "TBT - Les derniers temps elle parlait d'un voyage . Et puis ...$", - "TBT - Il y a un peu plus d'un an, un soir, elle a décidé de partir ...$", - "TBT - De toutes façons elle n'était pas faite pour vivre ici$", + "TBT - Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", + "TBT - De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", "TBT - Quoi ?! Quel corps ? Quel crypte ?$", - "TBT - Si il y en a, je ne les ai jamais trouvé ...$", - "TBT - Bien sûr ! ... Et des fantômes aussi ...$", - "TBT - C'est la plus vielle de la région : Elle date du XI eme siècle$", - "TBT - Elle fut légèrement restaurée après la révolution$", + "TBT - Si il y en a, je ne les ai jamais trouv‚ ...$", + "TBT - Bien s–r ! ... Et des fant“mes aussi ...$", + "TBT - C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", + "TBT - Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", "TBT - Julia aimait beaucoup la peinture$", - "TBT - Ils ont différents styles, mais n'ont pas tous une très grande valeur$", - "TBT - Que faites-vous là ?$", - "TBT - Je suis sûr que vous cherchez quelque chose ici$", - "TBT - Je vous écoute$", - "TBT - Que désirez-vous ?$", + "TBT - Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", + "TBT - Que faites-vous l… ?$", + "TBT - Je suis s–r que vous cherchez quelque chose ici$", + "TBT - Je vous ‚coute$", + "TBT - Que d‚sirez-vous ?$", "TBT - Oui ?$", - "TBT - Je suis à vous ...$", + "TBT - Je suis … vous ...$", "TBT - C'est pourquoi ?$", "TBT - Allez-y$", - "TBT - C'est à quel sujet ?$", - "TBT - Max : à votre service, monsieur$", - "TBT - De toutes façons vous n'avez rien à faire ici ! Sortez !!$", - "TBT - Vous êtes trop curieux !$", - "TBT - Jérôme ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . Léo, son mari bien sûr . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempète redouble, il vous faut rester . Les repas sont à 12h et 19h et il y a un recueillement à la chapelle tous les jours à 10h$", - "TBT - En vous voyant j'ai compris que vous decouvririez la vérité ... Car je savais pourquoi vous veniez : J'avais retrouvé le brouillon de la lettre de Julia . Mais je suis très joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me protéger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous découvert que le mur du silence est le nom que les maçons ont donné au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laissé avant de mourir étaient autant de faux indices qui ne servaient qu'à faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au décryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouvé un jour dans mes affaires . Une nuit, nous nous sommes aventurés dans le passage secret que nous avions découvert . Murielle est morte par accident dans la pièce de la vierge . J'ai récupéré la bague rapidement, trouvé le trésor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'êtes pas de la police . Laissez moi seul !$", - "TBT - Février 1951 ... Profession : detective privé . Le froid figeait Paris et mes affaires lorsque ...$", - "TBT - Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les pièces délabrées du manoir de Mortevielle . Julia, une vieille femme a présent .$", - "TBT - to the bureau$", + "TBT - C'est … quel sujet ?$", + "TBT - Max : … votre service, monsieur$", + "TBT - De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", + "TBT - Vous ˆtes trop curieux !$", + "TBT - J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", + "TBT - En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", + "TBT - F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", + "TBT - Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", + "TBT - to the office$", "TBT - to the kitchen$", "TBT - to the cellar$", "TBT - to the landing$", @@ -1649,7 +1649,7 @@ const char *gameDataDe[] = { "TBT - inside the manor$", "TBT - front of the manor$", "TBT - to the chapel$", - "TBT - to the weel$", + "TBT - to the well$", "TBT - north$", "TBT - behind the manor$", "TBT - south$", @@ -1658,8 +1658,8 @@ const char *gameDataDe[] = { "TBT - towards the manor$", "TBT - further$", "TBT - in the water$", - "TBT - out of the weel$", - "TBT - in the weel$", + "TBT - out of the well$", + "TBT - in the well$", "TBT - choice on screen$", "TBT - In the MYSTERY series...$", "TBT - MORTVILLE MANOR$", @@ -1670,7 +1670,7 @@ const char *gameDataDe[] = { "TBT - Directed by: KYILKHOR CREATION and LANGLOIS$", "TBT - $", "TBT - With the cooperation of...$", - "TBT - Béatrice et Jean_Luc LANGLOIS$", + "TBT - B‚atrice et Jean_Luc LANGLOIS$", "TBT - for the music and the voices,$", "TBT - Bernard GRELAUD for the graphic conception,$", "TBT - MARIA-DOLORES for the graphic direction,$", @@ -1720,7 +1720,7 @@ const char *gameDataDe[] = { "TBT - - Was she murdered?$", "TBT - - Did she die by accident?$", "TBT - - Did she die of natural causes?$", - "TBT - Where did the money come from@for the restoration of the manor?$", + "TBT - Where did the money used@for the restoration of the manor come from?$", "TBT - - Blackmail$", "TBT - - Honest work$", "TBT - - Inheritance$", @@ -1769,7 +1769,7 @@ const char *gameDataDe[] = { "TBT - - 11$", "TBT - What was the first name@of the unknown character?$", "TBT - - Mireille$", - "TBT - - Françoise$", + "TBT - - Fran‡oise$", "TBT - - Maguy$", "TBT - - Emilie$", "TBT - - Murielle$", @@ -1786,7 +1786,7 @@ const char *gameDataDe[] = { "TBT - [1][ | Disk error | All stop... ][ok]$", "TBT - [1][ | You should have noticed |00% of the clues ][ok]$", "TBT - [3][ | insert disk 2 | in drive A ][ok]$", - "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'état de vos connaissances][ok]$", + "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", "TBT - MASTER .$", "TBT - rorL$", NULL -- cgit v1.2.3 From 36a88d2f7229bc6c92b5d7df0eed56dabc911f7e Mon Sep 17 00:00:00 2001 From: johndoe123 Date: Mon, 10 Jun 2013 12:01:37 +0200 Subject: NEVERHOOD: Check that the supplied nhc.exe is the correct one --- devtools/create_neverhood/create_neverhood.cpp | 37 +++- devtools/create_neverhood/md5.cpp | 273 +++++++++++++++++++++++++ devtools/create_neverhood/md5.h | 41 ++++ devtools/create_neverhood/module.mk | 1 + 4 files changed, 348 insertions(+), 4 deletions(-) create mode 100644 devtools/create_neverhood/md5.cpp create mode 100644 devtools/create_neverhood/md5.h (limited to 'devtools') diff --git a/devtools/create_neverhood/create_neverhood.cpp b/devtools/create_neverhood/create_neverhood.cpp index 323066d8b1..f34f20882c 100644 --- a/devtools/create_neverhood/create_neverhood.cpp +++ b/devtools/create_neverhood/create_neverhood.cpp @@ -32,10 +32,16 @@ #include #include "create_neverhood.h" +#include "md5.h" #include "tables.h" const int DAT_VERSION = 0; +// The MD5 hash of the nhc.exe used to extract the tables from +const uint8 kNhcExeMd5[16] = { + 0x37, 0xD6, 0x54, 0xA2, 0xA7, 0xBB, 0xB0, 0x1F, + 0x8C, 0x41, 0x9A, 0xB8, 0x49, 0xFF, 0x29, 0xD4}; + uint32 dataSize; byte *data; uint32 dataStart = 0x004AE000; @@ -48,12 +54,33 @@ class NavigationList; void addMessageList(uint32 messageListCount, uint32 messageListOffset); -void loadExe(const char *filename) { +bool loadExe(const char *filename) { FILE *exe = fopen(filename, "rb"); + if (!exe) { + printf("Could not open nhc.exe for reading! Quitting...\n"); + return false; + } dataSize = fileSize(exe); data = new byte[dataSize]; fread(data, dataSize, 1, exe); fclose(exe); + return true; +} + +bool validateMd5() { + uint8 digest[16]; + + md5_buffer(data, dataSize, digest); + + printf("MD5 of nhc.exe is %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", + digest[0], digest[1], digest[2], digest[3], digest[4], digest[5], digest[6], digest[7], + digest[8], digest[9], digest[10], digest[11], digest[12], digest[13], digest[14], digest[15]); + + if (memcmp(kNhcExeMd5, digest, 16)) { + printf("MD5 hash of nhc.exe doesn't match the expected value! Quitting...\n"); + return false; + } + return true; } byte *getData(uint32 offset) { @@ -506,9 +533,11 @@ void addMessageList(uint32 messageListCount, uint32 messageListOffset) { int main(int argc, char *argv[]) { - FILE *datFile; + if (!loadExe("nhc.exe") || + !validateMd5()) + return 1; - loadExe("nhc.exe"); + FILE *datFile; hitRectLists.loadListVector(hitRectListOffsets); rectLists.loadListVector(rectListOffsets); @@ -516,7 +545,7 @@ int main(int argc, char *argv[]) { navigationLists.loadListVector(navigationListOffsets); sceneInfo140Items.loadVector(sceneInfo140Offsets); sceneInfo2700Items.loadVector(sceneInfo2700Offsets); - + datFile = fopen("neverhood.dat", "wb"); writeUint32LE(datFile, 0x11223344); // Some magic diff --git a/devtools/create_neverhood/md5.cpp b/devtools/create_neverhood/md5.cpp new file mode 100644 index 0000000000..50f7406a47 --- /dev/null +++ b/devtools/create_neverhood/md5.cpp @@ -0,0 +1,273 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// Disable symbol overrides so that we can use system headers. +#define FORBIDDEN_SYMBOL_ALLOW_ALL + +#include "md5.h" + +#define GET_UINT32(n, b, i) (n) = READ_LE_UINT32(b + i) +#define PUT_UINT32(n, b, i) WRITE_LE_UINT32(b + i, n) + +void md5_starts(md5_context *ctx) { + ctx->total[0] = 0; + ctx->total[1] = 0; + + ctx->state[0] = 0x67452301; + ctx->state[1] = 0xEFCDAB89; + ctx->state[2] = 0x98BADCFE; + ctx->state[3] = 0x10325476; +} + +static void md5_process(md5_context *ctx, const uint8 data[64]) { + uint32 X[16], A, B, C, D; + + GET_UINT32(X[0], data, 0); + GET_UINT32(X[1], data, 4); + GET_UINT32(X[2], data, 8); + GET_UINT32(X[3], data, 12); + GET_UINT32(X[4], data, 16); + GET_UINT32(X[5], data, 20); + GET_UINT32(X[6], data, 24); + GET_UINT32(X[7], data, 28); + GET_UINT32(X[8], data, 32); + GET_UINT32(X[9], data, 36); + GET_UINT32(X[10], data, 40); + GET_UINT32(X[11], data, 44); + GET_UINT32(X[12], data, 48); + GET_UINT32(X[13], data, 52); + GET_UINT32(X[14], data, 56); + GET_UINT32(X[15], data, 60); + +#define S(x, n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n))) + +#define P(a, b, c, d, k, s, t) \ +{ \ + a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \ +} + + A = ctx->state[0]; + B = ctx->state[1]; + C = ctx->state[2]; + D = ctx->state[3]; + +#define F(x, y, z) (z ^ (x & (y ^ z))) + + P(A, B, C, D, 0, 7, 0xD76AA478); + P(D, A, B, C, 1, 12, 0xE8C7B756); + P(C, D, A, B, 2, 17, 0x242070DB); + P(B, C, D, A, 3, 22, 0xC1BDCEEE); + P(A, B, C, D, 4, 7, 0xF57C0FAF); + P(D, A, B, C, 5, 12, 0x4787C62A); + P(C, D, A, B, 6, 17, 0xA8304613); + P(B, C, D, A, 7, 22, 0xFD469501); + P(A, B, C, D, 8, 7, 0x698098D8); + P(D, A, B, C, 9, 12, 0x8B44F7AF); + P(C, D, A, B, 10, 17, 0xFFFF5BB1); + P(B, C, D, A, 11, 22, 0x895CD7BE); + P(A, B, C, D, 12, 7, 0x6B901122); + P(D, A, B, C, 13, 12, 0xFD987193); + P(C, D, A, B, 14, 17, 0xA679438E); + P(B, C, D, A, 15, 22, 0x49B40821); + +#undef F + +#define F(x, y, z) (y ^ (z & (x ^ y))) + + P(A, B, C, D, 1, 5, 0xF61E2562); + P(D, A, B, C, 6, 9, 0xC040B340); + P(C, D, A, B, 11, 14, 0x265E5A51); + P(B, C, D, A, 0, 20, 0xE9B6C7AA); + P(A, B, C, D, 5, 5, 0xD62F105D); + P(D, A, B, C, 10, 9, 0x02441453); + P(C, D, A, B, 15, 14, 0xD8A1E681); + P(B, C, D, A, 4, 20, 0xE7D3FBC8); + P(A, B, C, D, 9, 5, 0x21E1CDE6); + P(D, A, B, C, 14, 9, 0xC33707D6); + P(C, D, A, B, 3, 14, 0xF4D50D87); + P(B, C, D, A, 8, 20, 0x455A14ED); + P(A, B, C, D, 13, 5, 0xA9E3E905); + P(D, A, B, C, 2, 9, 0xFCEFA3F8); + P(C, D, A, B, 7, 14, 0x676F02D9); + P(B, C, D, A, 12, 20, 0x8D2A4C8A); + +#undef F + +#define F(x, y, z) (x ^ y ^ z) + + P(A, B, C, D, 5, 4, 0xFFFA3942); + P(D, A, B, C, 8, 11, 0x8771F681); + P(C, D, A, B, 11, 16, 0x6D9D6122); + P(B, C, D, A, 14, 23, 0xFDE5380C); + P(A, B, C, D, 1, 4, 0xA4BEEA44); + P(D, A, B, C, 4, 11, 0x4BDECFA9); + P(C, D, A, B, 7, 16, 0xF6BB4B60); + P(B, C, D, A, 10, 23, 0xBEBFBC70); + P(A, B, C, D, 13, 4, 0x289B7EC6); + P(D, A, B, C, 0, 11, 0xEAA127FA); + P(C, D, A, B, 3, 16, 0xD4EF3085); + P(B, C, D, A, 6, 23, 0x04881D05); + P(A, B, C, D, 9, 4, 0xD9D4D039); + P(D, A, B, C, 12, 11, 0xE6DB99E5); + P(C, D, A, B, 15, 16, 0x1FA27CF8); + P(B, C, D, A, 2, 23, 0xC4AC5665); + +#undef F + +#define F(x, y, z) (y ^ (x | ~z)) + + P(A, B, C, D, 0, 6, 0xF4292244); + P(D, A, B, C, 7, 10, 0x432AFF97); + P(C, D, A, B, 14, 15, 0xAB9423A7); + P(B, C, D, A, 5, 21, 0xFC93A039); + P(A, B, C, D, 12, 6, 0x655B59C3); + P(D, A, B, C, 3, 10, 0x8F0CCC92); + P(C, D, A, B, 10, 15, 0xFFEFF47D); + P(B, C, D, A, 1, 21, 0x85845DD1); + P(A, B, C, D, 8, 6, 0x6FA87E4F); + P(D, A, B, C, 15, 10, 0xFE2CE6E0); + P(C, D, A, B, 6, 15, 0xA3014314); + P(B, C, D, A, 13, 21, 0x4E0811A1); + P(A, B, C, D, 4, 6, 0xF7537E82); + P(D, A, B, C, 11, 10, 0xBD3AF235); + P(C, D, A, B, 2, 15, 0x2AD7D2BB); + P(B, C, D, A, 9, 21, 0xEB86D391); + +#undef F + + ctx->state[0] += A; + ctx->state[1] += B; + ctx->state[2] += C; + ctx->state[3] += D; +} + +void md5_update(md5_context *ctx, const uint8 *input, uint32 length) { + uint32 left, fill; + + if (!length) + return; + + left = ctx->total[0] & 0x3F; + fill = 64 - left; + + ctx->total[0] += length; + ctx->total[0] &= 0xFFFFFFFF; + + if (ctx->total[0] < length) + ctx->total[1]++; + + if (left && length >= fill) { + memcpy((void *)(ctx->buffer + left), (const void *)input, fill); + md5_process(ctx, ctx->buffer); + length -= fill; + input += fill; + left = 0; + } + + while (length >= 64) { + md5_process(ctx, input); + length -= 64; + input += 64; + } + + if (length) { + memcpy((void *)(ctx->buffer + left), (const void *)input, length); + } +} + +static const uint8 md5_padding[64] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +void md5_finish(md5_context *ctx, uint8 digest[16]) { + uint32 last, padn; + uint32 high, low; + uint8 msglen[8]; + + high = (ctx->total[0] >> 29) | (ctx->total[1] << 3); + low = (ctx->total[0] << 3); + + PUT_UINT32(low, msglen, 0); + PUT_UINT32(high, msglen, 4); + + last = ctx->total[0] & 0x3F; + padn = (last < 56) ? (56 - last) : (120 - last); + + md5_update(ctx, md5_padding, padn); + md5_update(ctx, msglen, 8); + + PUT_UINT32(ctx->state[0], digest, 0); + PUT_UINT32(ctx->state[1], digest, 4); + PUT_UINT32(ctx->state[2], digest, 8); + PUT_UINT32(ctx->state[3], digest, 12); +} + +bool md5_file(const char *name, uint8 digest[16], uint32 length) { + FILE *f; + + f = fopen(name, "rb"); + if (f == NULL) { + printf("md5_file couldn't open '%s'\n", name); + return false; + } + + md5_context ctx; + uint32 i; + unsigned char buf[1000]; + bool restricted = (length != 0); + int readlen; + + if (!restricted || sizeof(buf) <= length) + readlen = sizeof(buf); + else + readlen = length; + + md5_starts(&ctx); + + + while ((i = (uint32)fread(buf, 1, readlen, f)) > 0) { + md5_update(&ctx, buf, i); + + length -= i; + if (restricted && length == 0) + break; + + if (restricted && sizeof(buf) > length) + readlen = length; + } + + md5_finish(&ctx, digest); + fclose(f); + return true; +} + +void md5_buffer(byte *buf, uint32 len, uint8 digest[16]) { + md5_context ctx; + + md5_starts(&ctx); + md5_update(&ctx, buf, len); + md5_finish(&ctx, digest); +} + diff --git a/devtools/create_neverhood/md5.h b/devtools/create_neverhood/md5.h new file mode 100644 index 0000000000..81bc03ff83 --- /dev/null +++ b/devtools/create_neverhood/md5.h @@ -0,0 +1,41 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef COMMON_MD5_H +#define COMMON_MD5_H + +#include "util.h" + +typedef struct { + uint32 total[2]; + uint32 state[4]; + uint8 buffer[64]; +} md5_context; + +void md5_starts(md5_context *ctx); +void md5_update(md5_context *ctx, const uint8 *input, uint32 length); +void md5_finish(md5_context *ctx, uint8 digest[16]); + +bool md5_file(const char *name, uint8 digest[16], uint32 length = 0); +void md5_buffer(byte *buf, uint32 len, uint8 digest[16]); + +#endif diff --git a/devtools/create_neverhood/module.mk b/devtools/create_neverhood/module.mk index 284e19105d..8e263559b5 100644 --- a/devtools/create_neverhood/module.mk +++ b/devtools/create_neverhood/module.mk @@ -3,6 +3,7 @@ MODULE := devtools/create_neverhood MODULE_OBJS := \ create_neverhood.o \ + md5.o \ util.o # Set the name of the executable -- cgit v1.2.3 From cdac272b8770cd8064b1f196157fbb29e61619b7 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 22 Jun 2013 11:28:23 -0400 Subject: SCUMM: Added another Russian variant of Full Throttle --- devtools/scumm-md5.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt index 414a25e906..3da700646d 100644 --- a/devtools/scumm-md5.txt +++ b/devtools/scumm-md5.txt @@ -346,7 +346,8 @@ ft Full Throttle 4bedb49943df95a9c900a5a82ccbe9de -1 fr All? - - - cyx 8bdb0bf87b5e303dd35693afb9351215 -1 de All? - - - dhewg 55518cd73cf9c6d23ea29c51ee06bdfe -1 it All? - - - delfino - 55e4cc866ff9046824e1c638ba2b8c7f -1 ru All? - - - sev + 55e4cc866ff9046824e1c638ba2b8c7f -1 ru All? - Fargus - sev + 291fb06071e65897f755846611f5ad40 19697 ru All? - Akella - sev e72bb4c2b613db2cf50f89ff6350e70a -1 es All? - - - fe381e45117878b1e942cb876b050fd6 513243679 en Mac - - Mac bundle Fingolfin 04401d747f1a2c1c4b388daff71ed378 535405461 de Mac - - Mac bundle Fingolfin -- cgit v1.2.3 From c7ec14d1cb4620b891a76b57f63fd72719e37a7e Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sun, 23 Jun 2013 18:18:52 -0400 Subject: SCUMM: Corrected Russian Full Throttle variant names --- devtools/scumm-md5.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt index 3da700646d..6e3bae1d7e 100644 --- a/devtools/scumm-md5.txt +++ b/devtools/scumm-md5.txt @@ -346,8 +346,8 @@ ft Full Throttle 4bedb49943df95a9c900a5a82ccbe9de -1 fr All? - - - cyx 8bdb0bf87b5e303dd35693afb9351215 -1 de All? - - - dhewg 55518cd73cf9c6d23ea29c51ee06bdfe -1 it All? - - - delfino - 55e4cc866ff9046824e1c638ba2b8c7f -1 ru All? - Fargus - sev - 291fb06071e65897f755846611f5ad40 19697 ru All? - Akella - sev + 55e4cc866ff9046824e1c638ba2b8c7f -1 ru All? - Akella - sev + 291fb06071e65897f755846611f5ad40 19697 ru All? - 7-Wolf - sev e72bb4c2b613db2cf50f89ff6350e70a -1 es All? - - - fe381e45117878b1e942cb876b050fd6 513243679 en Mac - - Mac bundle Fingolfin 04401d747f1a2c1c4b388daff71ed378 535405461 de Mac - - Mac bundle Fingolfin -- cgit v1.2.3 From ba0e4540b68f32d4f179aecf305e7c71cfadfb26 Mon Sep 17 00:00:00 2001 From: Littleboy Date: Sat, 29 Jun 2013 18:33:50 -0400 Subject: TOOLS: Add support for MSVC12 in create_project --- devtools/create_project/create_project.cpp | 8 +- devtools/create_project/msbuild.cpp | 15 +-- devtools/create_project/msvc12/create_project.sln | 20 ++++ .../create_project/msvc12/create_project.vcxproj | 132 +++++++++++++++++++++ .../msvc12/create_project.vcxproj.filters | 71 +++++++++++ 5 files changed, 235 insertions(+), 11 deletions(-) create mode 100644 devtools/create_project/msvc12/create_project.sln create mode 100644 devtools/create_project/msvc12/create_project.vcxproj create mode 100644 devtools/create_project/msvc12/create_project.vcxproj.filters (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index a8e09ff5eb..84a6185eda 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -189,7 +189,7 @@ int main(int argc, char *argv[]) { msvcVersion = atoi(argv[++i]); - if (msvcVersion != 8 && msvcVersion != 9 && msvcVersion != 10 && msvcVersion != 11) { + if (msvcVersion != 8 && msvcVersion != 9 && msvcVersion != 10 && msvcVersion != 11 && msvcVersion != 12) { std::cerr << "ERROR: Unsupported version: \"" << msvcVersion << "\" passed to \"--msvc-version\"!\n"; return -1; } @@ -609,9 +609,9 @@ void displayHelp(const char *exe) { " (default: false)\n" " --installer Create NSIS installer after the build (implies --build-events)\n" " (default: false)\n" - " --tools Create project files for the devtools\n" - " (ignores --build-events and --installer, as well as engine settings)\n" - " (default: false)\n" + " --tools Create project files for the devtools\n" + " (ignores --build-events and --installer, as well as engine settings)\n" + " (default: false)\n" "\n" "Engines settings:\n" " --list-engines list all available engines and their default state\n" diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp index 0f77d91852..dd9917e4ee 100644 --- a/devtools/create_project/msbuild.cpp +++ b/devtools/create_project/msbuild.cpp @@ -52,6 +52,9 @@ int MSBuildProvider::getVisualStudioVersion() { if (_version == 11) return 2012; + if (_version == 12) + return 2013; + error("Unsupported version passed to getVisualStudioVersion"); } @@ -88,7 +91,7 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri error("Could not open \"" + projectFile + "\" for writing"); project << "\n" - "\n" + "= 12 ? _version : 4) << ".0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n" "\t\n"; outputConfiguration(project, "Debug", "Win32"); @@ -105,7 +108,7 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri "\t\t{" << uuid << "}\n" "\t\t" << name << "\n" "\t\tWin32Proj\n" - "\t\t$(VCTargetsPath11)\n" + "\t\t$(VCTargetsPath" << _version << ")\n" "\t\n"; // Shared configuration @@ -184,7 +187,7 @@ void MSBuildProvider::createFiltersFile(const BuildSetup &setup, const std::stri error("Could not open \"" + filtersFile + "\" for writing"); filters << "\n" - "\n"; + "= 12 ? _version : 4) << ".0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n"; // Output the list of filters filters << "\t\n"; @@ -314,9 +317,8 @@ void MSBuildProvider::outputGlobalPropFile(const BuildSetup &setup, std::ofstrea definesList += REVISION_DEFINE ";"; properties << "\n" - "\n" + "= 12 ? _version : 4) << ".0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n" "\t\n" - "\t\t<_ProjectFileVersion>10.0.40219.1\n" "\t\t<_PropertySheetDisplayName>" << setup.projectDescription << "_Global\n" "\t\t$(" << LIBS_DEFINE << ")\\bin;$(ExecutablePath)\n" "\t\t$(" << LIBS_DEFINE << ")\\lib\\" << (bits == 32 ? "x86" : "x64") << ";$(LibraryPath)\n" @@ -368,12 +370,11 @@ void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, b error("Could not open \"" + setup.outputDir + '/' + setup.projectDescription + "_" + outputType + (isWin32 ? "" : "64") + getPropertiesExtension() + "\" for writing"); properties << "\n" - "\n" + "= 12 ? _version : 4) << ".0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n" "\t\n" "\t\t\n" "\t\n" "\t\n" - "\t\t<_ProjectFileVersion>10.0.40219.1\n" "\t\t<_PropertySheetDisplayName>" << setup.projectDescription << "_" << outputType << outputBitness << "\n" "\t\t" << (isRelease ? "false" : "true") << "\n" "\t\n" diff --git a/devtools/create_project/msvc12/create_project.sln b/devtools/create_project/msvc12/create_project.sln new file mode 100644 index 0000000000..759d5430f5 --- /dev/null +++ b/devtools/create_project/msvc12/create_project.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "create_project", "create_project.vcxproj", "{CF177559-077D-4A08-AABE-BE0FD35F6C63}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CF177559-077D-4A08-AABE-BE0FD35F6C63}.Debug|Win32.ActiveCfg = Debug|Win32 + {CF177559-077D-4A08-AABE-BE0FD35F6C63}.Debug|Win32.Build.0 = Debug|Win32 + {CF177559-077D-4A08-AABE-BE0FD35F6C63}.Release|Win32.ActiveCfg = Release|Win32 + {CF177559-077D-4A08-AABE-BE0FD35F6C63}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/devtools/create_project/msvc12/create_project.vcxproj b/devtools/create_project/msvc12/create_project.vcxproj new file mode 100644 index 0000000000..c26b1e5f45 --- /dev/null +++ b/devtools/create_project/msvc12/create_project.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {CF177559-077D-4A08-AABE-BE0FD35F6C63} + create_project + $(VCTargetsPath11) + + + + Application + MultiByte + true + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + Disabled + true + EnableFastChecks + MultiThreadedDebugDLL + Level4 + EditAndContinue + false + 4003;4512;4127 + + + Rpcrt4.lib;%(AdditionalDependencies) + true + MachineX86 + false + + + @echo off +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc12\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc11\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc10\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc9\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc8\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\codeblocks\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\iphone\" + + + + + MaxSpeed + true + MultiThreadedDLL + true + Level3 + ProgramDatabase + 4003;4512;4127 + + + Rpcrt4.lib;%(AdditionalDependencies) + true + true + true + MachineX86 + + + @echo off +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc12\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc11\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc10\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc9\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc8\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\codeblocks\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\iphone\" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/devtools/create_project/msvc12/create_project.vcxproj.filters b/devtools/create_project/msvc12/create_project.vcxproj.filters new file mode 100644 index 0000000000..436d1d3436 --- /dev/null +++ b/devtools/create_project/msvc12/create_project.vcxproj.filters @@ -0,0 +1,71 @@ + + + + + {2e3580c8-ec3a-4c81-8351-b668c668db2a} + + + {31aaf58c-d3cb-4ed6-8eca-163b4a9b31a6} + + + {f980f6fb-41b6-4161-b035-58b200c85cad} + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + scripts + + + scripts + + + scripts + + + scripts + + + -- cgit v1.2.3 From be399188c4ec25463c4a777a5e96fd69a4b0b1e3 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Tue, 25 Jun 2013 21:08:55 +1000 Subject: TIZEN: bada port updated to tizen --- devtools/credits.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index 06df7fa50e..7d39730c63 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -754,10 +754,6 @@ begin_credits("Credits"); add_person("Angus Lees", "Gus", ""); end_section(); - begin_section("BADA"); - add_person("Chris Warren-Smith", "", ""); - end_section(); - begin_section("Dreamcast"); add_person("Marcus Comstedt", "", ""); end_section(); @@ -818,6 +814,10 @@ begin_credits("Credits"); add_person("Lars Persson", "AnotherGuest", ""); end_section(); + begin_section("Tizen / BADA"); + add_person("Chris Warren-Smith", "", ""); + end_section(); + begin_section("WebOS"); add_person("Klaus Reimer", "kayahr", ""); end_section(); -- cgit v1.2.3 From 42e3c18ed3de4b143b10a1652d53061e750d5d8b Mon Sep 17 00:00:00 2001 From: Einar Johan Trøan SømaÌŠen Date: Wed, 3 Jul 2013 00:22:27 +0200 Subject: CREATE_PROJECT: Fix a typo in the help-message (--codeblocks) --- devtools/create_project/create_project.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 84a6185eda..6b6e86a187 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -588,7 +588,7 @@ void displayHelp(const char *exe) { " Additionally there are the following switches for changing various settings:\n" "\n" "Project specific settings:\n" - " --codeblock build Code::Blocks project files\n" + " --codeblocks build Code::Blocks project files\n" " --msvc build Visual Studio project files\n" " --xcode build XCode project files\n" " --file-prefix prefix allow overwriting of relative file prefix in the\n" -- cgit v1.2.3 From ad47cf0d718a996b7ea9afdcac48b05022a58608 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 3 Jul 2013 00:45:56 +0200 Subject: MORTEVIELLE: Fix extraction tool to handle German DOS version --- devtools/extract_mort/extract_mort.cpp | 93 ++++++++++++++++++++++++---------- 1 file changed, 67 insertions(+), 26 deletions(-) (limited to 'devtools') diff --git a/devtools/extract_mort/extract_mort.cpp b/devtools/extract_mort/extract_mort.cpp index 477ca44631..0d603f78cb 100644 --- a/devtools/extract_mort/extract_mort.cpp +++ b/devtools/extract_mort/extract_mort.cpp @@ -114,37 +114,63 @@ public: }; File textFile, txxInp, txxNtp; +int _version; /*-------------------------------------------------------------------------*/ #define BUFFER_SIZE 32768 -const byte tabdr[32] = { - 32, 101, 115, 97, 114, 105, 110, +const byte tabdrFr[32] = { + 32, 101, 115, 97, 114, 105, 110, // ' e♣arinutol 117, 116, 111, 108, 13, 100, 99, 112, 109, 46, 118, 130, 39, 102, 98, 44, 113, 104, 103, 33, 76, 85, 106, 30, 31 }; -const byte tab30[32] = { - 69, 67, 74, 138, 133, 120, 77, 122, +const byte tabdrDe[32] = { + 0x20, 0x65, 0x6E, 0x69, 0x73, 0x72, 0x74, // ' e♣arinutol + 0x68, 0x61, 0x75, 0x0D, 0x63, 0x6C, 0x64, + 0x6D, 0x6F, 0x67, 0x2E, 0x62, 0x66, 0x53, + 0x2C, 0x77, 0x45, 0x7A, 0x6B, 0x44, 0x76, + 0x9C, 0x47, 0x1E, 0x1F +}; + +const byte tab30Fr[32] = { + 69, 67, 74, 138, 133, 120, 77, 122, //ECJèà¶M 121, 68, 65, 63, 73, 80, 83, 82, 156, 45, 58, 79, 49, 86, 78, 84, 71, 81, 64, 66, 135, 34, 136, 91 }; -const byte tab31[32]= { +const byte tab30De[32] = { + 0x49, 0x4D, 0x21, 0x42, 0x4C, 0x70, 0x41, 0x52, //ECJèà¶M + 0x57, 0x4E, 0x48, 0x3F, 0x46, 0x50, 0x55, 0x4B, + 0x5A, 0x4A, 0x54, 0x31, 0x4F, 0x56, 0x79, 0x3A, + 0x6A, 0x5B, 0x5D, 0x40, 0x22, 0x2F, 0x30, 0x35 +}; + +const byte tab31Fr[32]= { 93, 47, 48, 53, 50, 70, 124, 75, 72, 147, 140, 150, 151, 57, 56, 51, 107, 139, 55, 89, 131, 37, 54, 88, 119, 0, 0, 0, 0, 0, 0, 0 }; +const byte tab31De[32]= { + 0x78, 0x2D, 0x32, 0x82, 0x43, 0x39, 0x33, 0x38, + 0x7C, 0x27, 0x37, 0x3B, 0x25, 0x28, 0x29, 0x36, + 0x51, 0x59, 0x71, 0x81, 0x87, 0x88, 0x93, 0, + 0, 0, 0, 0, 0, 0, 0, 0 +}; + +const byte *tabdr, *tab30, *tab31; +uint16 ctrlChar; + /** * Extracts a single character from the game data */ -static void extractCharacter(unsigned char &c, int &idx, int &pt, bool &the_end, const uint16 *strData) { +static void extractCharacter(unsigned char &c, uint &idx, uint &pt, bool &the_end, const uint16 *strData) { uint16 oct, ocd; /* 5-8 */ @@ -161,14 +187,10 @@ static void extractCharacter(unsigned char &c, int &idx, int &pt, bool &the_end, oct = (uint)oct >> pt; } - switch (oct) { - case 11 : { + if (oct == ctrlChar) { c = '$'; the_end = true; - } - break; - case 30: - case 31 : { + } else if (oct == 30 || oct == 31) { ocd = FROM_LE_16(strData[idx]); ocd = (uint16)(ocd << (16 - pt)) >> (16 - pt); if (pt < 6) { @@ -185,14 +207,11 @@ static void extractCharacter(unsigned char &c, int &idx, int &pt, bool &the_end, else c = (char)tab31[ocd]; - if (c == '\0') { + if (c == '\0') the_end = true; - } - } - break; - default: + } else { c = (char)tabdr[oct]; - } + } } /** @@ -293,8 +312,8 @@ static void export_strings(const char *textFilename) { // Loop through getting each string for (unsigned int strIndex = 0; strIndex < (txxNtp.size() / 3); ++strIndex) { - int indis = txxNtp.readWord(); - int point = txxNtp.readByte(); + uint indis = txxNtp.readWord(); + uint point = txxNtp.readByte(); // Extract the string int charIndex = 0; @@ -330,8 +349,14 @@ static void export_strings(const char *textFilename) { */ static void import_strings(const char *textFilename) { // Open input and output files - txxInp.open("TXX.INP", kFileWriteMode); - txxNtp.open("TXX.NTP", kFileWriteMode); + if (!txxInp.open("TXX.INP", kFileWriteMode)) { + printf("Missing TXX data file"); + exit(-1); + } + if (!txxNtp.open("TXX.NTP", kFileWriteMode)) { + printf("Missing TXX index file"); + exit(-1); + } textFile.open(textFilename, kFileReadMode); // Set up a buffer for the output compressed strings @@ -371,17 +396,33 @@ static void import_strings(const char *textFilename) { int main(int argc, char *argv[]) { - if (argc != 3) { - printf("Format: %s export|import output_file\n", argv[0]); + if (argc != 4) { + printf("Format: %s export|import v1|v2 output_file\n", argv[0]); + printf("where:\nv1: French DOS version\nv2: German DOS version\n"); printf("The program must be run from the directory with the Mortville Manor game files.\n"); exit(0); } + if (!strcmp(argv[2], "v1")) { + tab30 = tab30Fr; + tab31 = tab31Fr; + tabdr = tabdrFr; + ctrlChar = 11; + } else if (!strcmp(argv[2], "v2")) { + tab30 = tab30De; + tab31 = tab31De; + tabdr = tabdrDe; + ctrlChar = 10; + } else { + printf("Unknown version"); + exit(-1); + } + // Do the processing if (!strcmp(argv[1], "export")) - export_strings(argv[2]); + export_strings(argv[3]); else if (!strcmp(argv[1], "import")) - import_strings(argv[2]); + import_strings(argv[3]); else printf("Unknown operation specified\n"); } -- cgit v1.2.3 From a116486b777c946f9f4f3181c6d8f155b49f8279 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 3 Jul 2013 07:33:32 +0200 Subject: TOOL: Remove obsolete comments in extract_mort --- devtools/extract_mort/extract_mort.cpp | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'devtools') diff --git a/devtools/extract_mort/extract_mort.cpp b/devtools/extract_mort/extract_mort.cpp index 0d603f78cb..0164030769 100644 --- a/devtools/extract_mort/extract_mort.cpp +++ b/devtools/extract_mort/extract_mort.cpp @@ -121,35 +121,20 @@ int _version; #define BUFFER_SIZE 32768 const byte tabdrFr[32] = { - 32, 101, 115, 97, 114, 105, 110, // ' e♣arinutol + 32, 101, 115, 97, 114, 105, 110, 117, 116, 111, 108, 13, 100, 99, 112, 109, 46, 118, 130, 39, 102, 98, 44, 113, 104, 103, 33, 76, 85, 106, 30, 31 }; -const byte tabdrDe[32] = { - 0x20, 0x65, 0x6E, 0x69, 0x73, 0x72, 0x74, // ' e♣arinutol - 0x68, 0x61, 0x75, 0x0D, 0x63, 0x6C, 0x64, - 0x6D, 0x6F, 0x67, 0x2E, 0x62, 0x66, 0x53, - 0x2C, 0x77, 0x45, 0x7A, 0x6B, 0x44, 0x76, - 0x9C, 0x47, 0x1E, 0x1F -}; - const byte tab30Fr[32] = { - 69, 67, 74, 138, 133, 120, 77, 122, //ECJèà¶M + 69, 67, 74, 138, 133, 120, 77, 122, 121, 68, 65, 63, 73, 80, 83, 82, 156, 45, 58, 79, 49, 86, 78, 84, 71, 81, 64, 66, 135, 34, 136, 91 }; -const byte tab30De[32] = { - 0x49, 0x4D, 0x21, 0x42, 0x4C, 0x70, 0x41, 0x52, //ECJèà¶M - 0x57, 0x4E, 0x48, 0x3F, 0x46, 0x50, 0x55, 0x4B, - 0x5A, 0x4A, 0x54, 0x31, 0x4F, 0x56, 0x79, 0x3A, - 0x6A, 0x5B, 0x5D, 0x40, 0x22, 0x2F, 0x30, 0x35 -}; - const byte tab31Fr[32]= { 93, 47, 48, 53, 50, 70, 124, 75, 72, 147, 140, 150, 151, 57, 56, 51, @@ -157,6 +142,21 @@ const byte tab31Fr[32]= { 119, 0, 0, 0, 0, 0, 0, 0 }; +const byte tabdrDe[32] = { + 0x20, 0x65, 0x6E, 0x69, 0x73, 0x72, 0x74, + 0x68, 0x61, 0x75, 0x0D, 0x63, 0x6C, 0x64, + 0x6D, 0x6F, 0x67, 0x2E, 0x62, 0x66, 0x53, + 0x2C, 0x77, 0x45, 0x7A, 0x6B, 0x44, 0x76, + 0x9C, 0x47, 0x1E, 0x1F +}; + +const byte tab30De[32] = { + 0x49, 0x4D, 0x21, 0x42, 0x4C, 0x70, 0x41, 0x52, + 0x57, 0x4E, 0x48, 0x3F, 0x46, 0x50, 0x55, 0x4B, + 0x5A, 0x4A, 0x54, 0x31, 0x4F, 0x56, 0x79, 0x3A, + 0x6A, 0x5B, 0x5D, 0x40, 0x22, 0x2F, 0x30, 0x35 +}; + const byte tab31De[32]= { 0x78, 0x2D, 0x32, 0x82, 0x43, 0x39, 0x33, 0x38, 0x7C, 0x27, 0x37, 0x3B, 0x25, 0x28, 0x29, 0x36, -- cgit v1.2.3 From d089658fb84f67652e9569bc03c76bcc65e7b881 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 4 Jul 2013 12:06:22 -0400 Subject: CREATE_PROJECT: Fix compilation for Visual Studio now the built-in theme is more than 64kb --- devtools/create_project/msbuild.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp index dd9917e4ee..6af9323fcd 100644 --- a/devtools/create_project/msbuild.cpp +++ b/devtools/create_project/msbuild.cpp @@ -384,7 +384,7 @@ void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, b if (isRelease) { properties << "\t\t\ttrue\n" "\t\t\ttrue\n" - "\t\t\tWIN32;RELEASE_BUILD;%(PreprocessorDefinitions)\n" + "\t\t\tWIN32;DISABLE_GUI_BUILTIN_THEME;RELEASE_BUILD;%(PreprocessorDefinitions)\n" "\t\t\ttrue\n" "\t\t\tfalse\n" "\t\t\t\n" @@ -396,7 +396,7 @@ void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, b "\t\t\ttrue\n"; } else { properties << "\t\t\tDisabled\n" - "\t\t\tWIN32;%(PreprocessorDefinitions)\n" + "\t\t\tWIN32;DISABLE_GUI_BUILTIN_THEME;%(PreprocessorDefinitions)\n" "\t\t\ttrue\n" "\t\t\tEnableFastChecks\n" "\t\t\tMultiThreadedDebug\n" -- cgit v1.2.3 From 7c23eb7c44ee41ddb466d096c4863701004f5fae Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 4 Jul 2013 23:25:26 +0200 Subject: MORTEVIELLE: Add German translation in the DAT file --- devtools/create_mortdat/create_mortdat.h | 3 +- devtools/create_mortdat/gametext.h | 1170 +++++++++++++++--------------- 2 files changed, 587 insertions(+), 586 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.h b/devtools/create_mortdat/create_mortdat.h index 0aa6b529df..908cb61951 100644 --- a/devtools/create_mortdat/create_mortdat.h +++ b/devtools/create_mortdat/create_mortdat.h @@ -33,7 +33,8 @@ enum AccessMode { enum DataType { kStaticStrings = 0, - kGameStrings = 1 + kGameStrings = 1, + kEncryptionArrays = 2 }; #define MORT_DAT "mort.dat" diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index ebaa422f2c..6e43258e88 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -1204,591 +1204,591 @@ const char *gameDataFr[] = { }; const char *gameDataDe[] = { - "TBT - Calm within the storm$", - "TBT - Discussed in colours$", - "TBT - Your mauve!$", - "TBT - Be kind enough to leave the room...$", - "TBT - If you're NOT overdrawn...$", - "TBT - If you're feeling blue...$", - "TBT - Read what's on the walls?$", - "TBT - Water sports$", - "TBT - Room for envy?$", - "TBT - A glance at the forbidden$", - "TBT - Smell of a woodfire and tobacco$", - "TBT - Tobacco and old books$", - "TBT - Onions, cinnamon and spirits$", - "TBT - A place seldom visited$", - "TBT - Humidity and decay$", - "TBT - Sorry, no ""door to door""$", - "TBT - Rotting corpse: deady cryptomania$", - "TBT - And what's more, there are disused traps$", - "TBT - It's already open$", - "TBT - Danger: avalanches$", - "TBT - Proper Charlie's place?$", - "TBT - An imposing building$", - "TBT - The other side of the mystery$", - "TBT - Strange horoscope$", - "TBT - Look out... but she wishes well?$", - "TBT - An oak door$", - "TBT - A photograph$", - "TBT - The coat of arms$", - "TBT - $", - "TBT - Max, the servant, welcomes you and shows you to your room$", - "TBT - Mortville 6/2/51@ My dear Jerome@Regarding my telegram, I must tell you the reason for my wor-@ries. A year ago, Murielle, my lady companion, disappeared. The de@part may have had something to do@with the financial success of themanor, or... A silence hard to un@derstand for my son Guy. Not ha@ving been able to see the light of day over this affair, I count @on you to sort things out. If my state of health doesn't improve, @take the decisions that you feel @are apropriate.@ Kind regards, Julia DEFRANCK$", - "TBT - Later, Guy will inform you of Leo's suicide after a@heavy bet at the races$", - "TBT - F3: AGAIN F8: STOP$", - "TBT - The master of the premises$", - "TBT - The future heir$", - "TBT - JULIA's son$", - "TBT - A pretty picture$", - "TBT - Superman!$", - "TBT - Ida's husband$", - "TBT - Interesting remarks?$", - "TBT - Service included!$", - "TBT - Nothing underneath$", - "TBT - You could hear a pin drop$", - "TBT - Half an hour passes: nothing! Wait any longer?$", - "TBT - Admire! Contemplate!$", - "TBT - No! Nothing!$", - "TBT - Impossible$", - "TBT - That stains!$", - "TBT - A treatise on the history of the area$", - "TBT - A few coins...$", - "TBT - First commandment...$", - "TBT - Pleasing to the nostrils!$", - "TBT - Spades, Hearts...$", - "TBT - Just a spoonful of sugar...$", - "TBT - A romantic novel$", - "TBT - Worth more than a penny, (whistle)$", - "TBT - Just needs a little patience$", - "TBT - Watch the sharp bends$", - "TBT - Deep and dark$", - "TBT - Normal sensations$", - "TBT - Sniff!$", - "TBT - Not discreet! Be content to watch!$", - "TBT - Bless you! Dusty!$", - "TBT - The canvas is signed, the wallpaper is not!$", - "TBT - Nothing, Unlucky!$", - "TBT - Be more discreet!$", - "TBT - The shutters are closed$", - "TBT - Snow! And more snow!$", - "TBT - Brilliant! The work of a master!$", - "TBT - No doubt at all! A genuine fake!$", - "TBT - Hmm! A cheap reproduction!$", - "TBT - A rare and valuable piece$", - "TBT - Nothing special$", - "TBT - Linen, personal belongings...$", - "TBT - Not just anywhere!$", - "TBT - It's not time!$", - "TBT - One doesn't speak with ones mouth full! So once the meal is over...$", - "TBT - Someone comes in, messes about then goes out again$", - "TBT - Someone's approaching your hiding-place$", - "TBT - Someone surprises you!$", - "TBT - Impossible! You're too loaded!$", - "TBT - Try again!$", - "TBT - Still puzzled!?$", - "TBT - You leave Mortville.In Paris a message awaits you...$", - "TBT - You hurt yourself$", - "TBT - Nothing more here$", - "TBT - The sound seems normal$", - "TBT - It doesn't move$", - "TBT - You are answered$", - "TBT - Not the right moment!$", - "TBT - The same matter, from another angle!$", - "TBT - The reflection is tarnished, but the frame is gold!$", - "TBT - Bric-a-brac$", - "TBT - Facing failure!$", - "TBT - Smells like something you'd rather not see!$", - "TBT - Cleaning products$", - "TBT - Got an itch?$", - "TBT - It's stuck, frozen. Brrr!$", - "TBT - All the locks are jammed!$", - "TBT - Papers$", - "TBT - No! Father christmas hasn't got himself stuck!$", - "TBT - It leads onto a corridor$", - "TBT - China, silverware...$", - "TBT - No! It's not Julia's remains!$", - "TBT - An old engraving$", - "TBT - You find a deep diamond-shaped opening$", - "TBT - The wall slides open! A passage! Do you follow it?$", - "TBT - The passageway closes$", - "TBT - A secret drawer: a notebook! Do you read it?$", - "TBT - The drawer shuts$", - "TBT - Nothing! Flesh and blood stuck to the stone$", - "TBT - Certain details lead you to believe death was not immediate!$", - "TBT - A rotten affair!$", - "TBT - Did she cling to dear life with just one finger?$", - "TBT - Has the treasure packed its trunk?$", - "TBT - A slot the size of a coin$", - "TBT - Part of the stone wall pivots.A crypt! Do you enter?$", - "TBT - The ring turns, the wall closes$", - "TBT - A stone column behind the altar$", - "TBT - There is a noise!$", - "TBT - Occupied!$", - "TBT - Take another chance?$", - "TBT - Too deep!$", - "TBT - The cellar wall pivots$", - "TBT - Nothing$", - "TBT - The one and only!$", - "TBT - The object slides to the bottom$", - "TBT - You have nothing in hand$", - "TBT - It is not open$", - "TBT - There is already something$", - "TBT - The door is locked$", - "TBT - No reply$", - "TBT - A solid wooden ball$", - "TBT - There's no more space$", - "TBT - A wooden ball pierced through the side$", - "TBT - ? ?$", - "TBT - Your move$", - "TBT - OK !$", - "TBT - Suddenly Max arrives with your suitcase: \"Thank you for your @visit!\".Mister discreet \"private eye\" (in need of a private optici@an!). Thoroughly demoralised, you@leave the manor. You are useless!$", - "TBT - Leo interrupts: \"The storm has died down,I am going into town in@1 hour. Get ready\". You have lost@time...but not your life$", - "TBT - Congestion, the deadly flu... You@are stuck here! Your whole case@sinks slowly beneath the water$", - "TBT - The water is rising fast,freezing your last illusions. Before you@have time to react...you are dead$", - "TBT - As soon as you reach the bottom of the well, a hand cuts the rope@Farewell sweet life!$", - "TBT - The storm covers your footprints.A wall of silence falls heavily@on your shoulders. Slowly you succumb to frosbite...$", - "TBT - You're not completely alone! A cold blade plunges into your backup@In future, be more care!$", - "TBT - You don't know what implication Leo may have had in Murielle's@death. Was she dead outright? In@any case,the family problems thatyou have uncovered in the course@of your enquiries would explain Leo's behaviour. You're not sure@that's the reason Julia had asked@for your help, but that's reason enough for you!Out of respect for@her, after taking certain precau-@tions you have a revealing talk with Leo.$", - "TBT - $", - "TBT - You don't have the keys to the manor. Your cries rest unheard@You're going to catch... your death!$", - "TBT - With a circular movement, the sword slices across you. Guts and@intestines spill out all over. A sorry state of affairs!$", - "TBT - Home, Sweet home !$", - "TBT - The mystery behind a closed door$", - "TBT - Bewitching charm of these old rooms$", - "TBT - An empty stomach$", - "TBT - Closer to heaven? Not so sure$", - "TBT - Afraid of the dark?$", - "TBT - Old rugs and a glint of gold$", - "TBT - Anguish!$", - "TBT - Safe? Perhaps not!$", - "TBT - A little ill at ease, eh!?$", - "TBT - Always further$", - "TBT - Your way of the cross!$", - "TBT - On the trail of...$", - "TBT - Watch what's hiding$", - "TBT - The road down to hell$", - "TBT - Feeling well? You look a little pale$", - "TBT - What lurks behind...?$", - "TBT - Close-up on:$", - "TBT - You notice, amongst other things$", - "TBT - And...$", - "TBT - That's all!$", - "TBT - A bit of reading$", - "TBT - The adventure awaits, you set off!$", - "TBT - Don't mess up YOUR next ADVENTURE!$", - "TBT - I don't understand$", - "TBT - There is an easier way$", - "TBT - No, not just now$", - "TBT - Too late$", - "TBT - $", - "TBT - Like a deep stony stare, a solitary eye that points towards the@stars; the artery that links hea-ven and hell. You must fathom@these depths keeping hold of that@which is, and will become. Monday, Tuesday, Wednesday, Sunday, from@Monday 1st to Sunday 1st,plunging from one day to the next your@\"IS\" or \"WILL BECOME\". Carrying your burden with love and light,@the smallest oversight will seal your fate.$", - "TBT - 10/1/51: We think we've solved the mystery of the manuscript and@located the crypt. Is it the idea@of success in what seems like a dream that disturbs me so? I feel@I have committed myself rather too much, as far as Leo is concer@ned... No! I should go on. @I should have put Guy in the pic-ture but for a week now, I've had@no news of him$", - "TBT - Take your prayers as you would to the holy place. From the pillar@of wisdom, bring the sun to his@knees. Thus will it show you the place to offer alms of another@kind and like young Arthur, open the way of darkness.White is your@colour, golden your hearth. So@advance with caution Orpheus and light your way unto the sad@virgin. Offer her the circle of the man with three faces. That he@may regain the world and turn with it to its original@inglory!$", - "TBT - The mountains are the fangs in a monstrous mouth opening on the@finity of a celestial orgy, grin-ding the stars as we grind our@teeth into dust. You will drop your chord of stone at your feet.@The laugh of silence at the@highest pitch, and in your right hand, the measure of genius. Thus@will you pass between the two crescents beyond the abyss of the@wall of silence. The key to the melody is within your grasp. It@suffices to find the note that clashes.$", - "TBT - 9/12 INTER. 518 3/13 EXPENS. 23@ 9/12 SALES 1203 7/12 CHEQUE 1598@ TOTAL 1721 TOTAL 1721$", - "TBT - 5/1/51@@ Luc, my love@ Guy knows about us. After an argument I told him everything! I@think only of you. Max keeps pes-tering me, but it's finished with @him. He should stick to his pots and pans! When can you and I be alone together? For you I would@get a divorce.@I love you.@ Eva$", - "TBT - Mortville, 10/2/51@@ Pat@ I recall you owe me 50000 frs that I lent you for your business@I need that money, can you repay me quickly?@ Guy$", - "TBT - Mortville, 15/2/51@ Dear Sir@ I am writing to you on the sub-ject of our business deal. I have@decided to go all the way in the certainty that my partner, Pat@DEFRANCK, has been forging the accounts. @In spite of$", - "TBT - A pipe$", - "TBT - A pen$", - "TBT - A lighter$", - "TBT - A retort$", - "TBT - A shaving brush$", - "TBT - A tin of paint$", - "TBT - A flute$", - "TBT - An expensive ring$", - "TBT - A reel of thread$", - "TBT - An old book$", - "TBT - A wallet$", - "TBT - A dagger$", - "TBT - A pistol$", - "TBT - A bible$", - "TBT - A candle$", - "TBT - A jewellery box$", - "TBT - An iron$", - "TBT - A photo$", - "TBT - A pocket watch$", - "TBT - A rope$", - "TBT - Keys$", - "TBT - A pearl necklace$", - "TBT - A bottle of perfume$", - "TBT - Binoculars$", - "TBT - Glasses$", - "TBT - A leather purse$", - "TBT - A tennis ball$", - "TBT - Ammunition$", - "TBT - A cut-throat razor$", - "TBT - A hairbrush$", - "TBT - A clothes brush$", - "TBT - A pack of cards$", - "TBT - A shoe horn$", - "TBT - A screwdriver$", - "TBT - A hammer$", - "TBT - Keys$", - "TBT - Keys$", - "TBT - An ashtray$", - "TBT - A paintbrush$", - "TBT - A rope$", - "TBT - A wooden object$", - "TBT - Sleeping pills$", - "TBT - A gold ring$", - "TBT - A jewellery box$", - "TBT - An alarm clock$", - "TBT - A coat of armour$", - "TBT - A candlestick$", - "TBT - A pair of gloves$", - "TBT - A engraved goblet$", - "TBT - A parchment$", - "TBT - A dagger$", - "TBT - A dossier$", - "TBT - A parchment$", - "TBT - A parchment$", - "TBT - A dossier$", - "TBT - A dossier$", - "TBT - A letter$", - "TBT - A novel$", - "TBT - A wooden rod$", - "TBT - An envelope$", - "TBT - A letter$", - "TBT - An envelope$", - "TBT - Julia$", - "TBT - Julia's death$", - "TBT - Julia's relationships$", - "TBT - A message from Julia$", - "TBT - Julia's inheritance$", - "TBT - Julia's final actions$", - "TBT - Julia's gifts$", - "TBT - Julia's bedroom$", - "TBT - The photo at Julia's home$", - "TBT - Julia and yourself...$", - "TBT - L‚o's occupations$", - "TBT - Pat's occupations$", - "TBT - Guy's occupations$", - "TBT - Bob's occupations$", - "TBT - Eva's occupations$", - "TBT - Luc's occupations$", - "TBT - Ida's occupations$", - "TBT - Max's occupations$", - "TBT - Your occupations$", - "TBT - L‚o's relationships$", - "TBT - Pat's relationships$", - "TBT - Guy's relationships$", - "TBT - Bob's relationships$", - "TBT - Eva's relationships$", - "TBT - Luc's relationships$", - "TBT - Ida's relationships$", - "TBT - Max's relationships$", - "TBT - Your relationships$", - "TBT - Murielle$", - "TBT - Murielle's relationships$", - "TBT - Murielle and yourself...$", - "TBT - Murielle's disappearance$", - "TBT - The wall of silence$", - "TBT - The manuscripts$", - "TBT - The coat of arms$", - "TBT - Engravings in the cellar$", - "TBT - The well$", - "TBT - The secret passages$", - "TBT - The chapel$", - "TBT - The paintings$", - "TBT - The photo of the attic$", - "TBT - The body in the crypt$", - "TBT - $", - "TBT - $", - "TBT - END OF THE CONVERSATION$", - "TBT - Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", - "TBT - C'est le massif montagneux que l'on aper‡oit devant le manoir$", - "TBT - Je n'en sais rien !$", - "TBT - Elle est morte d'une embolie pulmonaire$", - "TBT - Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", - "TBT - Madame DEFRANCK est morte d'un coup de froid$", - "TBT - Elle est morte d'une embolie pulmonaire$", - "TBT - Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", - "TBT - Ce sont toujours les meilleurs qui partent les premiers$", - "TBT - J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", - "TBT - C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", - "TBT - C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", - "TBT - Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir ...$", - "TBT - Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", - "TBT - C'est un homme dynamique qui a r‚ussi dans le parfum$", - "TBT - Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", - "TBT - J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", - "TBT - Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", - "TBT - Ce sont ses affaires ...$", - "TBT - Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", - "TBT - Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", - "TBT - Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", - "TBT - Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", - "TBT - Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", - "TBT - Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", - "TBT - Mais ! Vous n'avez pas encore d‚couvert son occupation principale ..?$", - "TBT - Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs . Elle est toujours trŠs bien habill‚e$", - "TBT - Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", - "TBT - Les bijoux ...$", - "TBT - Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", - "TBT - Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", - "TBT - Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", - "TBT - Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", - "TBT - Une femme comme il n'y en a plus : Elle s'interesse a tout !$", - "TBT - Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", - "TBT - Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", - "TBT - Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", - "TBT - Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", - "TBT - C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", - "TBT - Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", - "TBT - C'est un homme de caractŠre . Il faut savoir le prendre ..$", - "TBT - Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", - "TBT - Relations ? Relations amicales ? Relations financiŠres sans doute$", - "TBT - Moi je n'ai rien … lui reprocher$", - "TBT - C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", - "TBT - Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", - "TBT - A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", - "TBT - Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", - "TBT - Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", - "TBT - J'aime bien tout le monde, tant qu'on ne m'escroque pas$", - "TBT - Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", - "TBT - Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", - "TBT - Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", - "TBT - Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", - "TBT - C'est pour un rendez-vous ?$", - "TBT - Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", - "TBT - Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", - "TBT - La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", - "TBT - C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", - "TBT - Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", - "TBT - C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", - "TBT - Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", - "TBT - Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", - "TBT - C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", - "TBT - Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", - "TBT - C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", - "TBT - C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", - "TBT - Murielle a ‚t‚ la dame de compagnie de Julia$", - "TBT - Elle aussi, faisait des recherches ...$", - "TBT - C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", - "TBT - Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", - "TBT - Je crois que tout le monde l'aimait bien$", - "TBT - Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", - "TBT - A part L‚o, elle avait de trŠs bon rapport avec Max ...$", - "TBT - Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", - "TBT - A part sa famille, pas grand monde$", - "TBT - Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", - "TBT - Non rien !$", - "TBT - Non ... Pas que le sache$", - "TBT - J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", - "TBT - Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", - "TBT - Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", - "TBT - A part la lettre pour vous que j'ai post‚, rien de bien important !$", - "TBT - J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", - "TBT - Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", - "TBT - Son dernier pr‚sent m'a surpris$", - "TBT - Quel cadeau ?$", - "TBT - Un chandellier ...$", - "TBT - Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", - "TBT - Et bien oui ! Comme tout le monde, je crois$", - "TBT - Un poignard$", - "TBT - Je n'ai jamais ‚t‚ fouiller dans le grenier !$", - "TBT - Vous avez un don de double-vue ou un passe-partout$", - "TBT - Le portrait d'une jeune fille : C'est Murielle ...$", - "TBT - Vous savez, je la connaissais assez peu$", - "TBT - Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", - "TBT - C'est la seule femme vraiment interessante que j'ai rencontr‚$", - "TBT - Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", - "TBT - Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", - "TBT - Si la chambre est ferm‚e, demandez … L‚o$", - "TBT - J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", - "TBT - Vous savez ce que c'est : Des relations familiales$", - "TBT - Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", - "TBT - Je l'aimais autant qu'elle m'aimais, je crois$", - "TBT - De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", - "TBT - C'est sans doute la photo de Murielle avec le filleul de Julia$", - "TBT - Je ne me rappelle pas$", - "TBT - C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", - "TBT - Vous ˆtes bien curieux !... C'est sans valeur$", - "TBT - Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", - "TBT - Dommage que la devise soit manquante ...$", - "TBT - C'est trŠs beau ... Et trŠs vieux ...$", - "TBT - Tiens ! C'est un endroit que je n'ai jamais visit‚$", - "TBT - D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", - "TBT - Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", - "TBT - Profond et inqui‚tant : Le progrŠs a du bon$", - "TBT - Ca reste pour moi le plus grand des mystŠres$", - "TBT - Les derniers temps elle parlait d'un voyage . Et puis ...$", - "TBT - Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", - "TBT - De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", - "TBT - Quoi ?! Quel corps ? Quel crypte ?$", - "TBT - Si il y en a, je ne les ai jamais trouv‚ ...$", - "TBT - Bien s–r ! ... Et des fant“mes aussi ...$", - "TBT - C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", - "TBT - Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", - "TBT - Julia aimait beaucoup la peinture$", - "TBT - Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", - "TBT - Que faites-vous l… ?$", - "TBT - Je suis s–r que vous cherchez quelque chose ici$", - "TBT - Je vous ‚coute$", - "TBT - Que d‚sirez-vous ?$", - "TBT - Oui ?$", - "TBT - Je suis … vous ...$", - "TBT - C'est pourquoi ?$", - "TBT - Allez-y$", - "TBT - C'est … quel sujet ?$", - "TBT - Max : … votre service, monsieur$", - "TBT - De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", - "TBT - Vous ˆtes trop curieux !$", - "TBT - J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", - "TBT - En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", - "TBT - F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", - "TBT - Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", - "TBT - to the office$", - "TBT - to the kitchen$", - "TBT - to the cellar$", - "TBT - to the landing$", - "TBT - outside$", - "TBT - to the dining room$", - "TBT - inside the manor$", - "TBT - front of the manor$", - "TBT - to the chapel$", - "TBT - to the well$", - "TBT - north$", - "TBT - behind the manor$", - "TBT - south$", - "TBT - east$", - "TBT - west$", - "TBT - towards the manor$", - "TBT - further$", - "TBT - in the water$", - "TBT - out of the well$", - "TBT - in the well$", - "TBT - choice on screen$", - "TBT - In the MYSTERY series...$", - "TBT - MORTVILLE MANOR$", - "TBT - $", - "TBT - From an original idea of...$", - "TBT - Bernard GRELAUD and Bruno GOURIER$", - "TBT - $", - "TBT - Directed by: KYILKHOR CREATION and LANGLOIS$", - "TBT - $", - "TBT - With the cooperation of...$", - "TBT - B‚atrice et Jean_Luc LANGLOIS$", - "TBT - for the music and the voices,$", - "TBT - Bernard GRELAUD for the graphic conception,$", - "TBT - MARIA-DOLORES for the graphic direction,$", - "TBT - Bruno GOURIER for the technical direction,$", - "TBT - Mick ANDON for the translation. $", - "TBT - $", - "TBT - Publisher: KYILKHOR and B&JL LANGLOIS $", - "TBT - COPYRIGHT 1987: KYILKHOR and B&JL LANGLOIS$", - "TBT - $", - "TBT - YOUR MOVE$", - "TBT - attach$", - "TBT - wait$", - "TBT - force$", - "TBT - sleep$", - "TBT - listen$", - "TBT - enter$", - "TBT - close$", - "TBT - search$", - "TBT - knock$", - "TBT - scratch$", - "TBT - read$", - "TBT - eat$", - "TBT - place$", - "TBT - open$", - "TBT - take$", - "TBT - look$", - "TBT - smell$", - "TBT - sound$", - "TBT - leave$", - "TBT - lift$", - "TBT - turn$", - "TBT - hide yourself$", - "TBT - search$", - "TBT - read$", - "TBT - put$", - "TBT - look$", - "TBT - Leo$", - "TBT - Pat$", - "TBT - Guy$", - "TBT - Eva$", - "TBT - Bob$", - "TBT - Luc$", - "TBT - Ida$", - "TBT - Max$", - "TBT - JULIA...$", - "TBT - - Did she commit suicide?$", - "TBT - - Was she murdered?$", - "TBT - - Did she die by accident?$", - "TBT - - Did she die of natural causes?$", - "TBT - Where did the money used@for the restoration of the manor come from?$", - "TBT - - Blackmail$", - "TBT - - Honest work$", - "TBT - - Inheritance$", - "TBT - - Races$", - "TBT - - Rents$", - "TBT - - Hold-up$", - "TBT - - Other$", - "TBT - What is Leo's hobby?$", - "TBT - - Historical research$", - "TBT - - Politics$", - "TBT - - Painting$", - "TBT - - Drugs$", - "TBT - - Occult sciences$", - "TBT - - Management of a sect$", - "TBT - Julia left several clues that are@represented in one place. Which?$", - "TBT - - Chapel$", - "TBT - - Outside$", - "TBT - - Cellar$", - "TBT - - Attic$", - "TBT - - Kitchen$", - "TBT - - Dining room$", - "TBT - - Julia's room$", - "TBT - - Leo's room$", - "TBT - - Pat's room$", - "TBT - - Bob's room$", - "TBT - - Max's room$", - "TBT - - Luc/Ida's room$", - "TBT - - Guy/Eva's room$", - "TBT - The main clue that leads you@to the underground door is:$", - "TBT - - A dagger$", - "TBT - - A ring$", - "TBT - - A book$", - "TBT - - A parchment$", - "TBT - - A letter$", - "TBT - - A pendulum$", - "TBT - How many parchments were there in the manor?$", - "TBT - - 0$", - "TBT - - 1$", - "TBT - - 2$", - "TBT - - 3$", - "TBT - - 4$", - "TBT - - 5$", - "TBT - How many persons are involved in@this story?@(Julia included, but not yourself)$", - "TBT - - 9$", - "TBT - - 10$", - "TBT - - 11$", - "TBT - What was the first name@of the unknown character?$", - "TBT - - Mireille$", - "TBT - - Fran‡oise$", - "TBT - - Maguy$", - "TBT - - Emilie$", - "TBT - - Murielle$", - "TBT - - Sophie$", - "TBT - Wo did Murielle have an affair with?$", - "TBT - - Bob$", - "TBT - - Luc$", - "TBT - - Guy$", - "TBT - - Leo$", - "TBT - - Max$", - "TBT - Murielle shared an occupation@with one other person. Who?$", - "TBT - [1][You realize that certain elements of|this investigation remain a mystery for you.|Therefore, you decide first to learn|more before undertaking new risks..][ok]$", - "TBT - [3][ | insert disk 1 | in drive A ][ok]$", - "TBT - [1][ | Disk error | All stop... ][ok]$", - "TBT - [1][ | You should have noticed |00% of the clues ][ok]$", - "TBT - [3][ | insert disk 2 | in drive A ][ok]$", - "TBT - [1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", - "TBT - MASTER .$", - "TBT - rorL$", + "Ruhe vor dem Sturm$", + "Geschmacklose Farben$", + "Lila, der letzte Versuch$", + "Diesen Ort bitte sauberhalten...$", + "Beaengstigendes schwarzes Loch$", + "Der blaue Salon$", + "Das blutrote Zimmer$", + "Wassersport$", + "Der gruene Star$", + "Ein Auge aufs Verbotene werfen$", + "Geruch von Kaminfeuer und Tabak$", + "Tabak und alte Buecher$", + "Zwiebeln, Zimt und Spirituosen$", + "Ein wenig besuchter Ort$", + "Feuchtigkeit und Moder$", + "Hausieren verboten!$", + "Ein verwester Koerper: toedliche Kryptomanie!$", + "Da wird einem angst$", + "Es ist schon offen$", + "Achtung: Lawinen$", + "Ein Hauch von \"Heiligkeit\"$", + "Eine grosses eindrucksvolles Gemaeuer...$", + "Die Kehrseite des Geheimnisses!$", + "Ein merkwuerdiges Horoskop!$", + "Der Krug geht so lange...$", + "Eine Eichentuer$", + "Ein Foto$", + "Die Wappen$", + "$", + "Max, der Diener, empfaengt Sie und wird Sie dann in Ihr Zimmer begleiten$", + " Morteville 16/2/51@ Mein lieber Jer“me@Im Anschluss an mein Telegramm teile ich Ihnen die Gruende meiner Unruhe mit: vor 1 Jahr verschwand meine Gesellschafterin Murielle. Eventuell hat das Verschwinden etwas mit dem finanziel len Umschwung auf dem Landsitz zu tun, oder... Eine Stille, die schwer zu verstehen ist fuer mei-nen Sohn Guy. Da ich bis heute nichts bezueglich dieser Sache unternehmen konnte, zaehle ich auf Sie, um die Affaere zu regeln. Falls sich mein Gesundheitszustand nicht bessert, treffen Sie bitte die Entscheidungen, die Sie fuer richtig halten. @ In Freundschaft. JULIA DEFRANCK$", + "Spaeter erzaehlt Ihnen Guy von Leo's Selbstmord nach einer verrueckten Wette beim Rennen!$", + "F3: WIEDERHOLUNG@F8: STOP$", + "Der Hausherr$", + "Der Zukuenftige Erbe$", + "Julias Sohn$", + "Ein niedliches Maedchen!$", + "Superman!$", + "Der Mann von Ida$", + "Interessante Aeusserungen?$", + "Service inbegriffen!$", + "Nichts darunter!$", + "Kein Mucks...$", + "Eine halbe Stunde spaeter: nichts! Warten Sie immer noch?$", + "Bewundern Sie! Denken Sie nach!$", + "Nein! Nichts!$", + "Unmoeglich$", + "Das macht Flecken!$", + "Eine Abhandlung ueber die Geschichte der Gegend$", + "Einige Muenzen$", + "Erstes Gebot...$", + "Das riecht gut!$", + "Pik, Herz...$", + "Es mangelt nicht an Pillen!$", + "Ein Liebesroman$", + "Pusten heisst noch nicht spielen$", + "Kein Erfolg!$", + "Vorsicht vor Ueberraschungen!$", + "Dunkel und tief...$", + "Normale Gefuehle$", + "Sniff!$", + "Unverschaemt! Begnuegen Sie sich mit anschauen!$", + "Gesundheit! St... Staub$", + "Das Bild ist unterzeichnet... aber nicht die Tapeten$", + "Kein Glueck, Nichts!$", + "Seien Sie diskreter!$", + "Die Vorhaenge sind geschlossen$", + "Schnee! Und noch mehr Schnee!$", + "Genial: ein Bild vom Meister!$", + "Kein Zweifel, das ist eine Faelschung!$", + "Hum! Sie stutzen - Antikes oder Schund?$", + "Ein selten wertvolles Stueck!$", + "Nichts Bemerkenswertes$", + "Waesche, persoenliche Objekte...$", + "Nicht irgendwo!$", + "Das ist nicht der Zeitpunkt!$", + "Man spricht nicht mit vollem Mund! Nenn erst einmal das essen beendet ist$", + "Jemand kommt rein, beeilt sich und geht wieder raus$", + "Man naehert sich Ihrem Versteck!$", + "Man ueberrascht Sie!$", + "Unmoeglich! Sie sind ueberlastet!$", + "Versuchen Sie es aufs neue$", + "Sie sind perplex!?$", + "Sie verlassen Morteville. In Paris erwartet Sie eine Nachricht...$", + "Sie tun sich weh!$", + "Nichts weiteres mehr hier$", + "Der Ton erscheint normal$", + "Es bewegt sich nicht$", + "Man antwortet Ihnen$", + "Nicht der Augenblick!$", + "Gleiches Material, andere Seite!$", + "Der Widerschein ist fleckig, aber der Rahmen ist aus Gold$", + "Nippsachen, wertlose Dinge...$", + "Sie erleiden einen Misserfolg!$", + "Hier stinkt es... Besser nicht anschauen!$", + "Haushaltsprodukte$", + "Da juckt Ihnen das Fell?$", + "Das ist esklemmt, zugefroren! Brrrr...$", + "Die Fensterrahmen sind blockiert!$", + "Papiere...$", + "Nein! Der Weihnachtsmann hat keine Schwierigkeiten!$", + "Da geht es auf einen Flur$", + "Geschirr, Silber...$", + "Nein! Das sind nicht die Reste von Julia!$", + "Eine alte Gravur$", + "Sie entdecken eine tiefe rhombenfoermige Oeffnung$", + "Die Mauer gleitet zur Seite! Eine Passage! Benutzen Sie sie?$", + "Der Durchgang schliesst sich$", + "Eine Geheimschublade. Ein Buechlein... Lesen Sie es?$", + "Die Schublade schliesst sich wieder$", + "Nichts! Blut und Haut kleben am Stein!$", + "Die Details lassen Sie darauf schliessen, dass der Tod nicht unmitte lbar eingetreten ist!$", + "Verdorbene Vorhaben?$", + "Hing ihr Leben an einem \"Finger\"?$", + "Ein Schatz sei verschwunden?$", + "Eine Ritze in Groesse einer Muenze!$", + "Einige Steine bewegen sich... Eine Krypta! Gehen Siehinein?$", + "Der Ring dreht sich, die Mauer schliesst sich wieder$", + "Eine Steinsaeule hinter dem Altar$", + "Es war laut...$", + "Besetzt!$", + "Versuchen Sie noch einmal Ihr Glueck?$", + "Zu tief!$", + "Die Mauer am Ende des Ganges dreht sich$", + "Nothing!$", + "Der einzigue!$", + "Das Objekt faellt hinunter...$", + "Sie haben nichts in den Haenden$", + "Es ist nicht offen$", + "Das ist schon etwas$", + "Die Tuer ist zu$", + "Keine Antwort$", + "Eine volle Holzkugel$", + "Es ist kein Platz mehr$", + "Eine, in der Mitte durchbohrte, Holzkugel$", + "? ?$", + "Sie sind dran!$", + "OK!$", + "Ploetzlich erscheint Max mit Ihrem Koffer : \"Danke fuer Ihren Besuch\" Privatdetektiv mit gutem Gespuer und zweifellos diskret. Demoralisiert verlassen Sie den Landsitz. Sie sind UNBEDEUTEND!$", + "Leo unterbricht Sie:\"Das Unwetterhat sich beruhigt. In 1 Stunde gehe ich in die Stadt. Halten Siesich bereit.\" Sie haben Zeit verloren...aber noch nicht das Leben$", + "Hochrotes Gesicht, fatale Grippe.Sie bleiben da. Ihre Nachforschun gen fallen ins Wasser$", + "Das Wasser steigt sehr schnell und daempft Ihre letzten Illusionen ... Bevor Sie Zeit haben, zu reagiren, sind Sie tot!$", + "Sie sind kaum auf dem Grund des Brunnens, als eine Hand das Seil durchschneidet. Leben, adieu!$", + "Der Sturm verwischt Ihre Spuren. Eine Mauer des Schweigens huellt Sie ein. Langsam sterben Sie den Erfrierungstod!$", + "Sie sind nicht so allein wie Sie denken. Eine kalte Klinge bohrt sich in Ihren Ruecken. Seien Sie in Zukunft vorsichtiger!$", + "Sie ignorieren die Schuld von Leoam Tode Murielles. War sie sofort tot? Auf jeden Fall gerechtfertigen die familiaeren Probleme, die waehrend Ihrer Untersuchung aufgedeckt wurden, die Haltung Leos. Sie sind nicht sicher, ob Julia Sie deswegen angerufen hat, aber es genuegt Ihnen. Aus Respekt fuer sie und nach einigen Vorsichtsmassnahmen, fuehren Sie ein aufschlussreiches Gespraech mit Leo.$", + "$", + "Sie haben keinen Schluessel fuer den Landsitz. Ihre Rufe bleiben ohne Antwort. Sie werden sterben.$", + "Mit einem fuerchterlichen Rundschlag spaltet Sie das Schwert entzwei - das Innere kehrt sich nach aussen.$", + "Home, Sweet home!$", + "Geheimnis einer geschlossenen Tuer$", + "Charme verzaubert die alten Zimmer$", + "Leerer Magen$", + "Naeher 'gen Himmel? Nicht sicher!$", + "Angst vorm Dunkeln?$", + "Alte Teppiche und Goldschimmer$", + "Angst!$", + "Gerettet? Nicht sicher!$", + "Man fuehlt sich unwohl, was!$", + "Immer noch weiter!$", + "Ihr Kreuzweg!$", + "Bei der Entdeckung von...$", + "Achtung, auf das was sich versteckt...$", + "Abstieg in die Hoelle!$", + "Na fuehlen Sie sich gut? Sie sehen etwas@ blass aus!$", + "Vor dem Eintreten!$", + "Zoom:$", + "Unter anderem bemerken Sie...$", + "Und noch mal...$", + "Es ist zu Ende!$", + "Ein wenig Lektuere$", + "Das Abenteuer wartet auf Sie: also los!$", + "Verpassen Sie nicht IHR naechstes ABENTEUER!$", + "Ich verstehe nicht$", + "Es gibt Einfacheres$", + "Nein! Nicht Diesmal$", + "Zu spaet$", + "$", + "Wie ein tiefer verschleierter Blick, sein lebloses Auge auf die Sterne gerichtet, ist er wie der Schlund, der Himmel und Hoelle verbindet. Du musst in diese Tiefe vordringen, so wie eine Ratte in die Erde. Montag, Dienstag, Mittwoch, Sonntag, vom 1. Montag bis zum 1. Sonntag -so wird jeder Tag durch das SEIN oder WERDEN bestimmt. Vebersieh nichts, denn sonst ist Dein Schicksal besiegelt.$", + "10/1/50: Wir haben das Mysterium des Manuskriptes geloest und die Krypta lokalisiert. Ist es der Gedanke, in diesem Traum mein Ziel zu erreichen, der mir so angst macht? Ich bedauere, dass ich mich gegenueber Leo so engagiert habe. Nein, ich muss weitermachen Ich haette Guy informieren muessen, aber ich habe seit einer Woche nichts mehr von ihm gehoert$", + "Trag deine Bitte an den heiligen Ort - so wirst Du mehr erfahren! Der Pfeiler der Weisheit und die Sonne an den Knien werden Dir die Stelle zeigen , die Deiner Seele den Weg in eine neue Welt oeffnen Vorwaerts Orpheus, ohne Angst vordem Ungewissen: Weiss ist Deine Farbe, Gold ist Dein Zuhause. Be-leuchte Deinen Weg, bis hin zur traurigen Jungfrau. Gib ihr den Kreis des Mannes mit den drei Gesichtern, auf dass er die Welt wieder erreicht und sich dreht in seinem urspruenglichen Reichtum$", + "Die Berge sind die Zaehne eines gigantischen unendlichen Schlundes, einer himmlischen Orgie, die Sterne verschlingend, so wie uns die Dunkelheit verschlingt. Du laesst das Seil der Steine zu Dei nen Fuessen fallen. Das Lachen der Stille und in Deiner rechten Hand das Werk eines Meisters. Anschliessend wirst Du zwischen den beiden Monden hindurchgehen; jenseits des Abgrundes der Mauer des Schweigens wirst Du den Schluessel zur Melodie findenes fehlt nur noch die passende Note...$", + " DEZEMBER@ 9 ABZUG 518 13 ZINSEN 23@19 VEBERWE. 1203 17 GUTHAB 1598@ TOTAL 1721 TOTAL 1721@$", + " 5/01/51@ Luc, mein Liebling@ Guy weiss von unserer Beziehung.Nach einem Streit habe ich ihm alles gesagt. Ich liebe nur Dich. Max sitzt mir dauernd auf dem Hals, aber ich habe definitiv mitihm gebrochen. Soll er doch bei seinen Toepfen bleiben. Wann koennen wir uns allein sehen? Wegen dir wuerde ich mich scheiden lassen@ Deine Eva$", + " Morteville, 10/2/51@ Pat@ Ich erinnere Dich daran, dass Du mir noch FF 5000,- schuldest, die ich Dir fuer Dein Geschaeft geliehen habe. Ich brauche sie jetzt. Kannst Du sie mir bitte moeglichst schnell wiedergeben?@ Guy$", + " Morteville, 15/2/51@ Lieber Herr@ Ich schreibe Ihnen unser Geschaeft betreffend. Ich bin entschlossen, bis zum Aeusserstenzu gehen, da ich mir sicher bin, dass mein Teilhaber, Pat Defranck ein Rechnungsbuch gefaelscht hat.$", + "Eine Pfeife$", + "Ein Fuellfederhalter$", + "Ein Gasfeuerzeug$", + "Eine Retorte$", + "Ein Rasierpinsel$", + "Ein Farbeimer$", + "Eine Floete$", + "Ein wertvoller Ring$", + "Eine Garnrolle$", + "Ein altes Buch$", + "Ein Portemonnaie$", + "Ein Dolch$", + "Ein Revolver$", + "Eine Bibel$", + "Eine Kerze$", + "Ein Schmuckkoffer$", + "Ein Buegeleisen$", + "Ein Foto$", + "Eine Taschenuhr$", + "Ein Seil$", + "Schluessel$", + "Ein Perlenkollier$", + "Ein Parfumflakon$", + "Ein Fernglas$", + "Eine Brille$", + "Ein Ledergeldbeutel$", + "Ein Tennisball$", + "Munition$", + "Ein Nassrasierer$", + "Eine Haarbuerste$", + "Eine Kleiderbuerste$", + "Ein Kartenspiel$", + "Ein Schuhanzieher$", + "Ein Schraubenzieher$", + "Ein Hammer$", + "Schluessel$", + "Schluessel$", + "Ein Aschenbecher$", + "Ein Pinsel$", + "Ein Seil$", + "Ein Gegenstand aus Holz$", + "Schlafmittel$", + "Ein goldener Ring$", + "Ein Schmuckkoffer$", + "Ein Wecker$", + "Ein Panzerhemd$", + "Ein Kerzenhalter$", + "Ein Paar Handschuhe$", + "Ein Ziselierter Becher$", + "Ein Pergament$", + "Ein Dolch$", + "Ein Dossier$", + "Ein Pergament$", + "Ein Pergament$", + "Ein Dossier$", + "Ein Dossier$", + "Ein Brief$", + "Ein Roman$", + "Ein Holzstock$", + "Ein Umschlag$", + "Ein Brief$", + "Ein Umschlag$", + "Julia$", + "Julias Tod$", + "Julias Beziehungen$", + "eine Nachricht von Julia$", + "Julias Erbschaft$", + "letzte Handlungen Julias$", + "Geschenk von Julia$", + "Julias Zimmer$", + "die Fotos bei Julia$", + "Julia und Sie...$", + "die Geschaefte von Leo$", + "die Geschaefte von Pat$", + "die Geschaefte von Guy$", + "die Geschaefte von Bob$", + "die Geschaefte von Eva$", + "die Geschaefte von Luc$", + "die Geschaefte von Ida$", + "die Geschaefte von Max$", + "Ihre Geschaefte$", + "Leos Beziehungen$", + "Pats Beziehungen$", + "Guys Beziehungen$", + "Bobs Beziehungen$", + "Evas Beziehungen$", + "Lucs Beziehungen$", + "Idas Beziehungen$", + "Maxs Beziehungen$", + "Ihre Beziehungen$", + "Murielle$", + "Murielles Beziehungen$", + "Murielle und Sie...$", + "Murielles Vershwinden$", + "Die Mauer des Schweigens$", + "Die manuskripte$", + "Das Wappen$", + "Die Inschriften im Keller$", + "Der Brunnen$", + "Die Geheimgaenge$", + "Die Kapelle$", + "Die Bilder$", + "Die Fotos vom Dachboden$", + "Koerper in der Krypta$", + "$", + "$", + "ENDE DER UNTERHALTUNG$", + "Die Alten nannten die Bergkette am Fusse des Landsitzes so.$", + "Das ist das Bergmassiv, das man vor dem Landsitz sieht.$", + "Ich weiss nichts davon.$", + "Sie ist an einer Lungenembolie gestorben.$", + "Meine Mutter ist ploetzlich gestorben, obwohl es schien, dass sich ihr Zustand verbesserte.$", + "Frau Defranck ist gestorben.$", + "Sie ist an einer Lungenembolie gestorben.$", + "Verzeihen Sie mir, aber ich ziehe es vor, im Moment Schweigen zu bewahren.$", + "Es sind immer die Guten, die als erste gehen muessen.$", + "Ich habe meine Mutter sehr geliebt; ich bedauere, dass sie auf dem Gut der Defrancks gestorben ist.$", + "Dies ist eine Gegend, die eine sehr bewegte Vergangenheit hat und es gibt genug Dinge, um die ich mich kuemmern kann und ausserdem liebe ich Pferde.$", + "Er interessiert sich sehr fuer Geschichte und er ist ein erfolgloser Spieler. Uebrigens hat er vor einem Jahr eine bedeutende Summe gewonnen.$", + "Er hat schon viel zu tun mit der Buchhaltung und der Verwaltung des Gutes.$", + "Ich bin Direktor einer Parfumfirma. Aber hier... Erholung.$", + "Ein dymamischer Mann, der in der Parfumbranche viel erreicht hat.$", + "Das ist ein uebler Emporkoemmling. Die Parfums muessen seinen gesunden Menschenverstand eingeschlaefert haben. Hier verbringt er seine Abende in seinem Zimmer.$", + "Vorher galt meine Hauptsorge der Gesundheit meiner Mutter. Jetzt finde ich an nichts mehr Gefallen.$", + "Er haette gut daran getan, sich ein bisschen mehr um mich zu kuemmern und etwas weniger um seine Mutter.$", + "Das sind seine Angelegenheiten.$", + "Er hat nicht viel Glueck im Moment, obwohl seine Geschaefte zufriedenstellend sind.$", + "Ich arbeite mit Pat. Es geht nicht besonders gut im Moment.$", + "Ah ja! Hat er Beschaeftigungen? Er taete besser daran, sich ernsthaft zu beschaeftigen.$", + "Er und Pat sind Geschaeftspartner. Ich glaube, es laeuft gar nicht mal schlecht.$", + "Ich kuemmere mich um mich und das ist schon genug. Und Sie?$", + "Oh, ich vetraue ihr. Sie versteht, sich zu beschaeftigen.$", + "Aber haben Sie noch nicht ihre Hauptbeschaeftigung entdeckt?$", + "Sie arbeitet in der Dekoration mit sehr viel Geschmack. Ausserdem ist sie immer sehr gut angezogen.$", + "Interessiert sie der Schmuck. Ich habe ein Geschaeft vorzuschlagen.$", + "Der Schmuck...$", + "Ich weiss nicht, aber ich glaube, ich wuerde es vorziehen, wenn er sich ein bisschen weniger um meine Angelegenheiten kuemmern wuerde.$", + "Eine Hausfrau hat immer zu tun.$", + "Sie koennte auch ohne Arbeit auskommen. Aber nein, sie naeht, sie liest...$", + "Sie hat sicherlich keine sehr erheiternden Taetigkeiten.$", + "Eine aussergewoehnliche Frau. Sie interessiert sich fuer alles.$", + "Zwischen Kueche und Haushalt habe ich nicht viel Zeit fuer sie.$", + "Wie schafft er es nur, alles zu machen? Oh Wunder!$", + "Er taete gut daran, wenn er sich weniger mit Klatsch und der Flasche beschaeftigen wuerde.$", + "Ich bin sehr selbstaendig. Solange man sich nicht um meine Angelegenheiten kuemmert, gibt es keine Probleme.$", + "Er ist ein Egoist. Ich frage mich, ob es fuer ihn noch etwas anderes gibt, als seine Pferde und seine Maerchenbuecher.$", + "Er versteht sich gut mit allen, ausser vielleicht mit Guy.$", + "Er ist ein Mann mit Charakter. Man muss ihn zu nehmen wissen.$", + "Geschaeft ist Geschaeft. Was die Familie anbetrifft...$", + "Beziehungen? Freundschaften? Finanzen zweifellos.$", + "Ich habe ihm nichts vorzuwerfen.$", + "Er ist ein pfiffiger Geschaeftsmann. Manchmal schwimmt er gegen den Strom, aber er weiss sich immer zu helfen.$", + "Sie langweilen mich alle. Nein, obwohl... einige...$", + "Im Gegensatz zur Mutter ist es eine sehr verschlossene Person. Also Frage: Beziehung.$", + "Er muss sich zweifellos sehr anstrengen, um trotz seiner Sorgen freundlich zu bleiben.$", + "Seine Liebesaffairen? Aus und vorbei. Mit mir? Es hat nie richtig angefangen. Was die anderen betrifft... ich bin nicht \"die anderen\".$", + "Ich mag jeden, solange man mich nicht betruegt.$", + "Es reicht nicht, ein bisschen Geld zu haben und ein guter Redner zu sein, um bei allen beliebt zu sein.$", + "Jemand, der nett ist und ausserdem noch Humor hat.$", + "Ueber diese Sache kann ich mich nicht auslassen.$", + "Das ist nicht besonders intelligent. Sprechen Sie mit dem Ehemann darueber.$", + "Ist es wegen eines Rendez-vous?$", + "Sie ist sehr lebhaft. sie laesst sich nicht durch Vorurteile in Verwirrung brignen.$", + "In meinem Beruf ist man vor allem schoenen Frauen und Gaunern sehr nahe.$", + "Sein einziges Vermoegen sind sein Schmuck und seine Frau, aber er ist sich dessen nicht bewusst.$", + "Jemand interessantes, aber nicht immer leicht zu verstehen, der aber die Muehe wert ist.$", + "Ich verachte niemanden, aber ich mag es sehr, wenn alles und alle dort sind, wo sie hingehoeren.$", + "Unter uns.. sehen Sie, wenn ich mit ihr spreche, fuehle ich mich schnell beengt.$", + "Um sich nicht mit ihr zu verstehen, braucht man wirklich viel schlechten Willen.$", + "In meinem Beruf hoert man alles, aber behaelt nichts. Nur der Service zaehlt.$", + "Das ist ein Heuchler, ein Kriecher. Ich persoenlich habe kein Vertrauen zu Ihm.$", + "Ich kenne seine wahren Gedanken nicht, aber er war stets korrekt.$", + "Sie hat vor einem Jahr, vielleicht laenger, auf dem Landsitz gewohnt.$", + "Mehr als eine Freundin fuer meine Mutter. In solchen Augenblicken haette ich gewuenscht, dass sie da ist.$", + "Sie war die Hausdame von Julia.$", + "Sie hat ebenfalls Recherchen angestellt. Aber Guy, der sie besser kennt als jeder andere, kann Ihnen mehr sagen.$", + "Ihre Beziehungen?... Sie war sehr kultiviert. Ihr ploetzliches Verschwinden vor einem Jahr hat mich erstaunt.$", + "Sie teilte mit Leo ihre Leidenschaft fuer Geschichte und fuer die Gegend.$", + "Ich glaube, jeder hatte sie gern.$", + "Sie verstand sich mit allen gut, aber ganz besonders liebte sie ihren Sohn. Was die Beziehungen Schwiegermutter Scwiegertochter anbetrifft...$", + "Ausser zu Leo hatte sie auch gute Beziehungen zu Max.$", + "Obwohl ihre Beziehungen nicht von Dauer waren, lag ihr immer viel an ihnen.$", + "Ausser ihrer Familie, nicht viele.$", + "Aber ja. Sie hat das Weggehen dieser Freundin sehr bedauert. Eh, Mireille, oder Marielle.$", + "Nein, nichts.$", + "Nein, nicht das ich wuesste.$", + "Ich habe Julia kennengelernt, als ich das Landgut kaufte. Es war das einzige, was ihr gehoerte, aber mein Besitz war auch der ihre.$", + "Wenn nicht einige persoenliche Dinge gewesen waeren, ich glaube, dann haette sie nichts eigenes mehr gehabt.$", + "Ich glaube, all ihr Reichtum kam von Leo. Also!$", + "Ausser des Briefes, den ich fuer sie aufgegeben habe, nichts wichtiges.$", + "Ich war gluecklich, als sie mir ihre eingebundene Bibel schenkte.$", + "Es ging schnell und sie hatte nicht die Zeit, um spezielle Entscheidungen zu treffen.$", + "Ihr letztes Geschenk hat mich ueberrascht.$", + "Was fuer ein Geschenk?$", + "Ein Kerzenleuchter.$", + "Ja, ich habe ein Geschenk bekommen. Meine Frau hat sogar eine Bibel bekommen.$", + "Aber ja. wie jeder, glaube ich.$", + "Ein Dolch$", + "Ich habe nie den Dachboden durchwuehlt.$", + "Haben Sie die Gabe eines Hellsehers, oder haben Sie einen Dietrich?$", + "Das Portrait einer jungen Frau? Das ist Murielle.$", + "Ich kannte sie zu wenig.$", + "Sehr charmant. Sie war vor allem die Hausdame von Julia.$", + "Das war die einzige wirklich interessante Frau, die ich getroffen habe.$", + "Sie hatte ein grosses Wissen vorzuweisen. Sie zu besuchen, war stets sehr bereichernd.$", + "Ich habe mich immer gefragt, was manche an ihr fanden.$", + "Das Zimmer ist verschlossen? Fragen Sie Leo.$", + "Ich habe ihr Zimmer nach ihrem Tod abgeschlossen und ich moechte, dass das auch noch eine zeitlang so bleibt.$", + "Wissen Sie, was das sind? Familienbeziehungen.$", + "In all den Jahren habe ich sie niemals gegen meinen Willen bedient.$", + "Ich habe sie so sehr geliebt, wie sie mich, glaube ich.$", + "Mit welchem Recht sind Sie in das Zimmer meiner Frau eingedrungen?$", + "Zweifellos das Foto von Murielle mit dem Patenkind von Julia.$", + "Ich erinnere mich nicht.$", + "Das ist Murielle. Ich war es, der sie fotografiert hat. Uebrigens ist das Foto seitenverkehrt abgezogen.$", + "Sie sind wirklich neugierig. Das ist wertlos.$", + "Maerchen, Pergamente und Manuskripte das ist Leos Spezialitaet.$", + "Schade, dass die Losung fehlt.$", + "Das ist sehr schoen und sehr alt.$", + "Das ist ein Ort, den ich nie gesehen habe.$", + "Leos Meinung nach schien es, als seien die Monde spaeter gemacht worden.$", + "Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", + "Tief und beunruhigend. Der Fortschritt hat gutes an sich.$", + "Der Rest bleibt fuer mich eines der groessten Raetsel.$", + "In letzter Zeit sprach sie oft von einer Reise und dann...$", + "An einem Abend vor mehr als einem Jahr hat sie sich entschieden wegzugehen.$", + "Auf jeden Fall war sie fuer das Leben hier nicht geschaffen.$", + "Welcher Koerper? Welche Krypta?$", + "Wenn es sie ueberhaupt gibt, ich habe sie nie gefunden.$", + "Aber sicher! Und die Fantome auch.$", + "Es ist die aelteste der Stadt. Sie stammt aus dem 11. Jahrhundert.$", + "Nach der Revolution wurde sie leicht restauriert.$", + "Julia liebte die Malerei sehr.$", + "Sie haben verschiedene Stilrichtungen, aber sie haben nicht alle Wert.$", + "Was machen Sie da ?$", + "Ich bin sicher, Sie suchen etwas!$", + "Ich hoere.$", + "Was wuenschen Sie?$", + "Ja ?$", + "Ich stehe zu Ihrer Verfuegung.$", + "Weswegen?$", + "Na los doch!$", + "Wegen was?$", + "Max: Zu Ihren Diensten, Monsieur.$", + "Auf jeden Fall haben Sie hier nichts zu suchen! Gehen Sie raus!$", + "Sie sind zu neugierig!$", + "Jerome, es ist lange her. Wie traurig, Julia ist tot. Ihre Familie ist hier. Guy, ihr Sohn, und Eva, ihre Schwiegertochter. Leo, ihr Mann, sowie ihr Schwiegersohn Pat und die Cousins Bob, Ida und Luc. Das Unwetter verstaerkt sich. Sie muessen noch bleiben. Die Mahlzeiten sind um 12 Uhr und um 19 Uhr und es findet jeden Tag um 10 Uhr eine Andacht in der Kapelle statt.$", + "Als ich Sie sah, habe ich sofort begriffen, dass Sie die Wahrheit aufdecken wuerden, da ich wusste, warum Sie gekommen sind. Ich hatte den Entwurf von Julias Brief gefunden. Aber ich bin ein begeisterter Spieler, also.... Sie haette nicht gewollte, dass ihre Aufgabe zu leicht ausfaellt, zweifellos, um mich zu schuetzen, aber sie konnten nicht sterben mit dieser Ungewissheit.Haben Sie herausgefunden, dass die \"Mauer des Schweigens\" der Name ist, den die Maurer waehrend des Baus des Landsitzes der Mauer gegeben haben, die das Wappen traegt...? Und die Geschenke, die Julia vor ihrem Tod hinterlassen hat waren sowohl falsche Hinweise wie auch ein Mittel, um die Wichtigkeit der Pergamente herauszustellen. Tatsaechlich arbeitete ich vor mehr als einem Jahr mit Murielle an der Entzifferung dieser Pergamente, die ich gefunden hatte. Meine Frau sah einen Zusammenhang zwischen unserer Arbeit und dem Verschwinden Murielles,aber sie hat nie Beweise dafuer gehabt; wenn da nicht dieser Ring gewesen waere, den sie eines Tages unter meinen Sachen wiedergefunden hat. Eines nachts sind wir in dem Geheimgang, den wir entdeckt hatten,auf Erkundung gegangen. Murielle ist durch einen Unfall im \"Jungfrauenzimmer\" ums Leben gekommen. Ich habe ihren Ring schnell an mich genommen, habe den Schatz entdeckt und mich dann aus dem Staub gemacht. Ich dachte nicht daran, dass sie unter Umstaenden noch leben koennte, und ich habe nichts gesagt, da ich Geld brauchte. Ich habe das Geld beim Pferderennen verspielt. Gehen Sie jetzt, da sie ja nicht von der Polizei sind. Lassen Sie mich allein.$", + "Februar '51, Beruf: Privatdetektiv. Die Kaelte laesst Paris und meine Unternehmungen erstarren, als...$", + "Julia, heute eine alte Frau. Nichts als Erinnerungen und Spiele in den alten Zimmern des Landsitzes von Morteville.$", + "im Buero$", + "in der Kueche$", + "im Keller$", + "auf dem Flur$", + "draussen$", + "im Esszimmer$", + "im Landsitz$", + "vor dem Landsitz$", + "in der Kapelle$", + "vor dem Brunnen$", + "im Norden$", + "hinter dem Landsitz$", + "im Sueden$", + "im Osten$", + "im Westen$", + "in Richtung Landsitz$", + "noch weiter$", + "im Wasser$", + "ausser des Brunnens$", + "im Brunnen$", + "Wahl auf dem Bild$", + " In der Reihe RAETSEL...$", + " DER LANDSITZ VON MORTEVILLE$", + "$", + " Nach einer Idee von...$", + " Bernard GRELAUD und Bruno GOURIER$", + "$", + " Realisation: LANKHOR$", + "$", + " in Zusammenarbeit mit...$", + " Beatrice und Jean-Luc LANGLOIS Musik und Stimmen,$", + " Bernard GRELAUD graphische Gestaltung,$", + " Dominique SABLONS graphische Realisation ,$", + " Bruno GOURIER technische Realisation,$", + " Gabi NURGE Uebersetzung,$", + " Clement ROQUES IBM PC Realisation.$", + "$", + " Ausgabe: LANKHOR$", + " COPYRIGHT 1989: LANKHOR$", + "$", + " SIE SIND AM ZUG$", + "abkratzen$", + "anschauen$", + "ausgehen$", + "befestig.$", + "drehen$", + "durchsuch$", + "eindrueck$", + "eintreten$", + "essen$", + "fuehlen$", + "hochheben$", + "klopfen$", + "lesen$", + "nehmen$", + "oeffnen$", + "schlafen$", + "schliess.$", + "setzen$", + "sondieren$", + "warten$", + "zuhoeren$", + "anschauen$", + "durchsuch.$", + "hinlegen$", + "lesen$", + "s. verstec$", + "Leo$", + "Pat$", + "Guy$", + "Eva$", + "Bob$", + "Luc$", + "Ida$", + "Max$", + " JULIA$", + "hat sie Selbstmord begangen ?$", + "ist sie ermordet worden ?$", + "ist sie durch Unfall gestorben ?$", + "ist sie eines natuerlichen Todes gestorben ?$", + " Woher kam das Geld, das die restaurierung des landsitzes erlaubte ?$", + "Erpressung$", + "Arbeit$", + "Erbschaft$", + "Rennen$", + "Renten$", + "Raub$", + "Verschiedenes$", + " Was ist Leos Hobby ?$", + "Historische Recherchen$", + "Politik$", + "Malerei$", + "Drogen$", + "Okkultismus$", + "Fuehrung einer Sekte$", + " Julia Hat verschiedene Indizien hinterlassen. Diese befinden sich an einem einzigen Ort. Welchem ?$", + "Kapelle$", + "Draussen$", + "Keller$", + "Dachboden$", + "Kueche$", + "Esszimmer$", + "Julias Zimmer$", + "Leos Zimmer$", + "Pats Zimmer$", + "Bobs Zimmer$", + "Maxs Zimmer$", + "Luc/Idas Zimmer$", + "Guy/Evas Zimmer$", + " Der entscheidende Hinweis, der es Ihnen ermoeglichte, bis an die Tuer des Souterrains zu gelangen, war :$", + "ein Dolch$", + "ein Ring$", + "ein Buch$", + "ein Pergament$", + "ein Brief$", + "ein Pendel$", + " Wievele Pergamente befinden sich auf dem Landsitz ?$", + "kein$", + "eins$", + "zwei$", + "drei$", + "vier$", + "fnf$", + " Wieviele Personen sind in die Geschichte verwickelt ? (Julia eingeschlossen, ausgenommen Sie)$", + "neun$", + "zehn$", + "elf$", + " Wie war der Name der unbekannten Person ?$", + "Mireille$", + "Fran‡oise$", + "Maguy$", + "Emilie$", + "Murielle$", + "Sophie$", + " Wessen Geliebte war Murielle ?$", + "Bob$", + "Luc$", + "Guy$", + "Leo$", + "Max$", + " Murielle teilte eine Beschaeftigung mit einer anderen Person. Mit wem ?$", + "[1][Allein der Zufall hat es Ihnen ermoeglicht bis hierher zu komen.| Gehen Sie zurueck und forschen Sie noch einmal nach,|damit Sie das Gaze besser verstehen...][ok]$", + "[1][Legen Sie die Diskette 1 ein][ok]$", + "[1][Problem mit der Diskette | Alles abstellen...][OK]$", + "[1][Sie haetten 00% der Hinweise| bemerken muessen][ OK ]$", + "[1][Legen Sie die Diskette 2 ein][ok]$", + "[1][Bevor Sie weitermachen, fassen Sie Ihre Kenntnisse Zusammen][ok]$", + " MASTER .$", + " sgaf", NULL }; #endif -- cgit v1.2.3 From c10d050eeff2ca69bc6bdd9bc83a972981b77448 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 4 Jul 2013 23:46:52 +0200 Subject: MORTEVIELLE: Update misc files to include mort.dat --- devtools/README | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'devtools') diff --git a/devtools/README b/devtools/README index c7f08d6dfa..482c24edc2 100644 --- a/devtools/README +++ b/devtools/README @@ -63,6 +63,13 @@ create_lure (dreammaster) the lure.dat file. +create_mort (Strangerke) +----------- + Gathers several information found in the original DOS executable: + - Font data + - French, German and fan-made English translation + + create_project (LordHoto, Littleboy) -------------- Creates project files for Visual Studio 2005, 2008, 2010, 2012, Xcode and -- cgit v1.2.3 From a5e969087b419710276ae08cac0565e144827292 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Fri, 5 Jul 2013 02:57:21 +0300 Subject: CREATE_PROJECT: Add the event recorder to the feature flags --- devtools/create_project/create_project.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 6b6e86a187..129e9f2367 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -809,19 +809,20 @@ const Feature s_features[] = { {"freetype", "USE_FREETYPE2", "freetype", true, "FreeType support" }, // Feature flags - { "bink", "USE_BINK", "", true, "Bink video support" }, - { "scalers", "USE_SCALERS", "", true, "Scalers" }, - { "hqscalers", "USE_HQ_SCALERS", "", true, "HQ scalers" }, - { "16bit", "USE_RGB_COLOR", "", true, "16bit color support" }, - { "mt32emu", "USE_MT32EMU", "", true, "integrated MT-32 emulator" }, - { "nasm", "USE_NASM", "", true, "IA-32 assembly support" }, // This feature is special in the regard, that it needs additional handling. - { "opengl", "USE_OPENGL", "opengl32", true, "OpenGL support" }, - { "taskbar", "USE_TASKBAR", "", true, "Taskbar integration support" }, - { "translation", "USE_TRANSLATION", "", true, "Translation support" }, - { "vkeybd", "ENABLE_VKEYBD", "", false, "Virtual keyboard support"}, - { "keymapper","ENABLE_KEYMAPPER", "", false, "Keymapper support"}, - { "langdetect", "USE_DETECTLANG", "", true, "System language detection support" } // This feature actually depends on "translation", there - // is just no current way of properly detecting this... + { "bink", "USE_BINK", "", true, "Bink video support" }, + { "scalers", "USE_SCALERS", "", true, "Scalers" }, + { "hqscalers", "USE_HQ_SCALERS", "", true, "HQ scalers" }, + { "16bit", "USE_RGB_COLOR", "", true, "16bit color support" }, + { "mt32emu", "USE_MT32EMU", "", true, "integrated MT-32 emulator" }, + { "nasm", "USE_NASM", "", true, "IA-32 assembly support" }, // This feature is special in the regard, that it needs additional handling. + { "opengl", "USE_OPENGL", "opengl32", true, "OpenGL support" }, + { "taskbar", "USE_TASKBAR", "", true, "Taskbar integration support" }, + { "translation", "USE_TRANSLATION", "", true, "Translation support" }, + { "vkeybd", "ENABLE_VKEYBD", "", false, "Virtual keyboard support"}, + { "keymapper", "ENABLE_KEYMAPPER", "", false, "Keymapper support"}, + { "eventrecorder", "ENABLE_EVENTRECORDER", "", false, "Event recorder support"}, + { "langdetect", "USE_DETECTLANG", "", true, "System language detection support" } // This feature actually depends on "translation", there + // is just no current way of properly detecting this... }; const Tool s_tools[] = { -- cgit v1.2.3 From 4a12c691620de09011fda6f06b3a389566a4823c Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Fri, 5 Jul 2013 13:10:04 +0300 Subject: CREATE_PROJECT: Don't allow the keymapper and the event recorder to be enabled simultaneously --- devtools/create_project/create_project.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 129e9f2367..480f6a926a 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -310,6 +310,17 @@ int main(int argc, char *argv[]) { cout << " " << i->description << '\n'; } + // Check if the keymapper and the event recorder are enabled simultaneously + bool keymapperEnabled = false; + for (FeatureList::const_iterator i = setup.features.begin(); i != setup.features.end(); ++i) { + if (i->enable && !strcmp(i->name, "keymapper")) + keymapperEnabled = true; + if (i->enable && !strcmp(i->name, "eventrecorder") && keymapperEnabled) { + std::cerr << "ERROR: The keymapper and the event recorder cannot be enabled simultaneously currently, please disable one of the two\n"; + return -1; + } + } + // Setup defines and libraries setup.defines = getEngineDefines(setup.engines); setup.libraries = getFeatureLibraries(setup.features); -- cgit v1.2.3 From 747863e4f5a2ea7f5988f4ea38fe6dffa4e37854 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Sun, 7 Jul 2013 16:48:52 +0300 Subject: CREATE_PROJECT: Add the libfaad and libmpeg2 libraries --- devtools/create_project/create_project.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 480f6a926a..8b8aaef042 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -816,6 +816,8 @@ const Feature s_features[] = { { "vorbis", "USE_VORBIS", "libvorbisfile_static libvorbis_static libogg_static", true, "Ogg Vorbis support" }, { "flac", "USE_FLAC", "libFLAC_static", true, "FLAC support" }, { "png", "USE_PNG", "libpng", true, "libpng support" }, + { "faad", "USE_FAAD", "libfaad", false, "AAC support" }, + { "mpeg2", "USE_MPEG2", "libmpeg2", false, "MPEG-2 support" }, { "theora", "USE_THEORADEC", "libtheora_static", true, "Theora decoding support" }, {"freetype", "USE_FREETYPE2", "freetype", true, "FreeType support" }, -- cgit v1.2.3 From 98899c6ce37141e6342ed9a5062ac03e726d0b4f Mon Sep 17 00:00:00 2001 From: Littleboy Date: Sun, 7 Jul 2013 05:42:45 -0400 Subject: CREATE_PROJECT: Add create_neverhood and create_tony to the list of tools --- devtools/create_project/create_project.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 8b8aaef042..0a77a84602 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -843,7 +843,9 @@ const Tool s_tools[] = { { "create_hugo", true}, { "create_kyradat", true}, { "create_lure", true}, + { "create_neverhood", true}, { "create_teenagent", true}, + { "create_tony", true}, { "create_toon", true}, { "create_translations", true}, { "qtable", true} -- cgit v1.2.3 From a949a88220eea86cb15182daccd34a269ff7d6dd Mon Sep 17 00:00:00 2001 From: Littleboy Date: Sun, 7 Jul 2013 11:23:19 -0400 Subject: CREATE_PROJECT: Add support for tests - Added --tests command line switch - Parse test/module.mk to extract the list of test folders - Automatically run tests after a successful build --- devtools/create_project/create_project.cpp | 191 ++++++++++++++++++++--------- devtools/create_project/create_project.h | 10 +- devtools/create_project/msbuild.cpp | 43 +++++-- devtools/create_project/msvc.cpp | 10 ++ devtools/create_project/msvc.h | 7 ++ devtools/create_project/visualstudio.cpp | 26 +++- 6 files changed, 210 insertions(+), 77 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 0a77a84602..3ee5fc4f97 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -109,7 +109,7 @@ enum ProjectType { int main(int argc, char *argv[]) { #ifndef USE_WIN32_API // Initialize random number generator for UUID creation - std::srand((uint)std::time(0)); + std::srand((unsigned int)std::time(0)); #endif if (argc < 2) { @@ -264,7 +264,7 @@ int main(int argc, char *argv[]) { setup.filePrefix.erase(setup.filePrefix.size() - 1); } else if (!std::strcmp(argv[i], "--output-dir")) { if (i + 1 >= argc) { - std::cerr << "ERROR: Missing \"path\" parameter for \"--output-dirx\"!\n"; + std::cerr << "ERROR: Missing \"path\" parameter for \"--output-dir\"!\n"; return -1; } @@ -279,12 +279,23 @@ int main(int argc, char *argv[]) { setup.createInstaller = true; } else if (!std::strcmp(argv[i], "--tools")) { setup.devTools = true; + } else if (!std::strcmp(argv[i], "--tests")) { + setup.tests = true; } else { std::cerr << "ERROR: Unknown parameter \"" << argv[i] << "\"\n"; return -1; } } + // When building tests, disable some features + if (setup.tests) { + setFeatureBuildState("mt32emu", setup.features, false); + setFeatureBuildState("eventrecorder", setup.features, false); + + for (EngineDescList::iterator j = setup.engines.begin(); j != setup.engines.end(); ++j) + j->enable = false; + } + // Print status cout << "Enabled engines:\n\n"; for (EngineDescList::const_iterator i = setup.engines.begin(); i != setup.engines.end(); ++i) { @@ -321,6 +332,12 @@ int main(int argc, char *argv[]) { } } + // Check if tools and tests are enabled simultaneously + if (setup.devTools && setup.tests) { + std::cerr << "ERROR: The tools and tests projects cannot be created simultaneously\n"; + return -1; + } + // Setup defines and libraries setup.defines = getEngineDefines(setup.engines); setup.libraries = getFeatureLibraries(setup.features); @@ -358,8 +375,8 @@ int main(int argc, char *argv[]) { return -1; case kProjectCodeBlocks: - if (setup.devTools) { - std::cerr << "ERROR: Building tools is not supported for the CodeBlocks project type!\n"; + if (setup.devTools || setup.tests) { + std::cerr << "ERROR: Building tools or tests is not supported for the CodeBlocks project type!\n"; return -1; } @@ -531,8 +548,8 @@ int main(int argc, char *argv[]) { break; case kProjectXcode: - if (setup.devTools) { - std::cerr << "ERROR: Building tools is not supported for the XCode project type!\n"; + if (setup.devTools || setup.tests) { + std::cerr << "ERROR: Building tools or tests is not supported for the XCode project type!\n"; return -1; } @@ -573,6 +590,11 @@ int main(int argc, char *argv[]) { setup.projectDescription += "Tools"; } + if (setup.tests) { + setup.projectName += "-tests"; + setup.projectDescription += "Tests"; + } + provider->createProject(setup); delete provider; @@ -623,6 +645,9 @@ void displayHelp(const char *exe) { " --tools Create project files for the devtools\n" " (ignores --build-events and --installer, as well as engine settings)\n" " (default: false)\n" + " --tests Create project files for the tests\n" + " (ignores --build-events and --installer, as well as engine settings)\n" + " (default: false)\n" "\n" "Engines settings:\n" " --list-engines list all available engines and their default state\n" @@ -1130,69 +1155,66 @@ ProjectProvider::ProjectProvider(StringList &global_warnings, std::mapfirst == setup.projectName) - continue; - - in.clear(); ex.clear(); - const std::string moduleDir = setup.srcDir + "/devtools/" + i->first; - - createModuleList(moduleDir, setup.defines, in, ex); - createProjectFile(i->first, i->second, setup, moduleDir, in, ex); - } - - // Create other misc. build files - createOtherBuildFiles(setup); + // We also need to add the UUID of the main project file. + const std::string svmUUID = _uuidMap[setup.projectName] = createUUID(); - } else { - _uuidMap = createUUIDMap(setup); + createWorkspace(setup); - // We also need to add the UUID of the main project file. - const std::string svmUUID = _uuidMap[setup.projectName] = createUUID(); + StringList in, ex; - // Create Solution/Workspace file - createWorkspace(setup); + // Create project files + for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) { + if (i->first == setup.projectName) + continue; - StringList in, ex; + in.clear(); ex.clear(); + const std::string moduleDir = setup.srcDir + targetFolder + i->first; - // Create engine project files - for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) { - if (i->first == setup.projectName) - continue; + createModuleList(moduleDir, setup.defines, setup.testDirs, in, ex); + createProjectFile(i->first, i->second, setup, moduleDir, in, ex); + } - in.clear(); ex.clear(); - const std::string moduleDir = setup.srcDir + "/engines/" + i->first; + if (setup.tests) { + // Create the main project file. + in.clear(); ex.clear(); - createModuleList(moduleDir, setup.defines, in, ex); - createProjectFile(i->first, i->second, setup, moduleDir, in, ex); - } + createModuleList(setup.srcDir + "/backends", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/backends/platform/sdl", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/base", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/common", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/engines", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/graphics", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/gui", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/audio", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/test", setup.defines, setup.testDirs, in, ex); + createProjectFile(setup.projectName, svmUUID, setup, setup.srcDir, in, ex); + } else if (!setup.devTools) { // Last but not least create the main project file. in.clear(); ex.clear(); // File list for the Project file - createModuleList(setup.srcDir + "/backends", setup.defines, in, ex); - createModuleList(setup.srcDir + "/backends/platform/sdl", setup.defines, in, ex); - createModuleList(setup.srcDir + "/base", setup.defines, in, ex); - createModuleList(setup.srcDir + "/common", setup.defines, in, ex); - createModuleList(setup.srcDir + "/engines", setup.defines, in, ex); - createModuleList(setup.srcDir + "/graphics", setup.defines, in, ex); - createModuleList(setup.srcDir + "/gui", setup.defines, in, ex); - createModuleList(setup.srcDir + "/audio", setup.defines, in, ex); - createModuleList(setup.srcDir + "/audio/softsynth/mt32", setup.defines, in, ex); - createModuleList(setup.srcDir + "/video", setup.defines, in, ex); + createModuleList(setup.srcDir + "/backends", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/backends/platform/sdl", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/base", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/common", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/engines", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/graphics", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/gui", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/audio", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/audio/softsynth/mt32", setup.defines, setup.testDirs, in, ex); + createModuleList(setup.srcDir + "/video", setup.defines, setup.testDirs, in, ex); // Resource files in.push_back(setup.srcDir + "/icons/" + setup.projectName + ".ico"); @@ -1211,10 +1233,10 @@ void ProjectProvider::createProject(const BuildSetup &setup) { // Create the main project file. createProjectFile(setup.projectName, svmUUID, setup, setup.srcDir, in, ex); - - // Create other misc. build files - createOtherBuildFiles(setup); } + + // Create other misc. build files + createOtherBuildFiles(setup); } ProjectProvider::UUIDMap ProjectProvider::createUUIDMap(const BuildSetup &setup) const { @@ -1322,7 +1344,7 @@ void ProjectProvider::addFilesToProject(const std::string &dir, std::ofstream &p delete files; } -void ProjectProvider::createModuleList(const std::string &moduleDir, const StringList &defines, StringList &includeList, StringList &excludeList) const { +void ProjectProvider::createModuleList(const std::string &moduleDir, const StringList &defines, StringList &testDirs, StringList &includeList, StringList &excludeList) const { const std::string moduleMkFile = moduleDir + "/module.mk"; std::ifstream moduleMk(moduleMkFile.c_str()); if (!moduleMk) @@ -1453,6 +1475,59 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin ++i; } } + } else if (*i == "TESTS") { + if (tokens.size() < 3) + error("Malformed TESTS definition in " + moduleMkFile); + ++i; + + if (*i != ":=" && *i != "+=" && *i != "=") + error("Malformed TESTS definition in " + moduleMkFile); + ++i; + + while (i != tokens.end()) { + // Read input + std::string folder = unifyPath(*i); + + // Get include folder + const std::string source_dir = "$(srcdir)/"; + const std::string selector = getLastPathComponent(folder); + const std::string module = getLastPathComponent(moduleDir); + + folder.replace(folder.find(source_dir), source_dir.length(), ""); + folder.replace(folder.find(selector), selector.length(), ""); + folder.replace(folder.find(module), module.length(), moduleDir); + + // Scan all files in the include folder + FileList files = listDirectory(folder); + + if (files.empty()) + continue; + + // Add to list of test folders + testDirs.push_back(folder); + + for (FileList::const_iterator f = files.begin(); f != files.end(); ++f) { + if (f->isDirectory) + continue; + + std::string filename = folder + f->name; + + if (shouldInclude.top()) { + // In case we should include a file, we need to make + // sure it is not in the exclude list already. If it + // is we just drop it from the exclude list. + excludeList.remove(filename); + + includeList.push_back(filename); + } else if (std::find(includeList.begin(), includeList.end(), filename) == includeList.end()) { + // We only add the file to the exclude list in case it + // has not yet been added to the include list. + excludeList.push_back(filename); + } + } + + ++i; + } } else if (*i == "ifdef") { if (tokens.size() < 2) error("Malformed ifdef in " + moduleMkFile); diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h index de77793ee7..d0f2db364c 100644 --- a/devtools/create_project/create_project.h +++ b/devtools/create_project/create_project.h @@ -221,13 +221,16 @@ struct BuildSetup { StringList defines; ///< List of all defines for the build. StringList libraries; ///< List of all external libraries required for the build. + StringList testDirs; ///< List of all folders containing tests bool devTools; ///< Generate project files for the tools + bool tests; ///< Generate project files for the tests bool runBuildEvents; ///< Run build events as part of the build (generate revision number and copy engine/theme data & needed files to the build folder bool createInstaller; ///< Create NSIS installer after the build BuildSetup() { devTools = false; + tests = false; runBuildEvents = false; createInstaller = false; } @@ -339,7 +342,7 @@ public: * * @param setup Description of the desired build setup. */ - void createProject(const BuildSetup &setup); + void createProject(BuildSetup &setup); /** * Returns the last path component. @@ -430,10 +433,11 @@ protected: * * @param moduleDir Path to the module. * @param defines List of set defines. + * @param testDirs List of folders containing tests. * @param includeList Reference to a list, where included files should be added. * @param excludeList Reference to a list, where excluded files should be added. */ - void createModuleList(const std::string &moduleDir, const StringList &defines, StringList &includeList, StringList &excludeList) const; + void createModuleList(const std::string &moduleDir, const StringList &defines, StringList &testDirs, StringList &includeList, StringList &excludeList) const; /** * Creates an UUID for every enabled engine of the @@ -448,7 +452,7 @@ protected: * Creates an UUID for every enabled tool of the * passed build description. * - * @return A map, which includes UUIDs for all enabled engines. + * @return A map, which includes UUIDs for all enabled tools. */ UUIDMap createToolsUUIDMap() const; diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp index 6af9323fcd..23bf1bc28a 100644 --- a/devtools/create_project/msbuild.cpp +++ b/devtools/create_project/msbuild.cpp @@ -69,7 +69,7 @@ inline void outputConfiguration(std::ostream &project, const std::string &config inline void outputConfigurationType(const BuildSetup &setup, std::ostream &project, const std::string &name, const std::string &config, int version) { project << "\t\n" - "\t\t" << ((name == setup.projectName || setup.devTools) ? "Application" : "StaticLibrary") << "\n" + "\t\t" << ((name == setup.projectName || setup.devTools || setup.tests) ? "Application" : "StaticLibrary") << "\n" "\t\tv" << version << "0\n" "\t\n"; } @@ -159,10 +159,26 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri if (name == setup.projectName) writeReferences(setup, project); + // Output auto-generated test runner + if (setup.tests) { + project << "\t\n"; + project << "\t\t\n"; + project << "\t\n"; + } + project << "\t\n" "\t\n" - "\t\n" - "\n"; + "\t\n"; + + if (setup.tests) { + // We override the normal target to ignore the exit code (this allows us to have a clean output and not message about the command exit code) + project << "\t\t\n" + << "\t\t\t\n" + << "\t\t\t\n" + << "\t\t\n"; + } + + project << "\n"; // Output filter file if necessary createFiltersFile(setup, name); @@ -248,7 +264,7 @@ void MSBuildProvider::outputProjectSettings(std::ofstream &project, const std::s bool disableEditAndContinue = find(_disableEditAndContinue.begin(), _disableEditAndContinue.end(), name) != _disableEditAndContinue.end(); // Nothing to add here, move along! - if (!setup.devTools && name != setup.projectName && !enableLanguageExtensions && !disableEditAndContinue && warningsIterator == _projectWarnings.end()) + if ((!setup.devTools || !setup.tests) && name != setup.projectName && !enableLanguageExtensions && !disableEditAndContinue && warningsIterator == _projectWarnings.end()) return; std::string warnings = ""; @@ -260,7 +276,7 @@ void MSBuildProvider::outputProjectSettings(std::ofstream &project, const std::s "\t\t\n"; // Language Extensions - if (setup.devTools || name == setup.projectName || enableLanguageExtensions) + if (setup.devTools || setup.tests || name == setup.projectName || enableLanguageExtensions) project << "\t\t\tfalse\n"; // Edit and Continue @@ -274,18 +290,18 @@ void MSBuildProvider::outputProjectSettings(std::ofstream &project, const std::s project << "\t\t\n"; // Link configuration for main project - if (name == setup.projectName || setup.devTools) { + if (name == setup.projectName || setup.devTools || setup.tests) { std::string libraries; for (StringList::const_iterator i = setup.libraries.begin(); i != setup.libraries.end(); ++i) libraries += *i + ".lib;"; project << "\t\t\n" - "\t\t\t$(OutDir)" << (setup.devTools ? name : setup.projectName) << ".exe\n" + "\t\t\t$(OutDir)" << ((setup.devTools || setup.tests) ? name : setup.projectName) << ".exe\n" "\t\t\t" << libraries << "%(AdditionalDependencies)\n" "\t\t\n"; - if (!setup.devTools && setup.runBuildEvents) { + if (!setup.devTools && !setup.tests && setup.runBuildEvents) { project << "\t\t\n" "\t\t\tGenerate revision\n" "\t\t\t" << getPreBuildEvent() << "\n" @@ -296,6 +312,11 @@ void MSBuildProvider::outputProjectSettings(std::ofstream &project, const std::s "\t\t\tCopy data files to the build folder\n" "\t\t\t" << getPostBuildEvent(isWin32, setup.createInstaller) << "\n" "\t\t\n"; + } else if (setup.tests) { + project << "\t\t\n" + "\t\t\tGenerate runner.cpp\n" + "\t\t\t" << getTestPreBuildEvent(setup) << "\n" + "\t\t\n"; } } @@ -330,9 +351,9 @@ void MSBuildProvider::outputGlobalPropFile(const BuildSetup &setup, std::ofstrea "\t\t\n" "\t\t\ttrue\n" "\t\t\t" << warnings << ";%(DisableSpecificWarnings)\n" - "\t\t\t$(" << LIBS_DEFINE << ")\\include;" << prefix << ";" << prefix << "\\engines;$(TargetDir);%(AdditionalIncludeDirectories)\n" + "\t\t\t$(" << LIBS_DEFINE << ")\\include;" << prefix << ";" << prefix << "\\engines;" << (setup.tests ? prefix + "\\test\\cxxtest;" : "") << "$(TargetDir);%(AdditionalIncludeDirectories)\n" "\t\t\t" << definesList << "%(PreprocessorDefinitions)\n" - "\t\t\t" << (setup.devTools ? "Sync" : "") << "\n"; + "\t\t\t" << ((setup.devTools || setup.tests) ? "Sync" : "") << "\n"; #if NEEDS_RTTI properties << "\t\t\ttrue\n"; @@ -348,7 +369,7 @@ void MSBuildProvider::outputGlobalPropFile(const BuildSetup &setup, std::ofstrea "\t\t\t%(IgnoreSpecificDefaultLibraries)\n" "\t\t\tConsole\n"; - if (!setup.devTools) + if (!setup.devTools && !setup.tests) properties << "\t\t\tWinMainCRTStartup\n"; properties << "\t\t\n" diff --git a/devtools/create_project/msvc.cpp b/devtools/create_project/msvc.cpp index b8d2401af9..2fedadcba5 100644 --- a/devtools/create_project/msvc.cpp +++ b/devtools/create_project/msvc.cpp @@ -161,6 +161,16 @@ std::string MSVCProvider::getPreBuildEvent() const { return cmdLine; } +std::string MSVCProvider::getTestPreBuildEvent(const BuildSetup &setup) const { + // Build list of folders containing tests + std::string target = ""; + + for (StringList::const_iterator it = setup.testDirs.begin(); it != setup.testDirs.end(); ++it) + target += " $(SolutionDir)" + *it + "*.h"; + + return ""$(SolutionDir)../../test/cxxtest/cxxtestgen.py" --runner=ParenPrinter --no-std --no-eh -o $(SolutionDir)test_runner.cpp" + target; +} + std::string MSVCProvider::getPostBuildEvent(bool isWin32, bool createInstaller) const { std::string cmdLine = ""; diff --git a/devtools/create_project/msvc.h b/devtools/create_project/msvc.h index 5a854b596a..b9b93fe109 100644 --- a/devtools/create_project/msvc.h +++ b/devtools/create_project/msvc.h @@ -87,6 +87,13 @@ protected: */ std::string getPreBuildEvent() const; + /** + * Get the command line for the test generator + * + * @param setup Description of the desired build setup. + */ + std::string getTestPreBuildEvent(const BuildSetup &setup) const; + /** * Get the command line for copying data files to the build directory. * diff --git a/devtools/create_project/visualstudio.cpp b/devtools/create_project/visualstudio.cpp index de2df96d78..23225d3435 100644 --- a/devtools/create_project/visualstudio.cpp +++ b/devtools/create_project/visualstudio.cpp @@ -83,7 +83,7 @@ void VisualStudioProvider::createProjectFile(const std::string &name, const std: // Check for project-specific warnings: std::map< std::string, std::list >::iterator warningsIterator = _projectWarnings.find(name); - if (setup.devTools || name == setup.projectName) { + if (setup.devTools || setup.tests || name == setup.projectName) { std::string libraries; for (StringList::const_iterator i = setup.libraries.begin(); i != setup.libraries.end(); ++i) @@ -140,6 +140,11 @@ void VisualStudioProvider::createProjectFile(const std::string &name, const std: else addFilesToProject(moduleDir, project, includeList, excludeList, setup.filePrefix); + // Output auto-generated test runner + if (setup.tests) { + project << "\t\t\n"; + } + project << "\t\n" "\n"; } @@ -161,7 +166,7 @@ void VisualStudioProvider::outputConfiguration(const BuildSetup &setup, std::ost } void VisualStudioProvider::outputBuildEvents(std::ostream &project, const BuildSetup &setup, const bool isWin32) { - if (!setup.devTools && setup.runBuildEvents) { + if (!setup.devTools && !setup.tests && setup.runBuildEvents) { project << "\t\t\t\n" @@ -169,6 +174,17 @@ void VisualStudioProvider::outputBuildEvents(std::ostream &project, const BuildS "\t\t\t\tCommandLine=\"" << getPostBuildEvent(isWin32, setup.createInstaller) << "\"\n" "\t\t\t/>\n"; } + + // Generate runner file before build for tests + if (setup.tests) { + project << "\t\t\t\n"; + + project << "\t\t\t\n"; + } } void VisualStudioProvider::writeReferences(const BuildSetup &setup, std::ofstream &output) { @@ -212,9 +228,9 @@ void VisualStudioProvider::outputGlobalPropFile(const BuildSetup &setup, std::of "\t\tName=\"VCCLCompilerTool\"\n" "\t\tDisableLanguageExtensions=\"" << (setup.devTools ? "false" : "true") << "\"\n" "\t\tDisableSpecificWarnings=\"" << warnings << "\"\n" - "\t\tAdditionalIncludeDirectories=\"" << prefix << ";" << prefix << "\\engines;$(" << LIBS_DEFINE << ")\\include;$(TargetDir)\"\n" + "\t\tAdditionalIncludeDirectories=\"" << prefix << ";" << prefix << "\\engines;$(" << LIBS_DEFINE << ")\\include;" << (setup.tests ? prefix + "\\test\\cxxtest;" : "") << "$(TargetDir)\"\n" "\t\tPreprocessorDefinitions=\"" << definesList << "\"\n" - "\t\tExceptionHandling=\"" << (setup.devTools ? "1" : "0") << "\"\n"; + "\t\tExceptionHandling=\"" << ((setup.devTools || setup.tests) ? "1" : "0") << "\"\n"; #if NEEDS_RTTI properties << "\t\tRuntimeTypeInfo=\"true\"\n"; @@ -235,7 +251,7 @@ void VisualStudioProvider::outputGlobalPropFile(const BuildSetup &setup, std::of "\t\tIgnoreDefaultLibraryNames=\"\"\n" "\t\tSubSystem=\"1\"\n"; - if (!setup.devTools) + if (!setup.devTools && !setup.tests) properties << "\t\tEntryPointSymbol=\"WinMainCRTStartup\"\n"; properties << "\t\tAdditionalLibraryDirectories=\"$(" << LIBS_DEFINE << ")\\lib\\" << ((bits == 32) ? "x86" : "x64") << "\"\n" -- cgit v1.2.3 From 395ee92a8578d5e74ff525140ea942e2c7608b92 Mon Sep 17 00:00:00 2001 From: Kirben Date: Tue, 9 Jul 2013 11:45:45 +1000 Subject: SCUMM: Add another French Windows version of Pajama Sam 2. --- devtools/scumm-md5.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'devtools') diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt index 6e3bae1d7e..450860b587 100644 --- a/devtools/scumm-md5.txt +++ b/devtools/scumm-md5.txt @@ -654,6 +654,7 @@ pajama2 Pajama Sam 2: Thunder and Lightning Aren't so Frightening e5563c8358443c4352fcddf7402a5e0a -1 fr Windows HE 98.5 - - gist974 c6907d44f1166941d982864cd42cdc89 -1 de All HE 99 - - nachbarnebenan f8be685007a8b425ba2a455da732f59f -1 fr Mac HE 99 - - alamaz + 7477bc23d0383516c5e310cd8771dcc9 -1 fr Windows HE 99 - - Strangerke 32709cbeeb3044b34129950860a83f14 -1 ru Windows HE 99 - - sev 1af4eb581a33d808707d66d50e084dca -1 he Windows HE 99 - - Matan Bareket -- cgit v1.2.3 From a5864d992dc1d494c088e779e8300bdd438923f4 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sat, 13 Jul 2013 22:58:27 +0200 Subject: DEVTOOLS: Fix unimportant memory/resource leaks CID 1022283, 1022284, 1022285 --- devtools/create_kyradat/create_kyradat.cpp | 7 ++++++- devtools/create_kyradat/pak.cpp | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp index ca809e0aac..01cde620e7 100644 --- a/devtools/create_kyradat/create_kyradat.cpp +++ b/devtools/create_kyradat/create_kyradat.cpp @@ -2350,8 +2350,10 @@ bool createIDMap(PAKFile &out, const ExtractInformation *eI, const int *needList for (const int *id = needList; *id != -1; ++id) { WRITE_BE_UINT16(dst, *id); dst += 2; const ExtractFilename *fDesc = getFilenameDesc(*id); - if (!fDesc) + if (!fDesc) { + delete[] map; return false; + } *dst++ = getTypeID(fDesc->type); WRITE_BE_UINT32(dst, getFilename(eI, *id)); dst += 4; } @@ -2359,15 +2361,18 @@ bool createIDMap(PAKFile &out, const ExtractInformation *eI, const int *needList char filename[12]; if (!getFilename(filename, eI, 0)) { fprintf(stderr, "ERROR: Could not create ID map for game\n"); + delete[] map; return false; } out.removeFile(filename); if (!out.addFile(filename, map, mapSize)) { fprintf(stderr, "ERROR: Could not add ID map \"%s\" to kyra.dat\n", filename); + delete[] map; return false; } + delete[] map; return true; } diff --git a/devtools/create_kyradat/pak.cpp b/devtools/create_kyradat/pak.cpp index 0203285a8f..0d085f563c 100644 --- a/devtools/create_kyradat/pak.cpp +++ b/devtools/create_kyradat/pak.cpp @@ -142,6 +142,7 @@ bool PAKFile::outputAllFiles() { printf("OK\n"); } else { printf("FAILED\n"); + fclose(file); return false; } fclose(file); @@ -168,6 +169,7 @@ bool PAKFile::outputFileAs(const char *f, const char *fn) { printf("OK\n"); } else { printf("FAILED\n"); + fclose(file); return false; } fclose(file); -- cgit v1.2.3 From d0df423575567c134da6586e50a1c8ec24a09d89 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sat, 13 Jul 2013 23:08:32 +0200 Subject: DEVTOOLS: Fix unimportant memory/resource leaks CID 1022280, 1022281, 1022282 --- devtools/skycpt/cptcompiler.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'devtools') diff --git a/devtools/skycpt/cptcompiler.cpp b/devtools/skycpt/cptcompiler.cpp index 2c7d33c73b..657f51b8a0 100644 --- a/devtools/skycpt/cptcompiler.cpp +++ b/devtools/skycpt/cptcompiler.cpp @@ -376,6 +376,7 @@ void doCompile(FILE *inf, FILE *debOutf, FILE *resOutf, TextFile *cptDef, FILE * uint32 asciiSize = (uint32)(asciiPos - asciiBuf); fwrite(&asciiSize, 1, 4, debOutf); fwrite(asciiBuf, 1, asciiSize, debOutf); + free(asciiBuf); // the direct links... fwrite(&dlinkCount, 2, 1, debOutf); @@ -438,6 +439,8 @@ void doCompile(FILE *inf, FILE *debOutf, FILE *resOutf, TextFile *cptDef, FILE * diffNo++; } } + fclose(dif); + free(resCpts); assert(diffDest <= 8192); fwrite(&diffNo, 1, 2, debOutf); fwrite(&diffDest, 1, 2, debOutf); -- cgit v1.2.3 From 7ca31f66d85d88cbd6c3ec951571b59e4875001d Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Sat, 13 Jul 2013 22:40:49 +0100 Subject: MORTEVIELLE: Add missing eol character in devtool usage message --- devtools/create_mortdat/create_mortdat.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 6fe115d5c4..2dff398de2 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -149,7 +149,7 @@ void process() { */ int main(int argc, char *argv[]) { if (argc != 2) { - printf("Usage:\n%s input_filename\nWhere input_filename is the name of the Mortevielle DOS executable", argv[0]); + printf("Usage:\n%s input_filename\nWhere input_filename is the name of the Mortevielle DOS executable.\n", argv[0]); exit(0); } -- cgit v1.2.3 From 79886597e77672dd58a453a627144eae3926b07e Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Sat, 13 Jul 2013 22:41:25 +0100 Subject: MORTEVIELLE: Convert non-ASCII characters to their octal value --- devtools/create_mortdat/enginetext.h | 10 +- devtools/create_mortdat/gametext.h | 488 +++++++++++++++++------------------ 2 files changed, 249 insertions(+), 249 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/enginetext.h b/devtools/create_mortdat/enginetext.h index c4929141d3..f785c4d974 100644 --- a/devtools/create_mortdat/enginetext.h +++ b/devtools/create_mortdat/enginetext.h @@ -82,19 +82,19 @@ const char *engineDataEn[] = { const char *engineDataFr[] = { "[2][ ][OUI][NON]", "aller", - "quelqu'un entre, parait ‚tonn‚ mais ne dit rien", + "quelqu'un entre, parait \202tonn\202 mais ne dit rien", "Cool", " Lourde ", "Malsaine", "Idem", "Vous", - "ˆtes", + "\210tes", "SEUL", "Mince! Vous entendez du bruit...", - " | Vous devriez avoir remarqu‚| ", + " | Vous devriez avoir remarqu\202| ", "% des indices...", - "D‚sirez-vous vous r‚veiller?", + "D\202sirez-vous vous r\202veiller?", "OK", "", " Sauvegarde", @@ -123,7 +123,7 @@ const char *engineDataFr[] = { "fermer", "frapper", "poser", - "d‚foncer", + "d\202foncer", "sentir", "gratter", diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index 6e43258e88..f8fe070bf0 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -285,7 +285,7 @@ const char *gameDataEn[] = { "Julia's bedroom$", "The photo at Julia's home$", "Julia and yourself...$", - "L‚o's occupations$", + "L\202o's occupations$", "Pat's occupations$", "Guy's occupations$", "Bob's occupations$", @@ -294,7 +294,7 @@ const char *gameDataEn[] = { "Ida's occupations$", "Max's occupations$", "Your occupations$", - "L‚o's relationships$", + "L\202o's relationships$", "Pat's relationships$", "Guy's relationships$", "Bob's relationships$", @@ -324,7 +324,7 @@ const char *gameDataEn[] = { "These are the mountains one can see in front of the manor$", "I don't know!$", "She died from pulmonary embolism$", - "Mother died suddenly. And yet her health had seemed to improve‚$", + "Mother died suddenly. And yet her health had seemed to improve\202$", "Miss DEFRANCK died from a cold$", "She died from pulmonary embolism$", "Excuse me but I prefer to say nothing for now$", @@ -493,7 +493,7 @@ const char *gameDataEn[] = { "Directed by: KYILKHOR CREATION and LANGLOIS$", "$", "With the cooperation of...$", - "B‚atrice et Jean_Luc LANGLOIS$", + "B\202atrice et Jean_Luc LANGLOIS$", "for the music and the voices,$", "Bernard GRELAUD for the graphic conception,$", "MARIA-DOLORES for the graphic direction,$", @@ -592,7 +592,7 @@ const char *gameDataEn[] = { "- Eleven$", "What was the first name@of the unknown character?$", "- Mireille$", - "- Fran‡oise$", + "- Fran\207oise$", "- Maguy$", "- Emilie$", "- Murielle$", @@ -617,9 +617,9 @@ const char *gameDataEn[] = { const char *gameDataFr[] = { "Le calme dans la tourmente$", - "Des go—ts et des couleurs!$", + "Des go\227ts et des couleurs!$", "Mauve qui peut!$", - "PriŠre de laisser en sortant...$", + "Pri\212re de laisser en sortant...$", "Trou noir troublant$", "Bleu... comme \"peur bleue\"!$", "Chambre de \"Saigneur\"!$", @@ -629,33 +629,33 @@ const char *gameDataFr[] = { "Odeur de feux de bois et de tabac$", "Tabac et vieux bouquins$", "Oignons, cannelle et spiritueux$", - "Un endroit bien peu visit‚$", - "Humidit‚ et moisissure$", + "Un endroit bien peu visit\202$", + "Humidit\202 et moisissure$", "Avis aux colporteurs...$", - "Corps putr‚fi‚ : cryptomanie mortelle!$", - "Et en plus... des piŠges d‚samorc‚s!$", - "C'est d‚j… ouvert$", + "Corps putr\202fi\202 : cryptomanie mortelle!$", + "Et en plus... des pi\212ges d\202samorc\202s!$", + "C'est d\202j\205 ouvert$", "Danger : avalanches$", - "Une odeur de saintet‚!$", - "Une bƒtisse imposante$", - "L'envers du mystŠre!$", - "Dr“le d'horoscope!$", + "Une odeur de saintet\202!$", + "Une b\203tisse imposante$", + "L'envers du myst\212re!$", + "Dr\223le d'horoscope!$", "Tant va la cruche...$", - "Une porte en chŠne$", + "Une porte en ch\212ne$", "Une photo$", "Les armoiries$", "$", - "Max, le domestique, vous accueille puis vous conduit … votre chambre$", - "Mortevielle, le 16/2/51@ Mon cher J‚r“me,@ Suite … mon t‚l‚gramme, je vous fais part des raisons de mon inqui‚tude :il y a un an, Murielle, ma dame de compagnie, disparaissait . D‚part ayant rapport avec le renouveau financier du Manoir, ou... Silence difficile … comprendre, surtout pour mon fils Guy . N'ayant pu jusqu'… pr‚sent, faire le jour sur cette affaire, je compte sur vous pour la mener … bien . Si mon ‚tat de sant‚ ne s'am‚liorait pas, prenez les d‚cisions qui vous sembleront le plus appropri‚es...@ Amiti‚s. JULIA DEFRANCK$", - "Plus tard, Guy vous apprendra le suicide de L‚o... aprŠs un pari insens‚ aux courses!$", + "Max, le domestique, vous accueille puis vous conduit \205 votre chambre$", + "Mortevielle, le 16/2/51@ Mon cher J\202r\223me,@ Suite \205 mon t\202l\202gramme, je vous fais part des raisons de mon inqui\202tude :il y a un an, Murielle, ma dame de compagnie, disparaissait . D\202part ayant rapport avec le renouveau financier du Manoir, ou... Silence difficile \205 comprendre, surtout pour mon fils Guy . N'ayant pu jusqu'\205 pr\202sent, faire le jour sur cette affaire, je compte sur vous pour la mener \205 bien . Si mon \202tat de sant\202 ne s'am\202liorait pas, prenez les d\202cisions qui vous sembleront le plus appropri\202es...@ Amiti\202s. JULIA DEFRANCK$", + "Plus tard, Guy vous apprendra le suicide de L\202o... apr\212s un pari insens\202 aux courses!$", "F3: encore@F8: suite$", - "Le maŒtre des lieux$", - "Le futur h‚ritier$", + "Le ma\214tre des lieux$", + "Le futur h\202ritier$", "Le fils de JULIA$", "Joli brin!!!$", "Superman!$", "Le mari d'Ida$", - "Propos int‚ressants?$", + "Propos int\202ressants?$", "Service compris...$", "Rien dessous!$", "Un ange passe...$", @@ -663,61 +663,61 @@ const char *gameDataFr[] = { "Admirez! Contemplez!$", "Non ! Rien !$", "Impossible$", - "‡a tache !$", - "Un trait‚ sur l'histoire de la r‚gion$", - "Quelques piŠces$", + "\207a tache !$", + "Un trait\202 sur l'histoire de la r\202gion$", + "Quelques pi\212ces$", "Premier commandement...$", - "Des p‚tales plein les narines !$", + "Des p\202tales plein les narines !$", "Pique, Coeur...$", - "‡a ne manque pas de cachets !$", + "\207a ne manque pas de cachets !$", "Un roman d'amour$", "Souffler n'est pas jouer$", - "Pas une r‚ussite!$", + "Pas une r\202ussite!$", "Gare aux rebondissements !$", "Sombre et profond...$", "Sensations normales$", "Sniff!$", "Pas discret ! Contentez-vous de regarder !$", - "Atchoum! De la p... poussiŠre$", - "La toile est sign‚e... pas le papier peint !$", + "Atchoum! De la p... poussi\212re$", + "La toile est sign\202e... pas le papier peint !$", "Pas de chance, rien !$", "Soyez plus discret !$", "Les volets sont clos$", "De la neige, encore de la neige !$", - "G‚nial : une toile de maŒtre !$", - "Aucun doute : une v‚ritable imitation$", + "G\202nial : une toile de ma\214tre !$", + "Aucun doute : une v\202ritable imitation$", "Hum ! Vous tiquez : de l'antique en toc !$", - "Une piŠce rare de valeur !$", + "Une pi\212ce rare de valeur !$", "Rien de remarquable$", "Linge, objets personnels...$", - "Pas n'importe o— !$", + "Pas n'importe o\227 !$", "Ce n'est pas l'heure !$", - "On ne parle pas la bouche pleine ! Donc, une fois le repas termin‚...$", + "On ne parle pas la bouche pleine ! Donc, une fois le repas termin\202...$", "Quelqu'un entre, s'affaire, ressort...$", "On s'approche de votre cachette !$", "On vous surprend !$", - "Non : vous ˆtes trop charg‚ !$", + "Non : vous \210tes trop charg\202 !$", "Essayez de nouveau$", "Vous restez perplexe !?$", "Vous quittez le Manoir. A Paris, un message vous attend...$", - "A‹e, a‹e, a‹e !$", + "A\213e, a\213e, a\213e !$", "Rien de plus$", - "Le son paraŒt normal$", + "Le son para\214t normal$", "Ca ne bouge pas$", - "On vous r‚pond$", + "On vous r\202pond$", "Pas le moment !$", - "Mˆme matiŠre, autre face !$", - "Le reflet est piqu‚, mais le cadre est d'or$", + "M\210me mati\212re, autre face !$", + "Le reflet est piqu\202, mais le cadre est d'or$", "Bibelots, babioles...$", - "Vous essuyez un ‚chec !$", + "Vous essuyez un \202chec !$", "Il est des odeurs... qu'il vaut mieux ne pas voir !$", - "Des produits m‚nagers$", - "‡a vous d‚mange ?$", - "C'est coinc‚, gel‚ ! Brrrr...$", - "Les huisseries sont bloqu‚es !$", + "Des produits m\202nagers$", + "\207a vous d\202mange ?$", + "C'est coinc\202, gel\202 ! Brrrr...$", + "Les huisseries sont bloqu\202es !$", "Des papiers...$", - "Non ! Le pŠre Noˆl n'est pas coinc‚ !$", - "‡a donne sur un couloir$", + "Non ! Le p\212re No\210l n'est pas coinc\202 !$", + "\207a donne sur un couloir$", "Vaisselle, argenterie...$", "Non ! Ce ne sont pas les restes de Julia !$", "Une gravure ancienne$", @@ -726,17 +726,17 @@ const char *gameDataFr[] = { "Le passage se ferme$", "Un tiroir secret... Un livret ! Le lisez-vous ?$", "Le tiroir se referme$", - "Rien ! Sang et chairs collent … la pierre !$", - "Des d‚tails vous font supposer que... la mort ne fut pas imm‚diate !$", - "Des projets v‚reux ?$", - "Sa vie n'aurait-elle tenu qu'… un doigt ?$", - "Un tr‚sor se serait-il fait la malle ?$", - "Une fente de la taille d'une piŠce !$", - "Quelques pierres pivotent... Une crypte ! Y p‚n‚trez-vous ?$", + "Rien ! Sang et chairs collent \205 la pierre !$", + "Des d\202tails vous font supposer que... la mort ne fut pas imm\202diate !$", + "Des projets v\202reux ?$", + "Sa vie n'aurait-elle tenu qu'\205 un doigt ?$", + "Un tr\202sor se serait-il fait la malle ?$", + "Une fente de la taille d'une pi\212ce !$", + "Quelques pierres pivotent... Une crypte ! Y p\202n\202trez-vous ?$", "La bague tourne, le mur se referme...$", - "Une colonne de pierres derriŠre l'autel$", + "Une colonne de pierres derri\212re l'autel$", "Il y a du bruit...$", - "Occup‚ !$", + "Occup\202 !$", "Retentez-vous votre chance ?$", "Trop profond !$", "Le mur de la cave pivote$", @@ -745,45 +745,45 @@ const char *gameDataFr[] = { "L'objet glisse au fond...$", "Vous n'avez rien en main$", "Ce n'est pas ouvert$", - "Il y a d‚j… quelque chose$", - "La porte est ferm‚e$", - "Pas de r‚ponse$", + "Il y a d\202j\205 quelque chose$", + "La porte est ferm\202e$", + "Pas de r\202ponse$", "Une boule de bois pleine$", "Il n'y a plus de place$", - "Une boule de bois perc‚e par le travers$", + "Une boule de bois perc\202e par le travers$", "? ?$", "A vous de jouer$", "OK !$", - "Soudain Max survient avec votre valise : \"Merci de votre visite ! D‚tective \"priv‚\"... de bon sens et de discr‚tion sans doute\" . D‚‡u d‚moralis‚, vous quittez le manoir@Vous Štes NUL !$", - "L‚o vous interrompt : \"la tempŠte est calm‚e. Je pars en ville dans 1 heure. Tenez-vous prˆt!\"... Bon... Vous avez perdu du temps... mais pas la vie$", - "Congestion, grippe fatale : vous y restez ! Votre enquŠte tombe … l'eau$", - "L'eau monte trŠs vite et refroidit vos derniŠres illusions... Avant que vous n'ayez eu le temps de r‚agir, vous Štes mort!$", - "A peine Štes-vous au fond du puits qu'une main tranche la corde... Adieu la vie!$", - "La tempŠte recouvre vos traces . Un mur de silence s'abat sur vos ‚paules . Lentement vous succombez … la morsure du froid !$", - "Pas si seul que ‡a ! Une lame glac‚e s'enfonce dans votre dos. A l'avenir, soyez plus prudent!$", - "Vous ignorez la responsabilit‚ exacte de L‚o dans la mort de Murielle... Est-elle morte sur le coup ? De toutes fa‡ons les problŠmes familiaux d‚couverts lors de votre enquŠte justifient l'attitude de L‚o... Vous n'Štes pas s—r que Julia vous ait appel‚ pour ‡a mais c'est suffisant pour vous ! Par respect pour elle, et aprŠs certaines pr‚cautions, vous avez une entrevue r‚v‚latrice avec L‚o$", + "Soudain Max survient avec votre valise : \"Merci de votre visite ! D\202tective \"priv\202\"... de bon sens et de discr\202tion sans doute\" . D\202\207u d\202moralis\202, vous quittez le manoir@Vous \212tes NUL !$", + "L\202o vous interrompt : \"la temp\212te est calm\202e. Je pars en ville dans 1 heure. Tenez-vous pr\210t!\"... Bon... Vous avez perdu du temps... mais pas la vie$", + "Congestion, grippe fatale : vous y restez ! Votre enqu\212te tombe \205 l'eau$", + "L'eau monte tr\212s vite et refroidit vos derni\212res illusions... Avant que vous n'ayez eu le temps de r\202agir, vous \212tes mort!$", + "A peine \212tes-vous au fond du puits qu'une main tranche la corde... Adieu la vie!$", + "La temp\212te recouvre vos traces . Un mur de silence s'abat sur vos \202paules . Lentement vous succombez \205 la morsure du froid !$", + "Pas si seul que \207a ! Une lame glac\202e s'enfonce dans votre dos. A l'avenir, soyez plus prudent!$", + "Vous ignorez la responsabilit\202 exacte de L\202o dans la mort de Murielle... Est-elle morte sur le coup ? De toutes fa\207ons les probl\212mes familiaux d\202couverts lors de votre enqu\212te justifient l'attitude de L\202o... Vous n'\212tes pas s\227r que Julia vous ait appel\202 pour \207a mais c'est suffisant pour vous ! Par respect pour elle, et apr\212s certaines pr\202cautions, vous avez une entrevue r\202v\202latrice avec L\202o$", "$", - "Vous n'avez pas les clefs du Manoir . Vos appels restent sans r‚ponse . Vous allez attraper... la mort !$", - "D'un mouvement circulaire, l'‚p‚e vous fend par le travers : tripes et boyaux … l'air, bonjour les vers!$", + "Vous n'avez pas les clefs du Manoir . Vos appels restent sans r\202ponse . Vous allez attraper... la mort !$", + "D'un mouvement circulaire, l'\202p\202e vous fend par le travers : tripes et boyaux \205 l'air, bonjour les vers!$", "Home, Sweet home !$", - "MystŠre d'une porte close$", - "Charme envo—tant de vieilles piŠces$", + "Myst\212re d'une porte close$", + "Charme envo\227tant de vieilles pi\212ces$", "La faim au ventre$", - "Plus prŠs du ciel? Pas s—r !$", + "Plus pr\212s du ciel? Pas s\227r !$", "Peur du noir?$", "Vieux tapis et reflets d'or$", "Angoisse !$", - "Sauv‚ ? Pas certain !$", - "Mal … l'aise, hein !$", + "Sauv\202 ? Pas certain !$", + "Mal \205 l'aise, hein !$", "Toujours plus loin !$", "Votre chemin de croix !$", - "A la d‚couverte de...$", - "Attention … ce que cache...$", + "A la d\202couverte de...$", + "Attention \205 ce que cache...$", "Une descente aux Enfers !$", "Si ce n'est pas dans vos cordes :@ ne soyez pas sot!$", - "Avant la mise en piŠce !$", + "Avant la mise en pi\212ce !$", "Gros plan sur :$", - "Vous remarquez particuliŠrement...$", + "Vous remarquez particuli\212rement...$", "Et encore...$", "C'est fini !$", "Un peu de lecture$", @@ -794,17 +794,17 @@ const char *gameDataFr[] = { "Non ! Pas ce coup-ci$", "Trop tard$", "$", - "Comme un regard profond tout couvert de peaux-pierres, pointant son oeil obscur aux astres de lumiŠre, il est la gorge reliant le ciel et les enfers . Il faut aller au fond de cette artŠre comme un rat au coeur mˆme de la terre !@Lundi, Mardi, Mercredi, Dimanche du 1e lundi au 1e dimanche, tu installeras \"ce rat\" entre chacun des jours . N'omets rien car ta venue serait ta retenue !@Porte ton fardeau comme un oeuf nouveau et donne lui le jour avec force et amour.$", - "10/1/50: Nous avons r‚solu le mystŠre du manuscrit et localis‚ la crypte . Est-ce l'id‚e d'aboutir dans ce qui n'‚tait qu'un \"rŠve\" qui me rend si anxieuse ?@Je regrette de m'ˆtre engag‚e vis … vis de L‚o . Non! je dois continuer ! J'aurais d— mettre Guy au courant... mais, depuis une semaine, je n'ai aucune nouvelle .$", - "Porte ta priŠre au lieu saint qui se doit, changes-en l'air, tu auras la matiŠre !@Du pilier de la haute sagesse, le soleil aux genoux te montrera l'espace par lequel ton …me s'ouvrira un chemin et gagnera son Šre . Avance comme un Orph‚e peu soucieux des t‚nŠbres : le blanc est ta couleur, l'or ta demeure . Eclaire ton chemin jusqu'… la myst‚rieuse . Offre-lui le cercle de l'homme aux trois facettes . Qu'il regagne le monde et qu'il tourne avec lui dans la richesse premiŠre.$", - "Les montagnes sont les crocs d'une gueule dantesque ouverte … l'infini de quelqu' orgie c‚leste, mastiquant des ‚toiles comme nous broyons du noir .@Tu d‚poseras l'accord de pierre … tes pieds, le rire du silence sur la gamme d'en haut et dans ta main droite, une toile d'un mŠtre . Tu passeras ainsi entre les deux croissants, par del… les abŒmes du Mur du Silence . La Cl‚ des champs est … ta port‚e, tu n'as qu'… retrouver la note qui d‚note.$", + "Comme un regard profond tout couvert de peaux-pierres, pointant son oeil obscur aux astres de lumi\212re, il est la gorge reliant le ciel et les enfers . Il faut aller au fond de cette art\212re comme un rat au coeur m\210me de la terre !@Lundi, Mardi, Mercredi, Dimanche du 1e lundi au 1e dimanche, tu installeras \"ce rat\" entre chacun des jours . N'omets rien car ta venue serait ta retenue !@Porte ton fardeau comme un oeuf nouveau et donne lui le jour avec force et amour.$", + "10/1/50: Nous avons r\202solu le myst\212re du manuscrit et localis\202 la crypte . Est-ce l'id\202e d'aboutir dans ce qui n'\202tait qu'un \"r\212ve\" qui me rend si anxieuse ?@Je regrette de m'\210tre engag\202e vis \205 vis de L\202o . Non! je dois continuer ! J'aurais d\227 mettre Guy au courant... mais, depuis une semaine, je n'ai aucune nouvelle .$", + "Porte ta pri\212re au lieu saint qui se doit, changes-en l'air, tu auras la mati\212re !@Du pilier de la haute sagesse, le soleil aux genoux te montrera l'espace par lequel ton \205me s'ouvrira un chemin et gagnera son \212re . Avance comme un Orph\202e peu soucieux des t\202n\212bres : le blanc est ta couleur, l'or ta demeure . Eclaire ton chemin jusqu'\205 la myst\202rieuse . Offre-lui le cercle de l'homme aux trois facettes . Qu'il regagne le monde et qu'il tourne avec lui dans la richesse premi\212re.$", + "Les montagnes sont les crocs d'une gueule dantesque ouverte \205 l'infini de quelqu' orgie c\202leste, mastiquant des \202toiles comme nous broyons du noir .@Tu d\202poseras l'accord de pierre \205 tes pieds, le rire du silence sur la gamme d'en haut et dans ta main droite, une toile d'un m\212tre . Tu passeras ainsi entre les deux croissants, par del\205 les ab\214mes du Mur du Silence . La Cl\202 des champs est \205 ta port\202e, tu n'as qu'\205 retrouver la note qui d\202note.$", " DECEMBRE@ 9 REMISE 518 13 AGIOS 23@ 19 VIREMENT 1203 17 TRESOR 1598@ TOTAL 1721 TOTAL 1721$", - " Le 5/01/51@@ Luc, mon amour@ Guy connaŒt notre liaison . A la suite d'une dispute, je lui ai tout dit . Je ne pense qu'… toi ! Max me relance mais j'ai d‚finitivement rompu avec lui . Qu'il reste … ses gamelles . Quand pourrons-nous nous voir seuls ? Pour toi je divorcerai... Je t'aime .@ ton Eva$", - " Mortevielle, le 10/2/51@@ Pat,@ Je te rappelle que tu me dois 50000 F que je t'ai pr‚t‚s pour ton affaire . J'en ai besoin, peux-tu me les rendre assez vite?@ Guy$", - " Mortevielle, le 15/2/51@ MaŒtre,@ Je vous ‚cris au sujet de notre affaire. Je suis d‚cid‚ … aller jusqu'au bout, certain que mon associ‚, Pat DEFRANCK, a falsifi‚ un livre de comptes . Malgr‚$", + " Le 5/01/51@@ Luc, mon amour@ Guy conna\214t notre liaison . A la suite d'une dispute, je lui ai tout dit . Je ne pense qu'\205 toi ! Max me relance mais j'ai d\202finitivement rompu avec lui . Qu'il reste \205 ses gamelles . Quand pourrons-nous nous voir seuls ? Pour toi je divorcerai... Je t'aime .@ ton Eva$", + " Mortevielle, le 10/2/51@@ Pat,@ Je te rappelle que tu me dois 50000 F que je t'ai pr\202t\202s pour ton affaire . J'en ai besoin, peux-tu me les rendre assez vite?@ Guy$", + " Mortevielle, le 15/2/51@ Ma\214tre,@ Je vous \202cris au sujet de notre affaire. Je suis d\202cid\202 \205 aller jusqu'au bout, certain que mon associ\202, Pat DEFRANCK, a falsifi\202 un livre de comptes . Malgr\202$", " Une pipe$", - " Un stylo … plume$", - " Un briquet … essence$", + " Un stylo \205 plume$", + " Un briquet \205 essence$", " Une cornue$", " Un blaireau$", " Un pot de peinture$", @@ -814,13 +814,13 @@ const char *gameDataFr[] = { " Un vieux bouquin$", " Un porte-monnaie$", " Un poignard$", - " Un r‚volver$", + " Un r\202volver$", " Une bible$", " Une bougie$", - " Un coffret … bijoux$", - " Un fer … repasser$", + " Un coffret \205 bijoux$", + " Un fer \205 repasser$", " Une photo$", - " Une montre … gousset$", + " Une montre \205 gousset$", " Une corde$", " Des clefs$", " Un collier de perles$", @@ -830,9 +830,9 @@ const char *gameDataFr[] = { " Une bourse en cuir$", " Une balle de tennis$", " Des munitions$", - " Un rasoir … main$", - " Une brosse … cheveux$", - " Une brosse … linge$", + " Un rasoir \205 main$", + " Une brosse \205 cheveux$", + " Une brosse \205 linge$", " Un jeu de cartes$", " Un chausse pied$", " Un tournevis$", @@ -843,14 +843,14 @@ const char *gameDataFr[] = { " Un pinceau$", " Une corde$", " Un objet en bois$", - " Des somnifŠres$", + " Des somnif\212res$", " Une bague en or$", - " Un coffret … bijoux$", - " Un r‚veil matin$", + " Un coffret \205 bijoux$", + " Un r\202veil matin$", " Une cotte de mailles$", " Un chandellier$", " Une paire de gants$", - " Une coupe cisel‚e$", + " Une coupe cisel\202e$", " Un parchemin$", " Un poignard$", " Un dossier$", @@ -868,13 +868,13 @@ const char *gameDataFr[] = { "La mort de Julia$", "Les relations de Julia$", "Un message de Julia$", - "L'h‚ritage de Julia$", + "L'h\202ritage de Julia$", "Derniers actes de Julia$", "Les cadeaux de Julia$", "La chambre de Julia$", "La photo chez Julia$", "Julia et vous...$", - "Les occupations de L‚o$", + "Les occupations de L\202o$", "Les occupations de Pat$", "Les occupations de Guy$", "Les occupations de Bob$", @@ -883,7 +883,7 @@ const char *gameDataFr[] = { "Les occupations d'Ida$", "Les occupations de Max$", "Vos occupations$", - "Les relations de L‚o$", + "Les relations de L\202o$", "Les relations de Pat$", "Les relations de Guy$", "Les relations de Bob$", @@ -910,169 +910,169 @@ const char *gameDataFr[] = { "$", "FIN DE LA CONVERSATION$", "Les vieux appelaient ainsi la chaine de montagne qui se dresse au pied du manoir !$", - "C'est le massif montagneux que l'on aper‡oit devant le manoir$", + "C'est le massif montagneux que l'on aper\207oit devant le manoir$", "Je n'en sais rien !$", "Elle est morte d'une embolie pulmonaire$", - "Ma m‚re est morte soudainement . Son ‚tat semblait pourtant s'ˆtre am‚lior‚$", + "Ma m\202re est morte soudainement . Son \202tat semblait pourtant s'\210tre am\202lior\202$", "Madame DEFRANCK est morte d'un coup de froid$", "Elle est morte d'une embolie pulmonaire$", - "Pardonnez moi mais je pr‚fŠre, actuellement garder le silence$", + "Pardonnez moi mais je pr\202f\212re, actuellement garder le silence$", "Ce sont toujours les meilleurs qui partent les premiers$", - "J'aimais beaucoup ma mŠre . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", - "C'est une r‚gion qui a un pass‚ charg‚ et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", - "C'est un passionn‚ d'histoire et un joueur inv‚t‚r‚ . D'ailleurs, voici un an il a gagn‚ une grosse somme$", - "Il a d‚j… beaucoup a faire avec la gestion et l'entretien du manoir...$", - "Je suis PDG d'une petite soci‚t‚ de parfums . Mais quand je suis ici, je me repose$", - "C'est un homme dynamique qui a r‚ussi dans le parfum$", - "Lui ! C'est un arriviste v‚reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir‚es dans sa chambre$", - "J'ai ‚t‚ trŠs pr‚occup‚ par la sant‚ de ma mŠre, et maintenant je n'ai plus go–t … rien$", - "Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa mŠre$", + "J'aimais beaucoup ma m\212re . Je regrette seulement qu'elle soit morte dans le manoir des DEFRANCK$", + "C'est une r\202gion qui a un pass\202 charg\202 et j'ai largement de quoi m'occuper . Et puis j'aime beaucoup les chevaux..$", + "C'est un passionn\202 d'histoire et un joueur inv\202t\202r\202 . D'ailleurs, voici un an il a gagn\202 une grosse somme$", + "Il a d\202j\205 beaucoup a faire avec la gestion et l'entretien du manoir...$", + "Je suis PDG d'une petite soci\202t\202 de parfums . Mais quand je suis ici, je me repose$", + "C'est un homme dynamique qui a r\202ussi dans le parfum$", + "Lui ! C'est un arriviste v\202reux ! Les parfums ont du endormir son bon sens . D'ailleurs ici il passe ses soir\202es dans sa chambre$", + "J'ai \202t\202 tr\212s pr\202occup\202 par la sant\202 de ma m\212re, et maintenant je n'ai plus go\226t \205 rien$", + "Il aurait mieux fait de s'occuper un peu plus de moi et un peu moins de sa m\212re$", "Ce sont ses affaires...$", "Il n'a pas trop de chance en ce moment bien que ses affaires soient satisfaisantes$", - "Je travaille avec Pat mais ‡a ne va pas trŠs fort en ce moment$", - "Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s‚rieusement alors$", - "Lui et Pat sont associ‚s . Je crois que ‡a ne va pas trop mal$", - "Je m'occupe de moi et c'est d‚j… beaucoup . Et vous ?$", - "Oh ‡a ! Je lui fais confiance . Elle sait s'occuper$", - "Mais ! Vous n'avez pas encore d‚couvert son occupation principale..?$", - "Elle fait dans la d‚coration avec beaucoup dego–t d'ailleurs. Elle est toujours trŠs bien habill‚e$", - "Si les bijoux vous interessent, j'ai quelques affaires interessantes … saisir rapidement$", + "Je travaille avec Pat mais \207a ne va pas tr\212s fort en ce moment$", + "Ah oui ?! Il a des occupations ? Il ferait bien de s'en occuper s\202rieusement alors$", + "Lui et Pat sont associ\202s . Je crois que \207a ne va pas trop mal$", + "Je m'occupe de moi et c'est d\202j\205 beaucoup . Et vous ?$", + "Oh \207a ! Je lui fais confiance . Elle sait s'occuper$", + "Mais ! Vous n'avez pas encore d\202couvert son occupation principale..?$", + "Elle fait dans la d\202coration avec beaucoup dego\226t d'ailleurs. Elle est toujours tr\212s bien habill\202e$", + "Si les bijoux vous interessent, j'ai quelques affaires interessantes \205 saisir rapidement$", "Les bijoux...$", "Je ne sais pas, mais j'aimerais bien qu'il s'occupe un peu moins de mes affaires !$", - "Quand on est une femme d'int‚rieur on trouve toujours de quoi s'occuper...$", + "Quand on est une femme d'int\202rieur on trouve toujours de quoi s'occuper...$", "Elle pourrait rester sans rien faire, mais non ! Elle coud, elle lit ...$", - "Elle n'a s–rement pas des occupations trŠs ‚panouissantes ...$", + "Elle n'a s\226rement pas des occupations tr\212s \202panouissantes ...$", "Une femme comme il n'y en a plus : Elle s'interesse a tout !$", - "Entre la cuisine et le m‚nage, je n'ai pas beaucoup de temps … vous accorder$", + "Entre la cuisine et le m\202nage, je n'ai pas beaucoup de temps \205 vous accorder$", "Je ne sais pas comment il s'y prend pour tout faire . C'est merveilleux !$", - "Il en ferait plus si il s'occupait moins des rag“ts et de la bouteille$", - "Je suis trŠs ind‚pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de problŠme$", - "C'est un ‚go‹ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", - "Je crois qu'il s'entend bien avec tout le monde, mis … part, peut ˆtre, avec Guy$", - "C'est un homme de caractŠre . Il faut savoir le prendre ..$", - "Les affaires sont les affaires . Quant … la famille, je la laisse pour ce qu'elle est ...$", - "Relations ? Relations amicales ? Relations financiŠres sans doute$", - "Moi je n'ai rien … lui reprocher$", - "C'est un homme d'affaire d‚brouillard . Il nage parfois … contre-courant mais ... il s'en sortira toujours$", - "Ils m'ennuient tous .. Non ! Ce n'est mˆme pas ‡a .. Quoique .. certains ..$", - "A l'inverse de sa mŠre, c'est une personne trŠs renferm‚e ! Alors question relations ..$", - "Il doit sans doute faire beaucoup d'effort pour rester agr‚able malgr‚ tous ses ennuis$", - "Ses relations amoureuses : C'est termin‚ . Ses relations avec moi : Pas vraiment commenc‚es . Quant aux autres : Je ne suis pas les \"autres\"$", + "Il en ferait plus si il s'occupait moins des rag\223ts et de la bouteille$", + "Je suis tr\212s ind\202pendant . Tant qu'on ne s'occupe pas de mes affaires : Pas de probl\212me$", + "C'est un \202go\213ste . Je me demande si il aime autre chose que ses chevaux et ses grimoires$", + "Je crois qu'il s'entend bien avec tout le monde, mis \205 part, peut \210tre, avec Guy$", + "C'est un homme de caract\212re . Il faut savoir le prendre ..$", + "Les affaires sont les affaires . Quant \205 la famille, je la laisse pour ce qu'elle est ...$", + "Relations ? Relations amicales ? Relations financi\212res sans doute$", + "Moi je n'ai rien \205 lui reprocher$", + "C'est un homme d'affaire d\202brouillard . Il nage parfois \205 contre-courant mais ... il s'en sortira toujours$", + "Ils m'ennuient tous .. Non ! Ce n'est m\210me pas \207a .. Quoique .. certains ..$", + "A l'inverse de sa m\212re, c'est une personne tr\212s renferm\202e ! Alors question relations ..$", + "Il doit sans doute faire beaucoup d'effort pour rester agr\202able malgr\202 tous ses ennuis$", + "Ses relations amoureuses : C'est termin\202 . Ses relations avec moi : Pas vraiment commenc\202es . Quant aux autres : Je ne suis pas les \"autres\"$", "J'aime bien tout le monde, tant qu'on ne m'escroque pas$", - "Il ne suffit pas d'avoir un peu d'argent et d'ˆtre beau parleur pour plaire … tout le monde$", - "Sans histoire .. C'est quelqu'un d'agr‚able et g‚n‚reux . De plus, il ne manque pas d'humour$", - "Actuellement je m'entends plut“t bien avec tout le monde . Mais, ici, je ne vais pas m'‚tendre sur le sujet$", - "Beau plumage, mais ‡a ne vole pas haut ... Parlez en … son mari$", + "Il ne suffit pas d'avoir un peu d'argent et d'\210tre beau parleur pour plaire \205 tout le monde$", + "Sans histoire .. C'est quelqu'un d'agr\202able et g\202n\202reux . De plus, il ne manque pas d'humour$", + "Actuellement je m'entends plut\223t bien avec tout le monde . Mais, ici, je ne vais pas m'\202tendre sur le sujet$", + "Beau plumage, mais \207a ne vole pas haut ... Parlez en \205 son mari$", "C'est pour un rendez-vous ?$", - "Elle est trŠs vivante ! Elle ne s'embarrasse pas de pr‚jug‚s stupides$", - "Dans mon m‚tier, on c“toit surtout des belles femmes et des truands$", - "La seule valeur s–re chez lui, c'est ses bijoux .. Et sa femme, mais ‡a il ne s'en rend pas compte$", - "C'est quelqu'un d'interessant . De pas toujours facile … comprendre, mais qui m‚rite le d‚tour$", - "Je ne d‚teste personne, mais j'aime les choses et les gens quand ils sont … leur place$", - "C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite … l'‚troit !$", - "Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont‚$", - "Vous savez dans mon m‚tier on entend tout mais on ne retient rien, et le service est bien fait$", + "Elle est tr\212s vivante ! Elle ne s'embarrasse pas de pr\202jug\202s stupides$", + "Dans mon m\202tier, on c\223toit surtout des belles femmes et des truands$", + "La seule valeur s\226re chez lui, c'est ses bijoux .. Et sa femme, mais \207a il ne s'en rend pas compte$", + "C'est quelqu'un d'interessant . De pas toujours facile \205 comprendre, mais qui m\202rite le d\202tour$", + "Je ne d\202teste personne, mais j'aime les choses et les gens quand ils sont \205 leur place$", + "C'est entre nous . Mais voyez : quand je parle avec elle, je me sens vite \205 l'\202troit !$", + "Pour ne pas s'entendre avec elle, faut y mettre de la mauvaise volont\202$", + "Vous savez dans mon m\202tier on entend tout mais on ne retient rien, et le service est bien fait$", "C'est un hypocrite, un larbin ! Personnellement je ne lui fais pas confiance$", - "Je ne connait pas le fond de sa pens‚e mais c'est quelqu'un de toujours trŠs correct et impeccable$", - "C'‚tait une personne qui a v‚cu au manoir, il y a un an .. peut ˆtre plus$", - "C'‚tait plus qu'une amie pour ma mŠre . En ces moments, j'aurais aim‚ qu'elle soit … mes cot‚s$", - "Murielle a ‚t‚ la dame de compagnie de Julia$", + "Je ne connait pas le fond de sa pens\202e mais c'est quelqu'un de toujours tr\212s correct et impeccable$", + "C'\202tait une personne qui a v\202cu au manoir, il y a un an .. peut \210tre plus$", + "C'\202tait plus qu'une amie pour ma m\212re . En ces moments, j'aurais aim\202 qu'elle soit \205 mes cot\202s$", + "Murielle a \202t\202 la dame de compagnie de Julia$", "Elle aussi, faisait des recherches ...$", - "C'‚tait une femme trŠs cultiv‚e . Son brusque d‚part, il y a un an, m'a surpris et beaucoup chagrin‚$", - "Elle partageait avec L‚o sa passion de l'histoire et de la r‚gion$", + "C'\202tait une femme tr\212s cultiv\202e . Son brusque d\202part, il y a un an, m'a surpris et beaucoup chagrin\202$", + "Elle partageait avec L\202o sa passion de l'histoire et de la r\202gion$", "Je crois que tout le monde l'aimait bien$", - "Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-mŠre, belle-fille ..$", - "A part L‚o, elle avait de trŠs bon rapport avec Max ...$", - "Bien que vos relations furent peu soutenues, J‚r“me, elle vous portait toujours dans son coeur ...$", + "Elle s'entendait bien avec tout le monde . Elle aimait beaucoup son fils . Quant aux relations belle-m\212re, belle-fille ..$", + "A part L\202o, elle avait de tr\212s bon rapport avec Max ...$", + "Bien que vos relations furent peu soutenues, J\202r\223me, elle vous portait toujours dans son coeur ...$", "A part sa famille, pas grand monde$", - "Ah oui ! Je crois qu'elle a beaucoup regrett‚ le d‚part de cette amie .. euh ! Marielle .. ou Mireille ...$", + "Ah oui ! Je crois qu'elle a beaucoup regrett\202 le d\202part de cette amie .. euh ! Marielle .. ou Mireille ...$", "Non rien !$", "Non ... Pas que le sache$", - "J'ai connu Julia en achetant le manoir . C'‚tait son seul bien . Mais toute ma fortune ‚tait la sienne ...$", - "Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien … elle$", - "Je crois que toute sa fortune venait de L‚o . Alors, Pfuuut !$", - "A part la lettre pour vous que j'ai post‚, rien de bien important !$", - "J'ai ‚t‚ trŠs heureuse qu'elle m'offre sa bible reli‚e$", - "Ca a ‚t‚ rapide et elle n'a pas eu le temps de prendre des dispositions particuliŠres$", - "Son dernier pr‚sent m'a surpris$", + "J'ai connu Julia en achetant le manoir . C'\202tait son seul bien . Mais toute ma fortune \202tait la sienne ...$", + "Si ce n'est quelques objets personnels, je crois qu'elle n'avait plus rien \205 elle$", + "Je crois que toute sa fortune venait de L\202o . Alors, Pfuuut !$", + "A part la lettre pour vous que j'ai post\202, rien de bien important !$", + "J'ai \202t\202 tr\212s heureuse qu'elle m'offre sa bible reli\202e$", + "Ca a \202t\202 rapide et elle n'a pas eu le temps de prendre des dispositions particuli\212res$", + "Son dernier pr\202sent m'a surpris$", "Quel cadeau ?$", "Un chandellier ...$", - "Oui, j'ai eu un cadeau . Ma femme a mˆme eu une bible$", + "Oui, j'ai eu un cadeau . Ma femme a m\210me eu une bible$", "Et bien oui ! Comme tout le monde, je crois$", "Un poignard$", - "Je n'ai jamais ‚t‚ fouiller dans le grenier !$", + "Je n'ai jamais \202t\202 fouiller dans le grenier !$", "Vous avez un don de double-vue ou un passe-partout$", "Le portrait d'une jeune fille : C'est Murielle ...$", "Vous savez, je la connaissais assez peu$", - "Elle ‚tait trŠs charmante, mais c'‚tait surtout la dame de compagnie de Julia$", - "C'est la seule femme vraiment interessante que j'ai rencontr‚$", - "Elle avait de grandes connaissances historiques, et la consulter ‚tait trŠs enrichissant$", - "Je me suis toujours demand‚ ce que certains pouvaient lui trouver !$", - "Si la chambre est ferm‚e, demandez … L‚o$", - "J'ai ferm‚ sa chambre aprŠs sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", + "Elle \202tait tr\212s charmante, mais c'\202tait surtout la dame de compagnie de Julia$", + "C'est la seule femme vraiment interessante que j'ai rencontr\202$", + "Elle avait de grandes connaissances historiques, et la consulter \202tait tr\212s enrichissant$", + "Je me suis toujours demand\202 ce que certains pouvaient lui trouver !$", + "Si la chambre est ferm\202e, demandez \205 L\202o$", + "J'ai ferm\202 sa chambre apr\212s sa mort et j'aimerais qu'il en soit ainsi encore un certain temps$", "Vous savez ce que c'est : Des relations familiales$", - "Durant toutes ces ann‚es, je ne l'ai jamais servie … contre-coeur$", + "Durant toutes ces ann\202es, je ne l'ai jamais servie \205 contre-coeur$", "Je l'aimais autant qu'elle m'aimais, je crois$", - "De quel droit avez-vous p‚n‚tr‚ dans la chambre de ma femme ?!!$", + "De quel droit avez-vous p\202n\202tr\202 dans la chambre de ma femme ?!!$", "C'est sans doute la photo de Murielle avec le filleul de Julia$", "Je ne me rappelle pas$", - "C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir‚e … l'envers$", - "Vous ˆtes bien curieux !... C'est sans valeur$", - "Grimoires, parchemins et manuscrits : C'est le domaine de L‚o$", + "C'est Murielle . C'est moi qui l'ai prise. et d'ailleurs elle est tir\202e \205 l'envers$", + "Vous \210tes bien curieux !... C'est sans valeur$", + "Grimoires, parchemins et manuscrits : C'est le domaine de L\202o$", "Dommage que la devise soit manquante ...$", - "C'est trŠs beau ... Et trŠs vieux ...$", - "Tiens ! C'est un endroit que je n'ai jamais visit‚$", - "D'apr‚s L‚o, il semblerait que les Lunes soient plus r‚centes$", - "Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", - "Profond et inqui‚tant : Le progrŠs a du bon$", - "Ca reste pour moi le plus grand des mystŠres$", + "C'est tr\212s beau ... Et tr\212s vieux ...$", + "Tiens ! C'est un endroit que je n'ai jamais visit\202$", + "D'apr\202s L\202o, il semblerait que les Lunes soient plus r\202centes$", + "M\210me par ce temps, vous avez d\202nich\202 un soleil ...$", + "Profond et inqui\202tant : Le progr\212s a du bon$", + "Ca reste pour moi le plus grand des myst\212res$", "Les derniers temps elle parlait d'un voyage . Et puis ...$", - "Il y a un peu plus d'un an, un soir, elle a d‚cid‚ de partir ...$", - "De toutes fa‡ons elle n'‚tait pas faite pour vivre ici$", + "Il y a un peu plus d'un an, un soir, elle a d\202cid\202 de partir ...$", + "De toutes fa\207ons elle n'\202tait pas faite pour vivre ici$", "Quoi ?! Quel corps ? Quel crypte ?$", - "Si il y en a, je ne les ai jamais trouv‚ ...$", - "Bien s–r ! ... Et des fant“mes aussi ...$", - "C'est la plus vielle de la r‚gion : Elle date du XI eme siŠcle$", - "Elle fut l‚gŠrement restaur‚e aprŠs la r‚volution$", + "Si il y en a, je ne les ai jamais trouv\202 ...$", + "Bien s\226r ! ... Et des fant\223mes aussi ...$", + "C'est la plus vielle de la r\202gion : Elle date du XI eme si\212cle$", + "Elle fut l\202g\212rement restaur\202e apr\212s la r\202volution$", "Julia aimait beaucoup la peinture$", - "Ils ont diff‚rents styles, mais n'ont pas tous une trŠs grande valeur$", - "Que faites-vous l… ?$", - "Je suis s–r que vous cherchez quelque chose ici$", - "Je vous ‚coute$", - "Que d‚sirez-vous ?$", + "Ils ont diff\202rents styles, mais n'ont pas tous une tr\212s grande valeur$", + "Que faites-vous l\205 ?$", + "Je suis s\226r que vous cherchez quelque chose ici$", + "Je vous \202coute$", + "Que d\202sirez-vous ?$", "Oui ?$", - "Je suis … vous ...$", + "Je suis \205 vous ...$", "C'est pourquoi ?$", "Allez-y$", - "C'est … quel sujet ?$", - "Max : … votre service, monsieur$", - "De toutes fa‡ons vous n'avez rien … faire ici ! Sortez !!$", - "Vous ˆtes trop curieux !$", - "J‚r“me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L‚o, son mari bien s–r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La tempŠte redouble, il vous faut rester . Les repas sont … 12h et 19h et il y a un recueillement … la chapelle tous les jours … 10h$", - "En vous voyant j'ai compris que vous decouvririez la v‚rit‚ ... Car je savais pourquoi vous veniez : J'avais retrouv‚ le brouillon de la lettre de Julia . Mais je suis trŠs joueur, alors ... Elle n'avait pas voulu que votre tƒche soit trop facile, pour me prot‚ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d‚couvert que le mur du silence est le nom que les ma‡ons ont donn‚ au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss‚ avant de mourir ‚taient autant de faux indices qui ne servaient qu'… faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d‚cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv‚ un jour dans mes affaires . Une nuit, nous nous sommes aventur‚s dans le passage secret que nous avions d‚couvert . Murielle est morte par accident dans la piŠce de la vierge . J'ai r‚cup‚r‚ la bague rapidement, trouv‚ le tr‚sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'ˆtes pas de la police . Laissez moi seul !$", - "F‚vrier 1951 ... Profession : detective priv‚ . Le froid figeait Paris et mes affaires lorsque ...$", - "Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les piŠces d‚labr‚es du manoir de Mortevielle . Julia, une vieille femme a pr‚sent .$", + "C'est \205 quel sujet ?$", + "Max : \205 votre service, monsieur$", + "De toutes fa\207ons vous n'avez rien \205 faire ici ! Sortez !!$", + "Vous \210tes trop curieux !$", + "J\202r\223me ! Il y a longtemps ... Quelle tristesse, Julia est morte . Sa famille est ici : Guy, son fils . Eva, sa brue . L\202o, son mari bien s\226r . Son beau fils, Pat . Des cousins : Bob, Ida, Luc . La temp\212te redouble, il vous faut rester . Les repas sont \205 12h et 19h et il y a un recueillement \205 la chapelle tous les jours \205 10h$", + "En vous voyant j'ai compris que vous decouvririez la v\202rit\202 ... Car je savais pourquoi vous veniez : J'avais retrouv\202 le brouillon de la lettre de Julia . Mais je suis tr\212s joueur, alors ... Elle n'avait pas voulu que votre t\203che soit trop facile, pour me prot\202ger, sans doute, mais elle n'a pu mourir avec cette incertitude sur la conscience . Avez vous d\202couvert que le mur du silence est le nom que les ma\207ons ont donn\202 au mur qui porte ce blason, lors de la construction du manoir ? .. Et ces cadeaux que Julia a laiss\202 avant de mourir \202taient autant de faux indices qui ne servaient qu'\205 faire ressortir l'importance des parchemins ... Effectivement, il y a plus d'un an, je travailais avec Murielle au d\202cryptage de ces manuscrits que je venais de trouver . Ma femme a fait la relation entre notre travail et la disparition de Murielle mais elle n'a jamais eu de preuves . Si ce n'est cette bague qu'elle a retrouv\202 un jour dans mes affaires . Une nuit, nous nous sommes aventur\202s dans le passage secret que nous avions d\202couvert . Murielle est morte par accident dans la pi\212ce de la vierge . J'ai r\202cup\202r\202 la bague rapidement, trouv\202 le tr\202sor et me suis enfuis . Je ne pensais pas qu'elle vivait encore, et je n'ai rien dit car j'avais besoin d'argent . J'ai fait passer cette somme sur le compte des courses de chevaux ...Partez maintenant, puisque vous n'\210tes pas de la police . Laissez moi seul !$", + "F\202vrier 1951 ... Profession : detective priv\202 . Le froid figeait Paris et mes affaires lorsque ...$", + "Une lettre, un appel, des souvenirs d'une enfance encore proche . Que de jeux dans les pi\212ces d\202labr\202es du manoir de Mortevielle . Julia, une vieille femme a pr\202sent .$", " au bureau$", - " … la cuisine$", - " … la cave$", + " \205 la cuisine$", + " \205 la cave$", " dans le couloir$", " dehors$", - " la salle … manger$", + " la salle \205 manger$", " dans le manoir$", " devant le manoir$", - " … la chapelle$", + " \205 la chapelle$", " devant le puits$", " au nord$", - " derriŠre le manoir$", + " derri\212re le manoir$", " au sud$", - " … l'est$", - " … l'ouest$", + " \205 l'est$", + " \205 l'ouest$", " vers le manoir$", " plus loin$", " dans l'eau$", " hors du puits$", " dans le puits$", - " choix sur ‚cran$", + " choix sur \202cran$", " Dans la serie MYSTERE...$", " LE MANOIR DE MORTEVIELLE$", "$", @@ -1095,9 +1095,9 @@ const char *gameDataFr[] = { " A VOUS DE JOUER$", " attacher$", " attendre$", - " d‚foncer$", + " d\202foncer$", " dormir$", - " ‚couter$", + " \202couter$", " entrer$", " fermer$", " fouiller$", @@ -1119,7 +1119,7 @@ const char *gameDataFr[] = { " lire$", " poser$", " regarder$", - " L‚o$", + " L\202o$", " Pat$", " Guy$", " Eva$", @@ -1128,40 +1128,40 @@ const char *gameDataFr[] = { " Ida$", " Max$", "Comment Julia est-elle morte ?$", - "Elle s'est suicid‚e$", - "Elle est morte assassin‚e$", + "Elle s'est suicid\202e$", + "Elle est morte assassin\202e$", "Elle est morte accidentellement$", "Elle est morte naturellement$", - "D'o— provenait l'argent qui a permis la restauration du manoir ?$", + "D'o\227 provenait l'argent qui a permis la restauration du manoir ?$", "chantage$", "travail$", - "h‚ritage$", + "h\202ritage$", "courses$", "rentes$", "hold-up$", - "d‚couverte$", - "Quel est le hobby de L‚o ?$", + "d\202couverte$", + "Quel est le hobby de L\202o ?$", "recherches historiques$", "politique$", "peinture$", "drogue$", "sciences occultes$", "direction d'une secte$", - "Julia a laiss‚ une s‚rie d'indices . Ceux-ci sont repr‚sent‚s en un seul lieu . Lequel ?$", + "Julia a laiss\202 une s\202rie d'indices . Ceux-ci sont repr\202sent\202s en un seul lieu . Lequel ?$", "Chapelle$", - "Ext‚rieur$", + "Ext\202rieur$", "Cave$", "Grenier$", "Cuisine$", - "Salle … manger$", + "Salle \205 manger$", "Chambre Julia$", - "Chambre L‚o$", + "Chambre L\202o$", "Chambre Pat$", "Chambre Bob$", "Chambre Max$", "Chambre Luc/Ida$", "Chambre Guy/Eva$", - "L'indice principal qui vous a permis d'arriver … la porte du souterrain est :$", + "L'indice principal qui vous a permis d'arriver \205 la porte du souterrain est :$", "Un poignard$", "Une bague$", "Un livre$", @@ -1175,30 +1175,30 @@ const char *gameDataFr[] = { "Trois$", "Quatre$", "Cinq$", - "Combien de personnes sont m‚l‚es … cette histoire - Julia y comprise, vous except‚ - ?$", + "Combien de personnes sont m\202l\202es \205 cette histoire - Julia y comprise, vous except\202 - ?$", "Neuf$", "Dix$", "Onze$", - "Quel ‚tait le pr‚nom de la personne inconnue ?$", + "Quel \202tait le pr\202nom de la personne inconnue ?$", "Mireille$", - "Fran‡oise$", + "Fran\207oise$", "Maguy$", "Emilie$", "Murielle$", "Sophie$", - "De qui Murielle ‚tait-elle la maŒtresse ?$", + "De qui Murielle \202tait-elle la ma\214tresse ?$", "Bob$", "Luc$", "Guy$", - "L‚o$", + "L\202o$", "Max$", "Murielle partageait une occupation avec une autre personne . Qui ?$", - "[1][ |Seul le hazard vous a permis d'arriver ici . Vous pr‚f‚rez|retourner enqu‚ter afin de mieux comprendre ...][ok]$", - "[1][ |Ins‚rez la disquette 1 dans le lecteur A][ok]$", + "[1][ |Seul le hazard vous a permis d'arriver ici . Vous pr\202f\202rez|retourner enqu\202ter afin de mieux comprendre ...][ok]$", + "[1][ |Ins\202rez la disquette 1 dans le lecteur A][ok]$", "[1][ |! ERREUR DISQUETTE !|On arrete tout][ok]$", - "[1][ |Vous devriez avoir remarqu‚|00% des indices][ok]$", - "[1][ |Ins‚rez la disquette 2 dans le lecteur A][ok]$", - "[1][ |Avant d'aller plus loin, vous faites|un point sur l'‚tat de vos connaissances][ok]$", + "[1][ |Vous devriez avoir remarqu\202|00% des indices][ok]$", + "[1][ |Ins\202rez la disquette 2 dans le lecteur A][ok]$", + "[1][ |Avant d'aller plus loin, vous faites|un point sur l'\202tat de vos connaissances][ok]$", " MASTER .$", " rorL$", }; @@ -1234,7 +1234,7 @@ const char *gameDataDe[] = { "Die Wappen$", "$", "Max, der Diener, empfaengt Sie und wird Sie dann in Ihr Zimmer begleiten$", - " Morteville 16/2/51@ Mein lieber Jer“me@Im Anschluss an mein Telegramm teile ich Ihnen die Gruende meiner Unruhe mit: vor 1 Jahr verschwand meine Gesellschafterin Murielle. Eventuell hat das Verschwinden etwas mit dem finanziel len Umschwung auf dem Landsitz zu tun, oder... Eine Stille, die schwer zu verstehen ist fuer mei-nen Sohn Guy. Da ich bis heute nichts bezueglich dieser Sache unternehmen konnte, zaehle ich auf Sie, um die Affaere zu regeln. Falls sich mein Gesundheitszustand nicht bessert, treffen Sie bitte die Entscheidungen, die Sie fuer richtig halten. @ In Freundschaft. JULIA DEFRANCK$", + " Morteville 16/2/51@ Mein lieber Jer\223me@Im Anschluss an mein Telegramm teile ich Ihnen die Gruende meiner Unruhe mit: vor 1 Jahr verschwand meine Gesellschafterin Murielle. Eventuell hat das Verschwinden etwas mit dem finanziel len Umschwung auf dem Landsitz zu tun, oder... Eine Stille, die schwer zu verstehen ist fuer mei-nen Sohn Guy. Da ich bis heute nichts bezueglich dieser Sache unternehmen konnte, zaehle ich auf Sie, um die Affaere zu regeln. Falls sich mein Gesundheitszustand nicht bessert, treffen Sie bitte die Entscheidungen, die Sie fuer richtig halten. @ In Freundschaft. JULIA DEFRANCK$", "Spaeter erzaehlt Ihnen Guy von Leo's Selbstmord nach einer verrueckten Wette beim Rennen!$", "F3: WIEDERHOLUNG@F8: STOP$", "Der Hausherr$", @@ -1611,7 +1611,7 @@ const char *gameDataDe[] = { "Das ist sehr schoen und sehr alt.$", "Das ist ein Ort, den ich nie gesehen habe.$", "Leos Meinung nach schien es, als seien die Monde spaeter gemacht worden.$", - "Mˆme par ce temps, vous avez d‚nich‚ un soleil ...$", + "M\210me par ce temps, vous avez d\202nich\202 un soleil ...$", "Tief und beunruhigend. Der Fortschritt hat gutes an sich.$", "Der Rest bleibt fuer mich eines der groessten Raetsel.$", "In letzter Zeit sprach sie oft von einer Reise und dann...$", @@ -1762,14 +1762,14 @@ const char *gameDataDe[] = { "zwei$", "drei$", "vier$", - "fnf$", + "f\201nf$", " Wieviele Personen sind in die Geschichte verwickelt ? (Julia eingeschlossen, ausgenommen Sie)$", "neun$", "zehn$", "elf$", " Wie war der Name der unbekannten Person ?$", "Mireille$", - "Fran‡oise$", + "Fran\207oise$", "Maguy$", "Emilie$", "Murielle$", -- cgit v1.2.3 From c16d414e9bba20f9154f6e7873bc35e1dbe2fdde Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Sat, 13 Jul 2013 22:44:07 +0100 Subject: MORTEVIELLE: Fix typo in English text --- devtools/create_mortdat/enginetext.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/enginetext.h b/devtools/create_mortdat/enginetext.h index f785c4d974..6095f09360 100644 --- a/devtools/create_mortdat/enginetext.h +++ b/devtools/create_mortdat/enginetext.h @@ -29,7 +29,7 @@ const char *engineDataEn[] = { "[2][ ][YES][NO]", "Go to", - "Someone enters, looks surised, but says nothing", + "Someone enters, looks surprised, but says nothing", " Cool ", "Oppressive", " Tense ", @@ -136,7 +136,7 @@ const char *engineDataFr[] = { const char *engineDataDe[] = { "[2][ ][JA][NEIN]", "Go to", - "Someone enters, looks surised, but says nothing", + "Someone enters, looks surprised, but says nothing", "Cool", "Schwer", "Ungesund", -- cgit v1.2.3 From 989ea7cb56245ce1918ddf54c2e06973ebcd6239 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Sun, 14 Jul 2013 19:01:47 +0200 Subject: JANITORIAL: Remove trailing whitespace --- devtools/create_neverhood/create_neverhood.cpp | 74 +++++++++++++------------- devtools/create_neverhood/tables.h | 2 +- devtools/create_teenagent/static_tables.h | 2 +- 3 files changed, 39 insertions(+), 39 deletions(-) (limited to 'devtools') diff --git a/devtools/create_neverhood/create_neverhood.cpp b/devtools/create_neverhood/create_neverhood.cpp index f34f20882c..446ee5ec3b 100644 --- a/devtools/create_neverhood/create_neverhood.cpp +++ b/devtools/create_neverhood/create_neverhood.cpp @@ -69,13 +69,13 @@ bool loadExe(const char *filename) { bool validateMd5() { uint8 digest[16]; - + md5_buffer(data, dataSize, digest); - + printf("MD5 of nhc.exe is %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", - digest[0], digest[1], digest[2], digest[3], digest[4], digest[5], digest[6], digest[7], + digest[0], digest[1], digest[2], digest[3], digest[4], digest[5], digest[6], digest[7], digest[8], digest[9], digest[10], digest[11], digest[12], digest[13], digest[14], digest[15]); - + if (memcmp(kNhcExeMd5, digest, 16)) { printf("MD5 hash of nhc.exe doesn't match the expected value! Quitting...\n"); return false; @@ -112,7 +112,7 @@ uint32 calcHash(const char *value) { struct HitRect { int16 x1, y1, x2, y2; uint16 messageNum; - + void load(uint32 offset) { byte *item = getData(offset); x1 = READ_LE_UINT16(item + 0); @@ -120,7 +120,7 @@ struct HitRect { x2 = READ_LE_UINT16(item + 4); y2 = READ_LE_UINT16(item + 6); messageNum = READ_LE_UINT16(item + 8); - } + } void save(FILE *fd) { writeUint16LE(fd, x1); @@ -129,11 +129,11 @@ struct HitRect { writeUint16LE(fd, y2); writeUint16LE(fd, messageNum); } - + int getItemSize() const { return 10; } - + }; struct MessageItem { @@ -141,22 +141,22 @@ struct MessageItem { uint32 messageParam; MessageItem() {} MessageItem(uint16 msgNum, uint32 msgParam) : messageNum(msgNum), messageParam(msgParam) {} - + void load(uint32 offset) { byte *item = getData(offset); messageNum = READ_LE_UINT16(item + 0); messageParam = READ_LE_UINT32(item + 4); - } + } void save(FILE *fd) { writeUint16LE(fd, messageNum); writeUint32LE(fd, messageParam); } - + int getItemSize() const { return 8; } - + }; struct SubRectItem { @@ -175,7 +175,7 @@ struct SubRectItem { // Add the message to the message list addMessageList(messageListCount, messageListOffset); } - + void save(FILE *fd) { writeUint16LE(fd, x1); writeUint16LE(fd, y1); @@ -183,11 +183,11 @@ struct SubRectItem { writeUint16LE(fd, y2); writeUint32LE(fd, messageListOffset); } - + int getItemSize() const { return 16; } - + }; struct RectItem { @@ -212,7 +212,7 @@ struct RectItem { subItemOffset += 16; subRectItems.push_back(subRectItem); } - } + } void save(FILE *fd) { writeUint16LE(fd, x1); @@ -223,11 +223,11 @@ struct RectItem { for (uint32 j = 0; j < subRectItems.size(); j++) subRectItems[j].save(fd); } - + int getItemSize() const { return 16; } - + }; struct NavigationItem { @@ -238,10 +238,10 @@ struct NavigationItem { byte interactive; byte middleFlag; uint32 mouseCursorFileHash; - + void load(uint32 offset) { byte *item = getData(offset); - fileHash = READ_LE_UINT32(item + 0); + fileHash = READ_LE_UINT32(item + 0); leftSmackerFileHash = READ_LE_UINT32(item + 4); rightSmackerFileHash = READ_LE_UINT32(item + 8); middleSmackerFileHash = READ_LE_UINT32(item + 12); @@ -263,7 +263,7 @@ struct NavigationItem { int getItemSize() const { return 24; } - + }; struct SceneInfo140Item { @@ -347,24 +347,24 @@ struct SceneInfo2700Item { template class StaticDataList { public: - uint32 id; + uint32 id; std::vector items; - + virtual ~StaticDataList() { } - + void add(ITEMCLASS item) { items.push_back(item); } - + int getCount() const { return items.size(); } - + ITEMCLASS *getListItem(int index) { return &items[index]; } - + virtual bool specialLoadList(uint32 count, uint32 offset) { return false; } @@ -398,7 +398,7 @@ class RectList : public StaticDataList { }; class MessageList : public StaticDataList { -public: +public: virtual bool specialLoadList(uint32 count, uint32 offset) { // Special code for message lists which are set at runtime (but otherwise constant) @@ -455,7 +455,7 @@ public: } return false; } - + }; class NavigationList : public StaticDataList { @@ -465,11 +465,11 @@ template class StaticDataListVector { public: std::vector lists; - + void add(LISTCLASS *list) { lists.push_back(list); } - + void loadListVector(const uint32 *offsets) { for (int i = 0; offsets[i] != 0; i += 2) { LISTCLASS *list = new LISTCLASS(); @@ -486,7 +486,7 @@ public: lists.push_back(list); } } - + void saveListVector(FILE *fd) { writeUint32LE(fd, lists.size()); for (typename std::vector::iterator it = lists.begin(); it != lists.end(); it++) { @@ -500,7 +500,7 @@ template class StaticDataVector { public: std::vector items; - + void loadVector(const uint32 *offsets) { for (int i = 0; offsets[i] != 0; i++) { ITEMCLASS item; @@ -508,7 +508,7 @@ public: items.push_back(item); } } - + void saveVector(FILE *fd) { writeUint32LE(fd, items.size()); for (typename std::vector::iterator it = items.begin(); it != items.end(); it++) { @@ -522,8 +522,8 @@ StaticDataListVector hitRectLists; StaticDataListVector rectLists; StaticDataListVector messageLists; StaticDataListVector navigationLists; -StaticDataVector sceneInfo140Items; -StaticDataVector sceneInfo2700Items; +StaticDataVector sceneInfo140Items; +StaticDataVector sceneInfo2700Items; void addMessageList(uint32 messageListCount, uint32 messageListOffset) { MessageList *messageList = new MessageList(); @@ -550,7 +550,7 @@ int main(int argc, char *argv[]) { writeUint32LE(datFile, 0x11223344); // Some magic writeUint32LE(datFile, DAT_VERSION); - + messageLists.saveListVector(datFile); rectLists.saveListVector(datFile); hitRectLists.saveListVector(datFile); diff --git a/devtools/create_neverhood/tables.h b/devtools/create_neverhood/tables.h index ea39aa807d..eb136491db 100644 --- a/devtools/create_neverhood/tables.h +++ b/devtools/create_neverhood/tables.h @@ -122,7 +122,7 @@ static const uint32 rectListOffsets[] = { // Scene2406 1, 0x004B78C8, 1, 0x004B78D8, - // Scene2501 + // Scene2501 1, 0x004B2608, // Scene2732 1, 0x004AE360, diff --git a/devtools/create_teenagent/static_tables.h b/devtools/create_teenagent/static_tables.h index 6e7fdfe91c..5c9b5b3d21 100644 --- a/devtools/create_teenagent/static_tables.h +++ b/devtools/create_teenagent/static_tables.h @@ -15148,7 +15148,7 @@ const static char* dialog_162[] = { }; // Note: -// The usage of this in the engine overlaps the previous dialog i.e. the +// The usage of this in the engine overlaps the previous dialog i.e. the // starting offset used is two bytes early, thus implicitly changing the // first command of this dialog from NEW_LINE to CHANGE_CHARACTER. const static char* dialog_163[] = { -- cgit v1.2.3 From 059fa15d148018a01721205f824116a905a73ff1 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Mon, 15 Jul 2013 11:51:57 +0300 Subject: DEVTOOLS: Fix CID 1022207. Missing break in switch --- devtools/create_lure/process_actions.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'devtools') diff --git a/devtools/create_lure/process_actions.cpp b/devtools/create_lure/process_actions.cpp index db965730cb..d1ddbf03f2 100644 --- a/devtools/create_lure/process_actions.cpp +++ b/devtools/create_lure/process_actions.cpp @@ -149,6 +149,7 @@ uint16 process_action_sequence_entry(int supportIndex, byte *data, uint16 remain if (startOffset == 0x7328) { startOffset = 0x72ae; maxOffset = 0x7382; } if (startOffset == 0x702f) { startOffset = 0x6f3d; maxOffset = 0x70a3; } if (startOffset == 0x7886) { startOffset = 0x742a; maxOffset = 0x7896; } + break; case DE_DEU: if (startOffset == 0x7edb) { startOffset = 0x7ead; maxOffset = 0x7f05; } if (startOffset == 0x7ab8) { startOffset = 0x796c; maxOffset = 0x7ae2; } -- cgit v1.2.3 From 73bb5c5fbe66329f9074c2661a2035435e6756a4 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 18 Jul 2013 09:27:55 -0400 Subject: DEVTOOLS: Moved implementation of create_mortdat File class from the header file --- devtools/create_mortdat/create_mortdat.cpp | 62 +++++++++++++++++++++++++++++ devtools/create_mortdat/create_mortdat.h | 63 +++++++----------------------- 2 files changed, 76 insertions(+), 49 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 2dff398de2..cb7d6aa189 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -42,6 +42,68 @@ #include "enginetext.h" #include "gametext.h" + +bool File::open(const char *filename, AccessMode mode) { + f = fopen(filename, (mode == kFileReadMode) ? "rb" : "wb"); + return (f != NULL); +} + +void File::close() { + fclose(f); + f = NULL; +} + +int File::seek(int32 offset, int whence) { + return fseek(f, offset, whence); +} + +long File::read(void *buffer, int len) { + return fread(buffer, 1, len, f); +} +void File::write(const void *buffer, int len) { + fwrite(buffer, 1, len, f); +} + +byte File::readByte() { + byte v; + read(&v, sizeof(byte)); + return v; +} + +uint16 File::readWord() { + uint16 v; + read(&v, sizeof(uint16)); + return FROM_LE_16(v); +} + +uint32 File::readLong() { + uint32 v; + read(&v, sizeof(uint32)); + return FROM_LE_32(v); +} + +void File::writeByte(byte v) { + write(&v, sizeof(byte)); +} + +void File::writeWord(uint16 v) { + uint16 vTemp = TO_LE_16(v); + write(&vTemp, sizeof(uint16)); +} + +void File::writeLong(uint32 v) { + uint32 vTemp = TO_LE_32(v); + write(&vTemp, sizeof(uint32)); +} + +void File::writeString(const char *s) { + write(s, strlen(s) + 1); +} + +uint32 File::pos() { + return ftell(f); +} + /*-------------------------------------------------------------------------*/ void openOutputFile(const char *outFilename) { diff --git a/devtools/create_mortdat/create_mortdat.h b/devtools/create_mortdat/create_mortdat.h index 908cb61951..8c210d32d9 100644 --- a/devtools/create_mortdat/create_mortdat.h +++ b/devtools/create_mortdat/create_mortdat.h @@ -43,55 +43,20 @@ class File { private: FILE *f; public: - bool open(const char *filename, AccessMode mode = kFileReadMode) { - f = fopen(filename, (mode == kFileReadMode) ? "rb" : "wb"); - return (f != NULL); - } - void close() { - fclose(f); - f = NULL; - } - int seek(int32 offset, int whence = SEEK_SET) { - return fseek(f, offset, whence); - } - long read(void *buffer, int len) { - return fread(buffer, 1, len, f); - } - void write(const void *buffer, int len) { - fwrite(buffer, 1, len, f); - } - byte readByte() { - byte v; - read(&v, sizeof(byte)); - return v; - } - uint16 readWord() { - uint16 v; - read(&v, sizeof(uint16)); - return FROM_LE_16(v); - } - uint32 readLong() { - uint32 v; - read(&v, sizeof(uint32)); - return FROM_LE_32(v); - } - void writeByte(byte v) { - write(&v, sizeof(byte)); - } - void writeWord(uint16 v) { - uint16 vTemp = TO_LE_16(v); - write(&vTemp, sizeof(uint16)); - } - void writeLong(uint32 v) { - uint32 vTemp = TO_LE_32(v); - write(&vTemp, sizeof(uint32)); - } - void writeString(const char *s) { - write(s, strlen(s) + 1); - } - uint32 pos() { - return ftell(f); - } + bool open(const char *filename, AccessMode mode = kFileReadMode); + void close(); + int seek(int32 offset, int whence = SEEK_SET); + uint32 pos(); + long read(void *buffer, int len); + void write(const void *buffer, int len); + + byte readByte(); + uint16 readWord(); + uint32 readLong(); + void writeByte(byte v); + void writeWord(uint16 v); + void writeLong(uint32 v); + void writeString(const char *s); }; File outputFile, mortCom; -- cgit v1.2.3 From a888de559944dffdffb77d339b7758eb867ea6a0 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 17 Jul 2013 15:21:27 +0200 Subject: MORTEVIELLE: Improve German engine texts --- devtools/create_mortdat/enginetext.h | 58 ++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/enginetext.h b/devtools/create_mortdat/enginetext.h index 6095f09360..e1c40f898b 100644 --- a/devtools/create_mortdat/enginetext.h +++ b/devtools/create_mortdat/enginetext.h @@ -135,52 +135,52 @@ const char *engineDataFr[] = { const char *engineDataDe[] = { "[2][ ][JA][NEIN]", - "Go to", - "Someone enters, looks surprised, but says nothing", + "gehen", + "Jemand kommt herein, scheint erstaunt, sagt nichts", "Cool", "Schwer", "Ungesund", "Idem", - "You", - "are", - "Alone", + "Sie", + "sind", + "allein", "Verdammt! Sie hoeren ein Geraeush...", "Sie haetten ", "% der Hinweise| bemerken muessen...", - "Do you want to wake up?", + "Moechten Sie aufwachen?", "OK", "", " schreiben", " lesen", - " Restart ", - "F3 nochmals", + " wieder ", + "F3: nochmals", "F8: stop", - "Hide self", - "take", - " probe ", - " raise ", + " sich verstecken", + " nehmen", + " sondieren", + " hochheben", " -WEITER- ", " -STOP- ", "[1][ Benutzen Sie jetzt das Menue DEP...][OK]", - "lift", - "read", - - "look", - "search", - "open", - "put", - "turn", - "tie", - "close", - "hit", - "pose", - "smash", - - "smell", - "scratch", - "probe", + "hochheben", + "lesen", + + "anschauen", + "durchsuchen", + "oeffnen", + "setzen", + "drehen", + "befestigen", + "schliessen", + "klopfen", + "hinlegen", + "eindruecken", + + "fuehlen", + "abkratzen", + "sondieren", "[1][ Benutzen Sie jetzt das Menue DEP...][OK]", "& tag", NULL -- cgit v1.2.3 From 388b4a7b3390282b118a8b0720ae3a07c91f1934 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 19 Jul 2013 14:08:17 +0200 Subject: TOOLS: Janitorial: remove trailing spaces in extract_mort --- devtools/extract_mort/extract_mort.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'devtools') diff --git a/devtools/extract_mort/extract_mort.cpp b/devtools/extract_mort/extract_mort.cpp index 0164030769..fd6d8848af 100644 --- a/devtools/extract_mort/extract_mort.cpp +++ b/devtools/extract_mort/extract_mort.cpp @@ -40,7 +40,7 @@ #include "common/endian.h" enum AccessMode { - kFileReadMode = 1, + kFileReadMode = 1, kFileWriteMode = 2 }; @@ -108,7 +108,7 @@ public: fseek (f, 0, SEEK_END); int end = ftell (f); fseek (f, pos, SEEK_SET); - + return end; } }; @@ -228,7 +228,7 @@ static void addCompressedValue(int oct, int &indis, int &point, uint16 *strData) if (point < 5) { // Overlapping into next word ++indis; - + // Get the bits that fall into the next word and set it int remainder = oct & ((1 << (5 - point)) - 1); strData[indis] |= remainder << (16 - (5 - point)); -- cgit v1.2.3 From 3d64ccac9c4cfbf477eb3e03273faa255d0bb6d3 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 19 Jul 2013 17:43:55 +0200 Subject: MORTEVIELLE: Fix glitch detected by criezy --- devtools/extract_mort/extract_mort.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/extract_mort/extract_mort.cpp b/devtools/extract_mort/extract_mort.cpp index fd6d8848af..159309c0fa 100644 --- a/devtools/extract_mort/extract_mort.cpp +++ b/devtools/extract_mort/extract_mort.cpp @@ -322,7 +322,7 @@ static void export_strings(const char *textFilename) { do { extractCharacter(ch, indis, point, endFlag, strData); buffer[charIndex++] = ch; - if (ch == BUFFER_SIZE) { + if (charIndex == BUFFER_SIZE) { printf("Extracted string exceeded allowed buffer size.\n"); exit(1); } -- cgit v1.2.3 From c7277df1ed0a11c62971a859f101852083debd57 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 29 Jul 2013 07:27:31 +0200 Subject: DEVTOOLS: Add support to another DOS executable for Mortevielle --- devtools/create_mortdat/create_mortdat.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index cb7d6aa189..653a0754eb 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -119,13 +119,13 @@ void openOutputFile(const char *outFilename) { * Write out the data for the font */ void writeFontBlock() { - const int knownAddr[2] = {0x36b0, 0x36c0}; + const int knownAddr[3] = {0x30cd, 0x36b0, 0x36c0}; byte checkBuffer[7]; byte fontBuffer[121 * 6]; // Move to just prior the font data and verify that we're reading the known mort.com - for (int i = 0; i <= 2; ++i) { - if ( i == 2) { + for (int i = 0; i <= 3; ++i) { + if ( i == 3) { printf("Invalid mort.com input file"); exit(0); } -- cgit v1.2.3 From 2d1ac29551c2976149100606eb5415649eed3704 Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Tue, 30 Jul 2013 20:21:03 +0100 Subject: DEVTOOLS: Update create_mortdat to the latest version English translation --- devtools/create_mortdat/gametext.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index f8fe070bf0..9a4f0f7fc5 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -395,7 +395,7 @@ const char *gameDataEn[] = { "She got along with everyone. She loved her son dearly. As for the relations between mother-in-law and daughter-in-law...$", "Apart from Leo, she got along very well with Max...$", "Even if your relations were unfrequent, Jerome, there was still a place for you in her heart...$", - "(370) Apart from her family, not a lot of people$", + "Apart from her family, not a lot of people$", "Oh right! I think she deeply regretted this friend's leaving... err! Marielle... or Mireille...$", "No, nothing!$", "No... Not that I know of$", -- cgit v1.2.3 From 0a2e64b903a65e9ffcfc3f7f81eba708c774d0f2 Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Sat, 3 Aug 2013 16:45:05 +0100 Subject: DEVTOOLS: Include English menu in mortevielle dat file --- devtools/create_mortdat/create_mortdat.cpp | 27 ++++++++++ devtools/create_mortdat/menudata.h | 79 ++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 devtools/create_mortdat/menudata.h (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 653a0754eb..93ca721d95 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -41,6 +41,7 @@ #include "create_mortdat.h" #include "enginetext.h" #include "gametext.h" +#include "menudata.h" bool File::open(const char *filename, AccessMode mode) { @@ -200,10 +201,36 @@ void writeGameStrings() { writeStaticStrings(gameDataDe, kGameStrings, 2); } +/** + * Write out the data for the English menu + */ +void writeMenuBlock() { + // Write out a section header to the output file and the font data + const char menuHeader[4] = { 'M', 'E', 'N', 'U' }; + outputFile.write(menuHeader, 4); // Section Id + outputFile.writeWord(strlen(menuDataEn) / 8); // Section size + // Write each 8-characters block as a byte (one bit per character) + // ' ' -> 0, anything else -> 1 + byte value; + int valueCpt = 0; + const char* str = menuDataEn; + while (*str != 0) { + if (*(str++) != ' ') + value |= (1 << (7 - valueCpt)); + ++valueCpt; + if (valueCpt == 8) { + outputFile.writeByte(value); + value = 0; + valueCpt = 0; + } + } +} + void process() { writeFontBlock(); writeGameStrings(); writeEngineStrings(); + writeMenuBlock(); } /** diff --git a/devtools/create_mortdat/menudata.h b/devtools/create_mortdat/menudata.h new file mode 100644 index 0000000000..aa4557b336 --- /dev/null +++ b/devtools/create_mortdat/menudata.h @@ -0,0 +1,79 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * This is a utility for extracting needed resource data from different language + * version of the Mortevielle executable files into a new file mort.dat - this + * is required for the ScummVM Mortevielle module to work properly + */ + +#ifndef MENUDATA_H +#define MENUDATA_H + +const char *menuDataEn = + " @@@ " + " @ " + " @ @ @@ @@@ @@@ " + " @ @ @ @ @ " + " @ @ @ @ @ " + " @ @ @ @ @ " + "@@@ @@@ @@ @@ " + " " + " @@ @@ " + " @@ @ @ " + " @ @ @ @ @@@ @@@ @@@" + " @ @ @ @ @ @ @ " + " @ @ @ @ @ @ " + " @ @ @ @ @ @ " + "@@@ @@@ @@@@ @@ " + " " + " @ @ " + " @@ @ " + " @ @ @@@@ @@@@ " + " @ @ @ @ @ " + " @@@@@ @ @ " + " @ @ @ @ @ " + "@@@ @@@ @@@ @@ " + " " + " @@@@@ @@@ @@@" + " @ @ @ @ @" + " @ @@@ @ @ " + " @@@@ @ @ @ @@@ " + " @ @@@@@ @ @ " + " @ @ @ @ @ " + "@@@@@@ @@@ @@@ @@@ " + " " + "@@@@@@@ @@@ @@@ " + "@ @ @ @ @ " + " @ @@@@ @ @ @@" + " @ @ @ @ @@ @ " + " @ @ @ @ @ @@ " + " @ @ @ @ @ @ " + "@@@ @@@@ @@@ @@@ @@@" + " " + " @@@@@@@ @ @@@ " + " @ @ @ " + " @ @ @@ @ @@@ " + " @@@@ @ @ @ @" + " @ @ @ @ @@@@@ " + " @ @ @ @ " + "@@@ @@@ @@@ @@@ " + " "; + +#endif -- cgit v1.2.3 From 2af07d5d8e5b4312af154b7b66dbc66fb1e78a03 Mon Sep 17 00:00:00 2001 From: Alyssa Milburn Date: Sun, 4 Aug 2013 10:41:07 +0200 Subject: SCUMM: Add detection/version for Moonbase Commander v1.1. --- devtools/scumm-md5.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt index 450860b587..76c12f57f4 100644 --- a/devtools/scumm-md5.txt +++ b/devtools/scumm-md5.txt @@ -626,7 +626,8 @@ jungle Let's Explore the Jungle with Buzzy 8801fb4a1200b347f7a38523339526dd -1 en Windows - - - Kirben moonbase Moonbase Commander - cf400d20769fb70eb21766582f4924f7 -1 en Windows - - - Kirben + cf400d20769fb70eb21766582f4924f7 -1 en Windows 1.0 1.0 - Kirben + e1c9998826ce7fa8bde5cc3a5023edec -1 en Windows 1.1 1.1 - fuzzie ef71a322b6530ac45b1a070f7c0795f7 -1 en Windows Demo Demo - Kirben pajama Pajama Sam 1: No Need to Hide When It's Dark Outside -- cgit v1.2.3 From 13ddf33e78109d7f1c8433a250bee66872a787fc Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Sun, 11 Aug 2013 01:08:00 +0100 Subject: MORTEVIELLE: Update English translation I checked some of the dialogs for which we were not sure, fixed them when needed and removed the debug number. There are two lines however that causes an issue as they are used for both men and women, and in English we would need a different translation. The two texts are: It is his/her business… Oh I don't have anything against him/her The first one seems to be used more often for men than women (so far I have seen it used for 3 men and 1 woman). For the second one I changed it to plural in English as it also works with the context and while it changes the meaning this is not important. --- devtools/create_mortdat/gametext.h | 48 +++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index 9a4f0f7fc5..e4a54cb92a 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -165,17 +165,17 @@ const char *gameDataEn[] = { "? ?$", "Your move$", "OK !$", - "Suddenly Max arrives with your suitcase: \"Thank you for your @visit!\".Mister discreet \"private eye\" (in need of a private optici@an!). Thoroughly demoralised, you@leave the manor. You are useless!$", - "Leo interrupts: \"The storm has died down,I am going into town in@1 hour. Get ready\". You have lost@time...but not your life$", - "Congestion, the deadly flu... You@are stuck here! Your whole case@sinks slowly beneath the water$", - "The water is rising fast, freezing your last illusions. Before you@have time to react...you are dead$", - "As soon as you reach the bottom of the well, a hand cuts the rope@Farewell sweet life!$", - "The storm covers your footprints.A wall of silence falls heavily@on your shoulders. Slowly you succumb to frosbite...$", - "You're not completely alone! A cold blade plunges into your back@In future, be more careful!$", - "You don't know what implication Leo may have had in Murielle's@death. Was she dead outright? In@any case, the family problems that you have uncovered in the course@of your enquiries would explain Leo's behaviour. You're not sure@that's the reason Julia had asked@for your help, but that's reason enough for you!Out of respect for@her, after taking certain precau-@tions you have a revealing talk with Leo.$", + "Suddenly Max arrives with your suitcase: \"Thank you for your visit!\".@Mister discreet \"private eye\" (in need of a private optician!). Thoroughly demoralised, you leave the manor. You are useless!$", + "Leo interrupts: \"The storm has died down,I am going into town in 1 hour. Get ready\".@You have lost time...but not your life$", + "Congestion, the deadly flu... You are stuck here! Your whole case sinks slowly beneath the water$", + "The water is rising fast, freezing your last illusions. Before you have time to react... you are dead$", + "As soon as you reach the bottom of the well, a hand cuts the rope Farewell sweet life!$", + "The storm covers your footprints.A wall of silence falls heavily on your shoulders. Slowly you succumb to frosbite...$", + "You're not completely alone! A cold blade plunges into your back. In future, be more careful!$", + "You don't know what implication Leo may have had in Murielle's death. Was she dead outright? In any case, the family problems that you have uncovered in the course of your enquiries would explain Leo's behaviour. You're not sure that's the reason Julia had asked for your help, but that's reason enough for you! Out of respect for her, after taking certain precautions you have a revealing talk with Leo.$", "$", - "You don't have the keys to the manor. Your cries rest unheard@You're going to catch... your death!$", - "With a circular movement, the sword slices across you. Guts and@intestines spill out all over. A sorry state of affairs!$", + "You don't have the keys to the manor. Your cries rest unheard You're going to catch... your death!$", + "With a circular movement, the sword slices across you. Guts and intestines spill out all over. A sorry state of affairs!$", "Home, Sweet home !$", "The mystery behind a closed door$", "Bewitching charm of these old rooms$", @@ -338,14 +338,14 @@ const char *gameDataEn[] = { "Him! He is an upstart rogue! Perfumes must have killed his common sense. Moreover, when he's here he spends his evenings in his room$", "I was very concerned about my mother's health, and now I don't feel like doing anything at all$", "He would have done better to look after me a bit more and a bit less after his mother$", - "(313) It is his business...$", + "It is his business...$", "He does not have much luck at the moment although his business is satisfactory$", "I work with Pat but it's not going too well at the moment$", - "Oh really?! He has activities? He better take care of them seriously then$", + "Oh really?! He has occupations? He should take them seriously then$", "Him and Pat are patners. I think it's going pretty well$", "I take care of myself and that's already lots. How about you?$", - "(319) Oh that! I trust her. She knows how to keep herself busy$", - "(320) What! You have not yet discovered her main occupation..?$", + "Oh for that I trust her! She knows how to keep herself busy$", + "What! You have not yet discovered her main occupation..?$", "She is working in the decoration business, and tastefully with that. She is always very well dressed$", "If you like jewels, I have some good deals to propose for a short while$", "The jewels...$", @@ -363,19 +363,19 @@ const char *gameDataEn[] = { "He has a temper. You have to learn how to deal with him...$", "Business is business. As for the family, I leave it as it is...$", "Relations? Friendly relations? Financial relations, without a doubt$", - "Oh I don't have anything against him$", + "Oh I don't have anything against them$", "He is a resourceful businessman. He sometimes tries to swim upstream but... he will always find a way to make it work$", - "(340) They all bore me... No! Not even that... Even if... some people...$", + "They are all boring .. No! Not even that .. Even if .. some of them ..$", "Contrary to his mother, he is a very shy person ! So when you say relations...$", "He must be trying very hard to remain nice despite all his troubles$", - "(343) His romantic relationship: it's over. His relationship with me: hasn't really started. As for the other ones: I don't follow the \"other ones\"$", + "His romantic relationship: it's over. His relationship with me: hasn't really started. As for the other ones: I don't follow the \"other ones\"$", "I like everyone, as long as they are not trying to screw me over$", "It is not enough to have a bit of money and to know how to talk for everyone to like you$", "Not much to say about him... He is a nice and generous man. And what's more, he can be quite funny$", "Nowadays I get along rather well with everyone. But, here, I am not going to say more about this$", - "(348) Nice feathers, but a bird's brain... Ask her husband$", + "Nice feathers, but a bird's brain... Ask her husband$", "Is it for an appointment?$", - "(350) She is very lively! She does not burden herself with stupids prejudices$", + "She is very lively! She does not burden herself with stupids prejudices$", "In my line of work, one mostly encounters beautiful women and gangsters$", "The only sure thing he has going for him, it's his jewelery... And his wife, but he doesn't realize that$", "It's an interesting character. Who is not always very easy to follow, but worth knowing$", @@ -402,7 +402,7 @@ const char *gameDataEn[] = { "I met Julia when buying the manor. It was the only thing she owned. But all my wealth was hers...$", "Apart from a few personal belongings, I think she didn't own anything anymore$", "I think all her fortune came from Leo. So, pfft!$", - "(377) Apart from the letter for you I posted, nothing very important!$", + "Apart from the letter for you I posted, nothing very important!$", "I was very happy she gave me her bound bible as a present$", "It happened fast and she didn't have time to make any particular will$", "Her last gift suprised me$", @@ -412,15 +412,15 @@ const char *gameDataEn[] = { "Well yes! Like everyone, I believe$", "A dagger$", "I have never been looking around in the attic!$", - "(387) You either can read the past or pick a door$", + "You can either see through walls or pick a door$", "The portrait of a young girl: it's Murielle...$", "You know, I didn't know her that well$", "She was very charming, but above all she was Julia's lady-in-waiting$", "She was the only truly interesting woman I've met$", "She had a great knowledge in history, and you learned a great deal when you asked her about it$", - "(393) I've always wondered why some people fancied her!$", + "I've always wondered why some people fancied her!$", "If the room is closed, ask Leo$", - "(395) I closed her door after her death and I'd like it to remain this way for a while$", + "I closed her door after her death and I'd like it to remain this way for a while$", "You know how it is: family relations$", "All those years, I've never regretted serving her$", "I loved her as much as she loved me, I think$", @@ -429,7 +429,7 @@ const char *gameDataEn[] = { "I don't remember$", "This is Murielle. I took that picture, and actually they developed it backwards$", "You sure are curious!... It's not worth anything$", - "(404) Grimoires, parchment and manuscripts: it is Leo's realm$", + "Grimoires, parchment and manuscripts: it is Leo's realm$", "Too bad the motto doesn't appear here...$", "This is beautiful... And very old...$", "Hey! That's a place I've never visited$", -- cgit v1.2.3 From 8f8ea10c03728ad6a31b5585bd85a5c24e49ddad Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Sun, 11 Aug 2013 11:55:07 +0100 Subject: MORTEVIELLE: Improve English translation Two sentences are used for both men and women and therefore need to be gender agnostic. --- devtools/create_mortdat/gametext.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index e4a54cb92a..b1809c614c 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -338,7 +338,7 @@ const char *gameDataEn[] = { "Him! He is an upstart rogue! Perfumes must have killed his common sense. Moreover, when he's here he spends his evenings in his room$", "I was very concerned about my mother's health, and now I don't feel like doing anything at all$", "He would have done better to look after me a bit more and a bit less after his mother$", - "It is his business...$", + "It is not my business...$", "He does not have much luck at the moment although his business is satisfactory$", "I work with Pat but it's not going too well at the moment$", "Oh really?! He has occupations? He should take them seriously then$", @@ -363,7 +363,7 @@ const char *gameDataEn[] = { "He has a temper. You have to learn how to deal with him...$", "Business is business. As for the family, I leave it as it is...$", "Relations? Friendly relations? Financial relations, without a doubt$", - "Oh I don't have anything against them$", + "Oh, I have no issue with this person$", "He is a resourceful businessman. He sometimes tries to swim upstream but... he will always find a way to make it work$", "They are all boring .. No! Not even that .. Even if .. some of them ..$", "Contrary to his mother, he is a very shy person ! So when you say relations...$", -- cgit v1.2.3 From b830f68bacd18f51f4dd912ce3b54ec47d63f31d Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Wed, 14 Aug 2013 01:57:29 +0200 Subject: DEVTOOLS: Disable builtin theme in MSVC 2005 and 2008 in create_project. This is a copy of d089658fb84f67652e9569bc03c76bcc65e7b881 for older MSVC versions. Thanks to Strangerke for noticing. --- devtools/create_project/visualstudio.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/visualstudio.cpp b/devtools/create_project/visualstudio.cpp index 23225d3435..17e378fd0f 100644 --- a/devtools/create_project/visualstudio.cpp +++ b/devtools/create_project/visualstudio.cpp @@ -286,7 +286,7 @@ void VisualStudioProvider::createBuildProp(const BuildSetup &setup, bool isRelea if (isRelease) { properties << "\t\tEnableIntrinsicFunctions=\"true\"\n" "\t\tWholeProgramOptimization=\"true\"\n" - "\t\tPreprocessorDefinitions=\"WIN32;RELEASE_BUILD\"\n" + "\t\tPreprocessorDefinitions=\"WIN32;DISABLE_GUI_BUILTIN_THEME;RELEASE_BUILD\"\n" "\t\tStringPooling=\"true\"\n" "\t\tBufferSecurityCheck=\"false\"\n" "\t\tDebugInformationFormat=\"0\"\n" @@ -300,7 +300,7 @@ void VisualStudioProvider::createBuildProp(const BuildSetup &setup, bool isRelea "\t\tSetChecksum=\"true\"\n"; } else { properties << "\t\tOptimization=\"0\"\n" - "\t\tPreprocessorDefinitions=\"WIN32\"\n" + "\t\tPreprocessorDefinitions=\"WIN32;DISABLE_GUI_BUILTIN_THEME\"\n" "\t\tMinimalRebuild=\"true\"\n" "\t\tBasicRuntimeChecks=\"3\"\n" "\t\tRuntimeLibrary=\"1\"\n" -- cgit v1.2.3 From 1731d25466bb18c6278d642944f55b22236af6e2 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 14 Aug 2013 07:36:32 +0200 Subject: DEVTOOLS: Fix error in create_mortdat. Thanks to LordHoto for pointing it out --- devtools/create_mortdat/create_mortdat.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 93ca721d95..f12a69bd37 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -134,8 +134,8 @@ void writeFontBlock() { mortCom.seek(knownAddr[i]); mortCom.read(checkBuffer, 7); - if ((checkBuffer[0] == 0x59) && (checkBuffer[1] == 0x5B) && (checkBuffer[2] == 0x58) || - (checkBuffer[3] == 0xC3) && (checkBuffer[4] == 0xE8) && (checkBuffer[5] == 0xD6) || + if ((checkBuffer[0] == 0x59) && (checkBuffer[1] == 0x5B) && (checkBuffer[2] == 0x58) && + (checkBuffer[3] == 0xC3) && (checkBuffer[4] == 0xE8) && (checkBuffer[5] == 0xD6) && (checkBuffer[6] == 0x02)) { break; } -- cgit v1.2.3 From b23421585421753e37a79adaaa3b6da3d393d300 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 14 Aug 2013 23:54:33 +0200 Subject: DEVTOOLS: Add Menu 3 & 4 verb indexes in MORT.DAT --- devtools/create_mortdat/create_mortdat.cpp | 21 +++++++++++++++++- devtools/create_mortdat/create_mortdat.h | 2 +- devtools/create_mortdat/gametext.h | 34 +++++++++++++++--------------- devtools/create_mortdat/menudata.h | 14 ++++++++++++ 4 files changed, 52 insertions(+), 19 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index f12a69bd37..00b9b1ce4a 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -205,7 +205,7 @@ void writeGameStrings() { * Write out the data for the English menu */ void writeMenuBlock() { - // Write out a section header to the output file and the font data + // Write out a section header to the output file and the menu data const char menuHeader[4] = { 'M', 'E', 'N', 'U' }; outputFile.write(menuHeader, 4); // Section Id outputFile.writeWord(strlen(menuDataEn) / 8); // Section size @@ -226,10 +226,29 @@ void writeMenuBlock() { } } +void writeVerbNums(const int *verbs, int languageId) { + // Write out a section header to the output file + const char menuHeader[4] = { 'V', 'E', 'R', 'B' }; + outputFile.write(menuHeader, 4); // Section Id + int size = 52 + 1; // Language code + 26 words + outputFile.writeWord(size); + + outputFile.writeByte(languageId); + for (int i = 0; i < 26; i++) + outputFile.writeWord(verbs[i]); +} + +void writeMenuVerbs() { + writeVerbNums(verbsEn, 1); + writeVerbNums(verbsFr, 0); + writeVerbNums(verbsDe, 2); +} + void process() { writeFontBlock(); writeGameStrings(); writeEngineStrings(); + writeMenuVerbs(); writeMenuBlock(); } diff --git a/devtools/create_mortdat/create_mortdat.h b/devtools/create_mortdat/create_mortdat.h index 8c210d32d9..1ebbbe37e0 100644 --- a/devtools/create_mortdat/create_mortdat.h +++ b/devtools/create_mortdat/create_mortdat.h @@ -24,7 +24,7 @@ */ #define VERSION_MAJOR 1 -#define VERSION_MINOR 0 +#define VERSION_MINOR 1 enum AccessMode { kFileReadMode = 1, diff --git a/devtools/create_mortdat/gametext.h b/devtools/create_mortdat/gametext.h index b1809c614c..4f7b1f9776 100644 --- a/devtools/create_mortdat/gametext.h +++ b/devtools/create_mortdat/gametext.h @@ -505,31 +505,31 @@ const char *gameDataEn[] = { "$", "YOUR MOVE$", " attach$", - " wait$", - " force$", - " sleep$", - " listen$", - " enter$", " close$", - " search$", - " knock$", - " scratch$", - " read$", " eat$", - " place$", - " open$", - " take$", + " enter$", + " force$", + " knock$", + " leave$", + " lift$", + " listen$", " look$", + " open$", + " place$", + " read$", + " scratch$", + " search$", + " sleep$", " smell$", " sound$", - " leave$", - " lift$", + " take$", " turn$", + " wait$", " hide yourself$", - " search$", - " read$", - " put$", " look$", + " put$", + " read$", + " search$", " Leo$", " Pat$", " Guy$", diff --git a/devtools/create_mortdat/menudata.h b/devtools/create_mortdat/menudata.h index aa4557b336..a927d31757 100644 --- a/devtools/create_mortdat/menudata.h +++ b/devtools/create_mortdat/menudata.h @@ -76,4 +76,18 @@ const char *menuDataEn = "@@@ @@@ @@@ @@@ " " "; +const int verbsFr[26] = { 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, + 0x309, 0x30a, 0x30b, 0x30c, 0x30d, 0x30e, 0x30f, 0x310, + 0x311, 0x312, 0x313, 0x314, 0x315, 0x401, 0x402, 0x403, + 0x404, 0x405 }; + +const int verbsEn[26] = { 0x301, 0x307, 0x30c, 0x306, 0x303, 0x309, 0x313, 0x314, + 0x305, 0x310, 0x30e, 0x30d, 0x30b, 0x30a, 0x308, 0x304, + 0x311, 0x312, 0x30f, 0x315, 0x302, 0x401, 0x405, 0x404, + 0x403, 0x402 }; + +const int verbsDe[26] = { 0x30a, 0x310, 0x313, 0x301, 0x315, 0x308, 0x303, 0x306, + 0x30c, 0x311, 0x314, 0x309, 0x30b, 0x30f, 0x30e, 0x304, + 0x307, 0x30d, 0x312, 0x302, 0x305, 0x405, 0x402, 0x404, + 0x403, 0x401 }; #endif -- cgit v1.2.3 From 019f7e59fdbcc6bdd2ad49dc5ab7e87c84cf4093 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 15 Aug 2013 07:56:11 +0200 Subject: DEVTOOLS: Fix English verbs order in Mortevielle --- devtools/create_mortdat/menudata.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/menudata.h b/devtools/create_mortdat/menudata.h index a927d31757..6a5f8dcfad 100644 --- a/devtools/create_mortdat/menudata.h +++ b/devtools/create_mortdat/menudata.h @@ -81,9 +81,9 @@ const int verbsFr[26] = { 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308 0x311, 0x312, 0x313, 0x314, 0x315, 0x401, 0x402, 0x403, 0x404, 0x405 }; -const int verbsEn[26] = { 0x301, 0x307, 0x30c, 0x306, 0x303, 0x309, 0x313, 0x314, - 0x305, 0x310, 0x30e, 0x30d, 0x30b, 0x30a, 0x308, 0x304, - 0x311, 0x312, 0x30f, 0x315, 0x302, 0x401, 0x405, 0x404, +const int verbsEn[26] = { 0x301, 0x315, 0x305, 0x310, 0x309, 0x304, 0x302, 0x30f, + 0x306, 0x30d, 0x30e, 0x303, 0x30c, 0x30b, 0x313, 0x30a, + 0x311, 0x312, 0x307, 0x308, 0x314, 0x401, 0x405, 0x404, 0x403, 0x402 }; const int verbsDe[26] = { 0x30a, 0x310, 0x313, 0x301, 0x315, 0x308, 0x303, 0x306, -- cgit v1.2.3 From 2a807b188006ebe3c70292d057da139a695aea20 Mon Sep 17 00:00:00 2001 From: Kirben Date: Thu, 15 Aug 2013 22:50:45 +1000 Subject: SCUMM: Add Remastered version of Putt-Putt Saves the Zoo from Nimbus Games. --- devtools/scumm-md5.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'devtools') diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt index 76c12f57f4..0dbcbf4792 100644 --- a/devtools/scumm-md5.txt +++ b/devtools/scumm-md5.txt @@ -775,6 +775,7 @@ puttzoo Putt-Putt Saves the Zoo 3a3e592b074f595489f7f11e150c398d -1 us Windows HE 99 Updated - Adrian c5cc7cba02a2fbd539c4439e775b0536 43470 de Windows HE 99 Updated - Lightkey 5c9cecbd2952ccec14c9ecebf5822a34 -1 en iOS HE 100 - - clone2727 + 7b4ee071eecadc2d8cd0c3509110825c -1 en Windows HE 100 Remastered - Kirben 3486ede0f904789267d4bcc5537a46d4 14337 en Mac - Demo - khalek d220d154aafbfa12bd6f3ab1b2dae420 -1 de Mac - Demo - Joachim Eberhard -- cgit v1.2.3 From c67508b42d4d19ff58e766e63a0f5796436b6c65 Mon Sep 17 00:00:00 2001 From: D G Turner Date: Fri, 16 Aug 2013 07:20:51 +0100 Subject: DEVTOOLS: Enable builtin theme in MSVC 2005 and 2008 in create_project. This reverts commit b830f68bacd18f51f4dd912ce3b54ec47d63f31d as the builtin theme is less than 64K again. --- devtools/create_project/visualstudio.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/visualstudio.cpp b/devtools/create_project/visualstudio.cpp index 17e378fd0f..23225d3435 100644 --- a/devtools/create_project/visualstudio.cpp +++ b/devtools/create_project/visualstudio.cpp @@ -286,7 +286,7 @@ void VisualStudioProvider::createBuildProp(const BuildSetup &setup, bool isRelea if (isRelease) { properties << "\t\tEnableIntrinsicFunctions=\"true\"\n" "\t\tWholeProgramOptimization=\"true\"\n" - "\t\tPreprocessorDefinitions=\"WIN32;DISABLE_GUI_BUILTIN_THEME;RELEASE_BUILD\"\n" + "\t\tPreprocessorDefinitions=\"WIN32;RELEASE_BUILD\"\n" "\t\tStringPooling=\"true\"\n" "\t\tBufferSecurityCheck=\"false\"\n" "\t\tDebugInformationFormat=\"0\"\n" @@ -300,7 +300,7 @@ void VisualStudioProvider::createBuildProp(const BuildSetup &setup, bool isRelea "\t\tSetChecksum=\"true\"\n"; } else { properties << "\t\tOptimization=\"0\"\n" - "\t\tPreprocessorDefinitions=\"WIN32;DISABLE_GUI_BUILTIN_THEME\"\n" + "\t\tPreprocessorDefinitions=\"WIN32\"\n" "\t\tMinimalRebuild=\"true\"\n" "\t\tBasicRuntimeChecks=\"3\"\n" "\t\tRuntimeLibrary=\"1\"\n" -- cgit v1.2.3 From 9d36991e16e7e806bd376b10200e10bb76a03225 Mon Sep 17 00:00:00 2001 From: D G Turner Date: Fri, 16 Aug 2013 07:22:26 +0100 Subject: CREATE_PROJECT: Enable built-in theme for MSVC builds again. This reverts commit d089658fb84f67652e9569bc03c76bcc65e7b881. --- devtools/create_project/msbuild.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp index 23bf1bc28a..60aa35b739 100644 --- a/devtools/create_project/msbuild.cpp +++ b/devtools/create_project/msbuild.cpp @@ -405,7 +405,7 @@ void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, b if (isRelease) { properties << "\t\t\ttrue\n" "\t\t\ttrue\n" - "\t\t\tWIN32;DISABLE_GUI_BUILTIN_THEME;RELEASE_BUILD;%(PreprocessorDefinitions)\n" + "\t\t\tWIN32;RELEASE_BUILD;%(PreprocessorDefinitions)\n" "\t\t\ttrue\n" "\t\t\tfalse\n" "\t\t\t\n" @@ -417,7 +417,7 @@ void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, b "\t\t\ttrue\n"; } else { properties << "\t\t\tDisabled\n" - "\t\t\tWIN32;DISABLE_GUI_BUILTIN_THEME;%(PreprocessorDefinitions)\n" + "\t\t\tWIN32;%(PreprocessorDefinitions)\n" "\t\t\ttrue\n" "\t\t\tEnableFastChecks\n" "\t\t\tMultiThreadedDebug\n" -- cgit v1.2.3 From 3bdc85709fb5d03cd6f3ae3676a66f53646a460a Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 18 Aug 2013 22:29:58 +0200 Subject: MORTEVIELLE: Fix the order of German verbs. --- devtools/create_mortdat/menudata.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/menudata.h b/devtools/create_mortdat/menudata.h index 6a5f8dcfad..ccdd13d7f2 100644 --- a/devtools/create_mortdat/menudata.h +++ b/devtools/create_mortdat/menudata.h @@ -77,17 +77,17 @@ const char *menuDataEn = " "; const int verbsFr[26] = { 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, - 0x309, 0x30a, 0x30b, 0x30c, 0x30d, 0x30e, 0x30f, 0x310, - 0x311, 0x312, 0x313, 0x314, 0x315, 0x401, 0x402, 0x403, - 0x404, 0x405 }; + 0x309, 0x30a, 0x30b, 0x30c, 0x30d, 0x30e, 0x30f, 0x310, + 0x311, 0x312, 0x313, 0x314, 0x315, 0x401, 0x402, 0x403, + 0x404, 0x405 }; const int verbsEn[26] = { 0x301, 0x315, 0x305, 0x310, 0x309, 0x304, 0x302, 0x30f, - 0x306, 0x30d, 0x30e, 0x303, 0x30c, 0x30b, 0x313, 0x30a, - 0x311, 0x312, 0x307, 0x308, 0x314, 0x401, 0x405, 0x404, - 0x403, 0x402 }; + 0x306, 0x30d, 0x30e, 0x303, 0x30c, 0x30b, 0x313, 0x30a, + 0x311, 0x312, 0x307, 0x308, 0x314, 0x401, 0x405, 0x404, + 0x403, 0x402 }; -const int verbsDe[26] = { 0x30a, 0x310, 0x313, 0x301, 0x315, 0x308, 0x303, 0x306, - 0x30c, 0x311, 0x314, 0x309, 0x30b, 0x30f, 0x30e, 0x304, - 0x307, 0x30d, 0x312, 0x302, 0x305, 0x405, 0x402, 0x404, - 0x403, 0x401 }; +const int verbsDe[26] = { 0x304, 0x314, 0x307, 0x310, 0x315, 0x308, 0x311, 0x306, + 0x30c, 0x301, 0x30d, 0x309, 0x312, 0x30f, 0x30e, 0x302, + 0x30a, 0x313, 0x303, 0x30b, 0x305, 0x405, 0x402, 0x404, + 0x403, 0x401 }; #endif -- cgit v1.2.3 From efbf1ff5f999786675fdf28b53970af0eacfa759 Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Mon, 19 Aug 2013 21:11:23 +0100 Subject: MORTEVIELLE: Store German menu data in data file and clean menu code This opens the door to a better translation of the menu to German. Also the code will now always try to read the menu data from the mort.data file and only if this fails it will use the game data. And remove some dead code that was to support the corrupted menu.mor file. --- devtools/create_mortdat/create_mortdat.cpp | 14 ++++++-- devtools/create_mortdat/create_mortdat.h | 2 +- devtools/create_mortdat/menudata.h | 52 +++++++++++++++++++++++++++++- 3 files changed, 63 insertions(+), 5 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 00b9b1ce4a..5a491eea2f 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -204,16 +204,19 @@ void writeGameStrings() { /** * Write out the data for the English menu */ -void writeMenuBlock() { +void writeMenuData(const char *menuData, int languageId) { // Write out a section header to the output file and the menu data const char menuHeader[4] = { 'M', 'E', 'N', 'U' }; outputFile.write(menuHeader, 4); // Section Id - outputFile.writeWord(strlen(menuDataEn) / 8); // Section size + int size = strlen(menuData) / 8 + 1; // Language code + Menu data size + outputFile.writeWord(size); + + outputFile.writeByte(languageId); // Write each 8-characters block as a byte (one bit per character) // ' ' -> 0, anything else -> 1 byte value; int valueCpt = 0; - const char* str = menuDataEn; + const char* str = menuData; while (*str != 0) { if (*(str++) != ' ') value |= (1 << (7 - valueCpt)); @@ -226,6 +229,11 @@ void writeMenuBlock() { } } +void writeMenuBlock() { + writeMenuData(menuDataEn, 1); + writeMenuData(menuDataDe, 2); +} + void writeVerbNums(const int *verbs, int languageId) { // Write out a section header to the output file const char menuHeader[4] = { 'V', 'E', 'R', 'B' }; diff --git a/devtools/create_mortdat/create_mortdat.h b/devtools/create_mortdat/create_mortdat.h index 1ebbbe37e0..e5007ae653 100644 --- a/devtools/create_mortdat/create_mortdat.h +++ b/devtools/create_mortdat/create_mortdat.h @@ -24,7 +24,7 @@ */ #define VERSION_MAJOR 1 -#define VERSION_MINOR 1 +#define VERSION_MINOR 2 enum AccessMode { kFileReadMode = 1, diff --git a/devtools/create_mortdat/menudata.h b/devtools/create_mortdat/menudata.h index ccdd13d7f2..f3ca81cf1f 100644 --- a/devtools/create_mortdat/menudata.h +++ b/devtools/create_mortdat/menudata.h @@ -76,7 +76,57 @@ const char *menuDataEn = "@@@ @@@ @@@ @@@ " " "; -const int verbsFr[26] = { 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, +const char *menuDataDe = + " @@@ " + " @ " + " @ @ @@ @@@ @@@ " + " @ @ @ @ @ " + " @ @ @ @ @ " + " @ @ @ @ @ " + "@@@ @@@ @@ @@ " + " " + " @@@@@ " + " @ @ " + " @ @ @@@ @ @@@ " + " @ @ @ @ @ @ " + " @ @ @@@@ @ @ " + " @ @ @ @@@@ " + "@@@@@ @@@ @ " + " @@@ " + " @ @@ @ " + " @@@ @ @ " + " @ @ @ @@ @@@@ " + " @ @ @ @ @ " + " @@@@@ @@@ @ " + " @ @ @ @ @ " + "@@@ @@@ @@@ @@ @@ " + " " + " @@@@@ @@@ @@@" + " @ @ @ @ @" + " @ @@@ @ @ " + " @@@@ @ @ @ @@@ " + " @ @@@@@ @ @ " + " @ @ @ @ @ " + "@@@@@@ @@@ @@@ @@@ " + " " + " @@@@@ @ " + " @ @ " + " @ @ @@ @@@@ " + " @ @ @ @ " + " @ @ @ @@@ " + " @ @ @ @ " + "@@@@@ @@@ @@@@@ " + " " + " @@@@@@@ @ " + " @ @ " + " @ @ @@ @@@@ " + " @@@@ @ @ @ " + " @ @ @ @ " + " @ @ @ @ " + "@@@ @@@ @@@ " + " "; + +const int verbsFr[26] = { 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, 0x309, 0x30a, 0x30b, 0x30c, 0x30d, 0x30e, 0x30f, 0x310, 0x311, 0x312, 0x313, 0x314, 0x315, 0x401, 0x402, 0x403, 0x404, 0x405 }; -- cgit v1.2.3 From cc16cb5823eebca8d14fc509057b223d1cc22b3f Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Tue, 20 Aug 2013 13:45:03 +0100 Subject: MORTEVIELLE: Change German menu translation The original menu was almost not translated (only one of the six menu was translated). Thanks to Raziel for the menu name suggestions. --- devtools/create_mortdat/menudata.h | 72 +++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 36 deletions(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/menudata.h b/devtools/create_mortdat/menudata.h index f3ca81cf1f..ec8724135c 100644 --- a/devtools/create_mortdat/menudata.h +++ b/devtools/create_mortdat/menudata.h @@ -77,22 +77,22 @@ const char *menuDataEn = " "; const char *menuDataDe = - " @@@ " - " @ " - " @ @ @@ @@@ @@@ " - " @ @ @ @ @ " - " @ @ @ @ @ " - " @ @ @ @ @ " - "@@@ @@@ @@ @@ " + " @@@ @@ " + " @ @ " + " @ @ @@ @ @@@@" + " @ @ @ @@@ @ @" + " @ @ @ @ @ @ @ " + " @ @ @ @ @ @ @ " + "@@@ @@@ @@ @@ @@ @@@@ " + " " + " @@@@@@ @ @@ " + " @ @ @ " + " @ @ @@ @@@@ @ " + " @@@@ @ @ @ @@@ " + " @ @ @ @ @ @ " + " @ @ @ @ @ @ @ " + "@@ @@ @@@ @@@ @@ @@" " " - " @@@@@ " - " @ @ " - " @ @ @@@ @ @@@ " - " @ @ @ @ @ @ " - " @ @ @@@@ @ @ " - " @ @ @ @@@@ " - "@@@@@ @@@ @ " - " @@@ " " @ @@ @ " " @@@ @ @ " " @ @ @ @@ @@@@ " @@ -101,29 +101,29 @@ const char *menuDataDe = " @ @ @ @ @ " "@@@ @@@ @@@ @@ @@ " " " - " @@@@@ @@@ @@@" - " @ @ @ @ @" - " @ @@@ @ @ " - " @@@@ @ @ @ @@@ " - " @ @@@@@ @ @ " - " @ @ @ @ @ " - "@@@@@@ @@@ @@@ @@@ " + " @@@ @@ " + " @ @ " + " @ @@@@ @ " + " @ @ @ @@@ " + " @ @ @ @ " + " @ @ @ @ @ " + " @@@ @@@ @@ @@ " " " - " @@@@@ @ " - " @ @ " - " @ @ @@ @@@@ " - " @ @ @ @ " - " @ @ @ @@@ " - " @ @ @ @ " - "@@@@@ @@@ @@@@@ " + " @@@@@@ " + " @ @ @@ " + " @ @ @@@ @ @@@ " + " @@@@ @ @ @@@@ @ @" + " @ @ @@@@@ @ @ @@@@ " + " @ @ @ @ @ @ " + "@@ @@ @@@ @@@ @@@ " " " - " @@@@@@@ @ " - " @ @ " - " @ @ @@ @@@@ " - " @@@@ @ @ @ " - " @ @ @ @ " - " @ @ @ @ " - "@@@ @@@ @@@ " + " @@@@@ @ " + " @ @ @ " + " @ @ @@@@ @@@@ " + " @ @ @ @ @ " + " @ @ @ @ @ " + " @ @ @ @ @ " + "@@@@@ @@@@ @@ " " "; const int verbsFr[26] = { 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, -- cgit v1.2.3 From 1f89b4e90272f619cdc455761148ca62449631d0 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Tue, 20 Aug 2013 18:47:29 +0300 Subject: CREDITS: Add credits for The Neverhood engine --- devtools/credits.pl | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index 7d39730c63..a5341778c5 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -638,6 +638,11 @@ begin_credits("Credits"); add_person("David Turner", "digitall", ""); end_section(); + begin_section("Neverhood"); + add_person("Benjamin Haisch", "john_doe", ""); + add_person("Filippos Karapetis", "[md5]", ""); + end_section(); + begin_section("Parallaction"); add_person("", "peres", ""); end_section(); -- cgit v1.2.3 From 69aef2a55aba6b27581d2a4d45ee94f1feaabe65 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 20 Aug 2013 23:14:54 +0200 Subject: MORTEVIELLE: Add credits --- devtools/credits.pl | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index a5341778c5..45018a5633 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -638,6 +638,11 @@ begin_credits("Credits"); add_person("David Turner", "digitall", ""); end_section(); + begin_section("Mortevielle"); + add_person("Arnaud Boutonné", "Strangerke", ""); + add_person("Paul Gilbert", "dreammaster", ""); + end_section(); + begin_section("Neverhood"); add_person("Benjamin Haisch", "john_doe", ""); add_person("Filippos Karapetis", "[md5]", ""); -- cgit v1.2.3 From 6df36e5ecfc3f6d5879b1932ecaf0e450ac296a9 Mon Sep 17 00:00:00 2001 From: Littleboy Date: Thu, 5 Sep 2013 23:48:33 -0400 Subject: CREATE_PROJECT: Add extra configuration for compilation with LLVM --- devtools/create_project/msbuild.cpp | 67 +++++++++++++++++++------------- devtools/create_project/msbuild.h | 4 +- devtools/create_project/msvc.cpp | 20 +++++++--- devtools/create_project/msvc.h | 2 +- devtools/create_project/visualstudio.cpp | 41 ++++++++++--------- devtools/create_project/visualstudio.h | 2 +- 6 files changed, 79 insertions(+), 57 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp index 60aa35b739..44055ab166 100644 --- a/devtools/create_project/msbuild.cpp +++ b/devtools/create_project/msbuild.cpp @@ -67,10 +67,10 @@ inline void outputConfiguration(std::ostream &project, const std::string &config "\t\t\n"; } -inline void outputConfigurationType(const BuildSetup &setup, std::ostream &project, const std::string &name, const std::string &config, int version) { +inline void outputConfigurationType(const BuildSetup &setup, std::ostream &project, const std::string &name, const std::string &config, std::string toolset) { project << "\t\n" "\t\t" << ((name == setup.projectName || setup.devTools || setup.tests) ? "Application" : "StaticLibrary") << "\n" - "\t\tv" << version << "0\n" + "\t\t" << toolset << "\n" "\t\n"; } @@ -98,6 +98,8 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri outputConfiguration(project, "Debug", "x64"); outputConfiguration(project, "Analysis", "Win32"); outputConfiguration(project, "Analysis", "x64"); + outputConfiguration(project, "LLVM", "Win32"); + outputConfiguration(project, "LLVM", "x64"); outputConfiguration(project, "Release", "Win32"); outputConfiguration(project, "Release", "x64"); @@ -108,18 +110,22 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri "\t\t{" << uuid << "}\n" "\t\t" << name << "\n" "\t\tWin32Proj\n" - "\t\t$(VCTargetsPath" << _version << ")\n" + "\t\t$(VCTargetsPath" << _version << ")\n" "\t\n"; // Shared configuration project << "\t\n"; - outputConfigurationType(setup, project, name, "Release|Win32", _version); - outputConfigurationType(setup, project, name, "Analysis|Win32", _version); - outputConfigurationType(setup, project, name, "Debug|Win32", _version); - outputConfigurationType(setup, project, name, "Release|x64", _version); - outputConfigurationType(setup, project, name, "Analysis|x64", _version); - outputConfigurationType(setup, project, name, "Debug|x64", _version); + std::string version = "v" + std::to_string(_version) + "0"; + + outputConfigurationType(setup, project, name, "Release|Win32", version); + outputConfigurationType(setup, project, name, "Analysis|Win32", version); + outputConfigurationType(setup, project, name, "LLVM|Win32", "llvm"); + outputConfigurationType(setup, project, name, "Debug|Win32", version); + outputConfigurationType(setup, project, name, "Release|x64", version); + outputConfigurationType(setup, project, name, "LLVM|x64", "llvm"); + outputConfigurationType(setup, project, name, "Analysis|x64", version); + outputConfigurationType(setup, project, name, "Debug|x64", version); project << "\t\n" "\t\n" @@ -127,20 +133,24 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri outputProperties(project, "Release|Win32", setup.projectDescription + "_Release.props"); outputProperties(project, "Analysis|Win32", setup.projectDescription + "_Analysis.props"); + outputProperties(project, "LLVM|Win32", setup.projectDescription + "_LLVM.props"); outputProperties(project, "Debug|Win32", setup.projectDescription + "_Debug.props"); outputProperties(project, "Release|x64", setup.projectDescription + "_Release64.props"); outputProperties(project, "Analysis|x64", setup.projectDescription + "_Analysis64.props"); + outputProperties(project, "LLVM|x64", setup.projectDescription + "_LLVM64.props"); outputProperties(project, "Debug|x64", setup.projectDescription + "_Debug64.props"); project << "\t\n"; // Project-specific settings (analysis uses debug properties) - outputProjectSettings(project, name, setup, false, true, false); - outputProjectSettings(project, name, setup, false, true, true); - outputProjectSettings(project, name, setup, true, true, false); - outputProjectSettings(project, name, setup, false, false, false); - outputProjectSettings(project, name, setup, false, false, true); - outputProjectSettings(project, name, setup, true, false, false); + outputProjectSettings(project, name, setup, false, true, "Debug"); + outputProjectSettings(project, name, setup, false, true, "Analysis"); + outputProjectSettings(project, name, setup, false, true, "LLVM"); + outputProjectSettings(project, name, setup, true, true, "Release"); + outputProjectSettings(project, name, setup, false, false, "Debug"); + outputProjectSettings(project, name, setup, false, false, "Analysis"); + outputProjectSettings(project, name, setup, false, false, "LLVM"); + outputProjectSettings(project, name, setup, true, false, "Release"); // Files std::string modulePath; @@ -255,9 +265,7 @@ void MSBuildProvider::writeReferences(const BuildSetup &setup, std::ofstream &ou output << "\t\n"; } -void MSBuildProvider::outputProjectSettings(std::ofstream &project, const std::string &name, const BuildSetup &setup, bool isRelease, bool isWin32, bool enableAnalysis) { - const std::string configuration = (enableAnalysis ? "Analysis" : (isRelease ? "Release" : "Debug")); - +void MSBuildProvider::outputProjectSettings(std::ofstream &project, const std::string &name, const BuildSetup &setup, bool isRelease, bool isWin32, std::string configuration) { // Check for project-specific warnings: std::map::iterator warningsIterator = _projectWarnings.find(name); bool enableLanguageExtensions = find(_enableLanguageExtensions.begin(), _enableLanguageExtensions.end(), name) != _enableLanguageExtensions.end(); @@ -382,13 +390,12 @@ void MSBuildProvider::outputGlobalPropFile(const BuildSetup &setup, std::ofstrea properties.flush(); } -void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, bool enableAnalysis) { - const std::string outputType = (enableAnalysis ? "Analysis" : (isRelease ? "Release" : "Debug")); +void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, std::string configuration) { const std::string outputBitness = (isWin32 ? "32" : "64"); - std::ofstream properties((setup.outputDir + '/' + setup.projectDescription + "_" + outputType + (isWin32 ? "" : "64") + getPropertiesExtension()).c_str()); + std::ofstream properties((setup.outputDir + '/' + setup.projectDescription + "_" + configuration + (isWin32 ? "" : "64") + getPropertiesExtension()).c_str()); if (!properties) - error("Could not open \"" + setup.outputDir + '/' + setup.projectDescription + "_" + outputType + (isWin32 ? "" : "64") + getPropertiesExtension() + "\" for writing"); + error("Could not open \"" + setup.outputDir + '/' + setup.projectDescription + "_" + configuration + (isWin32 ? "" : "64") + getPropertiesExtension() + "\" for writing"); properties << "\n" "= 12 ? _version : 4) << ".0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n" @@ -396,7 +403,7 @@ void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, b "\t\t\n" "\t\n" "\t\n" - "\t\t<_PropertySheetDisplayName>" << setup.projectDescription << "_" << outputType << outputBitness << "\n" + "\t\t<_PropertySheetDisplayName>" << setup.projectDescription << "_" << configuration << outputBitness << "\n" "\t\t" << (isRelease ? "false" : "true") << "\n" "\t\n" "\t\n" @@ -410,22 +417,26 @@ void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, b "\t\t\tfalse\n" "\t\t\t\n" "\t\t\tMultiThreaded\n" - "\t\t\t" << (enableAnalysis ? "true" : "false") << "\n" + "\t\t\t" << (configuration == "Analysis" ? "true" : "false") << "\n" "\t\t\n" "\t\t\n" "\t\t\t%(IgnoreSpecificDefaultLibraries)\n" "\t\t\ttrue\n"; } else { properties << "\t\t\tDisabled\n" - "\t\t\tWIN32;%(PreprocessorDefinitions)\n" + "\t\t\tWIN32;" << (configuration == "LLVM" ? "_CRT_SECURE_NO_WARNINGS;" : "") << "%(PreprocessorDefinitions)\n" "\t\t\ttrue\n" "\t\t\tEnableFastChecks\n" "\t\t\tMultiThreadedDebug\n" "\t\t\ttrue\n" "\t\t\tfalse\n" "\t\t\t" << (isWin32 ? "EditAndContinue" : "ProgramDatabase") << "\n" // For x64 format Edit and continue is not supported, thus we default to Program Database - "\t\t\t" << (enableAnalysis ? "true" : "false") << "\n" - "\t\t\n" + "\t\t\t" << (configuration == "Analysis" ? "true" : "false") << "\n"; + + if (configuration == "LLVM") + properties << "\t\t\t-Wno-microsoft -Wno-long-long -Wno-multichar -Wno-unknown-pragmas -Wno-reorder -Wpointer-arith -Wcast-qual -Wshadow -Wnon-virtual-dtor -Wwrite-strings -Wno-conversion -Wno-shorten-64-to-32 -Wno-sign-compare -Wno-four-char-constants -Wno-nested-anon-types %(AdditionalOptions)\n"; + + properties << "\t\t\n" "\t\t\n" "\t\t\ttrue\n" "\t\t\tfalse\n" @@ -481,7 +492,7 @@ void MSBuildProvider::writeFileListToProject(const FileNode &dir, std::ofstream // Deal with duplicated file names if (isDuplicate) { projectFile << "\t\t\n" - "\t\t\t$(IntDir)" << (*entry).prefix << "%(Filename).obj\n"; + "\t\t\t$(IntDir)" << (*entry).prefix << "%(Filename).obj\n"; projectFile << "\t\t\n"; } else { diff --git a/devtools/create_project/msbuild.h b/devtools/create_project/msbuild.h index fa6667741a..829657beff 100644 --- a/devtools/create_project/msbuild.h +++ b/devtools/create_project/msbuild.h @@ -35,7 +35,7 @@ protected: void createProjectFile(const std::string &name, const std::string &uuid, const BuildSetup &setup, const std::string &moduleDir, const StringList &includeList, const StringList &excludeList); - void outputProjectSettings(std::ofstream &project, const std::string &name, const BuildSetup &setup, bool isRelease, bool isWin32, bool enableAnalysis); + void outputProjectSettings(std::ofstream &project, const std::string &name, const BuildSetup &setup, bool isRelease, bool isWin32, std::string configuration); void writeFileListToProject(const FileNode &dir, std::ofstream &projectFile, const int indentation, const StringList &duplicate, const std::string &objPrefix, const std::string &filePrefix); @@ -44,7 +44,7 @@ protected: void outputGlobalPropFile(const BuildSetup &setup, std::ofstream &properties, int bits, const StringList &defines, const std::string &prefix, bool runBuildEvents); - void createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, bool enableAnalysis); + void createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, std::string configuration); const char *getProjectExtension(); const char *getPropertiesExtension(); diff --git a/devtools/create_project/msvc.cpp b/devtools/create_project/msvc.cpp index 2fedadcba5..cdd2d8a7c1 100644 --- a/devtools/create_project/msvc.cpp +++ b/devtools/create_project/msvc.cpp @@ -79,9 +79,11 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) { "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n" "\t\tDebug|Win32 = Debug|Win32\n" "\t\tAnalysis|Win32 = Analysis|Win32\n" + "\t\tLLVM|Win32 = LLVM|Win32\n" "\t\tRelease|Win32 = Release|Win32\n" "\t\tDebug|x64 = Debug|x64\n" "\t\tAnalysis|x64 = Analysis|x64\n" + "\t\tLLVM|x64 = LLVM|x64\n" "\t\tRelease|x64 = Release|x64\n" "\tEndGlobalSection\n" "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n"; @@ -91,12 +93,16 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) { "\t\t{" << i->second << "}.Debug|Win32.Build.0 = Debug|Win32\n" "\t\t{" << i->second << "}.Analysis|Win32.ActiveCfg = Analysis|Win32\n" "\t\t{" << i->second << "}.Analysis|Win32.Build.0 = Analysis|Win32\n" + "\t\t{" << i->second << "}.LLVM|Win32.ActiveCfg = LLVM|Win32\n" + "\t\t{" << i->second << "}.LLVM|Win32.Build.0 = LLVM|Win32\n" "\t\t{" << i->second << "}.Release|Win32.ActiveCfg = Release|Win32\n" "\t\t{" << i->second << "}.Release|Win32.Build.0 = Release|Win32\n" "\t\t{" << i->second << "}.Debug|x64.ActiveCfg = Debug|x64\n" "\t\t{" << i->second << "}.Debug|x64.Build.0 = Debug|x64\n" "\t\t{" << i->second << "}.Analysis|x64.ActiveCfg = Analysis|x64\n" "\t\t{" << i->second << "}.Analysis|x64.Build.0 = Analysis|x64\n" + "\t\t{" << i->second << "}.LLVM|x64.ActiveCfg = LLVM|x64\n" + "\t\t{" << i->second << "}.LLVM|x64.Build.0 = LLVM|x64\n" "\t\t{" << i->second << "}.Release|x64.ActiveCfg = Release|x64\n" "\t\t{" << i->second << "}.Release|x64.Build.0 = Release|x64\n"; } @@ -114,12 +120,14 @@ void MSVCProvider::createOtherBuildFiles(const BuildSetup &setup) { // Create the configuration property files (for Debug and Release with 32 and 64bits versions) // Note: we use the debug properties for the analysis configuration - createBuildProp(setup, true, false, false); - createBuildProp(setup, true, true, false); - createBuildProp(setup, false, false, false); - createBuildProp(setup, false, false, true); - createBuildProp(setup, false, true, false); - createBuildProp(setup, false, true, true); + createBuildProp(setup, true, false, "Release"); + createBuildProp(setup, true, true, "Release"); + createBuildProp(setup, false, false, "Debug"); + createBuildProp(setup, false, true, "Debug"); + createBuildProp(setup, false, false, "Analysis"); + createBuildProp(setup, false, true, "Analysis"); + createBuildProp(setup, false, false, "LLVM"); + createBuildProp(setup, false, true, "LLVM"); } void MSVCProvider::createGlobalProp(const BuildSetup &setup) { diff --git a/devtools/create_project/msvc.h b/devtools/create_project/msvc.h index b9b93fe109..3a3eb98034 100644 --- a/devtools/create_project/msvc.h +++ b/devtools/create_project/msvc.h @@ -70,7 +70,7 @@ protected: * @param isWin32 Bitness of property file * @param enableAnalysis PREfast support */ - virtual void createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, bool enableAnalysis) = 0; + virtual void createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, std::string configuration) = 0; /** * Get the file extension for property files diff --git a/devtools/create_project/visualstudio.cpp b/devtools/create_project/visualstudio.cpp index 23225d3435..ac3c30b169 100644 --- a/devtools/create_project/visualstudio.cpp +++ b/devtools/create_project/visualstudio.cpp @@ -92,6 +92,7 @@ void VisualStudioProvider::createProjectFile(const std::string &name, const std: // Win32 outputConfiguration(project, setup, libraries, "Debug", "Win32", "", true); outputConfiguration(project, setup, libraries, "Analysis", "Win32", "", true); + outputConfiguration(project, setup, libraries, "LLVM", "Win32", "", true); outputConfiguration(project, setup, libraries, "Release", "Win32", "", true); // x64 @@ -100,6 +101,7 @@ void VisualStudioProvider::createProjectFile(const std::string &name, const std: // libraries list created for IA-32. If that changes in the future, we need to adjust this part! outputConfiguration(project, setup, libraries, "Debug", "x64", "64", false); outputConfiguration(project, setup, libraries, "Analysis", "x64", "64", false); + outputConfiguration(project, setup, libraries, "LLVM", "Win32", "64", false); outputConfiguration(project, setup, libraries, "Release", "x64", "64", false); } else { @@ -119,9 +121,11 @@ void VisualStudioProvider::createProjectFile(const std::string &name, const std: // Win32 outputConfiguration(setup, project, toolConfig, "Debug", "Win32", ""); outputConfiguration(setup, project, toolConfig, "Analysis", "Win32", ""); + outputConfiguration(setup, project, toolConfig, "LLVM", "Win32", ""); outputConfiguration(setup, project, toolConfig, "Release", "Win32", ""); outputConfiguration(setup, project, toolConfig, "Debug", "x64", "64"); outputConfiguration(setup, project, toolConfig, "Analysis", "x64", "64"); + outputConfiguration(setup, project, toolConfig, "LLVM", "x64", "64"); outputConfiguration(setup, project, toolConfig, "Release", "x64", "64"); } @@ -265,19 +269,18 @@ void VisualStudioProvider::outputGlobalPropFile(const BuildSetup &setup, std::of properties.flush(); } -void VisualStudioProvider::createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, bool enableAnalysis) { - const std::string outputType = (enableAnalysis ? "Analysis" : (isRelease ? "Release" : "Debug")); +void VisualStudioProvider::createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, std::string configuration) { const std::string outputBitness = (isWin32 ? "32" : "64"); - std::ofstream properties((setup.outputDir + '/' + setup.projectDescription + "_" + outputType + (isWin32 ? "" : "64") + getPropertiesExtension()).c_str()); + std::ofstream properties((setup.outputDir + '/' + setup.projectDescription + "_" + configuration + (isWin32 ? "" : "64") + getPropertiesExtension()).c_str()); if (!properties) - error("Could not open \"" + setup.outputDir + '/' + setup.projectDescription + "_" + outputType + (isWin32 ? "" : "64") + getPropertiesExtension() + "\" for writing"); + error("Could not open \"" + setup.outputDir + '/' + setup.projectDescription + "_" + configuration + (isWin32 ? "" : "64") + getPropertiesExtension() + "\" for writing"); properties << "\n" "\n" "\t\n" "\t\n" "\t\n" << toolLine << indentString << "\t\n" - << indentString << "\t\n" - << toolLine - << indentString << "\t\n" + << indentString << "\t\n" + << toolLine + << indentString << "\t\n" << indentString << "\t\n" << toolLine << indentString << "\t\n" @@ -369,18 +372,18 @@ void VisualStudioProvider::writeFileListToProject(const FileNode &dir, std::ofst << indentString << "\t\n" << toolLine << indentString << "\t\n" - << indentString << "\t\n" - << toolLine - << indentString << "\t\n" + << indentString << "\t\n" + << toolLine + << indentString << "\t\n" << indentString << "\t\n" << toolLine << indentString << "\t\n" - << indentString << "\t\n" - << toolLine - << indentString << "\t\n" - << indentString << "\t\n" - << toolLine - << indentString << "\t\n" + << indentString << "\t\n" + << toolLine + << indentString << "\t\n" + << indentString << "\t\n" + << toolLine + << indentString << "\t\n" << indentString << "\t\n" << toolLine << indentString << "\t\n" diff --git a/devtools/create_project/visualstudio.h b/devtools/create_project/visualstudio.h index 845550139c..7eb66c4f2d 100644 --- a/devtools/create_project/visualstudio.h +++ b/devtools/create_project/visualstudio.h @@ -42,7 +42,7 @@ protected: void outputGlobalPropFile(const BuildSetup &setup, std::ofstream &properties, int bits, const StringList &defines, const std::string &prefix, bool runBuildEvents); - void createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, bool enableAnalysis); + void createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32, std::string configuration); const char *getProjectExtension(); const char *getPropertiesExtension(); -- cgit v1.2.3 From 3079100409df05d5da47a0c2f0676659c7d9d733 Mon Sep 17 00:00:00 2001 From: Littleboy Date: Fri, 6 Sep 2013 18:33:48 -0400 Subject: CREATE_PROJECT: Change PlatformToolset name for latest version of LLVM on Windows --- devtools/create_project/msbuild.cpp | 5 +++-- devtools/create_project/visualstudio.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp index 44055ab166..7bab5c1078 100644 --- a/devtools/create_project/msbuild.cpp +++ b/devtools/create_project/msbuild.cpp @@ -117,13 +117,14 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri project << "\t\n"; std::string version = "v" + std::to_string(_version) + "0"; + std::string llvm = "LLVM-vs" + std::to_string(getVisualStudioVersion()); outputConfigurationType(setup, project, name, "Release|Win32", version); outputConfigurationType(setup, project, name, "Analysis|Win32", version); - outputConfigurationType(setup, project, name, "LLVM|Win32", "llvm"); + outputConfigurationType(setup, project, name, "LLVM|Win32", llvm); outputConfigurationType(setup, project, name, "Debug|Win32", version); outputConfigurationType(setup, project, name, "Release|x64", version); - outputConfigurationType(setup, project, name, "LLVM|x64", "llvm"); + outputConfigurationType(setup, project, name, "LLVM|x64", llvm); outputConfigurationType(setup, project, name, "Analysis|x64", version); outputConfigurationType(setup, project, name, "Debug|x64", version); diff --git a/devtools/create_project/visualstudio.cpp b/devtools/create_project/visualstudio.cpp index ac3c30b169..438e0772f9 100644 --- a/devtools/create_project/visualstudio.cpp +++ b/devtools/create_project/visualstudio.cpp @@ -121,7 +121,7 @@ void VisualStudioProvider::createProjectFile(const std::string &name, const std: // Win32 outputConfiguration(setup, project, toolConfig, "Debug", "Win32", ""); outputConfiguration(setup, project, toolConfig, "Analysis", "Win32", ""); - outputConfiguration(setup, project, toolConfig, "LLVM", "Win32", ""); + outputConfiguration(setup, project, toolConfig, "LLVM", "Win32", ""); outputConfiguration(setup, project, toolConfig, "Release", "Win32", ""); outputConfiguration(setup, project, toolConfig, "Debug", "x64", "64"); outputConfiguration(setup, project, toolConfig, "Analysis", "x64", "64"); -- cgit v1.2.3 From 8b56d0792cace06693b18af3fe848f66434fc4cd Mon Sep 17 00:00:00 2001 From: Littleboy Date: Wed, 11 Sep 2013 20:36:38 -0400 Subject: CREATE_PROJECT: Remove usage of std::to_string() --- devtools/create_project/create_project.cpp | 6 +++++- devtools/create_project/create_project.h | 8 ++++++++ devtools/create_project/msbuild.cpp | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 3ee5fc4f97..7ae2df35c8 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -39,7 +39,7 @@ #include #include - +#include #include #include #include @@ -966,6 +966,10 @@ bool producesObjectFile(const std::string &fileName) { return false; } +std::string toString(int num) { + return static_cast(&(std::ostringstream() << num))->str(); +} + /** * Checks whether the give file in the specified directory is present in the given * file list. diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h index d0f2db364c..5325bf6d1b 100644 --- a/devtools/create_project/create_project.h +++ b/devtools/create_project/create_project.h @@ -302,6 +302,14 @@ void splitFilename(const std::string &fileName, std::string &name, std::string & */ bool producesObjectFile(const std::string &fileName); +/** +* Convert an integer to string +* +* @param num the integer to convert +* @return string representation of the number +*/ +std::string toString(int num); + /** * Structure representing a file tree. This contains two * members: name and children. "name" holds the name of diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp index 7bab5c1078..0d68b2e9c9 100644 --- a/devtools/create_project/msbuild.cpp +++ b/devtools/create_project/msbuild.cpp @@ -116,8 +116,8 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri // Shared configuration project << "\t\n"; - std::string version = "v" + std::to_string(_version) + "0"; - std::string llvm = "LLVM-vs" + std::to_string(getVisualStudioVersion()); + std::string version = "v" + toString(_version) + "0"; + std::string llvm = "LLVM-vs" + toString(getVisualStudioVersion()); outputConfigurationType(setup, project, name, "Release|Win32", version); outputConfigurationType(setup, project, name, "Analysis|Win32", version); -- cgit v1.2.3 From 1e9fb123647c43e3895eacf2beca7ee09be2ae57 Mon Sep 17 00:00:00 2001 From: Littleboy Date: Wed, 11 Sep 2013 20:38:57 -0400 Subject: DEVTOOLS: Fix warning in extract_mort --- devtools/extract_mort/extract_mort.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/extract_mort/extract_mort.cpp b/devtools/extract_mort/extract_mort.cpp index 159309c0fa..4346f1f4bf 100644 --- a/devtools/extract_mort/extract_mort.cpp +++ b/devtools/extract_mort/extract_mort.cpp @@ -104,10 +104,10 @@ public: return ftell(f); } uint32 size() { - int pos = ftell(f); + int position = ftell(f); fseek (f, 0, SEEK_END); int end = ftell (f); - fseek (f, pos, SEEK_SET); + fseek (f, position, SEEK_SET); return end; } -- cgit v1.2.3 From 856da53e8b232134561308328989cd12259bb063 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Tue, 17 Sep 2013 02:31:04 +0200 Subject: DEVTOOLS: Adapt create_project for libjpeg support. The library name of the static library is based on what libjpeg-turbo uses which should be fine for Windows at least. Untested except for compilation of create_project. --- devtools/create_project/codeblocks.cpp | 5 +++++ devtools/create_project/create_project.cpp | 1 + 2 files changed, 6 insertions(+) (limited to 'devtools') diff --git a/devtools/create_project/codeblocks.cpp b/devtools/create_project/codeblocks.cpp index 3458ca5a19..ec003df2d5 100644 --- a/devtools/create_project/codeblocks.cpp +++ b/devtools/create_project/codeblocks.cpp @@ -64,6 +64,11 @@ std::string processLibraryName(std::string name) { if (pos != std::string::npos) return name.replace(pos, 7, ""); + // Remove "-static" in lib name + pos = name.find("-static"); + if (pos != std::string::npos) + return name.replace(pos, 7, ""); + // Replace "zlib" by "libz" if (name == "zlib") return "libz"; diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 7ae2df35c8..e013377241 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -845,6 +845,7 @@ const Feature s_features[] = { { "mpeg2", "USE_MPEG2", "libmpeg2", false, "MPEG-2 support" }, { "theora", "USE_THEORADEC", "libtheora_static", true, "Theora decoding support" }, {"freetype", "USE_FREETYPE2", "freetype", true, "FreeType support" }, + { "jpeg", "USE_JPEG", "jpeg-static", true, "libjpeg support" }, // Feature flags { "bink", "USE_BINK", "", true, "Bink video support" }, -- cgit v1.2.3 From 987bb6d454a89fb1b2469303d7cb6c65b88d16a3 Mon Sep 17 00:00:00 2001 From: Kirben Date: Fri, 27 Sep 2013 15:50:36 +1000 Subject: SCUMM: Add US Windows preview of Humongous Catalog. --- devtools/scumm-md5.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'devtools') diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt index 0dbcbf4792..a52bbaecf8 100644 --- a/devtools/scumm-md5.txt +++ b/devtools/scumm-md5.txt @@ -598,6 +598,7 @@ catalog Humongous Interactive Catalog a56e8d9d4281c53c3f63c9bd22a59e21 10978342 en All HE CUP Preview George Kormendi 74da3494fbe1a7d20213b0afe0954755 10841544 fr All HE CUP Preview - George Kormendi 4c4820518e16e1a0e3616a3b021a04f3 10927456 de All HE CUP Preview - Kirben + 288fb75b24389733c29fa107fe8d44e8 10795148 us All HE CUP Preview - Kirben airport Let's Explore the Airport with Buzzy d6334a5a9b61afe18c368540fdf522ca -1 en Mac - - - Joachim Eberhard -- cgit v1.2.3 From ca5804a253c0e654ec6d6210aea9ee2574aad367 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Fri, 27 Sep 2013 12:28:25 +0300 Subject: DEVTOOLS: Make Coverity happy. This is mainly due to unhandled clang __has_featrure() buit-in. I do not like this hack, but Coverity proved to be a very good tool for us. --- devtools/convbdf.cpp | 4 ++++ devtools/create_mortdat/create_mortdat.cpp | 4 ---- devtools/create_neverhood/create_neverhood.cpp | 2 +- devtools/create_project/create_project.h | 4 ++++ devtools/create_translations/create_translations.cpp | 3 ++- devtools/create_translations/create_translations.h | 4 ++++ 6 files changed, 15 insertions(+), 6 deletions(-) (limited to 'devtools') diff --git a/devtools/convbdf.cpp b/devtools/convbdf.cpp index c8b1fb7d6d..69728eb9fd 100644 --- a/devtools/convbdf.cpp +++ b/devtools/convbdf.cpp @@ -20,6 +20,10 @@ * */ +#ifndef __has_feature // Optional of course. + #define __has_feature(x) 0 // Compatibility with non-clang compilers. +#endif + #include #include #include diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 5a491eea2f..0065407daa 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -33,10 +33,6 @@ #undef main #endif // main -#include -#include -#include - #include "common/endian.h" #include "create_mortdat.h" #include "enginetext.h" diff --git a/devtools/create_neverhood/create_neverhood.cpp b/devtools/create_neverhood/create_neverhood.cpp index 446ee5ec3b..a37ff99ca9 100644 --- a/devtools/create_neverhood/create_neverhood.cpp +++ b/devtools/create_neverhood/create_neverhood.cpp @@ -30,8 +30,8 @@ #undef main #endif // main -#include #include "create_neverhood.h" +#include #include "md5.h" #include "tables.h" diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h index 5325bf6d1b..2f27cc2f61 100644 --- a/devtools/create_project/create_project.h +++ b/devtools/create_project/create_project.h @@ -23,6 +23,10 @@ #ifndef TOOLS_CREATE_PROJECT_H #define TOOLS_CREATE_PROJECT_H +#ifndef __has_feature // Optional of course. + #define __has_feature(x) 0 // Compatibility with non-clang compilers. +#endif + #include #include #include diff --git a/devtools/create_translations/create_translations.cpp b/devtools/create_translations/create_translations.cpp index a153632c47..a8b04a7a52 100644 --- a/devtools/create_translations/create_translations.cpp +++ b/devtools/create_translations/create_translations.cpp @@ -22,6 +22,8 @@ * The generated files is used by ScummVM to propose translation of its GUI. */ +#include "create_translations.h" + #include #include #include @@ -34,7 +36,6 @@ #undef main #endif // main -#include "create_translations.h" #include "po_parser.h" #include "cp_parser.h" diff --git a/devtools/create_translations/create_translations.h b/devtools/create_translations/create_translations.h index 9ccbd39b2b..1df01e6333 100644 --- a/devtools/create_translations/create_translations.h +++ b/devtools/create_translations/create_translations.h @@ -28,4 +28,8 @@ typedef unsigned short uint16; typedef unsigned int uint32; typedef signed short int16; +#ifndef __has_feature // Optional of course. + #define __has_feature(x) 0 // Compatibility with non-clang compilers. +#endif + #endif /* CREATE_TRANSLATIONS_H */ -- cgit v1.2.3 From fed85464440fbe08e8f99edfddb018519b680a69 Mon Sep 17 00:00:00 2001 From: uruk Date: Sun, 6 Oct 2013 01:20:20 +0200 Subject: AVALANCHE: Update credit files. --- devtools/credits.pl | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index 45018a5633..50efb42a55 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -541,6 +541,11 @@ begin_credits("Credits"); add_person("Oliver Kiehl", "olki", "(retired)"); add_person("Ludvig Strigeus", "ludde", "(retired)"); end_section(); + + begin_section("AVALANCHE"); + add_person("Peter Bozsó", "uruk", ""); + add_person("Arnaud Boutonné", "Strangerke", ""); + end_section(); begin_section("CGE"); add_person("Arnaud Boutonné", "Strangerke", ""); -- cgit v1.2.3 From 303261482de2f2c1bf1f1fb4d2e016b0555ba715 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Sun, 6 Oct 2013 21:02:38 -0400 Subject: CREDITS: Add Keith for some pegasus patches --- devtools/credits.pl | 1 + 1 file changed, 1 insertion(+) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index 45018a5633..ecb543b832 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -1063,6 +1063,7 @@ begin_credits("Credits"); add_person("Janne Huttunen", "", "V3 actor mask support, Dig/FT SMUSH audio"); add_person("Kovács Endre János", "", "Several fixes for Simon1"); add_person("Jeroen Janssen", "japj", "Numerous readability and bugfix patches"); + add_person("Keith Kaisershot", "blitter", "Several Pegasus Prime patches"); add_person("Andreas Karlsson", "Sprawl", "Initial port for SymbianOS"); add_person("Claudio Matsuoka", "", "Daily Linux builds"); add_person("Thomas Mayer", "", "PSP port contributions"); -- cgit v1.2.3 From 8e8e5af0ec3ee4760e83beff095a0bf76a80e5f6 Mon Sep 17 00:00:00 2001 From: RichieSams Date: Tue, 8 Oct 2013 09:49:28 -0500 Subject: ZVISION: Add an entry in credits.pl for ZVision --- devtools/credits.pl | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index 45018a5633..133eba5e93 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -754,6 +754,10 @@ begin_credits("Credits"); begin_section("Wintermute"); add_person("Einar Johan T. Sømåen", "somaen", ""); end_section(); + + begin_section("ZVision"); + add_person("Adrian Astley", "RichieSams", ""); + end_section(); end_section(); -- cgit v1.2.3 From ef87ba54b446346eb528bd1115578b5a99df0b9c Mon Sep 17 00:00:00 2001 From: RichieSams Date: Tue, 8 Oct 2013 09:50:20 -0500 Subject: ZVISION: Add an entry in credits.pl for Marisa Chan / Zidane --- devtools/credits.pl | 1 + 1 file changed, 1 insertion(+) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index 133eba5e93..57336e2895 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -1158,6 +1158,7 @@ begin_credits("Credits"); add_person("Jimmi Thøgersen", "", "For ScummRev, and much obscure code/documentation"); add_person("", "Tristan", "For additional work on the original MT-32 emulator"); add_person("James Woodcock", "", "Soundtrack enhancements"); + add_person("Anton Yartsev", "Zidane", "For the original re-implementation of the ZVison engine"); end_persons(); add_paragraph( -- cgit v1.2.3 From 7a97c992de67152514886f80f3cf4f2f3686d3d4 Mon Sep 17 00:00:00 2001 From: RichieSams Date: Tue, 8 Oct 2013 10:08:09 -0500 Subject: ZVISION: Use credits.pl to update AUTHORS and credits.h --- devtools/credits.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index 57336e2895..e7828d8b18 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -1158,7 +1158,7 @@ begin_credits("Credits"); add_person("Jimmi Thøgersen", "", "For ScummRev, and much obscure code/documentation"); add_person("", "Tristan", "For additional work on the original MT-32 emulator"); add_person("James Woodcock", "", "Soundtrack enhancements"); - add_person("Anton Yartsev", "Zidane", "For the original re-implementation of the ZVison engine"); + add_person("Anton Yartsev", "Zidane", "For the original re-implementation of the ZVision engine"); end_persons(); add_paragraph( -- cgit v1.2.3 From 748ba2475a2486196484246dc461d435c2564aba Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Thu, 17 Oct 2013 22:32:49 +0200 Subject: AVALANCHE: Fix broken xml entity in credits --- devtools/credits.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index 50efb42a55..f652773b33 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -543,7 +543,7 @@ begin_credits("Credits"); end_section(); begin_section("AVALANCHE"); - add_person("Peter Bozsó", "uruk", ""); + add_person("Peter Bozsó", "uruk", ""); add_person("Arnaud Boutonné", "Strangerke", ""); end_section(); -- cgit v1.2.3 From 0d20acf8de696111a1514e1b3ca01bd21f0a8a72 Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Wed, 30 Oct 2013 21:56:16 +0000 Subject: CREDITS: Add credits for game translations --- devtools/credits.pl | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/credits.pl b/devtools/credits.pl index fda6f4782e..03e086ce99 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -48,7 +48,7 @@ if ($mode eq "") { $Text::Wrap::unexpand = 0; if ($mode eq "TEXT") { $Text::Wrap::columns = 78; - $max_name_width = 23; # The maximal width of a name. + $max_name_width = 28; # The maximal width of a name. } elsif ($mode eq "CPP") { $Text::Wrap::columns = 48; # Approx. } @@ -60,6 +60,7 @@ sub html_entities_to_ascii { # For now we hardcode these mappings # á -> a # é -> e + # í -> i # ì -> i # ó -> o # ø -> o @@ -72,8 +73,10 @@ sub html_entities_to_ascii { # ł -> l # ś -> s # Š -> S + # ñ -> n $text =~ s/á/a/g; $text =~ s/é/e/g; + $text =~ s/í/i/g; $text =~ s/ì/i/g; $text =~ s/ó/o/g; $text =~ s/ø/o/g; @@ -81,6 +84,7 @@ sub html_entities_to_ascii { $text =~ s/ś/s/g; $text =~ s/Š/S/g; $text =~ s/å/aa/g; + $text =~ s/ñ/n/g; $text =~ s/ä/a/g; $text =~ s/ë/e/g; @@ -101,6 +105,7 @@ sub html_entities_to_cpp { # The numerical values are octal! $text =~ s/á/\\341/g; $text =~ s/é/\\351/g; + $text =~ s/í/\\355/g; $text =~ s/ì/\\354/g; $text =~ s/ó/\\363/g; $text =~ s/ø/\\370/g; @@ -108,6 +113,7 @@ sub html_entities_to_cpp { $text =~ s/ś/s/g; $text =~ s/Š/S/g; $text =~ s/å/\\345/g; + $text =~ s/ñ/\\361/g; $text =~ s/ä/\\344/g; $text =~ s/ë/\\353/g; @@ -126,6 +132,7 @@ sub html_entities_to_rtf { $text =~ s/á/\\'87/g; $text =~ s/é/\\'8e/g; + $text =~ s/í/\\'92/g; $text =~ s/ì/\\'93/g; $text =~ s/ó/\\'97/g; $text =~ s/ø/\\'bf/g; @@ -135,6 +142,8 @@ sub html_entities_to_rtf { $text =~ s/Š/\\uc0\\u540 /g; # Back to hex numbers + $text =~ s/ñ/\\'96/g; + $text =~ s/ä/\\'8a/g; $text =~ s/ë/\\'eb/g; $text =~ s/ö/\\'9a/g; @@ -151,12 +160,14 @@ sub html_entities_to_tex { $text =~ s/á/\\'a/g; $text =~ s/é/\\'e/g; + $text =~ s/í/\\'i/g; $text =~ s/ì/\\`\\i/g; $text =~ s/ó/\\'o/g; $text =~ s/ø/{\\o}/g; $text =~ s/å/\\aa /g; $text =~ s/ł/{\\l}/g; $text =~ s/Š/{\\v S}/g; + $text =~ s/ñ/\\Ëœn/g; $text =~ s/ä/\\"a/g; $text =~ s/ö/\\"o/g; @@ -984,7 +995,7 @@ begin_credits("Credits"); end_section(); end_section(); - begin_section("Translations"); + begin_section("GUI Translations"); begin_persons(); add_person("Thierry Crozat", "criezy", "Translation Lead"); end_persons(); @@ -1049,6 +1060,20 @@ begin_credits("Credits"); add_person("Lubomyr Lisen", "", ""); end_section(); end_section(); + begin_section("Game Translations"); + begin_section("CGE"); + add_person("Dan Serban", "nutron", "Soltys English translation"); + add_person("Víctor González", "IlDucci", "Soltys Spanish translation"); + add_person("Alejandro Gómez de la Muñoza", "TheFireRed", "Soltys Spanish translation"); + end_section(); + begin_section("Drascula"); + add_person("Thierry Crozat", "criezy", "Improve French translation"); + end_section(); + begin_section("Mortevielle"); + add_person("Hugo Labrande", "", "Improve English translation"); + add_person("Thierry Crozat", "criezy", "Improve English translation"); + end_section(); + end_section(); begin_section("Websites (design)"); begin_persons(); -- cgit v1.2.3 From d594f626625ef78c659e3bd5936816ffba1886b7 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 30 Oct 2013 23:33:38 +0100 Subject: TOOLS: Create Mortdat - Fix CID 1063349 --- devtools/create_mortdat/create_mortdat.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/create_mortdat/create_mortdat.cpp b/devtools/create_mortdat/create_mortdat.cpp index 0065407daa..693e277b91 100644 --- a/devtools/create_mortdat/create_mortdat.cpp +++ b/devtools/create_mortdat/create_mortdat.cpp @@ -210,7 +210,7 @@ void writeMenuData(const char *menuData, int languageId) { outputFile.writeByte(languageId); // Write each 8-characters block as a byte (one bit per character) // ' ' -> 0, anything else -> 1 - byte value; + byte value = 0; int valueCpt = 0; const char* str = menuData; while (*str != 0) { -- cgit v1.2.3 From 39bbcfa59e89f065757d418d4406fe7f42acde57 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 30 Oct 2013 23:46:05 +0100 Subject: TOOLS: Extract_mort - FIX CID 1060932, 1060933 --- devtools/extract_mort/extract_mort.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'devtools') diff --git a/devtools/extract_mort/extract_mort.cpp b/devtools/extract_mort/extract_mort.cpp index 4346f1f4bf..a52458f9b2 100644 --- a/devtools/extract_mort/extract_mort.cpp +++ b/devtools/extract_mort/extract_mort.cpp @@ -104,9 +104,9 @@ public: return ftell(f); } uint32 size() { - int position = ftell(f); + uint32 position = ftell(f); fseek (f, 0, SEEK_END); - int end = ftell (f); + uint32 end = ftell(f); fseek (f, position, SEEK_SET); return end; -- cgit v1.2.3 From 6e29e1abeefb998c97df14c6971c69822ead7959 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Thu, 7 Nov 2013 12:58:34 +0100 Subject: DEVTOOLS: Adapt create_project for new configure.engine files. I could not try any generated project files since I do not have access to the IDEs. --- devtools/create_project/create_project.cpp | 165 ++++++++++++++++++++--------- devtools/create_project/create_project.h | 43 +++++++- 2 files changed, 151 insertions(+), 57 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index e013377241..ad3160d778 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -81,22 +81,6 @@ std::string unifyPath(const std::string &path); * @param exe Name of the executable. */ void displayHelp(const char *exe); - -/** - * Structure for describing an FSNode. This is a very minimalistic - * description, which includes everything we need. - * It only contains the name of the node and whether it is a directory - * or not. - */ -struct FSNode { - FSNode() : name(), isDirectory(false) {} - FSNode(const std::string &n, bool iD) : name(n), isDirectory(iD) {} - - std::string name; ///< Name of the file system node - bool isDirectory; ///< Whether it is a directory or not -}; - -typedef std::list FileList; } // End of anonymous namespace enum ProjectType { @@ -128,7 +112,7 @@ int main(int argc, char *argv[]) { setup.filePrefix = setup.srcDir; setup.outputDir = '.'; - setup.engines = parseConfigure(setup.srcDir); + setup.engines = parseEngines(setup.srcDir); if (setup.engines.empty()) { std::cout << "WARNING: No engines found in configure file or configure file missing in \"" << setup.srcDir << "\"\n"; @@ -672,47 +656,51 @@ void displayHelp(const char *exe) { } /** - * Try to parse a given line and create an engine definition - * out of the result. - * - * This may take *any* input line, when the line is not used - * to define an engine the result of the function will be "false". + * Parse the configure.engine file of a given engine directory and return a + * list of all defined engines. * - * Note that the contents of "engine" are undefined, when this - * function returns "false". + * @param engineDir The directory of the engine. + * @return The list of all defined engines. + */ +EngineDescList parseEngineConfigure(const std::string &engineDir); + +/** + * Compares two FSNode entries in a strict-weak fashion based on the name. * - * @param line Text input line. - * @param engine Reference to an object, where the engine information - * is to be stored in. - * @return "true", when parsing succeeded, "false" otherwise. + * @param left The first operand. + * @param right The second operand. + * @return "true" when the name of the left operand is strictly smaller than + * the name of the second operand. "false" otherwise. */ -bool parseEngine(const std::string &line, EngineDesc &engine); +bool compareFSNode(const CreateProjectTool::FSNode &left, const CreateProjectTool::FSNode &right); } // End of anonymous namespace -EngineDescList parseConfigure(const std::string &srcDir) { - std::string configureFile = srcDir + "/engines/configure.engines"; +EngineDescList parseEngines(const std::string &srcDir) { + using CreateProjectTool::FileList; + using CreateProjectTool::listDirectory; - std::ifstream configure(configureFile.c_str()); - if (!configure) - return EngineDescList(); + EngineDescList engineList; - std::string line; - EngineDescList engines; + FileList engineFiles = listDirectory(srcDir + "/engines/"); - for (;;) { - std::getline(configure, line); - if (configure.eof()) - break; + // Sort file list alphabetically this allows for a nicer order in + // --list-engines output, for example. + engineFiles.sort(&compareFSNode); - if (configure.fail()) - error("Failed while reading from " + configureFile); + for (FileList::const_iterator i = engineFiles.begin(), end = engineFiles.end(); i != end; ++i) { + // Each engine requires its own sub directory thus we will skip all + // non directory file nodes here. + if (!i->isDirectory) { + continue; + } - EngineDesc desc; - if (parseEngine(line, desc)) - engines.push_back(desc); + // Retrieve all engines defined in this sub directory and add them to + // the list of all engines. + EngineDescList list = parseEngineConfigure(srcDir + "/engines/" + i->name); + engineList.splice(engineList.end(), list); } - return engines; + return engineList; } bool isSubEngine(const std::string &name, const EngineDescList &engines) { @@ -777,6 +765,21 @@ StringList getEngineDefines(const EngineDescList &engines) { } namespace { +/** + * Try to parse a given line and create an engine definition + * out of the result. + * + * This may take *any* input line, when the line is not used + * to define an engine the result of the function will be "false". + * + * Note that the contents of "engine" are undefined, when this + * function returns "false". + * + * @param line Text input line. + * @param engine Reference to an object, where the engine information + * is to be stored in. + * @return "true", when parsing succeeded, "false" otherwise. + */ bool parseEngine(const std::string &line, EngineDesc &engine) { // Format: // add_engine engine_name "Readable Description" enable_default ["SubEngineList"] @@ -799,6 +802,36 @@ bool parseEngine(const std::string &line, EngineDesc &engine) { return true; } + +EngineDescList parseEngineConfigure(const std::string &engineDir) { + std::string configureFile = engineDir + "/configure.engine"; + + std::ifstream configure(configureFile.c_str()); + if (!configure) + return EngineDescList(); + + std::string line; + EngineDescList engines; + + for (;;) { + std::getline(configure, line); + if (configure.eof()) + break; + + if (configure.fail()) + error("Failed while reading from " + configureFile); + + EngineDesc desc; + if (parseEngine(line, desc)) + engines.push_back(desc); + } + + return engines; +} + +bool compareFSNode(const CreateProjectTool::FSNode &left, const CreateProjectTool::FSNode &right) { + return left.name < right.name; +} } // End of anonymous namespace TokenList tokenize(const std::string &input, char separator) { @@ -1048,13 +1081,6 @@ bool compareNodes(const FileNode *l, const FileNode *r) { } } -/** - * Returns a list of all files and directories in the specified - * path. - * - * @param dir Directory which should be listed. - * @return List of all children. - */ FileList listDirectory(const std::string &dir) { FileList result; #ifdef USE_WIN32_API @@ -1242,6 +1268,12 @@ void ProjectProvider::createProject(BuildSetup &setup) { // Create other misc. build files createOtherBuildFiles(setup); + + // In case we create the main ScummVM project files we will need to + // generate engines/plugins_table.h too. + if (!setup.tests && !setup.devTools) { + createEnginePluginsTable(setup); + } } ProjectProvider::UUIDMap ProjectProvider::createUUIDMap(const BuildSetup &setup) const { @@ -1569,6 +1601,33 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin error("Malformed file " + moduleMkFile); } +void ProjectProvider::createEnginePluginsTable(const BuildSetup &setup) { + const std::string enginePluginsTableFile = setup.outputDir + "/engines/plugins_table.h"; + std::ofstream enginePluginsTable(enginePluginsTableFile.c_str()); + if (!enginePluginsTable) { + error("Could not open \"" + enginePluginsTableFile + "\" for writing"); + } + + enginePluginsTable << "/* This file is automatically generated by create_project */\n" + << "/* DO NOT EDIT MANUALLY */\n" + << "// This file is being included by \"base/plugins.cpp\"\n"; + + for (EngineDescList::const_iterator i = setup.engines.begin(), end = setup.engines.end(); i != end; ++i) { + // We ignore all sub engines here because they require no special + // handling. + if (isSubEngine(i->name, setup.engines)) { + continue; + } + + // Make the engine name all uppercase. + std::string engineName; + std::transform(i->name.begin(), i->name.end(), std::back_inserter(engineName), toupper); + + enginePluginsTable << "#if PLUGIN_ENABLED_STATIC(" << engineName << ")\n" + << "LINK_PLUGIN(" << engineName << ")\n" + << "#endif\n"; + } +} } // End of anonymous namespace void error(const std::string &message) { diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h index 2f27cc2f61..69ed551151 100644 --- a/devtools/create_project/create_project.h +++ b/devtools/create_project/create_project.h @@ -102,16 +102,17 @@ struct EngineDesc { typedef std::list EngineDescList; /** - * This function parses the project configure file and creates a list - * of available engines. + * This function parses the project directory and creates a list of + * available engines. * * It will also automatically setup the default build state (enabled - * or disabled) to the state specified in the "configure" file. + * or disabled) to the state specified in the individual configure.engine + * files. * * @param srcDir Path to the root of the project source. * @return List of available engines. */ -EngineDescList parseConfigure(const std::string &srcDir); +EngineDescList parseEngines(const std::string &srcDir); /** * Checks whether the specified engine is a sub engine. To determine this @@ -262,6 +263,22 @@ void NORETURN_PRE error(const std::string &message) NORETURN_POST; namespace CreateProjectTool { +/** + * Structure for describing an FSNode. This is a very minimalistic + * description, which includes everything we need. + * It only contains the name of the node and whether it is a directory + * or not. + */ +struct FSNode { + FSNode() : name(), isDirectory(false) {} + FSNode(const std::string &n, bool iD) : name(n), isDirectory(iD) {} + + std::string name; ///< Name of the file system node + bool isDirectory; ///< Whether it is a directory or not +}; + +typedef std::list FileList; + /** * Gets a proper sequence of \t characters for the given * indentation level. @@ -314,6 +331,15 @@ bool producesObjectFile(const std::string &fileName); */ std::string toString(int num); +/** + * Returns a list of all files and directories in the specified + * path. + * + * @param dir Directory which should be listed. + * @return List of all children. + */ +FileList listDirectory(const std::string &dir); + /** * Structure representing a file tree. This contains two * members: name and children. "name" holds the name of @@ -474,6 +500,15 @@ protected: * @return A new UUID as string. */ std::string createUUID() const; + +private: + /** + * This creates the engines/plugins_table.h file required for building + * ScummVM. + * + * @param setup Description of the desired build. + */ + void createEnginePluginsTable(const BuildSetup &setup); }; } // End of CreateProjectTool namespace -- cgit v1.2.3 From c00ab00f250205dc76890965562f5b661055826a Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Thu, 7 Nov 2013 12:58:35 +0100 Subject: DEVTOOLS: Factor out function to create directories in create_project. --- devtools/create_project/create_project.cpp | 27 ++++++++++++++++++++++++++ devtools/create_project/create_project.h | 7 +++++++ devtools/create_project/xcode.cpp | 31 +----------------------------- 3 files changed, 35 insertions(+), 30 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index ad3160d778..026cbe07a4 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -59,6 +59,7 @@ #include #include #include +#include #endif namespace { @@ -1121,6 +1122,32 @@ FileList listDirectory(const std::string &dir) { return result; } +void createDirectory(const std::string &dir) { +#if defined(_WIN32) || defined(WIN32) + if (!CreateDirectory(dir.c_str(), NULL)) { + if (GetLastError() != ERROR_ALREADY_EXISTS) { + error("Could not create folder \"" + dir + "\""); + } + } +#else + if (mkdir(dir.c_str(), 0777) == -1) { + if (errno == EEXIST) { + // Try to open as a folder (might be a file / symbolic link) + DIR *dirp = opendir(dir.c_str()); + if (dirp == NULL) { + error("Could not create folder \"" + dir + "\""); + } else { + // The folder exists, just close the stream and return + closedir(dirp); + } + } else { + error("Could not create folder \"" + dir + "\""); + } + } +#endif + +} + /** * Scans the specified directory against files, which should be included * in the project files. It will not include files present in the exclude list. diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h index 69ed551151..459342a67d 100644 --- a/devtools/create_project/create_project.h +++ b/devtools/create_project/create_project.h @@ -340,6 +340,13 @@ std::string toString(int num); */ FileList listDirectory(const std::string &dir); +/** + * Create a directory at the given path. + * + * @param dir The path to create. + */ +void createDirectory(const std::string &dir); + /** * Structure representing a file tree. This contains two * members: name and children. "name" holds the name of diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp index a9b8e7a752..d95bf3e9ee 100644 --- a/devtools/create_project/xcode.cpp +++ b/devtools/create_project/xcode.cpp @@ -26,15 +26,6 @@ #include #include -#if defined(_WIN32) || defined(WIN32) -#include -#else -#include -#include -#include -#include -#endif - namespace CreateProjectTool { #define DEBUG_XCODE_HASH 0 @@ -88,27 +79,7 @@ XCodeProvider::XCodeProvider(StringList &global_warnings, std::map\n" "\t\t\t\t\t\n" "\t\t\t\t\t\n" + "\t\t\t\t\t\n" "\t\t\t\t\n"; ////////////////////////////////////////////////////////////////////////// diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp index 0d68b2e9c9..07ae20e7dc 100644 --- a/devtools/create_project/msbuild.cpp +++ b/devtools/create_project/msbuild.cpp @@ -360,7 +360,7 @@ void MSBuildProvider::outputGlobalPropFile(const BuildSetup &setup, std::ofstrea "\t\t\n" "\t\t\ttrue\n" "\t\t\t" << warnings << ";%(DisableSpecificWarnings)\n" - "\t\t\t$(" << LIBS_DEFINE << ")\\include;" << prefix << ";" << prefix << "\\engines;" << (setup.tests ? prefix + "\\test\\cxxtest;" : "") << "$(TargetDir);%(AdditionalIncludeDirectories)\n" + "\t\t\t$(" << LIBS_DEFINE << ")\\include;.\\;" << prefix << ";" << prefix << "\\engines;" << (setup.tests ? prefix + "\\test\\cxxtest;" : "") << "$(TargetDir);%(AdditionalIncludeDirectories)\n" "\t\t\t" << definesList << "%(PreprocessorDefinitions)\n" "\t\t\t" << ((setup.devTools || setup.tests) ? "Sync" : "") << "\n"; diff --git a/devtools/create_project/visualstudio.cpp b/devtools/create_project/visualstudio.cpp index 438e0772f9..84bc674f9a 100644 --- a/devtools/create_project/visualstudio.cpp +++ b/devtools/create_project/visualstudio.cpp @@ -232,7 +232,7 @@ void VisualStudioProvider::outputGlobalPropFile(const BuildSetup &setup, std::of "\t\tName=\"VCCLCompilerTool\"\n" "\t\tDisableLanguageExtensions=\"" << (setup.devTools ? "false" : "true") << "\"\n" "\t\tDisableSpecificWarnings=\"" << warnings << "\"\n" - "\t\tAdditionalIncludeDirectories=\"" << prefix << ";" << prefix << "\\engines;$(" << LIBS_DEFINE << ")\\include;" << (setup.tests ? prefix + "\\test\\cxxtest;" : "") << "$(TargetDir)\"\n" + "\t\tAdditionalIncludeDirectories=\".\\;" << prefix << ";" << prefix << "\\engines;$(" << LIBS_DEFINE << ")\\include;" << (setup.tests ? prefix + "\\test\\cxxtest;" : "") << "$(TargetDir)\"\n" "\t\tPreprocessorDefinitions=\"" << definesList << "\"\n" "\t\tExceptionHandling=\"" << ((setup.devTools || setup.tests) ? "1" : "0") << "\"\n"; -- cgit v1.2.3 From 441ebc04b0afd2ba768c454c9a20b6320b4cf6a2 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Wed, 27 Nov 2013 23:07:57 +0100 Subject: DEVTOOLS: Include 'iterator' for std::back_inserter. --- devtools/create_project/create_project.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'devtools') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 16b8e1d166..9d7ed532cb 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include -- cgit v1.2.3