aboutsummaryrefslogtreecommitdiff
path: root/engines/lilliput
diff options
context:
space:
mode:
authorStrangerke2012-06-22 00:50:29 +0200
committerEugene Sandulenko2018-03-28 17:36:57 +0200
commitd011a68d4f193da18dcc4da0416b0ea7d25b7614 (patch)
treec1ccd97759e1674a04c577e24ba9ad5ad2f0925e /engines/lilliput
parent1d897d7be26105d28d95ee66b2532f5433b42338 (diff)
downloadscummvm-rg350-d011a68d4f193da18dcc4da0416b0ea7d25b7614.tar.gz
scummvm-rg350-d011a68d4f193da18dcc4da0416b0ea7d25b7614.tar.bz2
scummvm-rg350-d011a68d4f193da18dcc4da0416b0ea7d25b7614.zip
LILLIPUT: Start reworking _word16EFE
Diffstat (limited to 'engines/lilliput')
-rw-r--r--engines/lilliput/lilliput.cpp2
-rw-r--r--engines/lilliput/lilliput.h2
-rw-r--r--engines/lilliput/script.cpp32
-rw-r--r--engines/lilliput/script.h2
4 files changed, 17 insertions, 21 deletions
diff --git a/engines/lilliput/lilliput.cpp b/engines/lilliput/lilliput.cpp
index 23d9645c01..8904b867f4 100644
--- a/engines/lilliput/lilliput.cpp
+++ b/engines/lilliput/lilliput.cpp
@@ -154,7 +154,7 @@ LilliputEngine::LilliputEngine(OSystem *syst, const LilliputGameDescription *gd)
_currentScriptCharacterPos = Common::Point(0, 0);
_word10804 = 0;
_nextCharacterIndex = 0;
- _word16EFE = 0xFFFF;
+ _word16EFE = -1;
_word1817B = 0;
_savedSurfaceUnderMousePos = Common::Point(0, 0);
_word15AC2 = 0;
diff --git a/engines/lilliput/lilliput.h b/engines/lilliput/lilliput.h
index c58c37fd3c..43ac74b674 100644
--- a/engines/lilliput/lilliput.h
+++ b/engines/lilliput/lilliput.h
@@ -141,7 +141,7 @@ public:
byte _numCharacters;
Common::Point _currentScriptCharacterPos;
int _nextCharacterIndex;
- int _word16EFE;
+ int16 _word16EFE;
uint16 _word1817B;
Common::Point _savedSurfaceUnderMousePos;
int _word15AC2;
diff --git a/engines/lilliput/script.cpp b/engines/lilliput/script.cpp
index 8b5ebe3c03..fd30b96952 100644
--- a/engines/lilliput/script.cpp
+++ b/engines/lilliput/script.cpp
@@ -2481,14 +2481,14 @@ void LilliputScript::OC_setCurrentCharacter() {
_vm->setCurrentCharacter(var1);
}
-void LilliputScript::sub171AF(int16 var1, uint16 var2, int16 var4) {
- debugC(2, kDebugScript, "sub171AF()");
+void LilliputScript::sub171AF(int16 var1, byte var2h, byte characterId, int16 var4) {
+ debugC(2, kDebugScript, "sub171AF(%d, %d, %d, %d)", var1, var2h, characterId, var4);
int index = 0;
for (int i = 0; i < 10; i++) {
if (_vm->_array12861[index + 1] == -1) {
_vm->_array12861[index + 1] = var1;
- _vm->_array12861[index + 2] = var2;
+ _vm->_array12861[index + 2] = (var2h << 8) + characterId;
_vm->_array12861[index + 0] = _vm->_word1289D + var4;
return;
}
@@ -2501,10 +2501,9 @@ void LilliputScript::OC_sub17C8B() {
int16 type = 2 << 8;
int16 var4 = _currScript->readSint16LE();
- byte tmpVal = (_currScript->readUint16LE() & 0xFF);
- uint16 var2 = (tmpVal << 8) + _vm->_currentScriptCharacter;
+ byte var2h = (_currScript->readUint16LE() & 0xFF);
- sub171AF(type, var2, var4);
+ sub171AF(type, var2h, _vm->_currentScriptCharacter, var4);
}
void LilliputScript::OC_sub17CA2() {
@@ -2512,21 +2511,19 @@ void LilliputScript::OC_sub17CA2() {
int16 type = 1 << 8;
int16 var4 = _currScript->readSint16LE();
- byte tmpVal = (_currScript->readUint16LE() & 0xFF);
- uint16 var2 = (tmpVal << 8) + _vm->_currentScriptCharacter;
+ byte var2h = (_currScript->readUint16LE() & 0xFF);
- sub171AF(type, var2, var4);
+ sub171AF(type, var2h, _vm->_currentScriptCharacter, var4);
}
void LilliputScript::OC_sub17CB9() {
- debugC(1, kDebugScript, "OC_sub17CB9()");
+ debugC(1, kDebugScriptTBC, "OC_sub17CB9()");
int16 var4 = _currScript->readSint16LE();
- int16 var1 = getValue1();
- byte tmpVal = (_currScript->readUint16LE() & 0xFF);
- uint16 var2 = (tmpVal << 8) + _vm->_currentScriptCharacter;
+ int16 type = getValue1();
+ byte var2h = (_currScript->readUint16LE() & 0xFF);
- sub171AF(var1, var2, var4);
+ sub171AF(type, var2h, _vm->_currentScriptCharacter, var4);
}
void LilliputScript::OC_sub17CD1() {
@@ -2534,16 +2531,15 @@ void LilliputScript::OC_sub17CD1() {
int16 type = 3 << 8;
int16 var4 = _currScript->readSint16LE();
- int tmpVal = (_currScript->readUint16LE() & 0xFF);
- uint16 var2 = (tmpVal << 8) + _vm->_currentScriptCharacter;
+ byte var2h = (_currScript->readUint16LE() & 0xFF);
- sub171AF(type, var2, var4);
+ sub171AF(type, var2h, _vm->_currentScriptCharacter, var4);
}
void LilliputScript::OC_resetWord16EFE() {
debugC(1, kDebugScriptTBC, "OC_resetWord16EFE()");
- _vm->_word16EFE = 0xFFFF;
+ _vm->_word16EFE = -1;
}
void LilliputScript::OC_enableCurrentCharacterScript() {
diff --git a/engines/lilliput/script.h b/engines/lilliput/script.h
index 59ffb4da19..9500531385 100644
--- a/engines/lilliput/script.h
+++ b/engines/lilliput/script.h
@@ -127,7 +127,7 @@ private:
void displayNumber(byte var1, Common::Point pos);
byte *getMapPtr(Common::Point val);
byte *getCurrentCharacterVarFromScript();
- void sub171AF(int16 var1, uint16 var2, int16 var4);
+ void sub171AF(int16 var1, byte var2h, byte characterId, int16 var4);
void getSpeechVariant(int speechIndex, int speechVariant);
void sub189B8();
void formatSpeechString();