aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFlorian Kagerer2009-05-11 19:03:40 +0000
committerFlorian Kagerer2009-05-11 19:03:40 +0000
commit03dffbcc1875615bdb9f8ee7133e1f27afe6962a (patch)
tree56418af2b2035c4830c9108195aca9589ffeb560 /engines
parent0fe9cab48ae0e4534f562806f87e9610e7c09d8d (diff)
downloadscummvm-rg350-03dffbcc1875615bdb9f8ee7133e1f27afe6962a.tar.gz
scummvm-rg350-03dffbcc1875615bdb9f8ee7133e1f27afe6962a.tar.bz2
scummvm-rg350-03dffbcc1875615bdb9f8ee7133e1f27afe6962a.zip
LOL: - implemented inventory screen status icons
svn-id: r40463
Diffstat (limited to 'engines')
-rw-r--r--engines/kyra/gui_lol.cpp25
-rw-r--r--engines/kyra/lol.cpp2
-rw-r--r--engines/kyra/lol.h4
-rw-r--r--engines/kyra/staticres.cpp2
4 files changed, 23 insertions, 10 deletions
diff --git a/engines/kyra/gui_lol.cpp b/engines/kyra/gui_lol.cpp
index dbf0fe16b0..a0709bdbba 100644
--- a/engines/kyra/gui_lol.cpp
+++ b/engines/kyra/gui_lol.cpp
@@ -166,20 +166,20 @@ void LoLEngine::gui_displayCharInventory(int charNum) {
_screen->fprintString(getLangString(0x4033), 182, 103, 172, 0, 5);
- static const uint16 skillFlags[] = { 0x0080, 0x0000, 0x1000, 0x0002, 0x100, 0x0001, 0x0000, 0x0000 };
+ static const uint16 statusFlags[] = { 0x0080, 0x0000, 0x1000, 0x0002, 0x100, 0x0001, 0x0000, 0x0000 };
- memset(_invSkillFlags, -1, 6);
+ memset(_charStatusFlags, 0xffff, sizeof(_charStatusFlags));
int x = 0;
int32 c = 0;
for (int i = 0; i < 3; i++) {
- if (!(l->flags & skillFlags[i << 1]))
+ if (!(l->flags & statusFlags[i << 1]))
continue;
- uint8 *shp = _gameShapes[skillFlags[(i << 1) + 1]];
+ uint8 *shp = _gameShapes[statusFlags[(i << 1) + 1]];
_screen->drawShape(_screen->_curPage, shp, 108 + x, 98, 0, 0);
x += (shp[3] + 2);
- _invSkillFlags[c] = skillFlags[(i << 1) + 1];
+ _charStatusFlags[c] = statusFlags[(i << 1) + 1];
c++;
}
@@ -1782,7 +1782,20 @@ int LoLEngine::clickedLamp(Button *button) {
return 1;
}
-int LoLEngine::clickedUnk32(Button *button) {
+int LoLEngine::clickedStatusIcon(Button *button) {
+ int t = _mouseX - 220;
+ if (t < 0)
+ t = 0;
+
+ t /= 14;
+ if (t > 2)
+ t = 2;
+
+ uint16 str = _charStatusFlags[t] + 1;
+ if (str == 0 || str > 3)
+ return 1;
+
+ _txt->printMessage(0x8002, getLangString(str == 1 ? 0x424c : (str == 2 ? 0x424e : 0x424d)));
return 1;
}
diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp
index 5eeb8e371e..00753a5bf6 100644
--- a/engines/kyra/lol.cpp
+++ b/engines/kyra/lol.cpp
@@ -90,7 +90,7 @@ LoLEngine::LoLEngine(OSystem *system, const GameFlags &flags) : KyraEngine_v1(sy
_itemProperties = 0;
_itemInHand = 0;
memset(_inventory, 0, sizeof(_inventory));
- memset(_invSkillFlags, 0, sizeof(_invSkillFlags));
+ memset(_charStatusFlags, 0, sizeof(_charStatusFlags));
_inventoryCurItem = 0;
_currentControlMode = 0;
_specialSceneFlag = 0;
diff --git a/engines/kyra/lol.h b/engines/kyra/lol.h
index ba0a5b8d55..581007d4b0 100644
--- a/engines/kyra/lol.h
+++ b/engines/kyra/lol.h
@@ -526,7 +526,7 @@ private:
int clickedCompass(Button *button);
int clickedAutomap(Button *button);
int clickedLamp(Button *button);
- int clickedUnk32(Button *button);
+ int clickedStatusIcon(Button *button);
const ButtonDef *_buttonData;
int _buttonDataSize;
@@ -1097,7 +1097,7 @@ private:
int _currentControlMode;
int _specialSceneFlag;
int _lastCharInventory;
- uint16 _invSkillFlags[6];
+ uint16 _charStatusFlags[3];
FlyingObject *_flyingObjects;
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index 921402b582..a0c6afd1fa 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -1983,7 +1983,7 @@ void LoLEngine::assignButtonCallback(Button *button, int index) {
cb(clickedCompass),
cb(clickedAutomap),
cb(clickedLamp),
- cb(clickedUnk32),
+ cb(clickedStatusIcon),
};
#undef cb