aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2016-06-01 06:52:35 -0400
committerPaul Gilbert2016-07-15 19:18:45 -0400
commit451ab9d452e4003c6b0304d4c4609cf442fb3f81 (patch)
tree49b4a1827d44fb238cd5b90bb96a79928b9cd22c /engines
parentba5e13d479f3c8615e8c0984c58e86421499f1b3 (diff)
downloadscummvm-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.cpp6
-rw-r--r--engines/titanic/true_talk/barbot_script.h3
-rw-r--r--engines/titanic/true_talk/bellbot_script.cpp2
-rw-r--r--engines/titanic/true_talk/deskbot_script.cpp2
-rw-r--r--engines/titanic/true_talk/doorbot_script.cpp6
-rw-r--r--engines/titanic/true_talk/doorbot_script.h3
-rw-r--r--engines/titanic/true_talk/liftbot_script.cpp7
-rw-r--r--engines/titanic/true_talk/liftbot_script.h3
-rw-r--r--engines/titanic/true_talk/maitred_script.cpp6
-rw-r--r--engines/titanic/true_talk/tt_npc_script.cpp4
-rw-r--r--engines/titanic/true_talk/tt_npc_script.h5
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