diff options
author | Paul Gilbert | 2016-06-01 06:52:35 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-15 19:18:45 -0400 |
commit | 451ab9d452e4003c6b0304d4c4609cf442fb3f81 (patch) | |
tree | 49b4a1827d44fb238cd5b90bb96a79928b9cd22c /engines | |
parent | ba5e13d479f3c8615e8c0984c58e86421499f1b3 (diff) | |
download | scummvm-rg350-451ab9d452e4003c6b0304d4c4609cf442fb3f81.tar.gz scummvm-rg350-451ab9d452e4003c6b0304d4c4609cf442fb3f81.tar.bz2 scummvm-rg350-451ab9d452e4003c6b0304d4c4609cf442fb3f81.zip |
TITANIC: Load response data for remaining NPC scripts
Diffstat (limited to 'engines')
-rw-r--r-- | engines/titanic/true_talk/barbot_script.cpp | 6 | ||||
-rw-r--r-- | engines/titanic/true_talk/barbot_script.h | 3 | ||||
-rw-r--r-- | engines/titanic/true_talk/bellbot_script.cpp | 2 | ||||
-rw-r--r-- | engines/titanic/true_talk/deskbot_script.cpp | 2 | ||||
-rw-r--r-- | engines/titanic/true_talk/doorbot_script.cpp | 6 | ||||
-rw-r--r-- | engines/titanic/true_talk/doorbot_script.h | 3 | ||||
-rw-r--r-- | engines/titanic/true_talk/liftbot_script.cpp | 7 | ||||
-rw-r--r-- | engines/titanic/true_talk/liftbot_script.h | 3 | ||||
-rw-r--r-- | engines/titanic/true_talk/maitred_script.cpp | 6 | ||||
-rw-r--r-- | engines/titanic/true_talk/tt_npc_script.cpp | 4 | ||||
-rw-r--r-- | engines/titanic/true_talk/tt_npc_script.h | 5 |
11 files changed, 32 insertions, 15 deletions
diff --git a/engines/titanic/true_talk/barbot_script.cpp b/engines/titanic/true_talk/barbot_script.cpp index 2c82949990..d47d2b5341 100644 --- a/engines/titanic/true_talk/barbot_script.cpp +++ b/engines/titanic/true_talk/barbot_script.cpp @@ -25,6 +25,12 @@ namespace Titanic { +BarbotScript::BarbotScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : + TTnpcScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) { + load("Responses/Barbot"); +} + int BarbotScript::chooseResponse(TTroomScript *roomScript, TTsentence *sentence, uint tag) { warning("TODO"); return SS_2; diff --git a/engines/titanic/true_talk/barbot_script.h b/engines/titanic/true_talk/barbot_script.h index 45681874df..9f3860448e 100644 --- a/engines/titanic/true_talk/barbot_script.h +++ b/engines/titanic/true_talk/barbot_script.h @@ -30,8 +30,7 @@ namespace Titanic { class BarbotScript : public TTnpcScript { public: BarbotScript(int val1, const char *charClass, int v2, - const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : - TTnpcScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {} + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7); /** * Chooses and adds a conversation response based on a specified tag Id. diff --git a/engines/titanic/true_talk/bellbot_script.cpp b/engines/titanic/true_talk/bellbot_script.cpp index 0e11aeaddf..7954b7f731 100644 --- a/engines/titanic/true_talk/bellbot_script.cpp +++ b/engines/titanic/true_talk/bellbot_script.cpp @@ -39,7 +39,7 @@ BellbotScript::BellbotScript(int val1, const char *charClass, int v2, _array[0] = 100; _array[1] = 0; - load("Responses/Bellbot"); + load("Responses/Bellbot", 4); } void BellbotScript::proc7(int v1, int v2) { diff --git a/engines/titanic/true_talk/deskbot_script.cpp b/engines/titanic/true_talk/deskbot_script.cpp index 319175f40a..fe4de23436 100644 --- a/engines/titanic/true_talk/deskbot_script.cpp +++ b/engines/titanic/true_talk/deskbot_script.cpp @@ -40,7 +40,7 @@ DeskbotScript::DeskbotScript(int val1, const char *charClass, int v2, if (_field74 == 1) _field74 = 0; - load("Responses/Deskbot"); + load("Responses/Deskbot", 4); } void DeskbotScript::proc7(int v1, int v2) { diff --git a/engines/titanic/true_talk/doorbot_script.cpp b/engines/titanic/true_talk/doorbot_script.cpp index d1638eeff3..9c8c686c51 100644 --- a/engines/titanic/true_talk/doorbot_script.cpp +++ b/engines/titanic/true_talk/doorbot_script.cpp @@ -25,6 +25,12 @@ namespace Titanic { +DoorbotScript::DoorbotScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : + TTnpcScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) { + load("Responses/Doorbot"); +} + int DoorbotScript::chooseResponse(TTroomScript *roomScript, TTsentence *sentence, uint tag) { warning("TODO"); return SS_2; diff --git a/engines/titanic/true_talk/doorbot_script.h b/engines/titanic/true_talk/doorbot_script.h index 3158ef07d2..d00e5b19ef 100644 --- a/engines/titanic/true_talk/doorbot_script.h +++ b/engines/titanic/true_talk/doorbot_script.h @@ -32,8 +32,7 @@ private: int _array[148]; public: DoorbotScript(int val1, const char *charClass, int v2, - const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : - TTnpcScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {} + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7); /** * Chooses and adds a conversation response based on a specified tag Id. diff --git a/engines/titanic/true_talk/liftbot_script.cpp b/engines/titanic/true_talk/liftbot_script.cpp index b627df658f..90b8f10563 100644 --- a/engines/titanic/true_talk/liftbot_script.cpp +++ b/engines/titanic/true_talk/liftbot_script.cpp @@ -25,6 +25,13 @@ namespace Titanic { +LiftbotScript::LiftbotScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : + TTnpcScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) { + load("Responses/Liftbot"); +} + + int LiftbotScript::chooseResponse(TTroomScript *roomScript, TTsentence *sentence, uint tag) { warning("TODO"); return SS_2; diff --git a/engines/titanic/true_talk/liftbot_script.h b/engines/titanic/true_talk/liftbot_script.h index 9e7d72f012..0279392e68 100644 --- a/engines/titanic/true_talk/liftbot_script.h +++ b/engines/titanic/true_talk/liftbot_script.h @@ -30,8 +30,7 @@ namespace Titanic { class LiftbotScript : public TTnpcScript { public: LiftbotScript(int val1, const char *charClass, int v2, - const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : - TTnpcScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {} + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7); /** * Chooses and adds a conversation response based on a specified tag Id. diff --git a/engines/titanic/true_talk/maitred_script.cpp b/engines/titanic/true_talk/maitred_script.cpp index 717dbca779..10c115dedd 100644 --- a/engines/titanic/true_talk/maitred_script.cpp +++ b/engines/titanic/true_talk/maitred_script.cpp @@ -27,8 +27,8 @@ namespace Titanic { MaitreDScript::MaitreDScript(int val1, const char *charClass, int v2, - const char *charName, int v3, int val2) : - TTnpcScript(val1, charClass, v2, charName, v3, val2, -1, -1, -1, 0) { + const char *charName, int v3, int val2) : + TTnpcScript(val1, charClass, v2, charName, v3, val2, -1, -1, -1, 0) { CTrueTalkManager::setFlags(9, 1); CTrueTalkManager::setFlags(10, 0); CTrueTalkManager::setFlags(11, 0); @@ -37,6 +37,8 @@ MaitreDScript::MaitreDScript(int val1, const char *charClass, int v2, CTrueTalkManager::setFlags(14, 0); CTrueTalkManager::setFlags(15, 0); CTrueTalkManager::setFlags(16, 0); + + load("Responses/MaitreD"); } int MaitreDScript::chooseResponse(TTroomScript *roomScript, TTsentence *sentence, uint tag) { diff --git a/engines/titanic/true_talk/tt_npc_script.cpp b/engines/titanic/true_talk/tt_npc_script.cpp index 59212cba55..2c8b8ba783 100644 --- a/engines/titanic/true_talk/tt_npc_script.cpp +++ b/engines/titanic/true_talk/tt_npc_script.cpp @@ -63,13 +63,13 @@ TTnpcScript::TTnpcScript(int charId, const char *charClass, int v2, resetFlags(); } -void TTnpcScript::load(const char *name) { +void TTnpcScript::load(const char *name, int valuesPerTag) { Common::SeekableReadStream *r = g_vm->_filesManager->getResource(name); while (r->pos() < r->size()) { TTnpcScriptResponse sr; sr._tag = r->readUint32LE(); - for (int idx = 0; idx < 4; ++idx) + for (int idx = 0; idx < valuesPerTag; ++idx) sr._values[idx] = r->readUint32LE(); _responses.push_back(sr); diff --git a/engines/titanic/true_talk/tt_npc_script.h b/engines/titanic/true_talk/tt_npc_script.h index 407b3648da..3822b520c8 100644 --- a/engines/titanic/true_talk/tt_npc_script.h +++ b/engines/titanic/true_talk/tt_npc_script.h @@ -74,10 +74,9 @@ public: class TTnpcScript : public TTnpcScriptBase { private: - Common::Array<TTnpcScriptResponse> _responses; -private: int translateByArray(int id); protected: + Common::Array<TTnpcScriptResponse> _responses; byte *_subPtr; int _field60; int _field64; @@ -94,7 +93,7 @@ protected: /** * Loads response data for the NPC from the given resource */ - void load(const char *name); + void load(const char *name, int valuesPerTag = 1); /** * Reset script flags |