aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/lilliput/lilliput.cpp47
-rw-r--r--engines/lilliput/script.cpp26
-rw-r--r--engines/lilliput/script.h6
3 files changed, 39 insertions, 40 deletions
diff --git a/engines/lilliput/lilliput.cpp b/engines/lilliput/lilliput.cpp
index 01716a3de5..2b9f57962d 100644
--- a/engines/lilliput/lilliput.cpp
+++ b/engines/lilliput/lilliput.cpp
@@ -676,9 +676,9 @@ void LilliputEngine::displayCharactersOnMap() {
byte *buf = (byte *)_mainSurface->getPixels();
for (int index = _numCharacters - 1; index >= 0; index--) {
- if (((_rulesBuffer2_11[index] & 2) == 0) && (_scriptHandler->_array1614BPosY[index] != -1)) {
+ if (((_rulesBuffer2_11[index] & 2) == 0) && (_scriptHandler->_characterTilePosY[index] != -1)) {
// FIXME: This is still wrong, but less. The values in both arrays should be verified now!
- int pixIndex = 320 + ((15 * _scriptHandler->_array1614BPosY[index]) / 4) + (_scriptHandler->_array16123PosX[index] * 4) + 1;
+ int pixIndex = 320 + ((15 * _scriptHandler->_characterTilePosY[index]) / 4) + (_scriptHandler->_characterTilePosX[index] * 4) + 1;
_mapSavedPixelIndex[index] = pixIndex;
_mapSavedPixel[index] = buf[pixIndex];
@@ -723,8 +723,8 @@ void LilliputEngine::moveCharacters() {
_characterPositionY[i] = var4;
}
- _scriptHandler->_array16123PosX[i] = (_characterPositionX[i] >> 3);
- _scriptHandler->_array1614BPosY[i] = (_characterPositionY[i] >> 3);
+ _scriptHandler->_characterTilePosX[i] = (_characterPositionX[i] >> 3);
+ _scriptHandler->_characterTilePosY[i] = (_characterPositionY[i] >> 3);
_characterRelativePositionX[i] = 0xFF;
_characterRelativePositionY[i] = 0xFF;
_characterDisplayX[i] = 0xFF;
@@ -1033,8 +1033,8 @@ void LilliputEngine::sub16CA0() {
if (_rulesBuffer2_11[index] & 1)
continue;
- int c1 = _scriptHandler->_array16123PosX[index];
- int c2 = _scriptHandler->_array1614BPosY[index];
+ int c1 = _scriptHandler->_characterTilePosX[index];
+ int c2 = _scriptHandler->_characterTilePosY[index];
// Hack: Skip if disabled (c2 negative)
if (c2 == -1)
@@ -1047,8 +1047,8 @@ void LilliputEngine::sub16CA0() {
(_rulesBuffer2_5[index] != index2) &&
(_rulesBuffer2_5[index2] != index) &&
(_rulesBuffer2_11[index2] & 2) == 0) {
- int d1 = _scriptHandler->_array16123PosX[index2];
- int d2 = _scriptHandler->_array1614BPosY[index2];
+ int d1 = _scriptHandler->_characterTilePosX[index2];
+ int d2 = _scriptHandler->_characterTilePosY[index2];
if (d1 != -1) {
int x = c1 - d1;
@@ -1435,7 +1435,7 @@ byte LilliputEngine::sub16799(int index, Common::Point param1) {
Common::Point var3 = Common::Point(_array109E9PosX[index], _array10A11PosY[index]);
if (var3.x != -1) {
- if ((var3.x != _scriptHandler->_array16123PosX[index]) || (var3.y != _scriptHandler->_array1614BPosY[index])) {
+ if ((var3.x != _scriptHandler->_characterTilePosX[index]) || (var3.y != _scriptHandler->_characterTilePosY[index])) {
sub1693A_chooseDirections(index);
_scriptHandler->_array12811[index] -= (param1.x & 0x0F);
return 3;
@@ -1447,7 +1447,7 @@ byte LilliputEngine::sub16799(int index, Common::Point param1) {
sub167EF(index);
- Common::Point pos1 = Common::Point(_scriptHandler->_array16123PosX[index], _scriptHandler->_array1614BPosY[index]);
+ Common::Point pos1 = Common::Point(_scriptHandler->_characterTilePosX[index], _scriptHandler->_characterTilePosY[index]);
Common::Point pos2 = Common::Point(_array109E9PosX[index], _array10A11PosY[index]);
_characterDirectionArray[index] = getDirection(pos1, pos2);
@@ -1461,7 +1461,7 @@ byte LilliputEngine::sub16799(int index, Common::Point param1) {
void LilliputEngine::sub167EF(int index) {
debugC(2, kDebugEngine, "sub167EF(%d)", index);
- int16 word167EB = findHotspot(Common::Point(_scriptHandler->_array16123PosX[index], _scriptHandler->_array1614BPosY[index]));
+ int16 word167EB = findHotspot(Common::Point(_scriptHandler->_characterTilePosX[index], _scriptHandler->_characterTilePosY[index]));
int16 word167ED = findHotspot(Common::Point(_array10999PosX[index], _array109C1PosY[index]));
if (word167EB == word167ED) {
@@ -1546,7 +1546,7 @@ void LilliputEngine::sub1693A_chooseDirections(int index) {
static const int16 mapArrayMove[4] = {4, -256, 256, -4};
- _word16937Pos = Common::Point(_scriptHandler->_array16123PosX[index], _scriptHandler->_array1614BPosY[index]);
+ _word16937Pos = Common::Point(_scriptHandler->_characterTilePosX[index], _scriptHandler->_characterTilePosY[index]);
sub16A08(index);
@@ -1823,24 +1823,23 @@ byte LilliputEngine::sub16729(int index, Common::Point var1) {
int param4x = ((index | 0xFF00) >> 8);
int param1 = var1.y;
- _soundHandler->contentFct2(param1, _scriptHandler->_viewportPos, Common::Point(_scriptHandler->_array16123PosX[index], _scriptHandler->_array1614BPosY[index]), Common::Point(param4x, 0));
+ _soundHandler->contentFct2(param1, _scriptHandler->_viewportPos, Common::Point(_scriptHandler->_characterTilePosX[index], _scriptHandler->_characterTilePosY[index]), Common::Point(param4x, 0));
return 2;
}
byte LilliputEngine::sub1675D(int index, Common::Point var1) {
debugC(2, kDebugEngine, "sub1675D(%d, %d - %d)", index, var1.x, var1.y);
- int var2 = _scriptHandler->_array10A39[index];
- int8 var1h = _scriptHandler->_array16123PosX[var2];
- int8 var1l = _scriptHandler->_array1614BPosY[var2];
+ int charIndex = _scriptHandler->_array10A39[index];
+ Common::Point charPos = Common::Point(_scriptHandler->_characterTilePosX[charIndex], _scriptHandler->_characterTilePosY[charIndex]);
if ((_array109E9PosX[index] != -1) && (_array109E9PosX[index] == _array10999PosX[index]) && (_array10A11PosY[index] == _array109C1PosY[index])) {
- _array109E9PosX[index] = var1h;
- _array10A11PosY[index] = var1l;
+ _array109E9PosX[index] = charPos.x;
+ _array10A11PosY[index] = charPos.y;
}
- _array10999PosX[index] = var1h;
- _array109C1PosY[index] = var1l;
+ _array10999PosX[index] = charPos.x;
+ _array109C1PosY[index] = charPos.y;
return sub16799(index, var1);
}
@@ -1850,11 +1849,11 @@ void LilliputEngine::sub16EBC() {
for (int index1 = _numCharacters - 1; index1 >= 0; index1--) {
// Hack: The original doesn't check if it's disabled, which looks wrong
- if ((_scriptHandler->_array16123PosX[index1] == -1) || (_scriptHandler->_array1614BPosY[index1] == -1))
+ if ((_scriptHandler->_characterTilePosX[index1] == -1) || (_scriptHandler->_characterTilePosY[index1] == -1))
continue;
//
- int mapIndex = 3 + (_scriptHandler->_array1614BPosY[index1] * 64 + _scriptHandler->_array16123PosX[index1]) * 4;
+ int mapIndex = 3 + (_scriptHandler->_characterTilePosY[index1] * 64 + _scriptHandler->_characterTilePosX[index1]) * 4;
assert((mapIndex >= 0) && (mapIndex < 16384));
byte var1 = _bufferIsoMap[mapIndex] & 0x40;
@@ -2254,7 +2253,7 @@ void LilliputEngine::sub16B8F_moveCharacter(int index, Common::Point pos, int di
debugC(2, kDebugEngine, "sub16B8F_moveCharacter(%d, %d - %d, %d)", index, pos.x, pos.y, direction);
int16 diffX = pos.x >> 3;
- if (((diffX & 0xFF) == _scriptHandler->_array16123PosX[index]) && ((pos.y >> 3) == _scriptHandler->_array1614BPosY[index])) {
+ if (((diffX & 0xFF) == _scriptHandler->_characterTilePosX[index]) && ((pos.y >> 3) == _scriptHandler->_characterTilePosY[index])) {
_characterPositionX[index] = pos.x;
_characterPositionY[index] = pos.y;
return;
@@ -2263,7 +2262,7 @@ void LilliputEngine::sub16B8F_moveCharacter(int index, Common::Point pos, int di
if ((pos.x < 0) || (pos.x >= 512) || (pos.y < 0) || (pos.y >= 512))
return;
- int mapIndex = (_scriptHandler->_array1614BPosY[index] * 64 + _scriptHandler->_array16123PosX[index]) * 4;
+ int mapIndex = (_scriptHandler->_characterTilePosY[index] * 64 + _scriptHandler->_characterTilePosX[index]) * 4;
assert(mapIndex < 16384);
if ((_bufferIsoMap[mapIndex + 3] & _array16C58[direction]) == 0)
diff --git a/engines/lilliput/script.cpp b/engines/lilliput/script.cpp
index a55e24a205..7b461af6f2 100644
--- a/engines/lilliput/script.cpp
+++ b/engines/lilliput/script.cpp
@@ -65,8 +65,8 @@ LilliputScript::LilliputScript(LilliputEngine *vm) : _vm(vm), _currScript(NULL)
_array10AB1[i] = 0;
_array12811[i] = 16;
_array12839[i] = -1;
- _array16123PosX[i] = 0;
- _array1614BPosY[i] = 0;
+ _characterTilePosX[i] = 0;
+ _characterTilePosY[i] = 0;
_array122C1[i] = 0;
}
@@ -544,7 +544,7 @@ void LilliputScript::handleOpcodeType2(int curWord) {
OC_sub1875D_snd();
break;
case 0x64:
- OC_setArray128EF();
+ OC_setCharacterMapColor();
break;
case 0x65:
OC_initGameAreaDisplay();
@@ -710,7 +710,7 @@ static const OpCode opCodes2[] = {
/* 0x61 */ { "OC_sub1873F_snd", 1, kgetPosFromScript, kNone, kNone, kNone, kNone },
/* 0x62 */ { "OC_sub18746_snd", 1, kImmediateValue, kNone, kNone, kNone, kNone },
/* 0x63 */ { "OC_sub1875D_snd", 0, kNone, kNone, kNone, kNone, kNone },
-/* 0x64 */ { "OC_setArray128EF", 2, kGetValue1, kImmediateValue, kNone, kNone, kNone },
+/* 0x64 */ { "OC_setCharacterMapColor", 2, kGetValue1, kImmediateValue, kNone, kNone, kNone },
/* 0x65 */ { "OC_initGameAreaDisplay", 0, kNone, kNone, kNone, kNone, kNone }
};
@@ -1381,8 +1381,8 @@ byte LilliputScript::OC_comparePos() {
debugC(2, kDebugScript, "OC_comparePos()");
int index = getValue1();
- int8 d1 = _array16123PosX[index];
- int8 d2 = _array1614BPosY[index];
+ int8 d1 = _characterTilePosX[index];
+ int8 d2 = _characterTilePosY[index];
Common::Point var1 = getPosFromScript();
if (var1 == Common::Point(d1, d2))
@@ -1552,7 +1552,7 @@ byte LilliputScript::OC_compareCoords_2() {
debugC(1, kDebugScript, "OC_compareCoords_2()");
int16 index = getValue1();
- Common::Point var1 = Common::Point(_array16123PosX[index], _array1614BPosY[index]);
+ Common::Point var1 = Common::Point(_characterTilePosX[index], _characterTilePosY[index]);
index = _currScript->readUint16LE();
uint16 var3 = _vm->_rectXMinMax[index];
uint16 var4 = _vm->_rectYMinMax[index];
@@ -3326,7 +3326,7 @@ void LilliputScript::OC_sub186E5_snd() {
Common::Point var4 = Common::Point(0xFF, index & 0xFF);
int var1 = (_currScript->readUint16LE() & 0xFF);
- _vm->_soundHandler->contentFct2(var1, _viewportPos, Common::Point(_array16123PosX[index], _array1614BPosY[index]), var4);
+ _vm->_soundHandler->contentFct2(var1, _viewportPos, Common::Point(_characterTilePosX[index], _characterTilePosY[index]), var4);
}
void LilliputScript::OC_sub1870A_snd() {
@@ -3380,14 +3380,14 @@ void LilliputScript::OC_sub1875D_snd() {
_vm->_soundHandler->contentFct6();
}
-void LilliputScript::OC_setArray128EF() {
- debugC(1, kDebugScript, "OC_setArray128EF()");
+void LilliputScript::OC_setCharacterMapColor() {
+ debugC(1, kDebugScript, "OC_setCharacterMapColor()");
- int index = getValue1();
- int val = _currScript->readUint16LE();
+ byte index = (getValue1() & 0xFF);
+ int color = _currScript->readUint16LE();
assert(index < 40);
- _characterMapPixelColor[index] = val & 0xFF;
+ _characterMapPixelColor[index] = (color & 0xFF);
}
} // End of namespace
diff --git a/engines/lilliput/script.h b/engines/lilliput/script.h
index b9027872f7..59ffb4da19 100644
--- a/engines/lilliput/script.h
+++ b/engines/lilliput/script.h
@@ -61,8 +61,8 @@ public:
byte _characterScriptEnabled[40];
int8 _interfaceHotspotStatus[20];
- int8 _array16123PosX[40];
- int8 _array1614BPosY[40];
+ int8 _characterTilePosX[40];
+ int8 _characterTilePosY[40];
int8 _array12811[40];
int8 _array10AB1[40];
byte _array122FD[20];
@@ -295,7 +295,7 @@ private:
void OC_sub1873F_snd();
void OC_sub18746_snd();
void OC_sub1875D_snd();
- void OC_setArray128EF();
+ void OC_setCharacterMapColor();
};
} // End of namespace Lilliput