diff --git a/Memory.xml b/Memory.xml
index b689bc2ab..9ad8a89c5 100644
--- a/Memory.xml
+++ b/Memory.xml
@@ -3075,6 +3075,9 @@
+
+
+
diff --git a/library/include/dfhack/modules/Vegetation.h b/library/include/dfhack/modules/Vegetation.h
index 128294e52..9984d7cf2 100644
--- a/library/include/dfhack/modules/Vegetation.h
+++ b/library/include/dfhack/modules/Vegetation.h
@@ -10,13 +10,12 @@
#include "dfhack/DFModule.h"
namespace DFHack
{
-
/**
* \ingroup grp_vegetation
*/
struct t_tree
{
- // +0x6C
+ // +0x3C
#pragma pack(push, 1)
union
{
@@ -29,10 +28,18 @@ namespace DFHack
};
};
#pragma pack(pop)
- uint16_t material; // +0x6E
- uint16_t x; // +0x70
- uint16_t y; // +0x72
- uint16_t z; // +0x74
+ uint16_t material; // +0x3E
+ uint16_t x; // +0x40
+ uint16_t y; // +0x42
+ uint16_t z; // +0x44
+ uint16_t padding; // +0x46
+ uint32_t unknown_1; // +0x48
+ uint16_t temperature_1; // +0x4C
+ uint16_t temperature_2; // +0x4E - maybe fraction?
+ uint32_t mystery_flag; // 0x50: yes, just one
+ uint32_t unknown_2; // 0x54
+ uint32_t unknown_3; // 0x58
+ // a vector is here
uint32_t address;
};
diff --git a/tools/examples/treedump.cpp b/tools/examples/treedump.cpp
index 2b96e6f93..f75aa39f9 100644
--- a/tools/examples/treedump.cpp
+++ b/tools/examples/treedump.cpp
@@ -11,7 +11,21 @@ using namespace std;
#define DFHACK_WANT_MISCUTILS
#include
-
+/*
+ uint16_t material; // +0x3E
+ uint16_t x; // +0x40
+ uint16_t y; // +0x42
+ uint16_t z; // +0x44
+ uint16_t padding; // +0x46
+ uint32_t unknown_1; // +0x48
+ uint16_t temperature_1; // +0x4C
+ uint16_t temperature_2; // +0x4E - maybe fraction?
+ uint32_t mystery_flag; // 0x50: yes, just one
+ uint32_t unknown_2; // 0x54
+ uint32_t unknown_3; // 0x58
+ // a vector is here
+ uint32_t address;
+ */
void print_tree( DFHack::Context * DF , DFHack::t_tree & tree)
{
DFHack::Materials * mat = DF->getMaterials();
@@ -31,6 +45,12 @@ void print_tree( DFHack::Context * DF , DFHack::t_tree & tree)
cout << "shrub";
}
cout << endl;
+ printf("unknown_1: 0x%08x\n", tree.unknown_1);
+ printf("temperature_1: %d\n", tree.temperature_1);
+ printf("temperature_2: %d\n", tree.temperature_2);
+ printf("mystery_flag: %d\n", tree.mystery_flag);
+ printf("unknown_2: 0x%08x\n", tree.unknown_2);
+ printf("unknown_3: 0x%08x\n", tree.unknown_3);
printf("Address: 0x%x\n", tree.address);
hexdump(DF,tree.address,13*16);
}
@@ -110,7 +130,7 @@ int main (int numargs, const char ** args)
v->Read(i,tree);
if(tree.x == x && tree.y == y && tree.z == z)
{
- cout << "----==== Tree at "<< x << "/" << y << "/" << z << " ====----" << endl;
+ cout << "----==== Tree at "<< dec << x << "/" << y << "/" << z << " ====----" << endl;
print_tree(DF, tree);
break;
}