From 71a3c2fcd13051dbaed45c69107a6e6b4a94cfe8 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Tue, 13 Mar 2012 01:32:21 +0200 Subject: Allow directly supplying world as a parameter, including world.mt --- src/main.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 4ce73f633..e01e59a33 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -806,7 +806,7 @@ int main(int argc, char *argv[]) bool ret = cmd_args.parseCommandLine(argc, argv, allowed_options); - if(ret == false || cmd_args.getFlag("help")) + if(ret == false || cmd_args.getFlag("help") || cmd_args.exists("nonopt1")) { dstream<<"Allowed options:"<::Iterator @@ -979,9 +979,23 @@ int main(int argc, char *argv[]) commanded_world = cmd_args.get("world"); else if(cmd_args.exists("map-dir")) commanded_world = cmd_args.get("map-dir"); + else if(cmd_args.exists("nonopt0")) + commanded_world = cmd_args.get("nonopt0"); else if(g_settings->exists("map-dir")) commanded_world = g_settings->get("map-dir"); + // Strip world.mt from commanded_world + { + std::string worldmt = "world.mt"; + if(commanded_world.size() > worldmt.size() && + commanded_world.substr(commanded_world.size()-worldmt.size()) + == worldmt){ + dstream<<"Supplied world.mt file - stripping it off."<get("address"); - if(cmd_args.exists("address")) + if(commanded_world != "") + address = ""; + else if(cmd_args.exists("address")) address = cmd_args.get("address"); else if(cmd_args.exists("world")) address = ""; @@ -1294,9 +1310,10 @@ int main(int argc, char *argv[]) std::string gameid = getWorldGameId(commanded_world, true); if(gameid == "") gameid = g_settings->get("default_game"); - WorldSpec spec(commanded_world, "--world", gameid); + WorldSpec spec(commanded_world, "[--world parameter]", + gameid); worldspecs.push_back(spec); - menudata.selected_world = menudata.worlds.size()-1; + menudata.selected_world = worldspecs.size()-1; } // Copy worldspecs to menu menudata.worlds = worldspecs; -- cgit v1.2.3