nuclear@18: #include nuclear@18: #include nuclear@18: #include nuclear@18: #include "cfg.h" nuclear@18: nuclear@18: Config cfg; nuclear@18: nuclear@18: Config::Config() nuclear@18: { nuclear@60: width = 1280; nuclear@60: height = 800; nuclear@18: stereo = false; nuclear@47: sound = true; nuclear@18: level_file = "0.level"; nuclear@18: tileset_file = "default.tileset"; nuclear@60: nuclear@60: rend = Renderer::any; nuclear@18: } nuclear@18: nuclear@18: bool Config::parse_args(int argc, char **argv) nuclear@18: { nuclear@18: for(int i=1; ix\n"); nuclear@25: return false; nuclear@25: } nuclear@25: } else if(strcmp(argv[i], "-stereo") == 0) { nuclear@25: stereo = true; nuclear@47: } else if(strcmp(argv[i], "-nosound") == 0) { nuclear@47: sound = false; nuclear@25: } else if(strcmp(argv[i], "-level") == 0) { nuclear@25: level_file = argv[++i]; nuclear@25: } else if(strcmp(argv[i], "-tileset") == 0) { nuclear@25: tileset_file = argv[++i]; nuclear@60: } else if(strcmp(argv[i], "-renderer") == 0) { nuclear@60: if(strcmp(argv[++i], "mrt") == 0) { nuclear@60: rend = Renderer::mrt; nuclear@60: } else if(strcmp(argv[i], "mp") == 0) { nuclear@60: rend = Renderer::multipass; nuclear@60: } else if(strcmp(argv[i], "fwd") == 0) { nuclear@60: rend = Renderer::fwd; nuclear@60: } else { nuclear@60: fprintf(stderr, "invalid renderer specified: %s\n", argv[i]); nuclear@60: return false; nuclear@60: } nuclear@25: } else if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "-help") == 0) { nuclear@25: printf("Usage: %s [options]\n", argv[0]); nuclear@60: printf(" -s WxH window size (resolution)\n"); nuclear@60: printf(" -level specify which level file to load\n"); nuclear@60: printf(" -tileset specify which tileset to use\n"); nuclear@60: printf(" -renderer specify which renderer to use\n"); nuclear@60: printf(" -stereo enable stereoscopic rendering\n"); nuclear@60: printf(" -nosound disable sound output\n"); nuclear@60: printf(" -h/-help print usage information and exit\n"); nuclear@60: printf("\n"); nuclear@60: printf("Renderers:\n"); nuclear@60: printf(" mrt - deferred renderer using multiple draw buffers\n"); nuclear@60: printf(" mp - multipass deferred renderer for each g-buffer\n"); nuclear@60: printf(" fwd - fallback forward renderer with simplistic lighting\n"); nuclear@25: exit(0); nuclear@25: nuclear@25: } else { nuclear@25: fprintf(stderr, "unrecognized option: %s\n", argv[i]); nuclear@18: return false; nuclear@18: } nuclear@18: } else { nuclear@25: level_file = argv[i]; nuclear@18: } nuclear@18: } nuclear@18: return true; nuclear@18: }