/****************************************************************************** ** ** map2pcx.cpp ** ** Tue Jun 12 20:17:34 2001 ** Linux 2.4.4 (#1 SMP Sam Apr 28 13:21:30 CEST 2001) i686 ** martin@linux. (Martin Bickel) ** ** Definition of command line parser class ** ** Automatically created by genparse v0.5.2 ** ** See http://genparse.sourceforge.net/ for details and updates ** ******************************************************************************/ #include #include #include "map2pcx.h" /*---------------------------------------------------------------------------- ** ** Cmdline::Cmdline() ** ** Constructor method. ** **--------------------------------------------------------------------------*/ Cmdline::Cmdline(int argc, char *argv[]) throw (string) { extern char *optarg; extern int optind; int option_index = 0; int c; static struct option long_options[] = { {"configfile", 1, 0, 'c'}, {"verbose", 1, 0, 'r'}, {"outdir", 1, 0, 'd'}, {"help", 0, 0, 'h'}, {"version", 0, 0, 'v'}, {0, 0, 0, 0} }; _executable += argv[0]; /* default values */ _r = 0; _d = "data/"; _h = false; _v = false; while ((c = getopt_long(argc, argv, "c:r:d:hv", long_options, &option_index)) != EOF) { switch(c) { case 'c': _c = optarg; break; case 'r': _r = atoi(optarg); if (_r < 0) { string s; s += "parameter range error: r must be >= 0"; throw(s); } if (_r > 10) { string s; s += "parameter range error: r must be <= 10"; throw(s); } break; case 'd': _d = optarg; break; case 'h': _h = true; this->usage(); break; case 'v': _v = true; break; default: this->usage(); } } /* while */ _optind = optind; } /*---------------------------------------------------------------------------- ** ** Cmdline::usage() ** ** Usage function. ** **--------------------------------------------------------------------------*/ void Cmdline::usage() { cout << "generates PCX images of ASC and Battle Isle maps " << endl; cout << "usage: " << _executable << " [ -crdhv ] FILE [...]" << endl; cout << " [ -c ] "; cout << "[ --configfile ] "; cout << "("; cout << "type="; cout << "STRING"; cout << ")\n"; cout << " Use given configuration file\n"; cout << " [ -r ] "; cout << "[ --verbose ] "; cout << "("; cout << "type="; cout << "INTEGER,"; cout << " range=0...10,"; cout << " default=0"; cout << ")\n"; cout << " Set verbosity level to x (0..10)\n"; cout << " [ -d ] "; cout << "[ --outdir ] "; cout << "("; cout << "type="; cout << "STRING,"; cout << " default=data/"; cout << ")\n"; cout << " Place images in given directory\n"; cout << " [ -h ] "; cout << "[ --help ] "; cout << "("; cout << "type="; cout << "FLAG"; cout << ")\n"; cout << " Display help information.\n"; cout << " [ -v ] "; cout << "[ --version ] "; cout << "("; cout << "type="; cout << "FLAG"; cout << ")\n"; cout << " Output version.\n"; exit(0); }