From c33fbc3c633fb676fbc98faa0da2a985ecd47b1c Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Wed, 25 Feb 2015 04:29:59 +0100 Subject: [PATCH] fix possible unsynced "enemies defeated" event when check_victory was called after end turn events. --- src/play_controller.cpp | 4 +++- src/playsingle_controller.cpp | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/play_controller.cpp b/src/play_controller.cpp index 94e73d258de..141ba152537 100644 --- a/src/play_controller.cpp +++ b/src/play_controller.cpp @@ -509,7 +509,8 @@ config play_controller::to_config() const return cfg; } -void play_controller::finish_side_turn(){ +void play_controller::finish_side_turn() +{ whiteboard_manager_->on_finish_side_turn(player_number_); @@ -530,6 +531,7 @@ void play_controller::finish_side_turn(){ pump().fire("side " + side_num + " turn " + turn_num + " end"); // This is where we refog, after all of a side's events are done. actions::recalculate_fog(player_number_); + check_victory(); sync.do_final_checkup(); } diff --git a/src/playsingle_controller.cpp b/src/playsingle_controller.cpp index 545eb6df8a9..917b499998a 100644 --- a/src/playsingle_controller.cpp +++ b/src/playsingle_controller.cpp @@ -547,7 +547,7 @@ possible_end_play_signal playsingle_controller::play_turn() PROPOGATE_END_PLAY_SIGNAL ( play_side() ); } - finish_side_turn(); + HANDLE_END_PLAY_SIGNAL(finish_side_turn()); if(non_interactive()) { LOG_AIT << " Player " << player_number_ << ": " << @@ -556,8 +556,6 @@ possible_end_play_signal playsingle_controller::play_turn() ai_testing::log_turn_end(player_number_); } - HANDLE_END_PLAY_SIGNAL ( check_victory() ); - //if loading a savegame, network turns might not have reset this yet loading_game_ = false; }