int main(int argc, char *argv[]) { // Standard options opt::options_description action_options("Action Options"); action_options.add_options() ("help", "display help") ("lj", "display list of active jobs") ("jb", opt::value<std::string>(), "PROJECT") ("lt", "display list of tasks") ("ln", "display list of nodes") ("kill", "kill specified job, layer, or tasks") ; // Query Options opt::options_description query_options("Query Options"); query_options.add_options() ("job,j", opt::value<std::string>(), "JOB NAME") ("layer,l", opt::value<std::string>(), "LAYER NAME") ("task,t", opt::value<std::string>(), "TASK NAME") ; // Standard options opt::options_description all_options; all_options.add(action_options).add(query_options); try { opt::variables_map vm; opt::store( opt::command_line_parser(argc, argv) .options(all_options) .style (opt::command_line_style::default_style | opt::command_line_style::allow_long_disguise) .run(), vm); opt::notify(vm); if (vm.count("help")) { std::cout << all_options << "\n"; return 1; } if (vm.count("lj")) { Spade::display_job_list(); } else if (vm.count("lt")) { if (vm.count("job")) { Spade::display_task_list(vm["job"].as<std::string>()); } else { std::cerr << "ERROR: You must specify at least a job when listing tasks." << std::endl; } } else if (vm.count("jb")) { Spade::display_job_board(vm["jb"].as<std::string>()); } else if (vm.count("ln")) { Spade::display_node_list(); } else if (vm.count("kill")) { if (vm.count("job") && !vm.count("layer") && !vm.count("task")) { Spade::killJob(vm["job"].as<std::string>()); } } } catch(const opt::error& e) { std::cerr << "ERROR: " << e.what() << std::endl << std::endl; std::cerr << all_options << std::endl; return COMMAND_LINE_ERROR; } catch(const std::exception& ex) { std::cerr << "ERROR: " << ex.what() << std::endl << std::endl; std::cerr << all_options << std::endl; return COMMAND_LINE_ERROR; } return COMMAND_LINE_SUCCESS; }
void click_button(GUI *B) { if(B->disabled) return; switch(B->action) { case ACTION_NEWGAME: { action_newgame(); break; } case ACTION_EXIT: { action_exit(); break; } case ACTION_RESUME: { action_resume(); break; } case ACTION_OPTIONS: { action_options(); break; } case ACTION_RETURNMENU: { action_returnmenu(); break; } case ACTION_CREDITS: { action_credits(); break; } case ACTION_SHIPSELECT_STORY: { game_mode = MODE_STORY; action_shipselect(); break; } case ACTION_SHIPSELECT_SURVIVAL: { game_mode = MODE_SURVIVAL; action_shipselect(); break; } case ACTION_RESTART: { action_restartlevel(); break; } case OPTION_DIFFICULTY: { if(!strcmp(B->text, ">")) { config[CFG_DIFFICULTY]++; if(config[CFG_DIFFICULTY] > DIFF_IMPOSSIBLE) config[CFG_DIFFICULTY] = DIFF_EASY; } else { config[CFG_DIFFICULTY]--; if(config[CFG_DIFFICULTY] < DIFF_EASY) config[CFG_DIFFICULTY] = DIFF_IMPOSSIBLE; } break; } case OPTION_CONTROLSTYLE: { config[CFG_ABSOLUTE_CONTROL] = !config[CFG_ABSOLUTE_CONTROL]; break; } case OPTION_MOUSEWHEEL: { config[CFG_MOUSE_WHEEL] = !config[CFG_MOUSE_WHEEL]; break; } case OPTION_SOUNDVOLUME: { if(!strcmp(B->text, ">")) { if(config[CFG_SFX_VOLUME] < 250) config[CFG_SFX_VOLUME] += 25; } else { if(config[CFG_SFX_VOLUME] > 0) config[CFG_SFX_VOLUME] -= 25; } break; } case OPTION_MUSICVOLUME: { if(!strcmp(B->text, ">")) { if(config[CFG_MUSIC_VOLUME] < 250) config[CFG_MUSIC_VOLUME] += 25; } else { if(config[CFG_MUSIC_VOLUME] > 0) config[CFG_MUSIC_VOLUME] -= 25; } FSOUND_SetSFXMasterVolume( config[CFG_MUSIC_VOLUME]); break; } case OPTION_FULLSCREEN: { config[CFG_FULLSCREEN] = !config[CFG_FULLSCREEN]; break; } case OPTION_BLENDING: { config[CFG_PARTICLE_BLENDING] = !config[CFG_PARTICLE_BLENDING]; break; } case OPTION_MEMBRANES: { config[CFG_SHOW_MEMBRANES] = !config[CFG_SHOW_MEMBRANES]; break; } case OPTION_LIGHTFLASHES: { config[CFG_LIGHT_FLASHES] = !config[CFG_LIGHT_FLASHES]; break; } case OPTION_SHIPSELECT: { if(!strcmp(B->text, ">")) { player->playerdata.shiptype++; if(player->playerdata.shiptype > 5) player->playerdata.shiptype = 1; set_ship_type(player->playerdata.shiptype); } else { player->playerdata.shiptype--; if(player->playerdata.shiptype < 1) player->playerdata.shiptype = 5; set_ship_type(player->playerdata.shiptype); } break; } default: return; } play_sample(select_sound, config[CFG_SFX_VOLUME], 128, 1000, 0); }