LOL: - implemented inventory screen status icons

svn-id: r40463
This commit is contained in:
Florian Kagerer 2009-05-11 19:03:40 +00:00
parent 0fe9cab48a
commit 03dffbcc18
4 changed files with 23 additions and 10 deletions

View File

@ -166,20 +166,20 @@ void LoLEngine::gui_displayCharInventory(int charNum) {
_screen->fprintString(getLangString(0x4033), 182, 103, 172, 0, 5); _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; int x = 0;
int32 c = 0; int32 c = 0;
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if (!(l->flags & skillFlags[i << 1])) if (!(l->flags & statusFlags[i << 1]))
continue; 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); _screen->drawShape(_screen->_curPage, shp, 108 + x, 98, 0, 0);
x += (shp[3] + 2); x += (shp[3] + 2);
_invSkillFlags[c] = skillFlags[(i << 1) + 1]; _charStatusFlags[c] = statusFlags[(i << 1) + 1];
c++; c++;
} }
@ -1782,7 +1782,20 @@ int LoLEngine::clickedLamp(Button *button) {
return 1; 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; return 1;
} }

View File

@ -90,7 +90,7 @@ LoLEngine::LoLEngine(OSystem *system, const GameFlags &flags) : KyraEngine_v1(sy
_itemProperties = 0; _itemProperties = 0;
_itemInHand = 0; _itemInHand = 0;
memset(_inventory, 0, sizeof(_inventory)); memset(_inventory, 0, sizeof(_inventory));
memset(_invSkillFlags, 0, sizeof(_invSkillFlags)); memset(_charStatusFlags, 0, sizeof(_charStatusFlags));
_inventoryCurItem = 0; _inventoryCurItem = 0;
_currentControlMode = 0; _currentControlMode = 0;
_specialSceneFlag = 0; _specialSceneFlag = 0;

View File

@ -526,7 +526,7 @@ private:
int clickedCompass(Button *button); int clickedCompass(Button *button);
int clickedAutomap(Button *button); int clickedAutomap(Button *button);
int clickedLamp(Button *button); int clickedLamp(Button *button);
int clickedUnk32(Button *button); int clickedStatusIcon(Button *button);
const ButtonDef *_buttonData; const ButtonDef *_buttonData;
int _buttonDataSize; int _buttonDataSize;
@ -1097,7 +1097,7 @@ private:
int _currentControlMode; int _currentControlMode;
int _specialSceneFlag; int _specialSceneFlag;
int _lastCharInventory; int _lastCharInventory;
uint16 _invSkillFlags[6]; uint16 _charStatusFlags[3];
FlyingObject *_flyingObjects; FlyingObject *_flyingObjects;

View File

@ -1983,7 +1983,7 @@ void LoLEngine::assignButtonCallback(Button *button, int index) {
cb(clickedCompass), cb(clickedCompass),
cb(clickedAutomap), cb(clickedAutomap),
cb(clickedLamp), cb(clickedLamp),
cb(clickedUnk32), cb(clickedStatusIcon),
}; };
#undef cb #undef cb