diff options
author | Paul Gilbert | 2016-06-04 17:24:38 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-15 19:19:45 -0400 |
commit | 764cfcb6d6ccad3046c9d96788b3edd5857f1c79 (patch) | |
tree | ddf2c37d07ef9d0c51cbd4f608afb288a970c93f | |
parent | 02b3526e297e38984eeb99c98b5c020f3a57da9e (diff) | |
download | scummvm-rg350-764cfcb6d6ccad3046c9d96788b3edd5857f1c79.tar.gz scummvm-rg350-764cfcb6d6ccad3046c9d96788b3edd5857f1c79.tar.bz2 scummvm-rg350-764cfcb6d6ccad3046c9d96788b3edd5857f1c79.zip |
TITANIC: gcc compilation fixes
-rw-r--r-- | devtools/create_titanic/create_titanic_dat.cpp | 46 | ||||
-rw-r--r-- | engines/titanic/core/game_object.cpp | 2 | ||||
-rw-r--r-- | engines/titanic/pet_control/pet_control.cpp | 2 | ||||
-rw-r--r-- | engines/titanic/support/font.cpp | 4 | ||||
-rw-r--r-- | engines/titanic/true_talk/tt_npc_script.h | 2 |
5 files changed, 51 insertions, 5 deletions
diff --git a/devtools/create_titanic/create_titanic_dat.cpp b/devtools/create_titanic/create_titanic_dat.cpp index 4999ee3f7d..b8d3565368 100644 --- a/devtools/create_titanic/create_titanic_dat.cpp +++ b/devtools/create_titanic/create_titanic_dat.cpp @@ -50,7 +50,7 @@ */ #define VERSION_NUMBER 1 -#define HEADER_SIZE 0x340 +#define HEADER_SIZE 0x380 Common::File inputFile, outputFile; Common::PEResources res; @@ -309,6 +309,47 @@ void writeNumbers() { dataOffset += size; } +void writeResponseTree() { + const int FILE_DIFF = 0x401C00; + outputFile.seek(dataOffset); + + inputFile.seek(0x619500 - FILE_DIFF); + char buffer[32]; + inputFile.read(buffer, 32); + if (strcmp(buffer, "ReadInt(): No number to read")) { + printf("Could not find tree data at expected position\n"); + exit(1); + } + + for (int idx = 0; idx < 1022; ++idx) { + inputFile.seek(0x619520 - FILE_DIFF + idx * 8); + uint id = inputFile.readLong(); + uint offset = inputFile.readLong(); + + outputFile.writeLong(id); + if (!id) { + // An end of list id + } else if (offset >= 0x619520 && offset <= 0x61B510) { + // Offset to another table + outputFile.writeByte(0); + outputFile.writeLong((offset - 0x619520) / 8); + } else { + // Offset to ASCIIZ string + outputFile.writeByte(1); + inputFile.seek(offset - FILE_DIFF); + char c; + do { + c = inputFile.readByte(); + outputFile.writeByte(c); + } while (c); + } + } + + uint size = outputFile.size() - dataOffset; + writeEntryHeader("TEXT/TREE", dataOffset, size); + dataOffset += size; +} + void writeHeader() { // Write out magic string const char *MAGIC_STR = "SVTN"; @@ -337,6 +378,8 @@ void writeData() { writeResource("STFONT", 152); writeResource("STFONT", 153); + writeResource("STARFIELD", 132); + writeResource("TEXT", "STVOCAB.TXT"); writeResource("TEXT", "JRQUOTES.TXT"); writeResource("TEXT", 155); @@ -351,6 +394,7 @@ void writeData() { writeStringArray("TEXT/REPLACEMENTS2", 0x21C120, 1576); writeStringArray("TEXT/REPLACEMENTS3", 0x21D9C8, 82); writeStringArray("TEXT/PRONOUNS", 0x22F718, 15); + writeResponseTree(); writeNumbers(); writeAllScriptResponses(); diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp index eaf1dfe9a8..624a4b0e67 100644 --- a/engines/titanic/core/game_object.cpp +++ b/engines/titanic/core/game_object.cpp @@ -237,6 +237,8 @@ void CGameObject::loadResource(const CString &name) { case FILETYPE_MOVIE: loadMovie(name); break; + default: + break; } } diff --git a/engines/titanic/pet_control/pet_control.cpp b/engines/titanic/pet_control/pet_control.cpp index 85bac6a63e..51631a3e1b 100644 --- a/engines/titanic/pet_control/pet_control.cpp +++ b/engines/titanic/pet_control/pet_control.cpp @@ -495,7 +495,7 @@ void CPetControl::summonNPC(const CString &name, int val) { void CPetControl::startPetTimer(uint timerIndex, uint firstDuration, uint duration, void *target) { stopPetTimer(timerIndex); - _timers[timerIndex]._id = (timerIndex, firstDuration, duration); + _timers[timerIndex]._id = addTimer(timerIndex, firstDuration, duration); _timers[timerIndex]._target = target; setTimer44(_timers[timerIndex]._id, 0); } diff --git a/engines/titanic/support/font.cpp b/engines/titanic/support/font.cpp index f4466def31..07e4c28991 100644 --- a/engines/titanic/support/font.cpp +++ b/engines/titanic/support/font.cpp @@ -112,7 +112,7 @@ int STFont::stringWidth(const CString &text) const { const char *srcP = text.c_str(); int total = 0; char c; - while (c = (*srcP++)) { + while ((c = *srcP++)) { if (c == 26) { // Skip over command parameter bytes srcP += 3; @@ -120,7 +120,7 @@ int STFont::stringWidth(const CString &text) const { // Skip over command parameter bytes srcP += 4; } else if (c != '\n') { - total += _chars[c]._width; + total += _chars[(byte)c]._width; } } diff --git a/engines/titanic/true_talk/tt_npc_script.h b/engines/titanic/true_talk/tt_npc_script.h index 15ff5303b7..7362d4db87 100644 --- a/engines/titanic/true_talk/tt_npc_script.h +++ b/engines/titanic/true_talk/tt_npc_script.h @@ -210,7 +210,7 @@ public: * Sets the value for an NPC's dial */ virtual void setDial(int dialNum, int value); - + /** * Returns a dial's region number */ |