diff options
author | Matthew Hoops | 2011-09-22 15:26:09 -0400 |
---|---|---|
committer | Matthew Hoops | 2011-09-22 15:26:09 -0400 |
commit | c8752bb1d3fadc760c723c3f3b9db7a7f2ab225d (patch) | |
tree | 2df8ad90c5c6f8478447594dd1e60ec7a42ca01d /engines/pegasus | |
parent | 897c585f05b30d7431541f774383ace8f8f5201a (diff) | |
download | scummvm-rg350-c8752bb1d3fadc760c723c3f3b9db7a7f2ab225d.tar.gz scummvm-rg350-c8752bb1d3fadc760c723c3f3b9db7a7f2ab225d.tar.bz2 scummvm-rg350-c8752bb1d3fadc760c723c3f3b9db7a7f2ab225d.zip |
PEGASUS: Implement Item::getDragSprite()
Diffstat (limited to 'engines/pegasus')
-rwxr-xr-x | engines/pegasus/items/item.cpp | 20 | ||||
-rwxr-xr-x | engines/pegasus/items/item.h | 5 |
2 files changed, 23 insertions, 2 deletions
diff --git a/engines/pegasus/items/item.cpp b/engines/pegasus/items/item.cpp index 126bbfec63..e4f1b712d7 100755 --- a/engines/pegasus/items/item.cpp +++ b/engines/pegasus/items/item.cpp @@ -27,7 +27,9 @@ #include "common/stream.h" #include "pegasus/constants.h" +#include "pegasus/elements.h" #include "pegasus/pegasus.h" +#include "pegasus/surface.h" #include "pegasus/items/item.h" #include "pegasus/items/itemlist.h" @@ -266,4 +268,22 @@ ItemStateInfo Item::readItemState(Common::SeekableReadStream *stream) { return info; } +Sprite *Item::getDragSprite(const tDisplayElementID id) const { + PegasusEngine *vm = (PegasusEngine *)g_engine; + Sprite *result = new Sprite(id); + SpriteFrame *frame = new SpriteFrame(); + + frame->initFromPICTResource(vm->_resFork, _itemInfo.dragSpriteNormalID); + result->addFrame(frame, 0, 0); + + if (_itemInfo.dragSpriteNormalID != _itemInfo.dragSpriteUsedID) { + frame = new SpriteFrame(); + frame->initFromPICTResource(vm->_resFork, _itemInfo.dragSpriteUsedID); + } + + result->addFrame(frame, 0, 0); + result->setCurrentFrameIndex(0); + return result; +} + } // End of namespace Pegasus diff --git a/engines/pegasus/items/item.h b/engines/pegasus/items/item.h index f623df5a4b..1373913892 100755 --- a/engines/pegasus/items/item.h +++ b/engines/pegasus/items/item.h @@ -274,6 +274,8 @@ enum tItemType { kBiochipItemType }; +class Sprite; + /* Item is an object which can be picked up and carried around. @@ -313,8 +315,7 @@ public: void getInfoRightTimes(TimeValue&, TimeValue&) const; TimeValue getSharedAreaTime() const; - //TODO - //MMSprite* GetDragSprite(const tDisplayElementID) const; + Sprite *getDragSprite(const tDisplayElementID) const; /* select -- called when this item becomes current. Also called when the inventory |