diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/openvic-simulation/map/Province.cpp | 18 | ||||
-rw-r--r-- | src/openvic-simulation/map/Province.hpp | 10 |
2 files changed, 22 insertions, 6 deletions
diff --git a/src/openvic-simulation/map/Province.cpp b/src/openvic-simulation/map/Province.cpp index 89ddd39..d4569ad 100644 --- a/src/openvic-simulation/map/Province.cpp +++ b/src/openvic-simulation/map/Province.cpp @@ -32,9 +32,9 @@ bool Province::load_positions(Map const& map, BuildingTypeManager const& buildin const fixed_point_t map_height = map.get_height(); const bool ret = expect_dictionary_keys( - "text_position", ZERO_OR_ONE, expect_fvec2(flip_y_callback(assign_variable_callback(positions.text), map_height)), - "text_rotation", ZERO_OR_ONE, - expect_fixed_point(negate_callback<fixed_point_t>(assign_variable_callback(positions.text_rotation))), + "text_position", ZERO_OR_ONE, + expect_fvec2(flip_y_callback(assign_variable_callback(positions.text_position), map_height)), + "text_rotation", ZERO_OR_ONE, expect_fixed_point(assign_variable_callback(positions.text_rotation)), "text_scale", ZERO_OR_ONE, expect_fixed_point(assign_variable_callback(positions.text_scale)), "unit", ZERO_OR_ONE, expect_fvec2(flip_y_callback(assign_variable_callback(positions.unit), map_height)), @@ -94,6 +94,18 @@ bool Province::load_positions(Map const& map, BuildingTypeManager const& buildin return ret; } +fvec2_t Province::get_text_position() const { + return positions.text_position.value_or(centre); +} + +fixed_point_t Province::get_text_rotation() const { + return positions.text_rotation.value_or(0); +} + +fixed_point_t Province::get_text_scale() const { + return positions.text_scale.value_or(1); +} + bool Province::expand_building(size_t building_index) { BuildingInstance* building = buildings.get_item_by_index(building_index); if (building == nullptr) { diff --git a/src/openvic-simulation/map/Province.hpp b/src/openvic-simulation/map/Province.hpp index cfe5ed6..bfbeab2 100644 --- a/src/openvic-simulation/map/Province.hpp +++ b/src/openvic-simulation/map/Province.hpp @@ -69,9 +69,9 @@ namespace OpenVic { struct province_positions_t { /* Province name placement */ - std::optional<fvec2_t> text; - std::optional<fvec2_t> text_rotation; - std::optional<fvec2_t> text_scale; + std::optional<fvec2_t> text_position; + std::optional<fixed_point_t> text_rotation; + std::optional<fixed_point_t> text_scale; /* Model positions */ std::optional<fvec2_t> unit; @@ -141,6 +141,10 @@ namespace OpenVic { /* The positions' y coordinates need to be inverted. */ bool load_positions(Map const& map, BuildingTypeManager const& building_type_manager, ast::NodeCPtr root); + fvec2_t get_text_position() const; + fixed_point_t get_text_rotation() const; + fixed_point_t get_text_scale() const; + bool expand_building(size_t building_index); /* This returns a pointer to the position of the specified building type, or nullptr if none exists. */ fvec2_t const* get_building_position(BuildingType const* building_type) const; |