diff options
author | Philipp Sehmisch <tmw@crushnet.org> | 2007-12-12 15:45:25 +0000 |
---|---|---|
committer | Philipp Sehmisch <tmw@crushnet.org> | 2007-12-12 15:45:25 +0000 |
commit | 040380b706249fa55fca2778251382f0d4450125 (patch) | |
tree | 160bc37a69077501e01ea261ced18625bad3eed5 /tools/tmxcopy/main.cpp | |
parent | a98d02eaf287932e3e83a980bac41ecc01f254f6 (diff) | |
download | mana-client-040380b706249fa55fca2778251382f0d4450125.tar.gz mana-client-040380b706249fa55fca2778251382f0d4450125.tar.bz2 mana-client-040380b706249fa55fca2778251382f0d4450125.tar.xz mana-client-040380b706249fa55fca2778251382f0d4450125.zip |
Added my tmxcopy tool for copying parts of maps to other maps.
Diffstat (limited to 'tools/tmxcopy/main.cpp')
-rw-r--r-- | tools/tmxcopy/main.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tools/tmxcopy/main.cpp b/tools/tmxcopy/main.cpp new file mode 100644 index 00000000..3d460961 --- /dev/null +++ b/tools/tmxcopy/main.cpp @@ -0,0 +1,66 @@ +/* + * TMXCopy + * Copyright 2007 Philipp Sehmisch + * + * + * TMXCopy 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. + * + * TMXCopy 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 TMXCopy; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <iostream> +#include <string> + +#include "map.hpp" + +int main(int argc, char * argv[] ) +{ + // parsing command line options + if (argc < 9 || argc > 10) + { + std::cerr<<"Usage: srcFile x y height width tgtFile x y [outfile]"; + return -1; + } + + std::string srcFile = argv[1]; + int srcX= atoi(argv[2]); + int srcY= atoi(argv[3]); + int height= atoi(argv[4]); + int width=atoi(argv[5]); + std::string tgtFile = argv[6]; + int destX=atoi(argv[7]); + int destY=atoi(argv[8]); + std::string outFile = tgtFile; + if (argc == 10) outFile = argv[9]; + + // plausibility check of command line options + if (height < 1 || width < 1 || srcX < 1 || srcY < 1 || destX < 1 || destY < 1) + { + std::cerr<<"Illegal coordinates!"<<std::endl; + std::cerr<<"Usage: sourceFile x y height width targetFile x y [outputFile]"<<std::endl; + return -1; + } + + try + { + Map* srcMap = new Map(srcFile); + Map* tgtMap = new Map(tgtFile); + tgtMap->overwrite(srcMap, srcX, srcY, height, width, destX, destY); + tgtMap->save(outFile); + } + catch (int) + { + return -1; + } + +} |