Simplified code by changing access to number of turns from relative to absolute.

This commit is contained in:
Guillaume Melquiond 2010-07-22 20:05:42 +00:00
parent 20e6cf420e
commit ccb8eadb3f
4 changed files with 6 additions and 8 deletions

View File

@ -966,8 +966,7 @@ WML_HANDLER_FUNCTION(modify_turns, /*event_info*/, cfg)
if(!add.empty()) {
tod_man.modify_turns(add);
} else if(!value.empty()) {
tod_man.add_turns(-tod_man.number_of_turns());
tod_man.add_turns(lexical_cast_default<int>(value,-1));
tod_man.set_number_of_turns(lexical_cast_default<int>(value,-1));
}
// change current turn only after applying mods
if(!current.empty()) {

View File

@ -3299,8 +3299,7 @@ void console_handler::do_turn_limit()
tod_manager& tod_man = *resources::tod_manager;
int limit =
get_data().empty() ? -1 : lexical_cast_default<int>(get_data(), 1);
tod_man.add_turns(-tod_man.number_of_turns());
tod_man.add_turns(lexical_cast_default<int>(limit,-1));
tod_man.set_number_of_turns(limit);
menu_handler_.gui_->redraw_everything();
}

View File

@ -283,9 +283,9 @@ void tod_manager::modify_turns(const std::string& mod)
{
num_turns_ = std::max<int>(utils::apply_modifier(num_turns_,mod,0),-1);
}
void tod_manager::add_turns(int num)
void tod_manager::set_number_of_turns(int num)
{
num_turns_ = std::max<int>(num_turns_ + num,-1);
num_turns_ = std::max<int>(num, -1);
}
void tod_manager::set_turn(unsigned int num)
@ -299,7 +299,7 @@ void tod_manager::set_turn(unsigned int num)
set_time_of_day(current_time);
if(static_cast<int>(num) > num_turns_ && num_turns_ != -1) {
add_turns(num - num_turns_);
set_number_of_turns(num);
}
turn_ = num;

View File

@ -95,7 +95,7 @@ class tod_manager : public savegame::savegame_config
size_t turn() const {return turn_;}
int number_of_turns() const {return num_turns_;}
void modify_turns(const std::string& mod);
void add_turns(int num);
void set_number_of_turns(int num);
/** Dynamically change the current turn number. */
void set_turn(unsigned int num);