Use a function to update "End Turn" button's and menu item's state.

This commit is contained in:
Andrius Silinskas 2013-09-12 15:18:15 +01:00
parent f57b29fc13
commit e3ceed9ee2
3 changed files with 15 additions and 12 deletions

View file

@ -163,8 +163,9 @@ void playmp_controller::play_human_turn(){
show_turn_dialog();
execute_gotos();
if ((!linger_) || (is_host_))
gui_->enable_menu("endturn", true);
if (!linger_ || is_host_) {
end_turn_enable(true);
}
while(!end_turn_) {
try {
@ -292,7 +293,6 @@ void playmp_controller::linger()
reset_countdown();
set_end_scenario_button();
set_button_state(*gui_);
if ( get_end_level_data_const().transient.reveal_map ) {
// Change the view of all players and observers
@ -420,7 +420,7 @@ void playmp_controller::finish_side_turn(){
void playmp_controller::play_network_turn(){
LOG_NG << "is networked...\n";
gui_->enable_menu("endturn", false);
end_turn_enable(false);
turn_info turn_data(player_number_, replay_sender_);
turn_data.host_transfer().attach_handler(this);
@ -512,8 +512,7 @@ void playmp_controller::handle_generic_event(const std::string& name){
else if (name == "host_transfer"){
is_host_ = true;
if (linger_){
gui::button* btn_end = gui_->find_action_button("button-endturn");
btn_end->enable(true);
end_turn_enable(true);
gui_->invalidate_theme();
}
}

View file

@ -697,8 +697,6 @@ void playsingle_controller::before_human_turn(bool save)
browse_ = false;
linger_ = false;
set_button_state(*gui_);
ai::manager::raise_turn_started();
if(save && level_result_ == NONE) {
@ -729,7 +727,7 @@ void playsingle_controller::play_human_turn() {
show_turn_dialog();
execute_gotos();
gui_->enable_menu("endturn", true);
end_turn_enable(true);
while(!end_turn_) {
play_slice();
check_end_level();
@ -778,8 +776,7 @@ void playsingle_controller::linger()
try {
// Same logic as single-player human turn, but
// *not* the same as multiplayer human turn.
gui_->enable_menu("endturn", true);
set_button_state(*gui_);
end_turn_enable(true);
end_turn_ = false;
while(!end_turn_) {
// Reset the team number to make sure we're the right team.
@ -818,6 +815,12 @@ void playsingle_controller::end_turn_record_unlock()
turn_over_ = false;
}
void playsingle_controller::end_turn_enable(bool enable)
{
gui_->enable_menu("endturn", enable);
set_button_state(*gui_);
}
hotkey::ACTION_STATE playsingle_controller::get_action_state(hotkey::HOTKEY_COMMAND command, int index) const
{
switch(command) {
@ -843,7 +846,7 @@ void playsingle_controller::after_human_turn()
void playsingle_controller::play_ai_turn(){
LOG_NG << "is ai...\n";
gui_->enable_menu("endturn", false);
end_turn_enable(false);
browse_ = true;
gui_->recalculate_minimap();

View file

@ -79,6 +79,7 @@ protected:
virtual void after_human_turn();
void end_turn_record();
void end_turn_record_unlock();
void end_turn_enable(bool enable);
virtual hotkey::ACTION_STATE get_action_state(hotkey::HOTKEY_COMMAND command, int index) const;
void play_ai_turn();
virtual void play_network_turn();