refactored some settings of the WML variable turn_number...

...to happen in tod manager where the C++ equivalent is set

call finish_turn before check_time_over instead of vice versa in
playsingle_controller::play_turn()

fixes parts 1), 3) and 4) of bug #16534
This commit is contained in:
Anonymissimus 2011-05-24 13:46:34 +00:00
parent 05a478776a
commit 0f45a15422
4 changed files with 5 additions and 7 deletions

View file

@ -912,7 +912,6 @@ WML_HANDLER_FUNCTION(modify_turns, /*event_info*/, cfg)
ERR_NG << "attempted to change current turn number to one out of range (" << new_turn_number << ") or less than current turn\n";
} else if(new_turn_number_u != current_turn_number) {
tod_man.set_turn(new_turn_number_u);
resources::state_of_game->get_variable("turn_number") = new_turn_number;
resources::screen->new_turn();
}
}

View file

@ -701,14 +701,13 @@ void play_controller::finish_side_turn(){
void play_controller::finish_turn()
{
const std::string turn_num = str_cast(turn() - 1);
const std::string turn_num = str_cast(turn());
const std::string side_num = str_cast(player_number_);
game_events::fire("turn end");
game_events::fire("turn " + turn_num + " end");
LOG_NG << "turn event..." << (recorder.is_skipping() ? "skipping" : "no skip") << '\n';
update_locker lock_display(gui_->video(),recorder.is_skipping());
gamestate_.get_variable("turn_number") = int(turn());
}
bool play_controller::enemies_visible() const

View file

@ -598,10 +598,10 @@ void playsingle_controller::play_turn(bool save)
loading_game_ = false;
}
finish_turn();
// Time has run out
check_time_over();
finish_turn();
}
void playsingle_controller::play_side(const unsigned int team_index, bool save)

View file

@ -298,6 +298,7 @@ void tod_manager::set_turn(const int num)
set_number_of_turns(new_turn);
}
turn_ = new_turn;
resources::state_of_game->get_variable("turn_number") = new_turn;
}
void tod_manager::set_new_current_times(const int new_current_turn_number)
@ -326,8 +327,7 @@ int tod_manager::calculate_current_time(
bool tod_manager::next_turn()
{
set_new_current_times(turn_ + 1);
++turn_;
set_turn(turn_ + 1);
return is_time_left();
}