From 80292bd49e77e58e707b79e88993225830bfc63a Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Fri, 20 Jan 2012 20:27:39 +0400 Subject: [PATCH] Update Maps to match the new geo_biome definitions. --- library/modules/Maps.cpp | 10 ++++++++-- library/xml | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/library/modules/Maps.cpp b/library/modules/Maps.cpp index b121aa9f0..e90d692e5 100644 --- a/library/modules/Maps.cpp +++ b/library/modules/Maps.cpp @@ -43,6 +43,8 @@ using namespace std; #include "DataDefs.h" #include "df/world_data.h" #include "df/world_underground_region.h" +#include "df/world_geo_biome.h" +#include "df/world_geo_layer.h" #include "df/feature_init.h" using namespace DFHack; @@ -565,14 +567,18 @@ bool Maps::ReadGeology (vector < vector >& assign) /// geology blocks have a vector of layer descriptors // get the vector with pointer to layers - vector &geolayers = world->world_data->unk_190[geoindex]->unk_4; + df::world_geo_biome *geo_biome = df::world_geo_biome::find(geoindex); + if (!geo_biome) + continue; + + vector &geolayers = geo_biome->layers; /// layer descriptor has a field that determines the type of stone/soil v_geology[i].reserve(geolayers.size()); // finally, read the layer matgloss for (uint32_t j = 0; j < geolayers.size(); j++) - v_geology[i].push_back(geolayers[j]->unk_4); + v_geology[i].push_back(geolayers[j]->mat_index); } assign.clear(); diff --git a/library/xml b/library/xml index d5abec61f..8f9f7cf3b 160000 --- a/library/xml +++ b/library/xml @@ -1 +1 @@ -Subproject commit d5abec61f72f113e023219fed19c4022363de953 +Subproject commit 8f9f7cf3bc4cff3dc721dc9e0ba51bc54b069587