aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula/converse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/drascula/converse.cpp')
-rw-r--r--engines/drascula/converse.cpp37
1 files changed, 28 insertions, 9 deletions
diff --git a/engines/drascula/converse.cpp b/engines/drascula/converse.cpp
index 14a0c90fd6..41898be7f4 100644
--- a/engines/drascula/converse.cpp
+++ b/engines/drascula/converse.cpp
@@ -27,7 +27,7 @@
namespace Drascula {
-void DrasculaEngine::checkTalkSequence(int sequence) {
+void DrasculaEngine::playTalkSequence(int sequence) {
bool seen = false;
for (int i = 0; i < _talkSequencesSize; i++) {
@@ -41,11 +41,6 @@ void DrasculaEngine::checkTalkSequence(int sequence) {
}
}
-void DrasculaEngine::playTalkSequence(TalkSequenceCommand *seq, int size) {
- for (int i = 0; i < size; i++)
- doTalkSequenceCommand(seq[i]);
-}
-
void DrasculaEngine::doTalkSequenceCommand(TalkSequenceCommand cmd) {
switch (cmd.commandType) {
case kPause:
@@ -66,6 +61,27 @@ void DrasculaEngine::doTalkSequenceCommand(TalkSequenceCommand cmd) {
case kBreakOut:
breakOut = 1;
break;
+ case kConverse:
+ converse(cmd.action);
+ break;
+ case kPlaceVB:
+ placeVonBraun(cmd.action);
+ break;
+ case kUpdateRoom:
+ updateRoom();
+ break;
+ case kUpdateScreen:
+ updateScreen();
+ break;
+ case kTrackProtagonist:
+ trackProtagonist = cmd.action;
+ break;
+ case kPlaySound:
+ playSound(cmd.action);
+ break;
+ case kFinishSound:
+ finishSound();
+ break;
case kTalkerGeneral:
talk(cmd.action);
break;
@@ -96,11 +112,14 @@ void DrasculaEngine::doTalkSequenceCommand(TalkSequenceCommand cmd) {
case kTalkerDrascula:
talk_drascula(cmd.action, 1);
break;
- case kTalkerBartender:
+ case kTalkerBartender0:
+ talk_bartender(cmd.action, 0);
+ break;
+ case kTalkerBartender1:
talk_bartender(cmd.action, 1);
break;
default:
- error("doTalkSequenceCommand: Unknown command");
+ error("doTalkSequenceCommand: Unknown command: %d", cmd.commandType);
}
}
@@ -256,7 +275,7 @@ void DrasculaEngine::converse(int index) {
}
void DrasculaEngine::response(int function) {
- checkTalkSequence(function);
+ playTalkSequence(function);
if (currentChapter == 2) {
if (function == 16)