diff options
author | Denis Kasak | 2009-08-09 03:58:03 +0000 |
---|---|---|
committer | Denis Kasak | 2009-08-09 03:58:03 +0000 |
commit | 295ab7e6ff022ea1f460740dd75d107b3f2fe64c (patch) | |
tree | b79647fb2eced422d3fc3183a4467e9b7b21ee51 /engines/draci | |
parent | c193c80e67fa9d172f9f57edae927e1c3ed11c0e (diff) | |
download | scummvm-rg350-295ab7e6ff022ea1f460740dd75d107b3f2fe64c.tar.gz scummvm-rg350-295ab7e6ff022ea1f460740dd75d107b3f2fe64c.tar.bz2 scummvm-rg350-295ab7e6ff022ea1f460740dd75d107b3f2fe64c.zip |
Added Mouse::loadItemCursor(). Removed hotspot FIXME as all cursors seem to use the same hotspot (the center of the sprite).
svn-id: r43158
Diffstat (limited to 'engines/draci')
-rw-r--r-- | engines/draci/mouse.cpp | 14 | ||||
-rw-r--r-- | engines/draci/mouse.h | 3 |
2 files changed, 14 insertions, 3 deletions
diff --git a/engines/draci/mouse.cpp b/engines/draci/mouse.cpp index 9f34003840..02510e15c5 100644 --- a/engines/draci/mouse.cpp +++ b/engines/draci/mouse.cpp @@ -88,12 +88,22 @@ void Mouse::setPosition(uint16 x, uint16 y) { _vm->_system->warpMouse(x, y); } -// FIXME: Handle hotspots properly void Mouse::setCursorType(CursorType cur) { _cursorType = cur; + + BAFile *f; + f = _vm->_iconsArchive->getFile(_cursorType); + + Sprite sp(f->_data, f->_length, 0, 0, true); + CursorMan.replaceCursorPalette(_vm->_screen->getPalette(), 0, kNumColours); + CursorMan.replaceCursor(sp.getBuffer(), sp.getWidth(), sp.getHeight(), + sp.getWidth() / 2, sp.getHeight() / 2); +} + +void Mouse::loadItemCursor(int itemID, bool highlighted) { BAFile *f; - f = _vm->_iconsArchive->getFile(_cursorType); + f = _vm->_itemImagesArchive->getFile(itemID + highlighted); Sprite sp(f->_data, f->_length, 0, 0, true); CursorMan.replaceCursorPalette(_vm->_screen->getPalette(), 0, kNumColours); diff --git a/engines/draci/mouse.h b/engines/draci/mouse.h index 07dc53311d..f3e0123f59 100644 --- a/engines/draci/mouse.h +++ b/engines/draci/mouse.h @@ -50,8 +50,9 @@ public: void cursorOff(); bool isCursorOn(); void setPosition(uint16 x, uint16 y); - void setCursorType(CursorType cur); CursorType getCursorType() { return _cursorType; } + void setCursorType(CursorType cur); + void loadItemCursor(int itemID, bool highlighted = false); bool lButtonPressed() { return _lButton; } bool rButtonPressed() { return _rButton; } void lButtonSet(bool state) { _lButton = state; } |