aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/sprites.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-01-06 22:48:04 -0500
committerPaul Gilbert2015-01-06 22:48:04 -0500
commitfa0d7722f1c7826887b6f2b28d2d6829c77c717a (patch)
tree77afae99bf94ce2e983d3256f71471353ea44104 /engines/xeen/sprites.cpp
parent31f4f5b843400531d3e091ae0eb673d6dacc227d (diff)
downloadscummvm-rg350-fa0d7722f1c7826887b6f2b28d2d6829c77c717a.tar.gz
scummvm-rg350-fa0d7722f1c7826887b6f2b28d2d6829c77c717a.tar.bz2
scummvm-rg350-fa0d7722f1c7826887b6f2b28d2d6829c77c717a.zip
XEEN: Work on loading sprites for monsters and objects in Map::load
Diffstat (limited to 'engines/xeen/sprites.cpp')
-rw-r--r--engines/xeen/sprites.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/engines/xeen/sprites.cpp b/engines/xeen/sprites.cpp
index 598870dc57..74f2b1d04a 100644
--- a/engines/xeen/sprites.cpp
+++ b/engines/xeen/sprites.cpp
@@ -43,6 +43,21 @@ SpriteResource::~SpriteResource() {
clear();
}
+SpriteResource &SpriteResource::operator=(const SpriteResource &src) {
+ delete[] _data;
+ _index.clear();
+
+ _filesize = src._filesize;
+ _data = new byte[_filesize];
+ Common::copy(src._data, src._data + _filesize, _data);
+
+ _index.resize(src._index.size());
+ for (uint i = 0; i < src._index.size(); ++i)
+ _index[i] = src._index[i];
+
+ return *this;
+}
+
void SpriteResource::load(const Common::String &filename) {
// Open the resource
File f(filename);
@@ -173,7 +188,10 @@ void SpriteResource::drawOffset(XSurface &dest, uint16 offset, const Common::Poi
destPos.x + xOffset + width, destPos.y + yOffset + height));
}
-void SpriteResource::draw(XSurface &dest, int frame, const Common::Point &destPos) const {
+void SpriteResource::draw(XSurface &dest, int frame, const Common::Point &destPos, int flags) const {
+ // TODO: Support the different flags
+ assert(!flags);
+
drawOffset(dest, _index[frame]._offset1, destPos);
if (_index[frame]._offset2)
drawOffset(dest, _index[frame]._offset2, destPos);