aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2016-05-31 20:52:16 -0400
committerPaul Gilbert2016-07-15 19:17:31 -0400
commitec33749157a18780b7df13733f23af831d4cb096 (patch)
treedb33204eeaa81899c0e0a5b9fec6978b65f22e81
parentcf0051caf719a5ee510973df31aa3b4e4bddc832 (diff)
downloadscummvm-rg350-ec33749157a18780b7df13733f23af831d4cb096.tar.gz
scummvm-rg350-ec33749157a18780b7df13733f23af831d4cb096.tar.bz2
scummvm-rg350-ec33749157a18780b7df13733f23af831d4cb096.zip
DEVTOOLS: Add Bellbot script responses to create_titanic
-rw-r--r--devtools/create_titanic/create_titanic_dat.cpp43
-rw-r--r--devtools/create_titanic/module.mk2
-rw-r--r--devtools/create_titanic/script_responses.cpp (renamed from devtools/create_titanic/script_tags.cpp)139
-rw-r--r--devtools/create_titanic/script_responses.h (renamed from devtools/create_titanic/script_tags.h)0
4 files changed, 179 insertions, 5 deletions
diff --git a/devtools/create_titanic/create_titanic_dat.cpp b/devtools/create_titanic/create_titanic_dat.cpp
index 9b8e8caa58..133bad577d 100644
--- a/devtools/create_titanic/create_titanic_dat.cpp
+++ b/devtools/create_titanic/create_titanic_dat.cpp
@@ -36,7 +36,7 @@
#include "common/rect.h"
#include "winexe_pe.h"
#include "file.h"
-#include "script_tags.h"
+#include "script_responses.h"
/**
* Format of the access.dat file that will be created:
@@ -356,7 +356,48 @@ void writeData() {
writeAllScriptTags();
}
+// Support method used for translating IDA debugger's output for
+// an NPC's chooseResponse method tag list to a format for inclusion
+// in this tool's script_respones.cpp file
+void createScriptResponses() {
+ Common::File inFile;
+ char line[80];
+ char c[2];
+ c[0] = c[1] = '\0';
+
+ inFile.open("d:\\temp\\bellbot.txt");
+ printf("static const int xxxx_RESPONSES[][5] = {\n");
+
+ do {
+ strcpy(line, "");
+
+ while (!inFile.eof()) {
+ c[0] = inFile.readByte();
+ if (c[0] == '\n')
+ c[0] = ' ';
+ else if (c[0] == '\r')
+ continue;
+ strcat(line, c);
+ if (inFile.eof() || strlen(line) == (5 * 9))
+ break;
+ }
+
+ int tag, v1, v2, v3, v4;
+ sscanf(line, "%x %x %x %x %x", &tag, &v1, &v2, &v3, &v4);
+
+ printf("\t{ MKTAG('%c', '%c', '%c', '%c'), %d, %d, %d, %d },\n",
+ (tag >> 24) & 0xff, (tag >> 16) & 0xff, (tag >> 8) & 0xff, tag & 0xff,
+ v1, v2, v3, v4);
+
+ } while (!inFile.eof());
+
+ printf("};\r\n");
+ inFile.close();
+}
+
int main(int argc, char *argv[]) {
+ createScriptResponses();
+
if (argc != 3) {
printf("Format: %s ST.exe titanic.dat\n", argv[0]);
exit(0);
diff --git a/devtools/create_titanic/module.mk b/devtools/create_titanic/module.mk
index f74f445c50..ef5b2a0bdf 100644
--- a/devtools/create_titanic/module.mk
+++ b/devtools/create_titanic/module.mk
@@ -4,7 +4,7 @@ MODULE := devtools/create_titanic
MODULE_OBJS := \
create_titanic_dat.o \
hashmap.o \
- script_tags.o \
+ script_responses.o \
str.o \
winexe.o \
winexe_pe.o
diff --git a/devtools/create_titanic/script_tags.cpp b/devtools/create_titanic/script_responses.cpp
index e5df5e6b87..aa342396db 100644
--- a/devtools/create_titanic/script_tags.cpp
+++ b/devtools/create_titanic/script_responses.cpp
@@ -30,9 +30,9 @@
#endif // main
#include "file.h"
-#include "script_tags.h"
+#include "script_responses.h"
-static const int DESKBOT_TAGS[128][5] = {
+static const int DESKBOT_RESPONSES[128][5] = {
{ MKTAG('P', 'K', 'U', 'P'), 240573, 0, 0, 0 },
{ MKTAG('S', 'E', 'X', '1'), 240573, 0, 0, 0 },
{ MKTAG('R', 'E', 'S', '1'), 240354, 0, 0, 0 },
@@ -175,6 +175,138 @@ static const int DESKBOT_TAGS[128][5] = {
{ MKTAG('W', 'W', 'E', 'B'), 241172, 0, 0, 0 }
};
+static const int BELLBOT_RESPONSES[130][5] = {
+ { MKTAG('A', 'C', 'T', 'R'), 200505, 0, 0, 0 },
+ { MKTAG('A', 'C', 'T', 'S'), 200505, 0, 0, 0 },
+ { MKTAG('F', 'A', 'M', 'E'), 200532, 200585, 0, 0 },
+ { MKTAG('A', 'D', 'V', 'T'), 200506, 0, 0, 0 },
+ { MKTAG('L', 'I', 'Q', 'D'), 200507, 200527, 0, 0 },
+ { MKTAG('F', 'A', 'U', 'N'), 200511, 0, 0, 0 },
+ { MKTAG('H', 'B', 'B', 'Y'), 200514, 0, 0, 0 },
+ { MKTAG('N', 'I', 'K', 'E'), 200514, 0, 0, 0 },
+ { MKTAG('B', 'R', 'N', 'D'), 200514, 0, 0, 0 },
+ { MKTAG('P', 'G', 'R', 'P'), 200514, 0, 0, 0 },
+ { MKTAG('R', 'C', 'K', 'T'), 200514, 0, 0, 0 },
+ { MKTAG('D', 'R', 'U', 'G'), 200528, 0, 0, 0 },
+ { MKTAG('F', 'A', 'S', 'H'), 200533, 0, 0, 0 },
+ { MKTAG('T', 'O', 'Y', 'S'), 200533, 0, 0, 0 },
+ { MKTAG('F', 'O', 'O', 'D'), 202270, 0, 0, 0 },
+ { MKTAG('J', 'F', 'O', 'D'), 202270, 0, 0, 0 },
+ { MKTAG('A', 'R', 'T', 'I'), 200538, 0, 0, 0 },
+ { MKTAG('A', 'R', 'T', 'Y'), 200538, 0, 0, 0 },
+ { MKTAG('L', 'I', 'T', 'R'), 200538, 0, 0, 0 },
+ { MKTAG('C', 'R', 'I', 'M'), 200538, 0, 0, 0 },
+ { MKTAG('C', 'S', 'P', 'Y'), 200538, 0, 0, 0 },
+ { MKTAG('W', 'E', 'A', 'T'), 200538, 0, 0, 0 },
+ { MKTAG('M', 'U', 'S', 'I'), 200539, 0, 0, 0 },
+ { MKTAG('S', 'O', 'N', 'G'), 200539, 0, 0, 0 },
+ { MKTAG('F', 'I', 'L', 'M'), 200534, 0, 0, 0 },
+ { MKTAG('B', 'L', 'F', '1'), 200535, 0, 0, 0 },
+ { MKTAG('B', 'L', 'F', '2'), 200536, 0, 0, 0 },
+ { MKTAG('M', 'A', 'G', 'S'), 200542, 0, 0, 0 },
+ { MKTAG('P', 'H', 'I', 'L'), 200557, 0, 0, 0 },
+ { MKTAG('P', 'L', 'A', 'N'), 200562, 0, 0, 0 },
+ { MKTAG('E', 'A', 'R', 'T'), 200562, 202252, 0, 0 },
+ { MKTAG('P', 'L', 'A', 'C'), 200562, 202252, 0, 0 },
+ { MKTAG('F', 'L', 'O', 'R'), 200570, 0, 0, 0 },
+ { MKTAG('P', 'T', 'I', 'C'), 200571, 0, 0, 0 },
+ { MKTAG('B', 'L', 'P', '1'), 200577, 0, 0, 0 },
+ { MKTAG('B', 'L', 'P', '2'), 200575, 0, 0, 0 },
+ { MKTAG('B', 'L', 'P', '3'), 200576, 0, 0, 0 },
+ { MKTAG('B', 'L', 'P', '4'), 200578, 0, 0, 0 },
+ { MKTAG('K', 'N', 'O', 'B'), 200579, 0, 0, 0 },
+ { MKTAG('B', 'L', 'R', '1'), 200580, 0, 0, 0 },
+ { MKTAG('B', 'L', 'R', '2'), 200581, 0, 0, 0 },
+ { MKTAG('S', 'E', 'X', '1'), 200582, 0, 0, 0 },
+ { MKTAG('S', 'P', 'R', 'T'), 200584, 0, 0, 0 },
+ { MKTAG('T', 'E', 'A', 'M'), 200584, 0, 0, 0 },
+ { MKTAG('H', 'E', 'R', 'O'), 200585, 0, 0, 0 },
+ { MKTAG('T', 'W', 'A', 'T'), 200588, 0, 0, 0 },
+ { MKTAG('S', 'W', 'E', 'R'), 200590, 200336, 0, 0 },
+ { MKTAG('T', 'R', 'A', '2'), 200594, 0, 0, 0 },
+ { MKTAG('T', 'R', 'A', '3'), 200594, 0, 0, 0 },
+ { MKTAG('T', 'V', 'S', 'H'), 200595, 0, 0, 0 },
+ { MKTAG('S', 'O', 'A', 'P'), 200595, 0, 0, 0 },
+ { MKTAG('C', 'O', 'M', 'D'), 200595, 0, 0, 0 },
+ { MKTAG('C', 'O', 'O', 'K'), 200595, 0, 0, 0 },
+ { MKTAG('C', 'O', 'P', 'S'), 200595, 0, 0, 0 },
+ { MKTAG('D', 'C', 'T', 'R'), 200595, 0, 0, 0 },
+ { MKTAG('S', 'F', 'S', 'F'), 200595, 0, 0, 0 },
+ { MKTAG('H', 'O', 'S', 'T'), 200595, 0, 0, 0 },
+ { MKTAG('B', 'L', 'T', '1'), 200596, 0, 0, 0 },
+ { MKTAG('B', 'L', 'T', '2'), 200597, 0, 0, 0 },
+ { MKTAG('B', 'L', 'T', '3'), 200598, 0, 0, 0 },
+ { MKTAG('B', 'L', 'T', '4'), 200599, 0, 0, 0 },
+ { MKTAG('B', 'L', 'T', '5'), 200600, 0, 0, 0 },
+ { MKTAG('W', 'E', 'A', 'P'), 200601, 0, 0, 0 },
+ { MKTAG('A', 'U', 'T', 'H'), 200605, 0, 0, 0 },
+ { MKTAG('H', 'H', 'L', 'D'), 200536, 0, 0, 0 },
+ { MKTAG('W', 'W', 'E', 'B'), 200608, 0, 0, 0 },
+ { MKTAG('M', 'L', 'T', 'Y'), 200608, 0, 0, 0 },
+ { MKTAG('P', 'K', 'U', 'P'), 200067, 0, 0, 0 },
+ { MKTAG('S', 'U', 'C', '1'), 200067, 0, 0, 0 },
+ { MKTAG('B', 'E', 'L', '1'), 200684, 0, 0, 0 },
+ { MKTAG('B', 'E', 'L', '2'), 200887, 0, 0, 0 },
+ { MKTAG('B', 'E', 'L', '3'), 200610, 0, 0, 0 },
+ { MKTAG('B', 'E', 'L', '4'), 200015, 0, 0, 0 },
+ { MKTAG('B', 'E', 'L', '5'), 200043, 0, 0, 0 },
+ { MKTAG('B', 'E', 'L', '6'), 200333, 0, 0, 0 },
+ { MKTAG('B', 'E', 'L', '7'), 200884, 0, 0, 0 },
+ { MKTAG('H', 'H', 'G', 'Q'), 200516, 0, 0, 0 },
+ { MKTAG('C', 'H', 'A', 'N'), 200961, 0, 0, 0 },
+ { MKTAG('B', 'Y', 'Z', 'A'), 201271, 0, 0, 0 },
+ { MKTAG('F', 'I', 'S', 'H'), 201242, 0, 0, 0 },
+ { MKTAG('S', 'A', 'S', 'S'), 201256, 0, 0, 0 },
+ { MKTAG('S', 'I', 'C', 'K'), 201704, 0, 0, 0 },
+ { MKTAG('N', 'H', 'R', 'O'), 201704, 0, 0, 0 },
+ { MKTAG('S', 'C', 'I', 'E'), 201675, 0, 0, 0 },
+ { MKTAG('S', 'C', 'I', 'T'), 201676, 0, 0, 0 },
+ { MKTAG('T', 'D', 'V', 'P'), 200490, 0, 0, 0 },
+ { MKTAG('H', 'A', 'H', 'A'), 200950, 0, 0, 0 },
+ { MKTAG('S', 'U', 'C', '1'), 200582, 0, 0, 0 },
+ { MKTAG('T', 'L', 'A', ' '), 201243, 0, 0, 0 },
+ { MKTAG('J', 'O', 'K', 'E'), 201244, 0, 0, 0 },
+ { MKTAG('C', 'H', 'S', 'E'), 202270, 0, 0, 0 },
+ { MKTAG('C', 'L', 'U', 'B'), 201654, 0, 0, 0 },
+ { MKTAG('S', 'L', 'O', 'W'), 201877, 0, 0, 0 },
+ { MKTAG('T', 'H', 'R', 'T'), 201238, 201269, 201982, 200336 },
+ { MKTAG('A', 'N', 'S', 'W'), 200139, 0, 0, 0 },
+ { MKTAG('B', 'A', 'R', '1'), 202051, 200473, 200229, 0 },
+ { MKTAG('B', 'A', 'R', 'K'), 200510, 201326, 0, 0 },
+ { MKTAG('B', 'A', 'R', 'U'), 200510, 201326, 0, 0 },
+ { MKTAG('B', 'O', 'D', 'Y'), 201704, 0, 0, 0 },
+ { MKTAG('C', 'M', 'N', 'T'), 202270, 0, 0, 0 },
+ { MKTAG('D', 'E', 'S', '2'), 201529, 0, 0, 0 },
+ { MKTAG('D', 'N', 'C', 'E'), 200952, 200953, 200960, 0 },
+ { MKTAG('D', 'O', 'R', '2'), 200372, 0, 0, 0 },
+ { MKTAG('F', 'U', 'L', 'N'), 202035, 202044, 0, 0 },
+ { MKTAG('H', 'O', 'M', 'E'), 202252, 0, 0, 0 },
+ { MKTAG('I', 'S', 'H', 'E'), 201609, 0, 0, 0 },
+ { MKTAG('J', 'N', 'A', 'M'), 202035, 0, 0, 0 },
+ { MKTAG('L', 'I', 'F', '1'), 201704, 0, 0, 0 },
+ { MKTAG('L', 'I', 'F', '2'), 201704, 0, 0, 0 },
+ { MKTAG('L', 'I', 'F', '3'), 201704, 0, 0, 0 },
+ { MKTAG('M', 'A', 'D', '1'), 201238, 0, 0, 0 },
+ { MKTAG('M', 'A', 'D', '4'), 200292, 0, 0, 0 },
+ { MKTAG('M', 'A', 'D', '5'), 200140, 0, 0, 0 },
+ { MKTAG('M', 'A', 'D', '6'), 200968, 0, 0, 0 },
+ { MKTAG('M', 'C', 'P', 'Y'), 200514, 0, 0, 0 },
+ { MKTAG('M', 'I', 'N', 'S'), 200541, 0, 0, 0 },
+ { MKTAG('N', 'A', 'U', 'T'), 200529, 0, 0, 0 },
+ { MKTAG('N', 'O', 'N', 'O'), 200127, 0, 0, 0 },
+ { MKTAG('N', 'P', 'L', 'C'), 200234, 201625, 0, 0 },
+ { MKTAG('O', 'R', 'D', '1'), 200473, 0, 0, 0 },
+ { MKTAG('O', 'R', 'D', '2'), 200473, 0, 0, 0 },
+ { MKTAG('O', 'R', 'D', '3'), 200473, 0, 0, 0 },
+ { MKTAG('O', 'R', 'D', '4'), 200473, 0, 0, 0 },
+ { MKTAG('O', 'R', 'D', '5'), 200473, 0, 0, 0 },
+ { MKTAG('S', 'U', 'C', '2'), 200024, 0, 0, 0 },
+ { MKTAG('S', 'U', 'M', 'S'), 200139, 0, 0, 0 },
+ { MKTAG('T', 'I', 'T', 'A'), 200606, 0, 0, 0 },
+ { MKTAG('W', 'T', 'H', 'R'), 201094, 201097, 201092, 0 },
+ { MKTAG('Y', 'E', 'S', 'S'), 201525, 201529, 0, 0 },
+};
+
void writeScriptTags(const char *name, const int *tags, uint count) {
outputFile.seek(dataOffset);
@@ -186,5 +318,6 @@ void writeScriptTags(const char *name, const int *tags, uint count) {
}
void writeAllScriptTags() {
- writeScriptTags("Tags/103", &DESKBOT_TAGS[0][0], 128);
+ writeScriptTags("Responses/Deskbot", &DESKBOT_RESPONSES[0][0], 128);
+ writeScriptTags("Responses/Bellbot", &BELLBOT_RESPONSES[0][0], 130);
} \ No newline at end of file
diff --git a/devtools/create_titanic/script_tags.h b/devtools/create_titanic/script_responses.h
index 86cd1e6aed..86cd1e6aed 100644
--- a/devtools/create_titanic/script_tags.h
+++ b/devtools/create_titanic/script_responses.h