diff --git a/output/Memory.xml b/output/Memory.xml
index cc3dd1461..791c753a7 100755
--- a/output/Memory.xml
+++ b/output/Memory.xml
@@ -1597,6 +1597,65 @@ map_data_1b60_offset 0x1B9c
0x0 Why do i have to redefine this ???
+
+ 394ff63fc00fedd5df0b36e4beb589bc
+ 0x4c091569
+ 0x1678704 CHMOD
+ 0x014abee4 CHMOD
+ 0x1471FB0 BOGUS!
+
+
+
+
+
+ 0xE80780 LOOKS O.K.
+ 0xEB2878 LOOKS O.K.
+
+ 0x180b10c LOOKS O.K.
+ 0xe6c0dc VERIFIED
+ 0xe9a1b0 VERIFIED
+ 0xe9a18c VERIFIED
+ 0xaf12cc VERIFIED
+
+ 0x0 Why do i have to redefine this ???
+ ... what?
+
.-"""-.
' \
@@ -1734,7 +1793,7 @@ map_data_1b60_offset 0x1B9c
Creature type offsets
=====================
- 0x138
+ 0x60 VERIFIED
0x1A14
0xE0
0xF6
@@ -1758,7 +1817,7 @@ map_data_1b60_offset 0x1B9c
Language tables
===============
- 0x1C
+ 0x1C VERIFIED
Constructions
=============
@@ -1991,14 +2050,14 @@ map_data_1b60_offset 0x1B9c
Map data
========
WORLD + 0x52C60?
-
0x9318D40
+ 0x9318D40 VERIFIED
Map Features
============
WORLD + 0x5487C?
- 0x931A95C
+ 0x931A95C VERIFIED
WORLD + 0x548F4?
- 0x931A9D4
+ 0x931A9D4 VERIFIED
* map size in blocks *
0x9318D54 VERIFIED
@@ -2020,31 +2079,31 @@ map_data_1b60_offset 0x1B9c
* World size * (WORDs)
WORLD + 0x542E0
- 0x931A3C0 old = 0x93243A0
+ 0x931A3C0 VERIFIED
WORLD + 0x542E2
- 0x931A3C2 old = 0x93243A2
+ 0x931A3C2 VERIFIED
WORLD + 0x54894
- 0x931A974 old = 0x9324954
+ 0x931A974 VERIFIED
WORLD + 0x548B8
- 0x931A998 old = 0x9324978
+ 0x931A998 VERIFIED
Materials
=========
soil, stone, metal
inorganics vector
- 0x931ae88
+ 0x931ae88 VERIFIED
wood and plant matter
- 0x931ae94
+ 0x931ae94 VERIFIED
plant matter
- 0x931aea0
+ 0x931aea0 VERIFIED
just wood
- 0x931aeb8
+ 0x931aeb8 VERIFIED
creature types actually used for creatures,
- 0x931af34
+ 0x931af34 VERIFIED
Color descriptors
=================
diff --git a/tools/playground/incrementalsearch.cpp b/tools/playground/incrementalsearch.cpp
index 1c03398d8..8eab76fa8 100644
--- a/tools/playground/incrementalsearch.cpp
+++ b/tools/playground/incrementalsearch.cpp
@@ -218,6 +218,14 @@ bool Incremental ( vector &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 &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 & rang
// inorganics vector
to_filter = filtVectors;
//sf.Find(257 * 4,4,to_filter,vectorLength);
- sf.Find("IRON",4,to_filter, vectorStringFirst);
+ sf.Find("IRON",4,to_filter, vectorString);
+ sf.Find("ONYX",4,to_filter, vectorString);
sf.Find("RAW_ADAMANTINE",4,to_filter, vectorString);
sf.Find("BLOODSTONE",4,to_filter, vectorString);
printFound(to_filter,"inorganics");
@@ -576,7 +585,7 @@ void automatedLangtables(DFHack::Context * DF, vector & rang
vector elephant_first = to_filter;
sf.Find("TOAD",4,toad_first, vectorStringFirst);
sf.Find("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 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: