const ts::cup::Stage_data& ts::server::Stage_assembler::Impl::initialize_stage_data() { stage_data_ = {}; stage_data_.track = cup_controller_->current_track(); stage_data_.script_resources = cup_controller_->loaded_resources(); car_id_ = 0; for (const auto& stage_player : cup_controller_->stage_players()) { const auto& player = stage_player.player; const auto& car = stage_player.car; if (player) { // This can proceed even if there is no car available, because it might be set later. // And if it's not set, we have to start without this player. resources::Player_definition player_def; player_def.name = player->nickname; player_def.id = player->id; player_def.color = player->color; add_car(player_def, car, player, stage_player.start_pos); } } return stage_data_; }
/************************************************* Function: int check_putin() Description: 检测用户输入的指令,并执行该功能函数 Calls: int add_car() int get_car() int display_park() void menu() Called By: void menu() Input: NO Return: NO *************************************************/ int check_putin(int fd) { char check[MAX]; setbuf(stdin,NULL); //清空输入缓冲 printf("\t\t\033[47;31mplease input conmand:\033[0m "); gets(check); //读入输入的命令 if(my_strcmp(check,"1") == 0) //若输入的为3 则调用add_car { add_car(fd); } else if(my_strcmp(check,"2") == 0) //若输入为2 调用get_car函数 { get_car(fd); } else if(my_strcmp(check,"3") == 0) //若输入为3 调用display_park函数 { display_park(fd); } else if(my_strcmp(check,"4") == 0) //若输入为4 程序退出 { system("clear"); printf("\n"); printf("\t\t\tTHANKS FOR USEING!\n"); getchar(); system("clear"); exit(1); } /*若错误输入 则继续调用menu函数 提示错误并重新输入*/ else { printf("\t\t\033[47;31m输入错误,请重新输入!\033[0m"); scanf("%*[^\n]"); system("clear"); menu(fd); } }