aboutsummaryrefslogtreecommitdiff
path: root/extension/src/openvic-extension/singletons/ModelSingleton.cpp
diff options
context:
space:
mode:
author Hop311 <Hop3114@gmail.com>2024-06-08 16:54:37 +0200
committer GitHub <noreply@github.com>2024-06-08 16:54:37 +0200
commit3dd525092e3a6027f20f0a1afdf8e871a9eecd34 (patch)
treeaea64483ffb003d74c0671f9f2a4db878a3b8cb3 /extension/src/openvic-extension/singletons/ModelSingleton.cpp
parentfb74bc86d194b50cb3277c7f367a5e5a0316c948 (diff)
parent0ba36e6762615d17605a573a036aff5bf84dfc95 (diff)
Merge pull request #232 from OpenVicProject/province-const-mutable
Province const/mutable + proper State names
Diffstat (limited to 'extension/src/openvic-extension/singletons/ModelSingleton.cpp')
-rw-r--r--extension/src/openvic-extension/singletons/ModelSingleton.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/extension/src/openvic-extension/singletons/ModelSingleton.cpp b/extension/src/openvic-extension/singletons/ModelSingleton.cpp
index 88a69c9..152a7f4 100644
--- a/extension/src/openvic-extension/singletons/ModelSingleton.cpp
+++ b/extension/src/openvic-extension/singletons/ModelSingleton.cpp
@@ -288,7 +288,8 @@ bool ModelSingleton::add_unit_dict(ordered_set<T*> const& units, TypedArray<Dict
dict[flag_floating_key] = true;
}
- dict[position_key] = game_singleton->map_position_to_world_coords(unit.get_position()->get_unit_position());
+ dict[position_key] =
+ game_singleton->map_position_to_world_coords(unit.get_position()->get_province_definition().get_unit_position());
if (display_unit_type->get_unit_category() != UnitType::unit_category_t::INFANTRY) {
dict[rotation_key] = -0.25f * std::numbers::pi_v<float>;
@@ -310,8 +311,8 @@ TypedArray<Dictionary> ModelSingleton::get_units() const {
TypedArray<Dictionary> ret;
- for (Province const& province : game_singleton->get_game_manager().get_map().get_provinces()) {
- if (province.is_water()) {
+ for (ProvinceInstance const& province : game_singleton->get_game_manager().get_map().get_province_instances()) {
+ if (province.get_province_definition().is_water()) {
if (!add_unit_dict(province.get_navies(), ret)) {
UtilityFunctions::push_error(
"Error adding navy to province \"", std_view_to_godot_string(province.get_identifier()), "\""
@@ -363,8 +364,10 @@ Dictionary ModelSingleton::get_flag_model(bool floating) const {
}
bool ModelSingleton::add_building_dict(
- BuildingInstance const& building, Province const& province, TypedArray<Dictionary>& building_array
+ BuildingInstance const& building, ProvinceInstance const& province, TypedArray<Dictionary>& building_array
) const {
+ ProvinceDefinition const& province_definition = province.get_province_definition();
+
GameSingleton const* game_singleton = GameSingleton::get_singleton();
ERR_FAIL_NULL_V(game_singleton, false);
@@ -379,7 +382,7 @@ bool ModelSingleton::add_building_dict(
game_singleton->get_game_manager().get_economy_manager().get_building_type_manager().get_port_building_type()
) {
/* Port */
- if (!province.has_port()) {
+ if (!province_definition.has_port()) {
return true;
}
@@ -404,8 +407,8 @@ bool ModelSingleton::add_building_dict(
return true;
}
- fvec2_t const* position_ptr = province.get_building_position(&building.get_building_type());
- const float rotation = province.get_building_rotation(&building.get_building_type());
+ fvec2_t const* position_ptr = province_definition.get_building_position(&building.get_building_type());
+ const float rotation = province_definition.get_building_rotation(&building.get_building_type());
const std::string actor_name = StringUtils::append_string_views("building_", building.get_identifier(), suffix);
@@ -422,8 +425,9 @@ bool ModelSingleton::add_building_dict(
dict[model_key] = make_model_dict(*actor);
- dict[position_key] =
- game_singleton->map_position_to_world_coords(position_ptr != nullptr ? *position_ptr : province.get_centre());
+ dict[position_key] = game_singleton->map_position_to_world_coords(
+ position_ptr != nullptr ? *position_ptr : province_definition.get_centre()
+ );
if (rotation != 0.0f) {
dict[rotation_key] = rotation;
@@ -441,8 +445,8 @@ TypedArray<Dictionary> ModelSingleton::get_buildings() const {
TypedArray<Dictionary> ret;
- for (Province const& province : game_singleton->get_game_manager().get_map().get_provinces()) {
- if (!province.is_water()) {
+ for (ProvinceInstance const& province : game_singleton->get_game_manager().get_map().get_province_instances()) {
+ if (!province.get_province_definition().is_water()) {
for (BuildingInstance const& building : province.get_buildings()) {
if (!add_building_dict(building, province, ret)) {
UtilityFunctions::push_error(