From 1e9da5fc1ffba608231cc8d04d6753f652a2219b Mon Sep 17 00:00:00 2001 From: Chris Beck Date: Tue, 23 Dec 2014 14:23:39 -0500 Subject: [PATCH] play_controller: add accessor for current gamestate use it in menu_events --- src/menu_events.cpp | 15 +++++++-------- src/menu_events.hpp | 5 ++--- src/play_controller.cpp | 2 +- src/play_controller.hpp | 4 ++++ 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/menu_events.cpp b/src/menu_events.cpp index 599d28d8c730..3e9a4d8a52ef 100644 --- a/src/menu_events.cpp +++ b/src/menu_events.cpp @@ -86,12 +86,11 @@ static lg::log_domain log_engine("engine"); namespace events{ -menu_handler::menu_handler(game_display* gui, play_controller & pc, game_state & gs, +menu_handler::menu_handler(game_display* gui, play_controller & pc, const config& level, const config& game_config) : gui_(gui), pc_(pc), - game_state_(gs), level_(level), game_config_(game_config), textbox_info_(), @@ -104,12 +103,12 @@ menu_handler::~menu_handler() { } -game_state & menu_handler::gamestate() { return game_state_; } -game_data & menu_handler::gamedata() { return game_state_.gamedata_; } -game_board & menu_handler::board() const { return game_state_.board_; } -unit_map& menu_handler::units() { return game_state_.board_.units_; } -std::vector& menu_handler::teams() const { return game_state_.board_.teams_; } -const gamemap& menu_handler::map() { return game_state_.board_.map(); } +game_state & menu_handler::gamestate() const { return pc_.gamestate(); } +game_data & menu_handler::gamedata() { return gamestate().gamedata_; } +game_board & menu_handler::board() const { return gamestate().board_; } +unit_map& menu_handler::units() { return gamestate().board_.units_; } +std::vector& menu_handler::teams() const { return gamestate().board_.teams_; } +const gamemap& menu_handler::map() { return gamestate().board_.map(); } gui::floating_textbox& menu_handler::get_textbox(){ return textbox_info_; diff --git a/src/menu_events.hpp b/src/menu_events.hpp index 7e4bad40001e..0608af6020b7 100644 --- a/src/menu_events.hpp +++ b/src/menu_events.hpp @@ -42,7 +42,7 @@ namespace events { class menu_handler : private chat_handler { public: - menu_handler(game_display* gui, play_controller & pc, game_state & gs, + menu_handler(game_display* gui, play_controller & pc, const config& level, const config& game_config); virtual ~menu_handler(); @@ -122,9 +122,8 @@ class menu_handler : private chat_handler { game_display* gui_; play_controller & pc_; - game_state & game_state_; - game_state & gamestate(); + game_state & gamestate() const; game_data & gamedata(); game_board & board() const; unit_map& units(); diff --git a/src/play_controller.cpp b/src/play_controller.cpp index 346fde526da2..2081ca5a2a06 100644 --- a/src/play_controller.cpp +++ b/src/play_controller.cpp @@ -121,7 +121,7 @@ play_controller::play_controller(const config& level, saved_game& state_of_game, labels_manager_(), help_manager_(&game_config), mouse_handler_(NULL, gamestate_.board_), - menu_handler_(NULL, *this, gamestate_, level, game_config), + menu_handler_(NULL, *this, level, game_config), hotkey_handler_(new hotkey_handler(*this, saved_game_, gamestate_)), soundsources_manager_(), persist_(), diff --git a/src/play_controller.hpp b/src/play_controller.hpp index dec075aa4ece..6af2533c6b42 100644 --- a/src/play_controller.hpp +++ b/src/play_controller.hpp @@ -145,6 +145,10 @@ class play_controller : public controller_base, public events::observer, public return gamestate_.board_.is_observer(); } + game_state & gamestate() { + return gamestate_; + } + /** * Checks to see if a side has won, and throws an end_level_exception. * Will also remove control of villages from sides with dead leaders.