From 15ed9d186676c56db60e3bd9a3f147b6fdca85a4 Mon Sep 17 00:00:00 2001 From: Chris Beck Date: Wed, 11 Jun 2014 17:59:13 -0400 Subject: [PATCH] refactor replay_controller in order to unfriend game_board --- src/game_board.cpp | 6 ++++++ src/game_board.hpp | 3 ++- src/replay_controller.cpp | 14 ++++++-------- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/game_board.cpp b/src/game_board.cpp index dbbbba22067a..d761bdb734ee 100644 --- a/src/game_board.cpp +++ b/src/game_board.cpp @@ -83,6 +83,12 @@ void game_board::all_survivors_to_recall() { } } +void game_board::reset_all_teams_objectives_changes() { + BOOST_FOREACH(team & t, teams_) { + t.reset_objectives_changed(); + } +} + unit_map::iterator game_board::find_visible_unit(const map_location &loc, const team& current_team, bool see_all) { diff --git a/src/game_board.hpp b/src/game_board.hpp index ef35478c6861..bf5c3f9e7695 100644 --- a/src/game_board.hpp +++ b/src/game_board.hpp @@ -57,7 +57,6 @@ class game_board : public display_context { //TODO: Remove these when we have refactored enough to make it possible. friend class play_controller; - friend class replay_controller; friend class playsingle_controller; friend class playmp_controller; friend class events::mouse_handler; @@ -111,6 +110,8 @@ class game_board : public display_context { void all_survivors_to_recall(); + void reset_all_teams_objectives_changes(); + // Manipulator from playturn void side_drop_to (int side_num, team::CONTROLLER ctrl); diff --git a/src/replay_controller.cpp b/src/replay_controller.cpp index 8ae347c857af..801c536ee5a9 100644 --- a/src/replay_controller.cpp +++ b/src/replay_controller.cpp @@ -159,9 +159,7 @@ void replay_controller::init_gui(){ gui_->scroll_to_leader(player_number_, display::WARP); update_locker lock_display((*gui_).video(),false); - BOOST_FOREACH(team & t, gameboard_.teams_) { - t.reset_objectives_changed(); - } + gameboard_.reset_all_teams_objectives_changes(); update_replay_ui(); } @@ -495,7 +493,7 @@ possible_end_play_signal replay_controller::play_turn(){ bool last_team = false; while ( (!last_team) && (!recorder.at_end()) && is_playing_ ){ - last_team = static_cast(player_number_) == gameboard_.teams_.size(); + last_team = static_cast(player_number_) == gameboard_.teams().size(); PROPOGATE_END_PLAY_SIGNAL( play_side() ); HANDLE_END_PLAY_SIGNAL( play_slice() ); } @@ -549,9 +547,9 @@ possible_end_play_signal replay_controller::play_side() { player_number_++; - if (static_cast(player_number_) > gameboard_.teams_.size()) { - //during the orginal game player_number_ would also be gameboard_.teams_.size(), - player_number_ = gameboard_.teams_.size(); + if (static_cast(player_number_) > gameboard_.teams().size()) { + //during the orginal game player_number_ would also be gameboard_.teams().size(), + player_number_ = gameboard_.teams().size(); finish_turn(); tod_manager_.next_turn(); it_is_a_new_turn_ = true; @@ -572,7 +570,7 @@ possible_end_play_signal replay_controller::play_side() { void replay_controller::update_teams(){ int next_team = player_number_; - if(static_cast(next_team) > gameboard_.teams_.size()) { + if(static_cast(next_team) > gameboard_.teams().size()) { next_team = 1; }