From 8531ddeae59ef96bd3f91023fc6015ab85627690 Mon Sep 17 00:00:00 2001 From: Chris Beck Date: Fri, 13 Jun 2014 01:17:55 -0400 Subject: [PATCH] add gamemap argument to tod_manager::add_time_area(config &c) This is needed to properly parse a list of locations from strings, to have the dimensions available. This allows to refactor tod_manager and not use resources:: ptrs in its implementation, instead using the objects from the relevant context. --- src/editor/map/map_context.cpp | 2 +- src/play_controller.cpp | 2 +- src/tod_manager.cpp | 10 +++++----- src/tod_manager.hpp | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/editor/map/map_context.cpp b/src/editor/map/map_context.cpp index b96003422997..1563569dbadc 100644 --- a/src/editor/map/map_context.cpp +++ b/src/editor/map/map_context.cpp @@ -281,7 +281,7 @@ void map_context::load_scenario(const config& game_config) tod_manager_.reset(new tod_manager(scenario)); BOOST_FOREACH(const config &time_area, scenario.child_range("time_area")) { - tod_manager_->add_time_area(time_area); + tod_manager_->add_time_area(map_,time_area); } BOOST_FOREACH(const config& item, scenario.child_range("item")) { diff --git a/src/play_controller.cpp b/src/play_controller.cpp index 4a138868bec3..c62c1aa240fe 100644 --- a/src/play_controller.cpp +++ b/src/play_controller.cpp @@ -195,7 +195,7 @@ void play_controller::init(CVideo& video){ } BOOST_FOREACH(const config &t, level_.child_range("time_area")) { - tod_manager_.add_time_area(t); + tod_manager_.add_time_area(gameboard_.map(),t); } LOG_NG << "initialized teams... " << (SDL_GetTicks() - ticks_) << std::endl; diff --git a/src/tod_manager.cpp b/src/tod_manager.cpp index b112f20b8bff..5385f7a6f908 100644 --- a/src/tod_manager.cpp +++ b/src/tod_manager.cpp @@ -13,18 +13,18 @@ */ #include "tod_manager.hpp" -#include "wml_exception.hpp" -#include "gettext.hpp" + #include "display_context.hpp" #include "formula_string_utils.hpp" #include "gamestatus.hpp" +#include "gettext.hpp" #include "log.hpp" #include "map.hpp" #include "play_controller.hpp" #include "random_new.hpp" -#include "resources.hpp" #include "unit.hpp" #include "unit_abilities.hpp" +#include "wml_exception.hpp" #include #include @@ -316,7 +316,7 @@ const std::set& tod_manager::get_area_by_index(int index) const return areas_[index].hexes; } -void tod_manager::add_time_area(const config& cfg) +void tod_manager::add_time_area(const gamemap & map, const config& cfg) { areas_.push_back(area_time_of_day()); area_time_of_day &area = areas_.back(); @@ -324,7 +324,7 @@ void tod_manager::add_time_area(const config& cfg) area.xsrc = cfg["x"].str(); area.ysrc = cfg["y"].str(); area.currentTime = cfg["current_time"].to_int(0); - std::vector const& locs (resources::disp_context->map().parse_location_range(area.xsrc, area.ysrc, true)); + std::vector const& locs (map.parse_location_range(area.xsrc, area.ysrc, true)); area.hexes.insert(locs.begin(), locs.end()); time_of_day::parse_times(cfg, area.times); } diff --git a/src/tod_manager.hpp b/src/tod_manager.hpp index f2aa776d305e..44a0f370138b 100644 --- a/src/tod_manager.hpp +++ b/src/tod_manager.hpp @@ -117,7 +117,7 @@ class tod_manager : public savegame::savegame_config * @param cfg Config object containing x,y range/list of * locations and desired [time] information. */ - void add_time_area(const config& cfg); + void add_time_area(const gamemap & map, const config& cfg); /** * Adds a new local time area from a set of locations, making those