0.31.05 Windows support

develop
Petr Mrázek 2010-06-06 04:36:39 +02:00
parent 9f86f50369
commit 67bddfdad4
2 changed files with 95 additions and 17 deletions

@ -1597,6 +1597,65 @@ map_data_1b60_offset 0x1B9c
<Offset name="item_type_accessor">0x0</Offset> Why do i have to redefine this ???
</Entry>
<Entry version="v0.31.05" os="windows" id="0.31.05" base="0.31.04" rebase="0x8010">
<String name="md5">394ff63fc00fedd5df0b36e4beb589bc</String>
<HexValue name="pe_timestamp">0x4c091569</HexValue>
<Address name="creature_vector">0x1678704</Address> CHMOD
<Address name="dwarf_race_index">0x014abee4</Address> CHMOD
<Address name="dwarf_civ_id">0x1471FB0</Address> BOGUS!
<!--
<Address name="mat_inorganics">0x16BD0B0</Address>
<Address name="mat_organics_all">0x16BD0C8</Address>
<Address name="mat_organics_plants">0x16bd0e0</Address>
<Address name="mat_organics_trees">0x16bd110</Address>
<Address name="creature_type_vector">0x16BD204</Address>
<Address name="descriptor_colors_vector">0x16C5ACC</Address>
<Address name="descriptor_all_colors">0x16C5AFC</Address>
-->
<!--<Address name="mat_other">0x16C6478</Address>-->
<!--<Address name="mat_stuff">0x16C6478</Address> -->
<!--<Address name="descriptor_vectors_start">0x16C5AE4</Address> -->
<!--
<Address name="language_vector">0x16BD384</Address> OLD
<Address name="translation_vector">0x16BD3B4</Address> OLD
<Address name="language_vector">0x016c539c</Address> CHMOD
<Address name="translation_vector">0x016c53cc</Address> CHMOD
-->
<Address name="current_tick">0xE80780</Address> LOOKS O.K.
<Address name="current_year">0xEB2878</Address> LOOKS O.K.
<!--
<Address name="map_data">0x16c2ad4</Address> old 0x016BAAC4
<Address name="x_count_block">0x16c2af4</Address> old 0x016BAAE4
<Address name="y_count_block">0x16c2af8</Address> old 0x016BAAE8
<Address name="z_count_block">0x16c2afc</Address> old 0x016BAAEC
<Address name="x_count">0x16c2b00</Address> old 0x016BAAF0
<Address name="y_count">0x16c2b04</Address> old 0x016BAAF4
<Address name="z_count">0x16c2b08</Address> old 0x016BAAF8
<Address name="region_x">0x16c2b0C</Address> old 0x016BAAFC
<Address name="region_y">0x16c2b10</Address> old 0x016BAB00
<Address name="region_z">0x16c2b14</Address> old 0x016BAB04
<Address name="world_size_x">0x16C4190</Address> VERIFIED
<Address name="world_size_y">0x16C4192</Address> VERIFIED
<Address name="geoblock_vector">0x16C48E8</Address> LOOKS O.K.
<Address name="ptr2_region_array">0x16C4930</Address> LOOKS O.K.
<Address name="global_feature_vector">0x16C48B8</Address> LOOKS O.K.
<Address name="local_feature_start_ptr">0x16BC974</Address>
<Address name="construction_vector">0x1664CD8</Address>
<Address name="vegetation_vector">0x1679D54</Address>
<Address name="buildings_vector">0x16793e8</Address>
<Address name="items_vector">0x1678800</Address>
-->
<Address name="window_dims">0x180b10c</Address> LOOKS O.K.
<Address name="window_x">0xe6c0dc</Address> VERIFIED
<Address name="window_y">0xe9a1b0</Address> VERIFIED
<Address name="window_z">0xe9a18c</Address> VERIFIED
<Address name="cursor_xyz">0xaf12cc</Address> VERIFIED
<Offset name="item_type_accessor">0x0</Offset> Why do i have to redefine this ???
... what?
</Entry>
.-"""-.
' \
@ -1734,7 +1793,7 @@ map_data_1b60_offset 0x1B9c
Creature type offsets
=====================
<Offset name="creature_type_caste_vector">0x138</Offset>
<Offset name="creature_type_caste_vector">0x60</Offset> VERIFIED
<Offset name="creature_type_extract_vector">0x1A14</Offset>
<Offset name="creature_tile">0xE0</Offset>
<Offset name="creature_tile_color">0xF6</Offset>
@ -1758,7 +1817,7 @@ map_data_1b60_offset 0x1B9c
Language tables
===============
<Offset name="word_table">0x1C</Offset>
<Offset name="word_table">0x1C</Offset> VERIFIED
Constructions
=============
@ -1991,14 +2050,14 @@ map_data_1b60_offset 0x1B9c
Map data
========
WORLD + 0x52C60?
<Address name="map_data">0x9318D40</Address>
<Address name="map_data">0x9318D40</Address> VERIFIED
Map Features
============
WORLD + 0x5487C?
<Address name="global_feature_vector">0x931A95C</Address>
<Address name="global_feature_vector">0x931A95C</Address> VERIFIED
WORLD + 0x548F4?
<Address name="local_feature_start_ptr">0x931A9D4</Address>
<Address name="local_feature_start_ptr">0x931A9D4</Address> VERIFIED
* map size in blocks *
<Address name="x_count_block">0x9318D54</Address> VERIFIED
@ -2020,31 +2079,31 @@ map_data_1b60_offset 0x1B9c
* World size * (WORDs)
WORLD + 0x542E0
<Address name="world_size_x">0x931A3C0</Address> old = 0x93243A0
<Address name="world_size_x">0x931A3C0</Address> VERIFIED
WORLD + 0x542E2
<Address name="world_size_y">0x931A3C2</Address> old = 0x93243A2
<Address name="world_size_y">0x931A3C2</Address> VERIFIED
WORLD + 0x54894
<Address name="geoblock_vector">0x931A974</Address> old = 0x9324954
<Address name="geoblock_vector">0x931A974</Address> VERIFIED
WORLD + 0x548B8
<Address name="ptr2_region_array">0x931A998</Address> old = 0x9324978
<Address name="ptr2_region_array">0x931A998</Address> VERIFIED
Materials
=========
soil, stone, metal
inorganics vector
<Address name="mat_inorganics">0x931ae88</Address>
<Address name="mat_inorganics">0x931ae88</Address> VERIFIED
wood and plant matter
<Address name="mat_organics_all">0x931ae94</Address>
<Address name="mat_organics_all">0x931ae94</Address> VERIFIED
plant matter
<Address name="mat_organics_plants">0x931aea0</Address>
<Address name="mat_organics_plants">0x931aea0</Address> VERIFIED
just wood
<Address name="mat_organics_trees">0x931aeb8</Address>
<Address name="mat_organics_trees">0x931aeb8</Address> VERIFIED
creature types actually used for creatures,
<Address name="creature_type_vector">0x931af34</Address>
<Address name="creature_type_vector">0x931af34</Address> VERIFIED
Color descriptors
=================

@ -218,6 +218,14 @@ bool Incremental ( vector <uint64_t> &found, const char * what, T& output,
//cout << dec << output << endl;
return true;
}
stringstream ss (stringstream::in | stringstream::out);
ss << select;
ss >> output;
if(!ss.fail())
{
return true;
}
cout << "not a valid value for type: " << what << endl;
goto incremental_more;
}
@ -431,7 +439,7 @@ void printFoundStrVec(vector <uint64_t> &found, const char * what, SegmentedFind
cout << "BAD!" << endl;
break;
}
cout << dec << j << ": " << str << endl;
cout << dec << j << ":" << hex << "0x" << object_ptr << " : " << str << endl;
j++;
}
}
@ -516,7 +524,8 @@ void automatedLangtables(DFHack::Context * DF, vector <DFHack::t_memrange>& rang
// inorganics vector
to_filter = filtVectors;
//sf.Find<uint32_t,vecTriplet>(257 * 4,4,to_filter,vectorLength<uint32_t>);
sf.Find<const char * ,vecTriplet>("IRON",4,to_filter, vectorStringFirst);
sf.Find<const char * ,vecTriplet>("IRON",4,to_filter, vectorString);
sf.Find<const char * ,vecTriplet>("ONYX",4,to_filter, vectorString);
sf.Find<const char * ,vecTriplet>("RAW_ADAMANTINE",4,to_filter, vectorString);
sf.Find<const char * ,vecTriplet>("BLOODSTONE",4,to_filter, vectorString);
printFound(to_filter,"inorganics");
@ -576,7 +585,7 @@ void automatedLangtables(DFHack::Context * DF, vector <DFHack::t_memrange>& rang
vector <uint64_t> elephant_first = to_filter;
sf.Find<const char * ,vecTriplet>("TOAD",4,toad_first, vectorStringFirst);
sf.Find<const char * ,vecTriplet>("ELEPHANT",4,elephant_first, vectorStringFirst);
printFound(toad_first,"toad-first creature types");
printFoundStrVec(toad_first,"toad-first creature types",sf);
printFound(elephant_first,"elephant-first creature types");
printFound(to_filter,"all creature types");
}
@ -602,6 +611,9 @@ int main (void)
vector <DFHack::t_memrange> selected_ranges;
getRanges(p,selected_ranges);
DFHack::memory_info *minfo = DF->getMemoryInfo();
DFHack::memory_info::OSType os = minfo->getOS();
string prompt =
"Select search type: 1=number(default), 2=vector by length, 3=vector>object>string,\n"
" 4=string, 5=automated offset search, 6=vector by address in its array,\n"
@ -614,27 +626,34 @@ int main (void)
switch (mode)
{
case 1:
DF->Detach();
FindIntegers(DFMgr, selected_ranges);
break;
case 2:
DF->Detach();
FindVectorByLength(DFMgr, selected_ranges);
break;
case 3:
DF->Detach();
FindVectorByObjectRawname(DFMgr, selected_ranges);
break;
case 4:
DF->Detach();
FindStrings(DFMgr, selected_ranges);
break;
case 5:
automatedLangtables(DF,selected_ranges);
break;
case 6:
DF->Detach();
FindVectorByBounds(DFMgr,selected_ranges);
break;
case 7:
DF->Detach();
FindPtrVectorsByObjectAddress(DFMgr,selected_ranges);
break;
case 8:
DF->Detach();
FindVectorByFirstObjectRawname(DFMgr, selected_ranges);
break;
default: