aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMatthew Hoops2011-09-22 15:26:09 -0400
committerMatthew Hoops2011-09-22 15:26:09 -0400
commitc8752bb1d3fadc760c723c3f3b9db7a7f2ab225d (patch)
tree2df8ad90c5c6f8478447594dd1e60ec7a42ca01d /engines
parent897c585f05b30d7431541f774383ace8f8f5201a (diff)
downloadscummvm-rg350-c8752bb1d3fadc760c723c3f3b9db7a7f2ab225d.tar.gz
scummvm-rg350-c8752bb1d3fadc760c723c3f3b9db7a7f2ab225d.tar.bz2
scummvm-rg350-c8752bb1d3fadc760c723c3f3b9db7a7f2ab225d.zip
PEGASUS: Implement Item::getDragSprite()
Diffstat (limited to 'engines')
-rwxr-xr-xengines/pegasus/items/item.cpp20
-rwxr-xr-xengines/pegasus/items/item.h5
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