diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-05-11 15:53:04 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-05-11 15:53:04 +0300 |
commit | 20310ca4fa87856a2ac487ce70835384759b979b (patch) | |
tree | def18e2377c2f61f2d665f61b181cc53fc6b14a9 /src/resources/map/maplayer.cpp | |
parent | 50e0557d790ac007c2db63509b7beed6f8d15b1e (diff) | |
download | mv-20310ca4fa87856a2ac487ce70835384759b979b.tar.gz mv-20310ca4fa87856a2ac487ce70835384759b979b.tar.bz2 mv-20310ca4fa87856a2ac487ce70835384759b979b.tar.xz mv-20310ca4fa87856a2ac487ce70835384759b979b.zip |
Move objectslayer into separate file.
Diffstat (limited to 'src/resources/map/maplayer.cpp')
-rw-r--r-- | src/resources/map/maplayer.cpp | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/src/resources/map/maplayer.cpp b/src/resources/map/maplayer.cpp index e5036676d..1bcd65681 100644 --- a/src/resources/map/maplayer.cpp +++ b/src/resources/map/maplayer.cpp @@ -582,54 +582,3 @@ int MapLayer::getTileDrawWidth(const Image *img, BLOCK_END("MapLayer::getTileDrawWidth") return c; } - -ObjectsLayer::ObjectsLayer(const unsigned width, const unsigned height) : - mTiles(new MapObjectList*[width * height]), - mWidth(width), - mHeight(height) -{ - std::fill_n(mTiles, width * height, static_cast<MapObjectList*>(nullptr)); -} - -ObjectsLayer::~ObjectsLayer() -{ - const unsigned size = mWidth * mHeight; - for (unsigned f = 0; f < size; f ++) - delete mTiles[f]; - - delete [] mTiles; - mTiles = nullptr; -} - -void ObjectsLayer::addObject(const std::string &name, const int type, - const unsigned x, const unsigned y, - unsigned dx, unsigned dy) -{ - if (!mTiles) - return; - - if (x + dx > mWidth) - dx = mWidth - x; - if (y + dy > mHeight) - dy = mHeight - y; - - for (unsigned y1 = y; y1 < y + dy; y1 ++) - { - const unsigned idx1 = x + y1 * mWidth; - const unsigned idx2 = idx1 + dx; - - for (unsigned i = idx1; i < idx2; i ++) - { - if (!mTiles[i]) - mTiles[i] = new MapObjectList(); - mTiles[i]->objects.push_back(MapObject(type, name)); - } - } -} - -MapObjectList *ObjectsLayer::getAt(const unsigned x, const unsigned y) const -{ - if (x >= mWidth || y >= mHeight) - return nullptr; - return mTiles[x + y * mWidth]; -} |