From 53c43536d5be86c9fb880ff5a7799f620acb40e6 Mon Sep 17 00:00:00 2001 From: def Date: Sun, 16 Aug 2020 23:21:00 +0200 Subject: [PATCH] map_convert_07: Support drag'n'drop --- src/tools/map_convert_07.cpp | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/tools/map_convert_07.cpp b/src/tools/map_convert_07.cpp index fb3235d15..7529c18ec 100644 --- a/src/tools/map_convert_07.cpp +++ b/src/tools/map_convert_07.cpp @@ -148,21 +148,40 @@ int main(int argc, const char **argv) IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_BASIC, argc, argv); - if(argc != 3) + if(argc < 2 || argc > 3) { dbg_msg("map_convert_07", "Invalid arguments"); - dbg_msg("map_convert_07", "Usage: map_convert_07 "); + dbg_msg("map_convert_07", "Usage: map_convert_07 []"); return -1; } - if (!pStorage) + if(!pStorage) { dbg_msg("map_convert_07", "error loading storage"); return -1; } const char *pSourceFileName = argv[1]; - const char *pDestFileName = argv[2]; + + const char *pDestFileName; + char aDestFileName[MAX_PATH_LENGTH]; + + if(argc == 3) + { + pDestFileName = argv[2]; + } + else + { + char aBuf[MAX_PATH_LENGTH]; + IStorage::StripPathAndExtension(pSourceFileName, aBuf, sizeof(aBuf)); + str_format(aDestFileName, sizeof(aDestFileName), "data/maps7/%s.map", aBuf); + pDestFileName = aDestFileName; + if(fs_makedir("data/maps7") != 0) + { + dbg_msg("map_convert_07", "failed to create maps7 directory"); + return -1; + } + } int ID = 0; int Type = 0;