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:
parent
05a478776a
commit
0f45a15422
4 changed files with 5 additions and 7 deletions
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue