/** ******************************************************************************* @file /common/CommandLine.cpp @brief spousti kralovstvi se spec parametry @author Vajicek @version 0.1 ******************************************************************************/ // #include "common/CommandLine.h" #include "common/compatibility.h" #include "common/exc.h" #include TCommandLine::TCommandLine(int argc, char** argv){ iPrintHelp = 0; iRunMap = -1; iNoSound = 0; iNetworkHost = 0; iNetworkClient = 0; iUseProfileName = 0; iDevelopersConsole = 0; iListMaps = 0; iMapType = -1; strcpy(szConnectTo, ""); iTimeOut = DEFAULT_TIMEOUT; int i = 1; while( i < argc){ //nacti mapu cislo if(!strcmp(argv[i],"-m")){ if(i >= argc-1) THROW(E_8K_CL, "TCommandLine::TCommandLine(): parametr -m missing!"); if(iMapType == 1) THROW(E_8K_CL, "TCommandLine::TCommandLine(): can not use -m and -l simultaneously!"); iMapType = 0; iRunMap = atoi(argv[i+1]); i+=2; } else if(!strcmp(argv[i],"-l")){ if(i >= argc-1) THROW(E_8K_CL, "TCommandLine::TCommandLine(): parametr -l missing!"); if(iMapType == 0) THROW(E_8K_CL, "TCommandLine::TCommandLine(): can not use -l and -m simultaneously!"); iMapType = 1; iRunMap = atoi(argv[i+1]); i+=2; } else if(!strcmp(argv[i],"-p")){ if(i >= argc-1) THROW(E_8K_CL, "TCommandLine::TCommandLine(): parametr -p missing!"); iUseProfileName = 1; strncpy(szProfileName, argv[i+1], MAX_STRLEN); i+=2; } else if(!strcmp(argv[i],"-h")){ iPrintHelp=1; i+=1; } else if(!strcmp(argv[i],"-s")){ iNetworkHost = 1; i+=1; } else if(!strcmp(argv[i],"-c")){ iNetworkClient = 1; if(i >= argc-1) THROW(E_8K_CL, "TCommandLine::TCommandLine(): parametr -c missing!"); strncpy(szConnectTo, argv[i+1], CONNECTTO_SIZE); i+=2; } else if(!strcmp(argv[i],"-t")){ if(i >= argc-1) THROW(E_8K_CL, "TCommandLine::TCommandLine(): parametr -t missing!"); iTimeOut = atoi(argv[i+1]); i+=2; } else if(!strcmp(argv[i],"-x")){ iDevelopersConsole=1; i+=1; } else if(!strcmp(argv[i],"-e")){ iListMaps=1; i+=1; } else THROW(E_8K_CL, "TCommandLine::TCommandLine(): unknown parameter"); }//while } TCommandLine* TCommandLine::cl = NULL; void TCommandLine::parseCommandLine(int argc, char** argv){ TCommandLine::cl = new TCommandLine(argc, argv); } void TCommandLine::freeCommandLine(){ delete TCommandLine::cl; } /*****************************************************************************/