aboutsummaryrefslogtreecommitdiff
path: root/engines/lilliput
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lilliput')
-rw-r--r--engines/lilliput/lilliput.cpp11
-rw-r--r--engines/lilliput/lilliput.h3
-rw-r--r--engines/lilliput/script.cpp63
-rw-r--r--engines/lilliput/script.h8
4 files changed, 42 insertions, 43 deletions
diff --git a/engines/lilliput/lilliput.cpp b/engines/lilliput/lilliput.cpp
index 2d4db24952..bb220ca825 100644
--- a/engines/lilliput/lilliput.cpp
+++ b/engines/lilliput/lilliput.cpp
@@ -133,21 +133,20 @@ LilliputEngine::LilliputEngine(OSystem *syst, const LilliputGameDescription *gd)
_scriptHandler = new LilliputScript(this);
_soundHandler = new LilliputSound(this);
- _byte1714E = 0;
+ _handleOpcodeReturnCode = 0;
_bool12FCE = false;
_selectedCharacterId = -1;
_numCharactersToDisplay = 0;
_nextDisplayCharacterPos = Common::Point(0, 0);
_animationTick = 0;
- _byte12A05 = 10;
- _byte12A06 = 2;
- _byte12A07 = 0;
- _byte12A08 = 0;
+ _byte12A05 = 10; // Used to trigger sound and animations in int8, 1 time out of 10
+ _byte12A06 = 2; // Used to switch _byte12A07 between true and false, 1 time our of 3
+ _byte12A07 = 0; // Set but never used
+ _byte12A08 = 0; // Used to avoid two executions of int8 at the same time. Useless in ScummVM
_refreshScreenFlag = false;
_byte16552 = 0;
_lastInterfaceHotspotIndex = -1;
_lastInterfaceHotspotButton = 0;
- _byte16F08 = 0;
_lastAnimationTick = 0;
_currentScriptCharacter = 0;
diff --git a/engines/lilliput/lilliput.h b/engines/lilliput/lilliput.h
index 27f123c7c8..534a438065 100644
--- a/engines/lilliput/lilliput.h
+++ b/engines/lilliput/lilliput.h
@@ -99,7 +99,7 @@ public:
SmallAnim _smallAnims[4];
int _smallAnimsFrameIndex;
- byte _byte1714E;
+ byte _handleOpcodeReturnCode;
byte _byte184F4;
byte _lastAnimationTick;
byte _animationTick;
@@ -118,7 +118,6 @@ public:
byte _byte16552;
int8 _lastInterfaceHotspotIndex;
byte _lastInterfaceHotspotButton; // Unused: set by 2 functions, but never used elsewhere
- byte _byte16F08;
byte _debugFlag; // Mostly useless, as the associated functions are empty
byte _byte14837; // Unused byte, set by an opcode
diff --git a/engines/lilliput/script.cpp b/engines/lilliput/script.cpp
index a4eae7f326..ce4d9b1f81 100644
--- a/engines/lilliput/script.cpp
+++ b/engines/lilliput/script.cpp
@@ -31,7 +31,7 @@ namespace Lilliput {
LilliputScript::LilliputScript(LilliputEngine *vm) : _vm(vm), _currScript(NULL) {
_byte10806 = 0;
_lastRandomValue = 0;
- _byte16F04 = 0;
+ _scriptForVal = 0;
_byte1881A = 0;
_byte18823 = 0;
_speechDisplaySpeed = 3;
@@ -112,7 +112,7 @@ byte LilliputScript::handleOpcodeType1(int curWord) {
return OC_checkSaveFlag();
break;
case 0x9:
- return OC_compByte16F04();
+ return OC_compScriptForVal();
break;
case 0xA:
return OC_sub174D8();
@@ -295,7 +295,7 @@ void LilliputScript::handleOpcodeType2(int curWord) {
OC_deleteSavegameAndQuit();
break;
case 0x11:
- OC_incByte16F04();
+ OC_incScriptForVal();
break;
case 0x12:
OC_sub17BA5();
@@ -313,7 +313,7 @@ void LilliputScript::handleOpcodeType2(int curWord) {
OC_setCurrentScriptCharacterPos();
break;
case 0x17:
- OC_resetByte16F04();
+ OC_initScriptFor();
break;
case 0x18:
OC_sub17AE1();
@@ -565,7 +565,7 @@ static const OpCode opCodes1[] = {
{ "OC_for", 2, kImmediateValue, kImmediateValue, kNone, kNone, kNone },
{ "OC_compCurrentSpeechId", 1, kImmediateValue, kNone, kNone, kNone, kNone },
{ "OC_checkSaveFlag", 0, kNone, kNone, kNone, kNone, kNone },
- { "OC_compByte16F04", 2, kCompareOperation, kImmediateValue, kNone, kNone, kNone },
+ { "OC_compScriptForVal", 2, kCompareOperation, kImmediateValue, kNone, kNone, kNone },
{ "OC_sub174D8", 2, kGetValue1, kGetValue1, kNone, kNone, kNone },
{ "OC_CompareCharacterVariables", 5, kGetValue1, kImmediateValue, kCompareOperation, kGetValue1, kImmediateValue },
{ "OC_compareCoords_1", 1, kImmediateValue, kNone, kNone, kNone, kNone },
@@ -627,13 +627,13 @@ static const OpCode opCodes2[] = {
/* 0x0e */ { "OC_startSpeech5", 0, kNone, kNone, kNone, kNone, kNone }, // todo
/* 0x0f */ { "OC_resetByte1714E", 0, kNone, kNone, kNone, kNone, kNone },
/* 0x10 */ { "OC_deleteSavegameAndQuit", 0, kNone, kNone, kNone, kNone, kNone },
-/* 0x11 */ { "OC_incByte16F04", 0, kNone, kNone, kNone, kNone, kNone },
+/* 0x11 */ { "OC_incScriptForVal", 0, kNone, kNone, kNone, kNone, kNone },
/* 0x12 */ { "OC_sub17BA5", 5, kGetValue1, kImmediateValue,kComputeOperation, kGetValue1, kImmediateValue },
/* 0x13 */ { "OC_setByte18823", 2, kGetValue1, kImmediateValue, kNone, kNone, kNone },
/* 0x14 */ { "OC_callScript", 2, kImmediateValue, kGetValue1, kNone, kNone, kNone }, // run script
/* 0x15 */ { "OC_callScriptAndReturn", 2, kImmediateValue, kGetValue1, kNone, kNone, kNone }, // run script then stop
/* 0x16 */ { "OC_setCurrentScriptCharacterPos", 1, kgetPosFromScript, kNone, kNone, kNone, kNone },
-/* 0x17 */ { "OC_resetByte16F04", 0, kNone, kNone, kNone, kNone, kNone },
+/* 0x17 */ { "OC_initScriptFor", 0, kNone, kNone, kNone, kNone, kNone },
/* 0x18 */ { "OC_sub17AE1", 1, kImmediateValue, kNone, kNone, kNone, kNone },
/* 0x19 */ { "OC_sub17AEE", 1, kImmediateValue, kNone, kNone, kNone, kNone },
/* 0x1a */ { "OC_setWord10804", 1, kGetValue1, kNone, kNone, kNone, kNone },
@@ -860,10 +860,10 @@ void LilliputScript::disasmScript(ScriptStream script) {
str += ")";
}
- debugC(2, kDebugScriptTBC, "%s", str.c_str());
+ debugC(2, kDebugScript, "%s", str.c_str());
}
- debugC(2, kDebugScriptTBC, "{ ");
+ debugC(2, kDebugScript, "{ ");
val = script.readUint16LE();
@@ -891,13 +891,13 @@ void LilliputScript::disasmScript(ScriptStream script) {
}
str += ");";
- debugC(2, kDebugScriptTBC, "%s", str.c_str());
+ debugC(2, kDebugScript, "%s", str.c_str());
val = script.readUint16LE();
}
- debugC(2, kDebugScriptTBC, "} ");
- debugC(2, kDebugScriptTBC, " ");
+ debugC(2, kDebugScript, "} ");
+ debugC(2, kDebugScript, " ");
}
}
@@ -924,12 +924,12 @@ int LilliputScript::handleOpcode(ScriptStream *script) {
}
}
- _vm->_byte1714E = 1;
+ _vm->_handleOpcodeReturnCode = 1;
for (;;) {
curWord = _currScript->readUint16LE();
if (curWord == 0xFFF7)
- return _vm->_byte1714E;
+ return _vm->_handleOpcodeReturnCode;
handleOpcodeType2(curWord);
}
@@ -1481,13 +1481,13 @@ byte LilliputScript::OC_checkSaveFlag() {
return 0;
}
-byte LilliputScript::OC_compByte16F04() {
- debugC(1, kDebugScriptTBC, "OC_compByte16F04()");
+byte LilliputScript::OC_compScriptForVal() {
+ debugC(1, kDebugScriptTBC, "OC_compScriptForVal()");
uint16 oper = _currScript->readUint16LE();
int16 var2 = _currScript->readUint16LE();
- return compareValues(_byte16F04, oper, var2);
+ return compareValues(_scriptForVal, oper, var2);
}
byte LilliputScript::OC_sub174D8() {
@@ -2330,7 +2330,7 @@ void LilliputScript::OC_startSpeech5() {
void LilliputScript::OC_resetByte1714E() {
debugC(1, kDebugScriptTBC, "OC_resetByte1714E()");
- _vm->_byte1714E = 0;
+ _vm->_handleOpcodeReturnCode = 0;
}
void LilliputScript::OC_deleteSavegameAndQuit() {
@@ -2338,10 +2338,10 @@ void LilliputScript::OC_deleteSavegameAndQuit() {
_vm->_shouldQuit = true;
}
-void LilliputScript::OC_incByte16F04() {
- debugC(1, kDebugScriptTBC, "OC_incByte16F04()");
+void LilliputScript::OC_incScriptForVal() {
+ debugC(1, kDebugScriptTBC, "OC_incScriptForVal()");
- ++_byte16F04;
+ ++_scriptForVal;
}
void LilliputScript::OC_sub17BA5() {
@@ -2364,9 +2364,10 @@ void LilliputScript::OC_callScript() {
debugC(1, kDebugScript, "OC_callScript()");
int index = _currScript->readUint16LE();
- int var1 = getValue1();
- _vm->setCurrentCharacter(var1);
+ int charIndex = getValue1();
+ _vm->setCurrentCharacter(charIndex);
+
int tmpIndex = _vm->_currentScriptCharacter;
assert(index < _vm->_gameScriptIndexSize);
@@ -2375,10 +2376,10 @@ void LilliputScript::OC_callScript() {
_scriptStack.push(_currScript);
if (_byte16F05_ScriptHandler == 0) {
- _vm->_byte1714E = 0;
- debugC(1, kDebugScriptTBC, "========================== Menu Script %d==============================", scriptIndex);
+ _vm->_handleOpcodeReturnCode = 0;
+ debugC(1, kDebugScript, "========================== Menu Script %d==============================", scriptIndex);
runMenuScript(ScriptStream(&_vm->_arrayGameScripts[scriptIndex], _vm->_arrayGameScriptIndex[index + 1] - _vm->_arrayGameScriptIndex[index]));
- debugC(1, kDebugScriptTBC, "========================== End of Menu Script==============================");
+ debugC(1, kDebugScript, "========================== End of Menu Script==============================");
} else {
runScript(ScriptStream(&_vm->_arrayGameScripts[scriptIndex], _vm->_arrayGameScriptIndex[index + 1] - _vm->_arrayGameScriptIndex[index]));
}
@@ -2404,10 +2405,10 @@ void LilliputScript::OC_setCurrentScriptCharacterPos() {
_vm->_array109E9PosX[_vm->_currentScriptCharacter] = -1;
}
-void LilliputScript::OC_resetByte16F04() {
- debugC(1, kDebugScriptTBC, "OC_resetByte16F04()");
+void LilliputScript::OC_initScriptFor() {
+ debugC(1, kDebugScriptTBC, "OC_initScriptFor()");
- _byte16F04 = 0;
+ _scriptForVal = 0;
}
void LilliputScript::OC_sub17AE1() {
@@ -2477,8 +2478,8 @@ void LilliputScript::OC_sub17C76() {
void LilliputScript::OC_setCurrentCharacter() {
debugC(1, kDebugScript, "OC_setCurrentCharacter()");
- int var1 = getValue1();
- _vm->setCurrentCharacter(var1);
+ int index = getValue1();
+ _vm->setCurrentCharacter(index);
}
void LilliputScript::sub171AF(int16 var1, byte var2h, byte characterId, int16 var4) {
diff --git a/engines/lilliput/script.h b/engines/lilliput/script.h
index 1c02021f06..c606494f76 100644
--- a/engines/lilliput/script.h
+++ b/engines/lilliput/script.h
@@ -106,7 +106,7 @@ private:
byte _byte16F05_ScriptHandler;
byte _byte10806;
byte _lastRandomValue;
- byte _byte16F04;
+ byte _scriptForVal;
byte _byte1881A;
byte _byte18823;
byte _speechDisplaySpeed;
@@ -157,7 +157,7 @@ private:
byte OC_for();
byte OC_compCurrentSpeechId();
byte OC_checkSaveFlag();
- byte OC_compByte16F04();
+ byte OC_compScriptForVal();
byte OC_sub174D8();
byte OC_CompareCharacterVariables();
byte OC_compareCoords_1();
@@ -217,13 +217,13 @@ private:
void OC_startSpeech5();
void OC_resetByte1714E();
void OC_deleteSavegameAndQuit();
- void OC_incByte16F04();
+ void OC_incScriptForVal();
void OC_sub17BA5();
void OC_setByte18823();
void OC_callScript();
void OC_callScriptAndReturn();
void OC_setCurrentScriptCharacterPos();
- void OC_resetByte16F04();
+ void OC_initScriptFor();
void OC_sub17AE1();
void OC_sub17AEE();
void OC_setWord10804();