@@ -60,15 +60,15 @@ bool MapDefinition::add_province_definition(std::string_view identifier, colour_
60
60
ProvinceDefinition new_province {
61
61
identifier, colour, static_cast <ProvinceDefinition::index_t >(province_definitions.size () + 1 )
62
62
};
63
- const ProvinceDefinition::index_t index = get_index_from_colour (colour);
64
- if (index != ProvinceDefinition::NULL_INDEX) {
63
+ const ProvinceDefinition::index_t index_1_based = get_index_1_based_from_colour (colour);
64
+ if (index_1_based != ProvinceDefinition::NULL_INDEX) {
65
65
Logger::error (
66
- " Duplicate province colours: " , get_province_definition_by_index (index )->to_string (), " and " ,
66
+ " Duplicate province colours: " , get_province_definition_by_index_1_based (index_1_based )->to_string (), " and " ,
67
67
new_province.to_string ()
68
68
);
69
69
return false ;
70
70
}
71
- colour_index_map[new_province.get_colour ()] = new_province.get_index ();
71
+ colour_index_map[new_province.get_colour ()] = new_province.get_index_1_based ();
72
72
return province_definitions.add_item (std::move (new_province));
73
73
}
74
74
@@ -125,37 +125,37 @@ bool MapDefinition::add_standard_adjacency(ProvinceDefinition& from, ProvinceDef
125
125
to.coastal = !to.is_water ();
126
126
127
127
if (from.is_water ()) {
128
- path_map_sea.try_add_point (to.get_index (), { to.centre .x , to.centre .y });
128
+ path_map_sea.try_add_point (to.get_index_1_based (), { to.centre .x , to.centre .y });
129
129
} else {
130
- path_map_sea.try_add_point (from.get_index (), { from.centre .x , from.centre .y });
130
+ path_map_sea.try_add_point (from.get_index_1_based (), { from.centre .x , from.centre .y });
131
131
}
132
132
/* Connect points on pathfinding map */
133
- path_map_sea.connect_points (from.get_index (), to.get_index ());
133
+ path_map_sea.connect_points (from.get_index_1_based (), to.get_index_1_based ());
134
134
/* Land units can use transports to path on the sea */
135
- path_map_land.connect_points (from.get_index (), to.get_index ());
135
+ path_map_land.connect_points (from.get_index_1_based (), to.get_index_1_based ());
136
136
/* Sea points are only valid for land units with a transport */
137
137
if (from.is_water ()) {
138
- path_map_land.set_point_disabled (from.get_index ());
138
+ path_map_land.set_point_disabled (from.get_index_1_based ());
139
139
} else {
140
- path_map_land.set_point_disabled (to.get_index ());
140
+ path_map_land.set_point_disabled (to.get_index_1_based ());
141
141
}
142
142
} else if (from.is_water ()) {
143
143
/* Water-to-water adjacency */
144
144
type = WATER;
145
145
146
146
/* Connect points on pathfinding map */
147
- path_map_sea.connect_points (from.get_index (), to.get_index ());
147
+ path_map_sea.connect_points (from.get_index_1_based (), to.get_index_1_based ());
148
148
/* Land units can use transports to path on the sea */
149
- path_map_land.connect_points (from.get_index (), to.get_index ());
149
+ path_map_land.connect_points (from.get_index_1_based (), to.get_index_1_based ());
150
150
/* Sea points are only valid for land units with a transport */
151
151
if (from.is_water ()) {
152
- path_map_land.set_point_disabled (from.get_index ());
152
+ path_map_land.set_point_disabled (from.get_index_1_based ());
153
153
} else {
154
- path_map_land.set_point_disabled (to.get_index ());
154
+ path_map_land.set_point_disabled (to.get_index_1_based ());
155
155
}
156
156
} else {
157
157
/* Connect points on pathfinding map */
158
- path_map_land.connect_points (from.get_index (), to.get_index ());
158
+ path_map_land.connect_points (from.get_index_1_based (), to.get_index_1_based ());
159
159
}
160
160
161
161
if (from_needs_adjacency) {
@@ -283,17 +283,17 @@ bool MapDefinition::add_special_adjacency(
283
283
}
284
284
*existing_adjacency = { &to, distance, type, through, data };
285
285
if (from.is_water () && to.is_water ()) {
286
- path_map_sea.connect_points (from.get_index (), to.get_index ());
286
+ path_map_sea.connect_points (from.get_index_1_based (), to.get_index_1_based ());
287
287
} else {
288
- path_map_land.connect_points (from.get_index (), to.get_index ());
288
+ path_map_land.connect_points (from.get_index_1_based (), to.get_index_1_based ());
289
289
}
290
290
291
291
if (from.is_water () || to.is_water ()) {
292
- path_map_land.connect_points (from.get_index (), to.get_index ());
292
+ path_map_land.connect_points (from.get_index_1_based (), to.get_index_1_based ());
293
293
if (from.is_water ()) {
294
- path_map_land.set_point_disabled (from.get_index ());
294
+ path_map_land.set_point_disabled (from.get_index_1_based ());
295
295
} else {
296
- path_map_land.set_point_disabled (to.get_index ());
296
+ path_map_land.set_point_disabled (to.get_index_1_based ());
297
297
}
298
298
}
299
299
return true ;
@@ -305,17 +305,17 @@ bool MapDefinition::add_special_adjacency(
305
305
} else {
306
306
from.adjacencies .emplace_back (&to, distance, type, through, data);
307
307
if (from.is_water () && to.is_water ()) {
308
- path_map_sea.connect_points (from.get_index (), to.get_index ());
308
+ path_map_sea.connect_points (from.get_index_1_based (), to.get_index_1_based ());
309
309
} else {
310
- path_map_land.connect_points (from.get_index (), to.get_index ());
310
+ path_map_land.connect_points (from.get_index_1_based (), to.get_index_1_based ());
311
311
}
312
312
313
313
if (from.is_water () || to.is_water ()) {
314
- path_map_land.connect_points (from.get_index (), to.get_index ());
314
+ path_map_land.connect_points (from.get_index_1_based (), to.get_index_1_based ());
315
315
if (from.is_water ()) {
316
- path_map_land.set_point_disabled (from.get_index ());
316
+ path_map_land.set_point_disabled (from.get_index_1_based ());
317
317
} else {
318
- path_map_land.set_point_disabled (to.get_index ());
318
+ path_map_land.set_point_disabled (to.get_index_1_based ());
319
319
}
320
320
}
321
321
return true ;
@@ -346,7 +346,7 @@ bool MapDefinition::set_water_province(std::string_view identifier) {
346
346
return false ;
347
347
}
348
348
province->water = true ;
349
- path_map_sea.try_add_point (province->get_index (), path_map_land.get_point_position (province->get_index ()));
349
+ path_map_sea.try_add_point (province->get_index_1_based (), path_map_land.get_point_position (province->get_index_1_based ()));
350
350
return true ;
351
351
}
352
352
@@ -430,27 +430,27 @@ bool MapDefinition::add_region(std::string_view identifier, memory::vector<Provi
430
430
return ret;
431
431
}
432
432
433
- ProvinceDefinition::index_t MapDefinition::get_index_from_colour (colour_t colour) const {
433
+ ProvinceDefinition::index_t MapDefinition::get_index_1_based_from_colour (colour_t colour) const {
434
434
const colour_index_map_t ::const_iterator it = colour_index_map.find (colour);
435
435
if (it != colour_index_map.end ()) {
436
436
return it->second ;
437
437
}
438
438
return ProvinceDefinition::NULL_INDEX;
439
439
}
440
440
441
- ProvinceDefinition::index_t MapDefinition::get_province_index_at (ivec2_t pos) const {
441
+ ProvinceDefinition::index_t MapDefinition::get_province_index_1_based_at (ivec2_t pos) const {
442
442
if (pos.nonnegative () && pos.is_within_bound (dims)) {
443
443
return province_shape_image[get_pixel_index_from_pos (pos)].index ;
444
444
}
445
445
return ProvinceDefinition::NULL_INDEX;
446
446
}
447
447
448
448
ProvinceDefinition* MapDefinition::get_province_definition_at (ivec2_t pos) {
449
- return get_province_definition_by_index ( get_province_index_at (pos));
449
+ return get_province_definition_by_index_1_based ( get_province_index_1_based_at (pos));
450
450
}
451
451
452
452
ProvinceDefinition const * MapDefinition::get_province_definition_at (ivec2_t pos) const {
453
- return get_province_definition_by_index ( get_province_index_at (pos));
453
+ return get_province_definition_by_index_1_based ( get_province_index_1_based_at (pos));
454
454
}
455
455
456
456
bool MapDefinition::set_max_provinces (ProvinceDefinition::index_t new_max_provinces) {
@@ -544,7 +544,7 @@ bool MapDefinition::load_province_definitions(std::span<const LineObject> lines)
544
544
}
545
545
546
546
ProvinceDefinition const & definition = province_definitions.back ();
547
- ret &= path_map_land.try_add_point (definition.get_index (), { definition.centre .x , definition.centre .y });
547
+ ret &= path_map_land.try_add_point (definition.get_index_1_based (), { definition.centre .x , definition.centre .y });
548
548
if (!ret) {
549
549
Logger::error (" Province " , identifier, " could not be added to " _OV_STR (path_map_land));
550
550
}
@@ -810,27 +810,27 @@ bool MapDefinition::load_map_images(fs::path const& province_path, fs::path cons
810
810
for (pos.x = 0 ; pos.x < get_width (); ++pos.x ) {
811
811
const size_t pixel_index = get_pixel_index_from_pos (pos);
812
812
const colour_t province_colour = colour_at (province_data, pixel_index);
813
- ProvinceDefinition::index_t province_index = ProvinceDefinition::NULL_INDEX;
813
+ ProvinceDefinition::index_t province_index_1_based = ProvinceDefinition::NULL_INDEX;
814
814
815
815
if (pos.x > 0 ) {
816
816
const size_t jdx = pixel_index - 1 ;
817
817
if (colour_at (province_data, jdx) == province_colour) {
818
- province_index = province_shape_image[jdx].index ;
818
+ province_index_1_based = province_shape_image[jdx].index ;
819
819
goto index_found;
820
820
}
821
821
}
822
822
823
823
if (pos.y > 0 ) {
824
824
const size_t jdx = pixel_index - get_width ();
825
825
if (colour_at (province_data, jdx) == province_colour) {
826
- province_index = province_shape_image[jdx].index ;
826
+ province_index_1_based = province_shape_image[jdx].index ;
827
827
goto index_found;
828
828
}
829
829
}
830
830
831
- province_index = get_index_from_colour (province_colour);
831
+ province_index_1_based = get_index_1_based_from_colour (province_colour);
832
832
833
- if (province_index == ProvinceDefinition::NULL_INDEX && !unrecognised_province_colours.contains (province_colour)) {
833
+ if (province_index_1_based == ProvinceDefinition::NULL_INDEX && !unrecognised_province_colours.contains (province_colour)) {
834
834
unrecognised_province_colours.insert (province_colour);
835
835
if (detailed_errors) {
836
836
Logger::warning (
@@ -840,19 +840,19 @@ bool MapDefinition::load_map_images(fs::path const& province_path, fs::path cons
840
840
}
841
841
842
842
index_found:
843
- province_shape_image[pixel_index].index = province_index ;
843
+ province_shape_image[pixel_index].index = province_index_1_based ;
844
844
845
- if (province_index != ProvinceDefinition::NULL_INDEX) {
846
- const ProvinceDefinition::index_t array_index = province_index - 1 ;
845
+ if (province_index_1_based != ProvinceDefinition::NULL_INDEX) {
846
+ const ProvinceDefinition::index_t array_index = province_index_1_based - 1 ;
847
847
pixels_per_province[array_index]++;
848
848
pixel_position_sum_per_province[array_index] += static_cast <fvec2_t >(pos);
849
849
}
850
850
851
851
const TerrainTypeMapping::index_t terrain = terrain_data[pixel_index];
852
852
TerrainTypeMapping const * mapping = terrain_type_manager.get_terrain_type_mapping_for (terrain);
853
853
if (mapping != nullptr ) {
854
- if (province_index != ProvinceDefinition::NULL_INDEX) {
855
- terrain_type_pixels_list[province_index - 1 ][&mapping->get_type ()]++;
854
+ if (province_index_1_based != ProvinceDefinition::NULL_INDEX) {
855
+ terrain_type_pixels_list[province_index_1_based - 1 ][&mapping->get_type ()]++;
856
856
}
857
857
if (mapping->get_has_texture () && terrain < terrain_type_manager.get_terrain_texture_limit ()) {
858
858
province_shape_image[pixel_index].terrain = terrain + 1 ;
0 commit comments