diff options
author | Paul Gilbert | 2015-01-06 22:48:04 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-01-06 22:48:04 -0500 |
commit | fa0d7722f1c7826887b6f2b28d2d6829c77c717a (patch) | |
tree | 77afae99bf94ce2e983d3256f71471353ea44104 /engines/xeen/sprites.cpp | |
parent | 31f4f5b843400531d3e091ae0eb673d6dacc227d (diff) | |
download | scummvm-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.cpp | 20 |
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); |