From d59b012442289e81f021957306bee36de294aac5 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 24 Jul 2016 23:08:19 -0400 Subject: DEVTOOLS: Add NPC Script word lists to create_titanic --- devtools/create_titanic/create_titanic_dat.cpp | 30 +++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'devtools') diff --git a/devtools/create_titanic/create_titanic_dat.cpp b/devtools/create_titanic/create_titanic_dat.cpp index 199a8d1fec..1ddfd46fd3 100644 --- a/devtools/create_titanic/create_titanic_dat.cpp +++ b/devtools/create_titanic/create_titanic_dat.cpp @@ -52,7 +52,7 @@ */ #define VERSION_NUMBER 1 -#define HEADER_SIZE 0x700 +#define HEADER_SIZE 0x740 Common::File inputFile, outputFile; Common::PEResources res; @@ -441,6 +441,29 @@ void writeSentenceEntries(const char *name, uint tableOffset) { dataOffset += size; } +void writeWords(const char *name, uint tableOffset, int recordCount = 2) { + outputFile.seek(dataOffset); + int recordSize = recordCount * 4; + + uint val, strOffset; + for (uint idx = 0; ; ++idx) { + inputFile.seek(tableOffset - FILE_DIFF + idx * recordSize); + val = inputFile.readLong(); + strOffset = inputFile.readLong(); + + if (!val) + // Reached end of list + break; + + outputFile.writeLong(val); + writeString(strOffset); + } + + uint size = outputFile.size() - dataOffset; + writeEntryHeader(name, dataOffset, size); + dataOffset += size; +} + void writeSentenceMappings(const char *name, uint offset, int numValues) { inputFile.seek(offset - FILE_DIFF); outputFile.seek(dataOffset); @@ -553,6 +576,11 @@ void writeData() { writeSentenceMappings("Mappings/MaitreD", 0x6125C8, 1); writeSentenceMappings("Mappings/Parrot", 0x615B68, 1); writeSentenceMappings("Mappings/SuccUBus", 0x6189F0, 1); + writeWords("Words/Barbot", 0x5BE2E0); + writeWords("Words/Bellbot", 0x5D8230); + writeWords("Words/Deskbot", 0x5EAAA8); + writeWords("Words/Doorbot", 0x601098, 3); + writeWords("Words/Liftbot", 0x60C788); writeResponseTree(); writeNumbers(); -- cgit v1.2.3