aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devtools/create_mortdat/create_mortdat.cpp197
-rw-r--r--devtools/create_mortdat/create_mortdat.h90
-rw-r--r--devtools/create_mortdat/enginetext.h136
3 files changed, 236 insertions, 187 deletions
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 <string.h>
#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