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; }