0.31.03 support. Creature soul offsets need a bit of work it seems.

develop
Petr Mrázek 2010-04-13 05:46:26 +02:00
parent e85b429127
commit 88a3d96ef6
2 changed files with 118 additions and 30 deletions

@ -379,14 +379,7 @@ int main (void)
#endif
return 1;
}
/*
DF.ReadItemTypes(itemTypes);
DF.ReadPlantMatgloss(mat.plantMat);
DF.ReadWoodMatgloss(mat.woodMat);
DF.ReadStoneMatgloss(mat.stoneMat);
DF.ReadMetalMatgloss(mat.metalMat);
DF.ReadCreatureMatgloss(mat.creatureMat);
*/
mem = DF.getMemoryInfo();
// get stone matgloss mapping
if(!Materials->ReadCreatureTypes(creaturestypes))
@ -406,7 +399,7 @@ int main (void)
{
DFHack::t_creature temp;
Creatures->ReadCreature(i,temp);
//if(string(creaturestypes[temp.race].id) == "DWARF")
if(string(creaturestypes[temp.race].id) == "DWARF")
{
cout << "index " << i << " ";
@ -414,7 +407,7 @@ int main (void)
addrs.push_back(temp.origin);
}
}
interleave_hex(DF,addrs,200);
//interleave_hex(DF,addrs,200);
/*
uint32_t currentIdx;
DFHack::t_creature currentCreature;

@ -1178,69 +1178,79 @@ map_data_1b60_offset 0x1B9c
Materials
=========
<!-- Number vectors are vector <uint32_t> -->
<!-- Others are vector<object *> -->
<!-- first member of 'object' is a STL string with the name of said object -->
this is an array of 4B pointers to material templates and length 0x292
base_type_array = WORLD + 0x5DF44
<Address name="base_type_array">0x016b90cc</Address>
<Address name="mat_templates">0x16afcec</Address>
<!-- soil, stone, metal -->
inorganics vector = WORLD + 0x54B7C = 0x16AFD04
<Address name="mat_inorganics">0x16afd04</Address>
<Offset name="inorganic_material_template_instantiation">0x178</Offset>
<!-- wood and plant matter -->
<Address name="mat_organics_all">0x16afd1C</Address>
<!-- plant matter -->
<!-- creature types actually used for creatures? -->
<Address name="creature_type_vector">0x016AFE58</Address>
<!--
NOT used yet
Number vectors are vector <uint32_t>
Others are vector<object *>
first member of 'object' is a STL string with the name of said object
<Offset name="inorganic_material_template_instantiation">0x178</Offset>
this is an array of 4B pointers to material templates and length 0x292
base_type_array = WORLD + 0x5DF44
<Address name="base_type_array">0x016b90cc</Address>
<Address name="mat_templates">0x16afcec</Address>
plant matter
<Address name="mat_organics_plants">0x16afd34</Address>
<!-- maybe maps beween organics_all and organics_plants -->
maybe maps beween organics_all and organics_plants
<Address name="mat_unk1_numbers">0x16afd4C</Address>
<!-- wood -->
just wood
<Address name="mat_organics_trees">0x16afd64</Address>
<!-- maybe maps beween organics_all and organics_trees -->
maybe maps beween organics_all and organics_trees
<Address name="mat_unk2_numbers">0x16afd7C</Address>
<!-- body material stuff -->
body material stuff
<Address name="mat_body_material_templates">0x16AFD94</Address>
<Address name="mat_body_detail_plans">0x16AFDAC</Address>
<Address name="mat_bodies">0x16AFDC4</Address>
<Address name="mat_bodygloss">0x16AFDDC</Address>
<Address name="mat_creature_variations">0x16AFDF4</Address>
<!-- *raw* creature types -->
*raw* creature types
<Address name="mat_creature_types">0x16AFE0C</Address>
<!-- creature types actually used for creatures? -->
<Address name="creature_type_vector">0x016AFE58</Address>
<!--<Address name="mat_creature_types2">0x16AEE08</Address>-->
-->
Constructions
=============
WORLD + 0x108
<Address name="construction_vector">0x165b290</Address>
<Offset name="sizeof_construction">0x14</Offset>
Translations
============
WORLD + 0x54E50
<Address name="language_vector">0x016AFFD8</Address>
WORLD + 0x54E80
<Address name="translation_vector">0x016B0008</Address>
<Offset name="word_table">0x4C</Offset>
Vegetation
==========
WORLD + 0x15184
<Address name="vegetation_vector">0x0167030C</Address> belal: 0x017f6d98 ... what?
<Offset name="tree_desc_offset">0x6C</Offset>
Buildings
=========
WORLD + 0x14818
<Address name="buildings_vector">0x0166f9a0</Address>
<Offset name="building_custom_workshop_type">0x164</Offset>
WORLD + 0x5D610
<Address name="custom_workshop_vector">0x016B8798</Address>
<Offset name="custom_workshop_name">0x4</Offset>
<Offset name="custom_workshop_type">0x20</Offset>
@ -1298,6 +1308,91 @@ map_data_1b60_offset 0x1B9c
<Entry version="v0.31.02" os="windows" id="0.31.02" base="0.31.01">
<String name="md5">23dfe141c7ea4e63ebb3c618a12b48ec</String>
<HexValue name="pe_timestamp">0x4BBDF378</HexValue>
</Entry>
<Entry version="v0.31.03" os="windows" id="0.31.03" base="0.31.01" rebase="0x1000">
<String name="md5">94641d97a0ecff6f2194e3d0b310d946</String>
<HexValue name="pe_timestamp">0x4BC3C470</HexValue>
WORLD: 0x0165c1d0 ?
Position
========
<Address name="window_dims">0x17f6b00</Address> Was 0x17f5ab8
0x17f6b00
0x17f6b08
0x17f6b10
Map
===
<Address name="map_data">0x016AE760</Address>
* map size in blocks *
<Address name="x_count_block">0x016AE780</Address>
<Address name="y_count_block">0x016AE784</Address>
<Address name="z_count_block">0x016AE788</Address>
* map size in tiles *
<Address name="x_count">0x016AE78C</Address>
<Address name="y_count">0x016AE790</Address>
<Address name="z_count">0x016AE794</Address>
* Suspected region coords *
<Address name="region_x">0x016AE798</Address>
<Address name="region_y">0x016AE79C</Address>
<Address name="region_z">0x016AE7A0</Address>
* World size * (WORDs)
<Address name="world_size_x">0x016AFE1C</Address>
<Address name="world_size_y">0x016AFE1E</Address>
* geology *
<Address name="geoblock_vector">0x16B0574</Address>
<Address name="ptr2_region_array">0x16B05BC</Address>
Creatures
=========
<Address name="creature_vector">0x166FD0C</Address>
<Address name="dwarf_race_index">0x01471fbc</Address>
<!-- SOUL OFFSETS NEED FIXING -->
Materials
=========
<!-- soil, stone, metal -->
inorganics vector = WORLD + 0x54B7C = 0x16B0D4C
<Address name="mat_inorganics">0x16B0D4C</Address>
<!-- wood and plant matter -->
<Address name="mat_organics_all">0x16B0D64</Address> inorg + 0x18
<!-- creature types actually used for creatures? -->
<Address name="creature_type_vector">0x16B0EA0</Address> inorg + 0x154
Constructions
=============
WORLD + 0x108
<Address name="construction_vector">0x165C2D8</Address>
Translations
============
WORLD + 0x54E50
<Address name="language_vector">0x016AFFD8</Address>
WORLD + 0x54E80
<Address name="translation_vector">0x16B1050</Address>
Vegetation
==========
WORLD + 0x15184
<Address name="vegetation_vector">0x1671354</Address>
Buildings
=========
WORLD + 0x14818
<Address name="buildings_vector">0x16709E8</Address>
WORLD + 0x5D610
<Address name="custom_workshop_vector">0x16B97E0</Address>
<Offset name="custom_workshop_name">0x4</Offset>
<Offset name="custom_workshop_type">0x20</Offset>
</Entry>
.-"""-.
' \