quote:
Originally posted by flap:
<STRONG>Nice, I see that you really have a bit of knowledge into that field. That's cool !</STRONG>
Thanks. I'm still learning, but it's been fun so far. Unfortunately, I've been having trouble figuring out how to reliably locate the dwarves in memory (right now I just backtrack from a custom name that I set). But looking at your utilities should fix that.
quote:
<STRONG>
http://www.flap.fr/grenier/memorydf.zip
http://www.flap.fr/grenier/missearch_v2-2.zip.
</STRONG>
I tried downloading these, but the zip files keep coming out as corrupt. They're also each only 1572 bytes long.
quote:
<STRONG>
ArtMoney might be more powerfull than Tsearch (but slightly messy)
</STRONG>
I'll have to check it out.
quote:
<STRONG>
About profession update, I have spotted were it is located (much later in the structure you describe, like +1120, or so).
</STRONG>
Interesting. I had assumed that that was stored in a completely different spot in memory. I had found a four byte value at position 248 in the structure that was way too low to be a pointer. Changing it at all would make the dwarf's profession, skills, and labor (but not attributes) disappear. So I had assumed it was an index to somewhere else in memory where that stuff was defined.
Also, another fun thing I found: 00789C1C and 00789C20 are two 4 byte integers that seem to define where the pointer is when you hit 'v', 't', 'k' or similar functions. I haven't tested it a lot to make sure that's always the correct location, but it seems to be right.
I should be able to use that to set up a nice "teleport stuck dwarves" utility. Just position the cursor on top of the stuck dwarves, read the X and Y value, compare it to the X and Y for each dwarf, and move any that match. A number of people on SA have mentioned problems with dwarves getting stuck on magma smelters (and then falling into the magma if the smelter is unbuilt), so that should help out a bit.
[ March 26, 2007: Message edited by: Erasmus Darwin ]