diff options
Diffstat (limited to 'engines/gob')
-rw-r--r-- | engines/gob/cmpfile.cpp | 13 | ||||
-rw-r--r-- | engines/gob/cmpfile.h | 2 | ||||
-rw-r--r-- | engines/gob/rxyfile.cpp | 11 | ||||
-rw-r--r-- | engines/gob/rxyfile.h | 2 |
4 files changed, 28 insertions, 0 deletions
diff --git a/engines/gob/cmpfile.cpp b/engines/gob/cmpfile.cpp index 62ac9f3fa4..7b21c4c835 100644 --- a/engines/gob/cmpfile.cpp +++ b/engines/gob/cmpfile.cpp @@ -230,4 +230,17 @@ void CMPFile::draw(Surface &dest, uint16 left, uint16 top, uint16 right, uint16 dest.blit(*_surface, left, top, right, bottom, x, y, transp); } +uint16 CMPFile::addSprite(uint16 left, uint16 top, uint16 right, uint16 bottom) { + if (empty()) + return 0; + + const uint16 height = bottom - top + 1; + const uint16 width = right - left + 1; + + _maxWidth = MAX(_maxWidth , width); + _maxHeight = MAX(_maxHeight, height); + + return _coordinates->add(left, top, right, bottom); +} + } // End of namespace Gob diff --git a/engines/gob/cmpfile.h b/engines/gob/cmpfile.h index d409e15161..2b669e4d38 100644 --- a/engines/gob/cmpfile.h +++ b/engines/gob/cmpfile.h @@ -68,6 +68,8 @@ public: void draw(Surface &dest, uint16 left, uint16 top, uint16 right, uint16 bottom, uint16 x, uint16 y, int32 transp = -1) const; + uint16 addSprite(uint16 left, uint16 top, uint16 right, uint16 bottom); + private: GobEngine *_vm; diff --git a/engines/gob/rxyfile.cpp b/engines/gob/rxyfile.cpp index 06a07bdc9c..9702dc8c7f 100644 --- a/engines/gob/rxyfile.cpp +++ b/engines/gob/rxyfile.cpp @@ -88,4 +88,15 @@ void RXYFile::load(Common::SeekableReadStream &rxy) { } } +uint16 RXYFile::add(uint16 left, uint16 top, uint16 right, uint16 bottom) { + _coords.resize(_coords.size() + 1); + + _coords.back().left = left; + _coords.back().top = top; + _coords.back().right = right; + _coords.back().bottom = bottom; + + return _coords.size() - 1; +} + } // End of namespace Gob diff --git a/engines/gob/rxyfile.h b/engines/gob/rxyfile.h index 3b4d3de636..bc9600b5b0 100644 --- a/engines/gob/rxyfile.h +++ b/engines/gob/rxyfile.h @@ -58,6 +58,8 @@ public: const Coordinates &operator[](uint i) const; + uint16 add(uint16 left, uint16 top, uint16 right, uint16 bottom); + private: typedef Common::Array<Coordinates> CoordArray; |