aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/conversations.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-01-09 18:10:39 +1100
committerPaul Gilbert2016-01-09 18:10:39 +1100
commitb3e81dba14cfc0ae3fb07dc43a3aaf84eb4d4570 (patch)
tree895bb90bc3211353509d96eba17790e755f27ec4 /engines/mads/conversations.cpp
parentc313bc71cb65c23cec52ef196f6e8051ccf9a4e1 (diff)
downloadscummvm-rg350-b3e81dba14cfc0ae3fb07dc43a3aaf84eb4d4570.tar.gz
scummvm-rg350-b3e81dba14cfc0ae3fb07dc43a3aaf84eb4d4570.tar.bz2
scummvm-rg350-b3e81dba14cfc0ae3fb07dc43a3aaf84eb4d4570.zip
MADS: Set up conversation mode enum, change hold fields to use it
Diffstat (limited to 'engines/mads/conversations.cpp')
-rw-r--r--engines/mads/conversations.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/engines/mads/conversations.cpp b/engines/mads/conversations.cpp
index 2af74541f7..5077abdc6a 100644
--- a/engines/mads/conversations.cpp
+++ b/engines/mads/conversations.cpp
@@ -35,7 +35,8 @@ GameConversations::GameConversations(MADSEngine *vm) : _vm(vm) {
_inputMode = kInputBuildingSentences;
_startFrameNumber = 0;
_speakerVal = 0;
- _heldVal = _releaseVal = 0;
+ _currentMode = CONVMODE_NONE;
+ _priorMode = CONVMODE_NONE;
_val1 =_val5 = 0;
_vars = _nextStartNode = nullptr;
_heroTrigger = 0;
@@ -99,8 +100,9 @@ void GameConversations::run(int id) {
_heroTrigger = 0;
_interlocutorTrigger = 0;
_val1 = 0;
- _heldVal = 0;
+ _currentMode = CONVMODE_0;
_val5 = -1;
+ _speakerVal = 1;
// Initialize speaker arrays
Common::fill(&_speakerActive[0], &_speakerActive[MAX_SPEAKERS], false);
@@ -233,16 +235,16 @@ int *GameConversations::getVariable(int idx) {
}
void GameConversations::hold() {
- if (_heldVal != -1) {
- _releaseVal = _heldVal;
- _heldVal = -1;
+ if (_currentMode != CONVMODE_NONE) {
+ _priorMode = _currentMode;
+ _currentMode = CONVMODE_NONE;
}
}
void GameConversations::release() {
- if (_heldVal == -1) {
- _heldVal = _releaseVal;
- if (_heldVal == 1 || _heldVal == 2)
+ if (_currentMode == CONVMODE_NONE) {
+ _currentMode = _priorMode;
+ if (_currentMode == 1 || _currentMode == 2)
update(true);
}
}