const time_of_day& tod_manager::get_time_of_day(const map_location& loc, int n_turn) const { if(n_turn == 0) n_turn = turn_; for (std::vector<area_time_of_day>::const_reverse_iterator i = areas_.rbegin(), i_end = areas_.rend(); i != i_end; ++i) { if (i->hexes.find(loc) != i->hexes.end()) return get_time_of_day_turn(i->times, n_turn, i->currentTime); } return get_time_of_day_turn(times_, n_turn, currentTime_); }
const time_of_day& tod_manager::get_time_of_day(const map_location& loc, int n_turn) const { if(n_turn == 0) n_turn = turn_; for (std::vector<area_time_of_day>::const_reverse_iterator i = areas_.rbegin(), i_end = areas_.rend(); i != i_end; ++i) { if (i->hexes.count(loc) != 1) continue; VALIDATE(i->times.size(), _("No time of day has been defined.")); return get_time_of_day_turn(i->times, n_turn); } return get_time_of_day_turn(times_, n_turn); }
time_of_day tod_manager::get_time_of_day(int illuminated, const map_location& loc, int n_turn) const { time_of_day res = get_time_of_day_turn(n_turn); if(loc.valid()) { for(std::vector<area_time_of_day>::const_iterator i = areas_.begin(); i != areas_.end(); ++i) { if(i->hexes.count(loc) == 1) { VALIDATE(i->times.size(), _("No time of day has been defined.")); res = i->times[(n_turn-1)%i->times.size()]; break; } } } if(illuminated) { res.bonus_modified=illuminated; res.lawful_bonus += illuminated; } return res; }
/** * Returns global time of day for the passed turn. * for_turn = 0 means current turn */ const time_of_day& get_time_of_day(int for_turn = 0) const { return get_time_of_day_turn(times_, for_turn ? for_turn : turn_, currentTime_); }
const time_of_day& tod_manager::get_previous_time_of_day() const { return get_time_of_day_turn(times_, turn_ - 1, currentTime_); }
time_of_day tod_manager::get_previous_time_of_day() const { return get_time_of_day_turn(turn() - 1); }