diff --git a/library/include/df/custom/coord2d_path.methods.inc b/library/include/df/custom/coord2d_path.methods.inc new file mode 100644 index 000000000..c36c5c0fa --- /dev/null +++ b/library/include/df/custom/coord2d_path.methods.inc @@ -0,0 +1,20 @@ +unsigned size() const { return x.size(); } + +coord2d operator[] (unsigned idx) const { + if (idx >= x.size()) + return coord2d(); + else + return coord2d(x[idx], y[idx]); +} + +void erase(unsigned idx) { + if (idx < x.size()) { + x.erase(x.begin()+idx); + y.erase(y.begin()+idx); + } +} + +void push_back(const coord2d &crd) { + x.push_back(crd.x); + y.push_back(crd.y); +} diff --git a/library/include/df/custom/coord_path.methods.inc b/library/include/df/custom/coord_path.methods.inc index d3c48de7f..9acebb82a 100644 --- a/library/include/df/custom/coord_path.methods.inc +++ b/library/include/df/custom/coord_path.methods.inc @@ -1,8 +1,22 @@ unsigned size() const { return x.size(); } coord operator[] (unsigned idx) const { - if (idx >= x.size() || idx >= y.size() || idx >= z.size()) + if (idx >= x.size()) return coord(); else return coord(x[idx], y[idx], z[idx]); } + +void erase(unsigned idx) { + if (idx < x.size()) { + x.erase(x.begin()+idx); + y.erase(y.begin()+idx); + z.erase(z.begin()+idx); + } +} + +void push_back(const coord &crd) { + x.push_back(crd.x); + y.push_back(crd.y); + z.push_back(crd.z); +} diff --git a/library/include/df/custom/inorganic_raw.methods.inc b/library/include/df/custom/inorganic_raw.methods.inc new file mode 100644 index 000000000..e69de29bb diff --git a/library/include/df/custom/material.methods.inc b/library/include/df/custom/material.methods.inc new file mode 100644 index 000000000..e69de29bb diff --git a/library/modules/Maps.cpp b/library/modules/Maps.cpp index ec70c8d0a..1b4661004 100644 --- a/library/modules/Maps.cpp +++ b/library/modules/Maps.cpp @@ -567,7 +567,7 @@ bool Maps::ReadGeology (vector < vector >& assign) if (bioRY >= world->world_data->world_height) bioRY = world->world_data->world_height - 1; // get index into geoblock vector - uint16_t geoindex = world->world_data->unk_1c0[bioRX][bioRY].geo_index; + uint16_t geoindex = world->world_data->region_map[bioRX][bioRY].geo_index; /// geology blocks have a vector of layer descriptors // get the vector with pointer to layers diff --git a/library/xml b/library/xml index 8f9f7cf3b..f6d09c951 160000 --- a/library/xml +++ b/library/xml @@ -1 +1 @@ -Subproject commit 8f9f7cf3bc4cff3dc721dc9e0ba51bc54b069587 +Subproject commit f6d09c95153150d7d1f00592336012af5e6e02ad