aboutsummaryrefslogtreecommitdiff
path: root/engines/lilliput/lilliput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lilliput/lilliput.cpp')
-rw-r--r--engines/lilliput/lilliput.cpp37
1 files changed, 23 insertions, 14 deletions
diff --git a/engines/lilliput/lilliput.cpp b/engines/lilliput/lilliput.cpp
index 8ab326ea21..f2ba0ce231 100644
--- a/engines/lilliput/lilliput.cpp
+++ b/engines/lilliput/lilliput.cpp
@@ -1122,6 +1122,7 @@ void LilliputEngine::displayCharacterStatBar(int8 type, int16 averagePosX, int8
if (score == 0)
++score;
+ // Draw bar, color green, high = 4, width = score
for (int i = 0; i < 4; i++) {
for (int j = 0; j < score; j++) {
vgaBuf[vgaIndex + j] = 2;
@@ -1980,7 +1981,7 @@ void LilliputEngine::sub1305C(byte index, byte button) {
}
if (_byte12FCE == 1) {
- sub130DD();
+ unselectInterfaceButton();
return;
}
@@ -2169,12 +2170,11 @@ void LilliputEngine::sub16B8F_moveCharacter(int index, Common::Point pos, int di
_characterPositionY[index] = pos.y;
}
-void LilliputEngine::sub17224(int var1, int var4) {
- debugC(2, kDebugEngine, "sub17224(%d, %d)", var1, var4);
+void LilliputEngine::sub17224(byte type, byte index, int var4) {
+ debugC(2, kDebugEngine, "sub17224(%d, %d, %d)", type, index, var4);
- byte type = (var1 >> 8);
if (type == 0) {
- sub17264(var1, var4);
+ sub17264(index, var4);
return;
}
@@ -2184,15 +2184,15 @@ void LilliputEngine::sub17224(int var1, int var4) {
return;
}
- int index = var4 & 0xFF;
+ int index2 = var4 & 0xFF;
for (int i = 0; i < _numCharacters; i++) {
- if ((_scriptHandler->_array10B51[index] & 0xFF) >= type)
+ if ((_scriptHandler->_array10B51[index2] & 0xFF) >= type)
sub17264(i, var4);
- index += 40;
+ index2 += 40;
}
}
-void LilliputEngine::sub17264(int index, int var4) {
+void LilliputEngine::sub17264(byte index, int var4) {
debugC(2, kDebugEngine, "sub17264(%d, %d)", index, var4);
if (_array11D49[index] != -1) {
@@ -2218,11 +2218,14 @@ void LilliputEngine::sub171CF() {
for (int i = 0; i < 10; i++) {
if ((_array12861[(3 * i) + 1] != -1) && (_array12861[3 * i] == _word1289D)) {
- int var1 = _array12861[(3 * i) + 1];
+ int16 var1 = _array12861[(3 * i) + 1];
int var4 = _array12861[(3 * i) + 2];
_array12861[(3 * i) + 1] = -1;
- sub17224(var1, var4);
+ byte type = var1 >> 8;
+ byte index = var1 & 0xFF;
+
+ sub17224(type, index, var4);
}
}
}
@@ -2625,8 +2628,14 @@ void LilliputEngine::setCurrentCharacter(int index) {
_currentCharacterVariables = getCharacterVariablesPtr(_currentScriptCharacter * 32);
}
-void LilliputEngine::sub130DD() {
- warning("sub130DD()");
+void LilliputEngine::unselectInterfaceButton() {
+ debugC(1, kDebugEngine, "unselectInterfaceButton()");
+
+ _byte12FCE = 0;
+ _word15AC2 = 0;
+ _lastInterfaceHotspotButton = 0;
+ unselectInterfaceHotspots();
+ displayInterfaceHotspots();
}
void LilliputEngine::handleMenu() {
@@ -2646,7 +2655,7 @@ void LilliputEngine::handleMenu() {
_byte129A0 = 0xFF;
if (_byte16F07_menuId == 3)
- sub130DD();
+ unselectInterfaceButton();
_byte16F07_menuId = 0;
}