|
|
@ -43,6 +43,8 @@ using namespace std;
|
|
|
|
#include "DataDefs.h"
|
|
|
|
#include "DataDefs.h"
|
|
|
|
#include "df/world_data.h"
|
|
|
|
#include "df/world_data.h"
|
|
|
|
#include "df/world_underground_region.h"
|
|
|
|
#include "df/world_underground_region.h"
|
|
|
|
|
|
|
|
#include "df/world_geo_biome.h"
|
|
|
|
|
|
|
|
#include "df/world_geo_layer.h"
|
|
|
|
#include "df/feature_init.h"
|
|
|
|
#include "df/feature_init.h"
|
|
|
|
|
|
|
|
|
|
|
|
using namespace DFHack;
|
|
|
|
using namespace DFHack;
|
|
|
@ -565,14 +567,18 @@ bool Maps::ReadGeology (vector < vector <uint16_t> >& assign)
|
|
|
|
|
|
|
|
|
|
|
|
/// geology blocks have a vector of layer descriptors
|
|
|
|
/// geology blocks have a vector of layer descriptors
|
|
|
|
// get the vector with pointer to layers
|
|
|
|
// get the vector with pointer to layers
|
|
|
|
vector <df::world_data::T_unk_190::T_unk_4 *> &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 <df::world_geo_layer*> &geolayers = geo_biome->layers;
|
|
|
|
|
|
|
|
|
|
|
|
/// layer descriptor has a field that determines the type of stone/soil
|
|
|
|
/// layer descriptor has a field that determines the type of stone/soil
|
|
|
|
v_geology[i].reserve(geolayers.size());
|
|
|
|
v_geology[i].reserve(geolayers.size());
|
|
|
|
|
|
|
|
|
|
|
|
// finally, read the layer matgloss
|
|
|
|
// finally, read the layer matgloss
|
|
|
|
for (uint32_t j = 0; j < geolayers.size(); j++)
|
|
|
|
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();
|
|
|
|
assign.clear();
|
|
|
|