summaryrefslogtreecommitdiff
path: root/tools/tmxcopy/map.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tmxcopy/map.hpp')
-rw-r--r--tools/tmxcopy/map.hpp183
1 files changed, 0 insertions, 183 deletions
diff --git a/tools/tmxcopy/map.hpp b/tools/tmxcopy/map.hpp
deleted file mode 100644
index ff878811a..000000000
--- a/tools/tmxcopy/map.hpp
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * TMXCopy
- * Copyright (C) 2007 Philipp Sehmisch
- * Copyright (C) 2009 Steve Cotton
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <string>
-#include <vector>
-#include <set>
-#include <map>
-#include <libxml/parser.h>
-
-struct ConfigurationOptions
-{
- /* When copying map layers, how to match source layer to
- * destination layer.
- *
- * True: Pair the first layer to the first layer, the second
- * to the second, etc.
- *
- * False: Pair up layers with matching names.
- */
- bool copyLayersByOrdinal;
-
- /* Create extra layers in the target as necessary. */
- bool createMissingLayers;
-};
-
-struct Tileset
-{
- std::string imagefile;
- int firstgid;
- std::string name;
- int tilewidth;
- int tileheight;
-
- bool operator== (Tileset const& a)
- {
- return (imagefile == a.imagefile &&
- tilewidth == a.tilewidth &&
- tileheight == a.tileheight
- );
- }
-
- Tileset()
- {
- }
-
- Tileset(const Tileset& src) :
- imagefile(src.imagefile), firstgid(src.firstgid),
- name(src.name),
- tilewidth(src.tilewidth), tileheight(src.tileheight)
- {
- }
-
-};
-
-/**
- * A tile in a layer of a map.
- *
- * With the exception of the emptyTile and empty() function,
- * interpreting what this tile represents depends on the map it
- * belongs to (specifically the ordering of that map's tilesets).
- */
-struct Tile
-{
- int tileset; // number of tileset
- size_t index; // index in said tileset
-
- bool empty()
- {
- return (tileset == -1);
- }
-
- /* This is to allow std::map<Tile,Tile> */
- bool operator< (const Tile& b) const
- {
- return ((tileset < b.tileset) ||
- ((tileset == b.tileset) && (index < b.index)));
- }
-
- bool operator!= (const Tile& b) const
- {
- return ((tileset != b.tileset) || (index != b.index));
- }
-};
-
-typedef std::vector<Tile> LayerTiles;
-
-/* This represents an empty tile in the layer.
- * Note that {0,0} would be the first tile in the first tileset.
- */
-const Tile emptyTile = {-1, 0};
-
-class Layer
-{
- public:
- /* name - the name of the layer, as shown in Tiled
- * tileCount - total number of tiles (width*height)
- */
- Layer(std::string name, LayerTiles::size_type tileCount)
- : mTiles(tileCount, emptyTile),
- mName (name)
- {
- }
-
- std::string getName() { return mName; }
- Tile& at(LayerTiles::size_type c) { return mTiles.at(c); }
- Tile& getTile(int x, int y, int mapWidth) { return mTiles.at(x + y*mapWidth); }
-
- private:
- LayerTiles mTiles;
- std::string mName;
-};
-
-class Map
-{
- public:
- Map(std::string filename);
- ~Map();
-
- /**
- * Copies an area from srcMap, replacing its current contents.
- */
- bool overwrite(Map* srcMap,
- int srcX, int srcY, int srcWidth, int srcHeight,
- int destX, int destY,
- const ConfigurationOptions& config);
-
- /**
- * Fills an area of this map with random parts of the template.
- * Currently, each layer of the template is treated as an object that
- * should be copied in its entirity.
- */
- bool randomFill(Map* templateMap, const std::string& destLayerName,
- int destX, int destY, int destWidth, int destHeight,
- const ConfigurationOptions& config);
-
- /**
- * Translates a layer - using the template, generates collision from visible layers (for example).
- * TODO - avoid confusion with the geometry term "translate"
- */
- bool translateAllLayers(Map* templateMap, const std::string& destLayerName,
- const ConfigurationOptions& config);
-
- int save(std::string filename);
-
- size_t getNumberOfLayers() { return mLayers.size(); }
-
- Layer* getLayer(size_t num) { return mLayers.at(num); }
- Layer* getLayer(std::string name);
-
- std::vector<Tileset*>* getTilesets() { return &mTilesets; }
-
- int getWidth() { return mWidth; }
- int getHeight() { return mHeight; }
-
- private:
- std::map<int, int> addAndTranslateTilesets(const Map* srcMap);
-
- std::vector<Layer*> mLayers;
-
- int mWidth;
- int mHeight;
- int mMaxGid;
-
- std::vector<Tileset*> mTilesets;
-
- xmlDocPtr mXmlDoc;
-};