void playsingle_controller::after_human_turn() { team& current_team = teams_[player_number_ - 1]; // add cards if in card mode if (card_mode_) { execute_card_bh(turn(), player_number_); } do_commoner(current_team); // clear access troops gui_->refresh_access_troops(player_number_ - 1, game_display::REFRESH_CLEAR); gui_->refresh_access_heros(player_number_ - 1, game_display::REFRESH_CLEAR); // hide context-menu gui_->hide_context_menu(NULL, true); // Mark the turn as done. browse_ = true; end_turn_record(); end_turn_record_unlock(); menu_handler_.clear_undo_stack(player_number_); if (current_team.uses_fog()) { // needed because currently fog is only recalculated when a hex is /un/covered recalculate_fog(player_number_); } // Clear moves from the GUI. gui_->set_route(NULL); gui_->unhighlight_reach(); }
void playsingle_controller::after_human_turn() { team& current_team = teams_[player_number_ - 1]; // add cards if in card mode if (card_mode_) { execute_card_bh(turn(), player_number_); } if (actor_can_action(units_)) { if (unit::actor->is_city()) { do_commoner(current_team); } } if (!tent::tower_mode() && !preferences::developer()) { gui_->refresh_access_troops(player_number_ - 1, game_display::REFRESH_HIDE, reinterpret_cast<void*>(this)); } gui_->refresh_access_heros(player_number_ - 1, game_display::REFRESH_CLEAR); // hide context-menu gui_->hide_context_menu(); // Mark the turn as done. browse_ = true; menu_handler_.clear_undo_stack(player_number_); if (current_team.uses_fog()) { // needed because currently fog is only recalculated when a hex is /un/covered recalculate_fog(player_number_); } // Clear moves from the GUI. gui_->set_route(NULL); gui_->unhighlight_reach(); }
void playsingle_controller::play_ai_turn() { uint32_t start = SDL_GetTicks(); total_draw = 0; total_draws = 0; total_analyzing = 0; total_recruit = 0; total_combat = 0; total_build = 0; total_move = 0; total_diplomatism = 0; team& current_team = teams_[player_number_ - 1]; { const events::command_disabler disable_commands; if (card_mode_) { execute_card_uh(turn(), player_number_); } execute_guard_attack(player_number_); } gui_->enable_menu("play_card", false); gui_->enable_menu("undo", false); gui_->enable_menu("endturn", false); browse_ = true; gui_->recalculate_minimap(); const cursor::setter cursor_setter(cursor::WAIT); turn_info turn_data(player_number_, replay_sender_, undo_stack_); uint32_t before = SDL_GetTicks(); try { ai::manager::play_turn(player_number_); } catch (end_turn_exception&) { } uint32_t after = SDL_GetTicks(); if (!teams_[player_number_ - 1].is_human()) { recorder.end_turn(); } turn_data.sync_network(); if (!current_team.is_human()) { gui_->recalculate_minimap(); ::clear_shroud(player_number_); gui_->invalidate_unit(); gui_->invalidate_game_status(); gui_->invalidate_all(); gui_->draw(); if (card_mode_) { execute_card_bh(turn(), player_number_); } } uint32_t stop = SDL_GetTicks(); posix_print("#%i, play_ai_turn %u ms, (draw: %u(%i), analyzing: %u), [%u](%u+[%u]+%u)(recruit: %u, combat: %u, build: %u, move: %u, diplomatism: %u)\n", player_number_, stop - start, total_draw, total_draws, total_analyzing, before - start + total_recruit + total_combat + total_build + total_move + total_diplomatism + stop - after, before - start, total_recruit + total_combat + total_build + total_move + total_diplomatism, stop - after, total_recruit, total_combat, total_build, total_move, total_diplomatism); }
void playsingle_controller::play_ai_turn(turn_info* turn_data) { uint32_t start = SDL_GetTicks(); total_analyzing = 0; total_recruit = 0; total_combat = 0; total_build = 0; total_move = 0; total_diplomatism = 0; team& current_team = teams_[player_number_ - 1]; { const events::command_disabler disable_commands; if (card_mode_) { execute_card_uh(turn(), player_number_); } execute_guard_attack(player_number_); } gui_->set_theme_object_active("card", false); gui_->set_theme_object_active("undo", false); if (tent::mode == mode_tag::SIEGE) { } else { gui_->set_theme_object_active("endturn", false); } browse_ = true; gui_->recalculate_minimap(); const cursor::setter cursor_setter(cursor::WAIT); uint32_t before = SDL_GetTicks(); try { ai::manager::play_turn(); } catch (end_turn_exception&) { } uint32_t after = SDL_GetTicks(); if (turn_data) { turn_data->sync_network(); } if (unit::actor && !teams_[unit::actor->side() - 1].is_human()) { /* gui_->recalculate_minimap(); ::clear_shroud(unit::actor->side()); gui_->invalidate_unit(); gui_->invalidate_game_status(); gui_->invalidate_all(); gui_->draw(); */ if (card_mode_) { execute_card_bh(turn(), player_number_); } } // do_delay_call(true); uint32_t stop = SDL_GetTicks(); posix_print("#%i, play_ai_turn %u ms, (analyzing: %u), [%u](%u+[%u]+%u)(recruit: %u, combat: %u, build: %u, move: %u, diplomatism: %u)\n", player_number_, stop - start, total_analyzing, before - start + total_recruit + total_combat + total_build + total_move + total_diplomatism + stop - after, before - start, total_recruit + total_combat + total_build + total_move + total_diplomatism, stop - after, total_recruit, total_combat, total_build, total_move, total_diplomatism); }