summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Sehmisch <tmw@crushnet.org>2008-03-08 08:21:42 +0000
committerPhilipp Sehmisch <tmw@crushnet.org>2008-03-08 08:21:42 +0000
commit61dd0478b9c5c5c083631c28caf8199bf66bf617 (patch)
treec721d3f00655f40cae97c6d31e567808b6d3d1c5
parentd5ef604e3043fb3a6395d10cae59abf5dd6b4e32 (diff)
downloadmana-61dd0478b9c5c5c083631c28caf8199bf66bf617.tar.gz
mana-61dd0478b9c5c5c083631c28caf8199bf66bf617.tar.bz2
mana-61dd0478b9c5c5c083631c28caf8199bf66bf617.tar.xz
mana-61dd0478b9c5c5c083631c28caf8199bf66bf617.zip
Fixed some width/height mixups in TMXCopy.
-rw-r--r--ChangeLog6
-rw-r--r--tools/tmxcopy/main.cpp16
-rw-r--r--tools/tmxcopy/map.cpp17
-rw-r--r--tools/tmxcopy/zlibutils.cpp2
4 files changed, 24 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 7b6657a0..b37c8247 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-03-08 Philipp Sehmisch <tmw@crushnet.org>
+
+ * tools/tmxcopy/main.cpp, tools/tmxcopy/main.map.cpp,
+ tools/tmxcopy/plibutils.cpp
+ Fixed some width/height mixups in TMXCopy.
+
2008-03-07 Bjørn Lindeijer <bjorn@lindeijer.nl>
* data/*: Moved dynamically released data to its own module (tmwdata).
diff --git a/tools/tmxcopy/main.cpp b/tools/tmxcopy/main.cpp
index 3d460961..92a69c54 100644
--- a/tools/tmxcopy/main.cpp
+++ b/tools/tmxcopy/main.cpp
@@ -28,15 +28,15 @@ 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]";
+ std::cerr<<"Usage: srcFile x y width height 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]);
+ int width= atoi(argv[4]);
+ int height=atoi(argv[5]);
std::string tgtFile = argv[6];
int destX=atoi(argv[7]);
int destY=atoi(argv[8]);
@@ -44,7 +44,7 @@ int main(int argc, char * argv[] )
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)
+ if (height < 1 || width < 1 || srcX < 0 || srcY < 0 || destX < 0 || destY < 0)
{
std::cerr<<"Illegal coordinates!"<<std::endl;
std::cerr<<"Usage: sourceFile x y height width targetFile x y [outputFile]"<<std::endl;
@@ -55,8 +55,12 @@ int main(int argc, char * argv[] )
{
Map* srcMap = new Map(srcFile);
Map* tgtMap = new Map(tgtFile);
- tgtMap->overwrite(srcMap, srcX, srcY, height, width, destX, destY);
- tgtMap->save(outFile);
+ if (tgtMap->overwrite(srcMap, srcX, srcY, width, height, destX, destY))
+ {
+ tgtMap->save(outFile);
+ } else {
+ return -1;
+ }
}
catch (int)
{
diff --git a/tools/tmxcopy/map.cpp b/tools/tmxcopy/map.cpp
index 0674ae1a..e0212e37 100644
--- a/tools/tmxcopy/map.cpp
+++ b/tools/tmxcopy/map.cpp
@@ -188,19 +188,19 @@ bool Map::overwrite( Map* srcMap,
//plausibility check of coordinates
bool checkPassed = true;
if (srcX + srcWidth > srcMap->getWidth()) {
- std::cerr<<"Error: Area exceeds right map border of source map!";
+ std::cerr<<"Error: Area exceeds right map border of source map!"<<std::endl;
checkPassed = false;
}
if (srcY + srcHeight > srcMap->getHeight()) {
- std::cerr<<"Error: Area exceeds lower map border of source map!";
+ std::cerr<<"Error: Area exceeds lower map border of source map!"<<std::endl;
checkPassed = false;
}
if (destX + srcWidth > mWidth) {
- std::cerr<<"Error: Area exceeds right map border of target map!";
+ std::cerr<<"Error: Area exceeds right map border of target map!"<<std::endl;
checkPassed = false;
}
if (destY + srcHeight > mHeight) {
- std::cerr<<"Error: Area exceeds lower map border of target map!";
+ std::cerr<<"Error: Area exceeds lower map border of target map!"<<std::endl;
checkPassed = false;
}
if (!checkPassed) return false;
@@ -235,10 +235,10 @@ bool Map::overwrite( Map* srcMap,
Layer* srcLayer = srcMap->getLayer(i);
Layer* destLayer = mLayers.at(i);
- for (int y=0; y<srcWidth; y++)
+ for (int y=0; y<srcHeight; y++)
{
- for (int x=0; x<srcHeight; x++)
+ for (int x=0; x<srcWidth; x++)
{
int srcIndex = srcMap->getWidth() * (y + srcY) + (x + srcX);
int tgtIndex = mWidth * (y + destY) + (x + destX);
@@ -319,8 +319,7 @@ int Map::save(std::string filename)
}
- // GZIP layer information
- // Doesn't work yet.
+ //GZIP layer information
/*
unsigned char* gzipData = (unsigned char*)malloc((mWidth * mHeight * 4) + 128);
unsigned int gzipLen;
@@ -365,7 +364,7 @@ int Map::save(std::string filename)
}
else
{
- std::cout<<"File saved successfully to"<<filename<<std::endl;
+ std::cout<<"File saved successfully to "<<filename<<std::endl;
return true;
}
}
diff --git a/tools/tmxcopy/zlibutils.cpp b/tools/tmxcopy/zlibutils.cpp
index 30c762b2..9145f459 100644
--- a/tools/tmxcopy/zlibutils.cpp
+++ b/tools/tmxcopy/zlibutils.cpp
@@ -109,8 +109,6 @@ inflateMemory(unsigned char *in, unsigned int inLength,
}
/*
- * This function doesn't work like it should. The output is not decompressable.
- */
int
compressMemory(unsigned char *in, unsigned int inLength,
unsigned char *&out, unsigned int &outLength)