<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ZorbaTHut</id>
	<title>Dwarf Fortress Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ZorbaTHut"/>
	<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php/Special:Contributions/ZorbaTHut"/>
	<updated>2026-05-23T15:41:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking/v0.27.169.33c&amp;diff=29224</id>
		<title>40d:Memory hacking/v0.27.169.33c</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking/v0.27.169.33c&amp;diff=29224"/>
		<updated>2007-11-25T15:37:42Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to format nicely:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
map_data_loc                     == 0145F560&lt;br /&gt;
map_x_count_loc                  == 0145F578&lt;br /&gt;
map_y_count_loc                  == 0145F57C&lt;br /&gt;
map_z_count_loc                  == 0145F580&lt;br /&gt;
dwarven_race_index_loc           == 0123EAC8&lt;br /&gt;
main_creature_vector_loc         == 0141DA30&lt;br /&gt;
another_creature_vector_loc      == 0141DA40&lt;br /&gt;
yet_another_creature_vector_loc  == 0141DA80&lt;br /&gt;
whathe_another_creature_vector_loc == 0141DA10&lt;br /&gt;
current_unit_focus_loc           == 00C36540&lt;br /&gt;
next_creature_id_loc             == 00C0E9EC&lt;br /&gt;
art_defacement_malus_loc         == 007A301F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be advised that creature.happiness_level is now at offset 0x508, implying that a new dword field has been added to the object.&lt;br /&gt;
&lt;br /&gt;
creature.professionlist is now at 0x45c&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8901</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8901"/>
		<updated>2007-11-18T02:03:16Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Dwarf Foreman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications (that were not written by Bay12Games) developed for Dwarf Fortress:&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The compressed '''(.FDF-MAP)''' map can then be submitted to the [http://mkv25.net/dfma/ Dwarf Fortress Map Archive]; an online repository website which uses a Flash based viewer to view the map in your browser. (Read more about the [[User:Markavian#DF_Map_Archive|DF Map Archive]] on Markavian's [User page.)&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.32a): [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=5465reveal.zip reveal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=tileinfo_2.zip tileinfo.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33a):&lt;br /&gt;
&lt;br /&gt;
[http://kisskapsel.se/adjuststart.exe adjuststart.exe] [http://kisskapsel.se/heal.exe heal.exe] [http://kisskapsel.se/reveal.exe reveal.exe]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Current tools ('''v0.27.169.33b'''):&lt;br /&gt;
&lt;br /&gt;
''When the tools are mirrored they'll be linked here.''&lt;br /&gt;
&lt;br /&gt;
'''adjuststart.exe''' Modifies the starting number of dwarves and/or the starting points. Commandline: &amp;lt;tt&amp;gt;adjuststart.exe &amp;lt;dwarves&amp;gt; &amp;lt;points&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''heal.exe''' Heals creature limbs (any creature you can highlight with V basically). You can optionally hurt a creature by specifying -hurt on the command-line arguments.&lt;br /&gt;
&lt;br /&gt;
'''reveal.exe''' Makes as much of the map visible as it can (eg, it can't reveal unallocated map blocks) Run while Dwarf Fortress is running. If you want to reveal the entire map, go to the furthest Z level down you can get to, and designate the entire bottom to be mined, then remove the designation, then run reveal.&lt;br /&gt;
&lt;br /&gt;
'''warp.exe''' Could this possibly be the replacement for teleport.exe? Only Rick knows...&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognise one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complent to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
&lt;br /&gt;
== Enable Magma Buildings ==&lt;br /&gt;
Helper utility for Rick's reveal.exe&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=enable_magma_buildings_33a.zip enable_magma_buildings_33a.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
there is a magma pool or pipe on your map that does not reach the surface.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the patch every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport20.zip teleport20.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.0 for DF 33a.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.&lt;br /&gt;
&lt;br /&gt;
---[[User:Valdemar|Rewall Macro]]&lt;br /&gt;
This AutoHotKey macro lets you rewall much more quickly. For instructions, go to the page above.&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8900</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8900"/>
		<updated>2007-11-18T02:00:06Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Dwarf Foreman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications (that were not written by Bay12Games) developed for Dwarf Fortress:&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The compressed '''(.FDF-MAP)''' map can then be submitted to the [http://mkv25.net/dfma/ Dwarf Fortress Map Archive]; an online repository website which uses a Flash based viewer to view the map in your browser. (Read more about the [[User:Markavian#DF_Map_Archive|DF Map Archive]] on Markavian's [User page.)&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.32a): [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=5465reveal.zip reveal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=tileinfo_2.zip tileinfo.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33a):&lt;br /&gt;
&lt;br /&gt;
[http://kisskapsel.se/adjuststart.exe adjuststart.exe] [http://kisskapsel.se/heal.exe heal.exe] [http://kisskapsel.se/reveal.exe reveal.exe]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Current tools ('''v0.27.169.33b'''):&lt;br /&gt;
&lt;br /&gt;
''When the tools are mirrored they'll be linked here.''&lt;br /&gt;
&lt;br /&gt;
'''adjuststart.exe''' Modifies the starting number of dwarves and/or the starting points. Commandline: &amp;lt;tt&amp;gt;adjuststart.exe &amp;lt;dwarves&amp;gt; &amp;lt;points&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''heal.exe''' Heals creature limbs (any creature you can highlight with V basically). You can optionally hurt a creature by specifying -hurt on the command-line arguments.&lt;br /&gt;
&lt;br /&gt;
'''reveal.exe''' Makes as much of the map visible as it can (eg, it can't reveal unallocated map blocks) Run while Dwarf Fortress is running. If you want to reveal the entire map, go to the furthest Z level down you can get to, and designate the entire bottom to be mined, then remove the designation, then run reveal.&lt;br /&gt;
&lt;br /&gt;
'''warp.exe''' Could this possibly be the replacement for teleport.exe? Only Rick knows...&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognise one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complent to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Enable Magma Buildings ==&lt;br /&gt;
Helper utility for Rick's reveal.exe&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=enable_magma_buildings_33a.zip enable_magma_buildings_33a.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
there is a magma pool or pipe on your map that does not reach the surface.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the patch every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport20.zip teleport20.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.0 for DF 33a.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.&lt;br /&gt;
&lt;br /&gt;
---[[User:Valdemar|Rewall Macro]]&lt;br /&gt;
This AutoHotKey macro lets you rewall much more quickly. For instructions, go to the page above.&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8899</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=8899"/>
		<updated>2007-11-18T01:59:46Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: Update some info about Dwarf Foreman&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications (that were not written by Bay12Games) developed for Dwarf Fortress:&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The compressed '''(.FDF-MAP)''' map can then be submitted to the [http://mkv25.net/dfma/ Dwarf Fortress Map Archive]; an online repository website which uses a Flash based viewer to view the map in your browser. (Read more about the [[User:Markavian#DF_Map_Archive|DF Map Archive]] on Markavian's [User page.)&lt;br /&gt;
&lt;br /&gt;
=== CMVPlayer === &lt;br /&gt;
&lt;br /&gt;
[http://www.geocities.com/jifodus/CMVPlayer.zip Download CMVPlayer.zip] &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
== [[User:Rick|Rick]]'s utilities ==&lt;br /&gt;
Fabulous tools made by the marvelous Rick. All Hail Rick!&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.32a): [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=5465reveal.zip reveal.exe] [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=tileinfo_2.zip tileinfo.exe]&lt;br /&gt;
&lt;br /&gt;
Outdated tools (v0.27.169.33a):&lt;br /&gt;
&lt;br /&gt;
[http://kisskapsel.se/adjuststart.exe adjuststart.exe] [http://kisskapsel.se/heal.exe heal.exe] [http://kisskapsel.se/reveal.exe reveal.exe]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Current tools ('''v0.27.169.33b'''):&lt;br /&gt;
&lt;br /&gt;
''When the tools are mirrored they'll be linked here.''&lt;br /&gt;
&lt;br /&gt;
'''adjuststart.exe''' Modifies the starting number of dwarves and/or the starting points. Commandline: &amp;lt;tt&amp;gt;adjuststart.exe &amp;lt;dwarves&amp;gt; &amp;lt;points&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''heal.exe''' Heals creature limbs (any creature you can highlight with V basically). You can optionally hurt a creature by specifying -hurt on the command-line arguments.&lt;br /&gt;
&lt;br /&gt;
'''reveal.exe''' Makes as much of the map visible as it can (eg, it can't reveal unallocated map blocks) Run while Dwarf Fortress is running. If you want to reveal the entire map, go to the furthest Z level down you can get to, and designate the entire bottom to be mined, then remove the designation, then run reveal.&lt;br /&gt;
&lt;br /&gt;
'''warp.exe''' Could this possibly be the replacement for teleport.exe? Only Rick knows...&lt;br /&gt;
&lt;br /&gt;
== Dwarf Foreman ==&lt;br /&gt;
[http://www.pavlovian.net/foreman/ Home page]. Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognise one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
This handy utility would be an ideal complent to an updated LabourDF.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Enable Magma Buildings ==&lt;br /&gt;
Helper utility for Rick's reveal.exe&lt;br /&gt;
[http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=enable_magma_buildings_33a.zip enable_magma_buildings_33a.zip]&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility, and&lt;br /&gt;
there is a magma pool or pipe on your map that does not reach the surface.&lt;br /&gt;
(If the hide utility is ever updated, you could also hide a few magma&lt;br /&gt;
tiles and then dig them out.  That worked in the old version.)&lt;br /&gt;
&lt;br /&gt;
Because there is no actual flag that controls whether magma has been seen&lt;br /&gt;
(the game searches a list, probably a list of notable events), I had to&lt;br /&gt;
patch the game's code.  This means you need to run the patch every time&lt;br /&gt;
you start dwarfort.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Teleport ==&lt;br /&gt;
[http://angband.org/~erasmus/df/teleport20.zip teleport20.zip] -- Teleport dwarves and other creatures&lt;br /&gt;
&lt;br /&gt;
Version 2.0 for DF 33a.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Macro_%28computer_science%29 Macro Programs] ==&lt;br /&gt;
A program that lets you program scripts/macros so that when you press a certain key combination, or in any other fashion activates the program, a series of keystrokes is sent to the active program instead.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.&lt;br /&gt;
&lt;br /&gt;
---[[User:Valdemar|Rewall Macro]]&lt;br /&gt;
This AutoHotKey macro lets you rewall much more quickly. For instructions, go to the page above.&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking/v0.27.169.33a&amp;diff=20176</id>
		<title>40d:Memory hacking/v0.27.169.33a</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking/v0.27.169.33a&amp;diff=20176"/>
		<updated>2007-11-07T11:09:34Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
== Addresses ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;10%&amp;quot; | Size&lt;br /&gt;
! width=&amp;quot;10%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;40%&amp;quot; | Notes&lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | Offset&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Art defacement malus&lt;br /&gt;
| 4&lt;br /&gt;
| long&lt;br /&gt;
| normally -1000 (18 FC FF FF)&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0079DC2F&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Current unit focus&lt;br /&gt;
| 4&lt;br /&gt;
| long&lt;br /&gt;
| Indexes into the full creature list.&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00C2F548&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Current year&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;code&amp;gt;0x00C34378&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Map menu state&lt;br /&gt;
| 4&lt;br /&gt;
| long&lt;br /&gt;
| The current state of the menu when viewing the map normally in Dwarf Fortress. &amp;lt;code&amp;gt;0x16&amp;lt;/code&amp;gt; when in 'View Units' mode, other values unknown.&lt;br /&gt;
| &amp;lt;code&amp;gt;0x123B65C&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Dwarf race ID&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| As in the race identifier in the [[#Creature Structure|creature structure]].&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01237AD0&amp;lt;/code&amp;gt; (probably)&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Creature vector&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of pointers&lt;br /&gt;
| There are actually multiple creature vectors, but this has all of them.&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01416A38&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Another creature vector&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of pointers&lt;br /&gt;
| This is the creature list that 'Current unit focus' indexes into, unlike previously stated.&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01416A48&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Yet another creature vector&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of pointers&lt;br /&gt;
| This one is used when saving creatures when saving game.&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01416A88&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot; | Offset&lt;br /&gt;
! width=&amp;quot;5%&amp;quot; | Size&lt;br /&gt;
! width=&amp;quot;10%&amp;quot; | Type&lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;55%&amp;quot; | Notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0000&amp;lt;/code&amp;gt;&lt;br /&gt;
| 28&lt;br /&gt;
| [[Memory hacking#String|string]]&lt;br /&gt;
| First name&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x001C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 28&lt;br /&gt;
| [[Memory hacking#String|string]]&lt;br /&gt;
| Nickname&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0038&amp;lt;/code&amp;gt;&lt;br /&gt;
| 28&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Not a string, just a coincidence.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0054&amp;lt;/code&amp;gt;&lt;br /&gt;
| 14&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0064&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0068&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x006A&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| byte&lt;br /&gt;
| &lt;br /&gt;
| Seems to denote wether or not this creature has a custom nickname/profession name? Something like that.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x006C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 28&lt;br /&gt;
| [[Memory hacking#String|string]]&lt;br /&gt;
| Custom profession name&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0088&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| short&lt;br /&gt;
| Type ID #1&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Dwarf types. 0x88 is the original dwarf type, 0x8a is the current dwarf type (I'm told Toady stores the original dwarf type for legends). The key is in the &amp;quot;Type ID&amp;quot; table, woefully incomplete.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x008A&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| short&lt;br /&gt;
| Type ID #2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x008C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| long&lt;br /&gt;
| Creature race&lt;br /&gt;
| &amp;lt;code&amp;gt;0xA6&amp;lt;/code&amp;gt; is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0090&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0092&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0094&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0096&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0098&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x009A&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x009C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x009E&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00A0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00A4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00A8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00AC&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| short&lt;br /&gt;
| X coordinate&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00AE&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| short&lt;br /&gt;
| Y coordinate&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00B0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| short&lt;br /&gt;
| Z coordinate&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00B2&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00B4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00C4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00D4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00E4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| ulong&lt;br /&gt;
| Flags&lt;br /&gt;
| (1 &amp;lt;&amp;lt; 1) Unclear. It is set on dead things. Also, when a merchant caravan arrives, merchants and guards are added to the entity list slightly before they are added to the &amp;quot;u&amp;quot; list - during this period, this bit is set.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00E8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| ulong&lt;br /&gt;
| Flags&lt;br /&gt;
| (1 &amp;lt;&amp;lt; 7) Appears to be whether or not the creature is dead.&lt;br /&gt;
(1 &amp;lt;&amp;lt; 17) if creature is ready for slaughter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00EC&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00EE&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00F0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00F2&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00F8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00FC&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0100&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0104&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0114&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0124&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0134&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0138&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of ...something...&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01C4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01C5&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01C8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01CC&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01D0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01D4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01D6&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01D8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01DC&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01E0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2 + 2 + 2 + 4 + 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Unknown structure.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01F0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01F4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01F8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| short&lt;br /&gt;
| Strange mood&lt;br /&gt;
| 0xFFFF means no mood&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01FA&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01FC&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0200&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0204&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0208&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0210&amp;lt;/code&amp;gt;&lt;br /&gt;
| 36&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0234&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0236&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0288&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of longs&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0298&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x029C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02A8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02AA&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02AC&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02AE&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02B0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02B8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02C8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02D8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02E8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02F8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02FC&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0300&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0304&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of shorts&lt;br /&gt;
| Bodypart Health&lt;br /&gt;
| A list to body part health, the list of ushorts, values range 0 to 15 from what i've seen. 15 being white, 0 being red.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0314&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of longs&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0328&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x032C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0330&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0334&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0338&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x033C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0340&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0344&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0348&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x034C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x034E&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0350&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0352&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0354&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0356&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0358&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x035A&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x035C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 12&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0368&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x036A&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x036C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0370&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0374&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0378&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x037C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0380&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x03A4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x03A8&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x03AC&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x041C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| Strength&lt;br /&gt;
| &lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | Value&lt;br /&gt;
! width=&amp;quot;80%&amp;quot; | Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nothing&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Strong&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Very Strong&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Extremely Strong&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Mighty&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Ultra-Mighty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0420&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Agility&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | Value&lt;br /&gt;
! width=&amp;quot;80%&amp;quot; | Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nothing&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Agile&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Very Agile&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Extremely Agile&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Unbelievably Agile&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Perfectly Agile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0424&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Toughness&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
! width=&amp;quot;20%&amp;quot; | Value&lt;br /&gt;
! width=&amp;quot;80%&amp;quot; | Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Nothing&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Tough&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Very Tough&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Extremely Tough&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Unbelievably Tough&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Superdwarvenly Tough&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x042C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Skill Start Ptr&lt;br /&gt;
| Start of skill list&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0430&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| Skill End Ptr&lt;br /&gt;
| End of skill list&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0458&amp;lt;/code&amp;gt;&lt;br /&gt;
| 102&lt;br /&gt;
| bytes&lt;br /&gt;
| Labor preferences&lt;br /&gt;
| 102 1 byte values, corresponding to the profession list. Mostly bools, with notable exceptions of shieldtype,armortype, and weaponnum. &amp;quot;Weaponnum&amp;quot; may be the number of weapons wielded (i.e. 2 for a dual-wielding character.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x04C0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x04D4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of longs&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0504&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Happiness level&lt;br /&gt;
| 0 = miserable, &amp;gt;149 = ecstatic&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0508&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x054C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0550&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0554&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0558&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x055C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of longs&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x056C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of longs&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x057C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 16&lt;br /&gt;
| [[Memory hacking#Vector|vector]] of longs&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x058C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0590&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0592&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0594&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0596&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0598&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x059A&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x059C&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x05B0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x05B4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 60&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x05F0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x05F4&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2598</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2598"/>
		<updated>2007-11-07T11:01:32Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Vector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Versions ==&lt;br /&gt;
See the following subpages for version specific information&lt;br /&gt;
&lt;br /&gt;
* [[Memory hacking/v0.27.169.33a|v0.27.169.33a]]&lt;br /&gt;
&lt;br /&gt;
== Data Types ==&lt;br /&gt;
=== String ===&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || Junk || Junk data that exists due to a curious artifact in the C++ standard. Technically it's the allocator - in reality, the default allocator has no data associated with it.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the second two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
=== Vector ===&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || Junk || Junk data that exists due to a curious artifact in the C++ standard. Technically it's the allocator - in reality, the default allocator has no data associated with it.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 4 || Array start&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 4 || Array end || (End - Start)/4 = # of elements (if pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 4 || Array current?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Most likely incomplete, but this was all that could be found so far.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt; || Miner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt; || Woodworker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02&amp;lt;/code&amp;gt; || Carpenter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x03&amp;lt;/code&amp;gt; || Bowyer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt; || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x05&amp;lt;/code&amp;gt; || Stoneworker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x06&amp;lt;/code&amp;gt; || Engraver&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x07&amp;lt;/code&amp;gt; || Mason&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt; || Ranger&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x09&amp;lt;/code&amp;gt; || Animal Caretaker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0A&amp;lt;/code&amp;gt; || Animal Trainer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0B&amp;lt;/code&amp;gt; || Hunter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0C&amp;lt;/code&amp;gt; || Trapper&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0D&amp;lt;/code&amp;gt; || Animal Dissector&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0E&amp;lt;/code&amp;gt; || Metalsmith&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0F&amp;lt;/code&amp;gt; || Furnace Operator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt; || Weaponsmith&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x11&amp;lt;/code&amp;gt; || Armorer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x12&amp;lt;/code&amp;gt; || Blacksmith&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x13&amp;lt;/code&amp;gt; || Metalcrafter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt; || Jeweler&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x15&amp;lt;/code&amp;gt; || Gem Cutter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x16&amp;lt;/code&amp;gt; || Gem Setter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x17&amp;lt;/code&amp;gt; || Craftsman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt; || Woodcrafter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x19&amp;lt;/code&amp;gt; || Stonecrafter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1A&amp;lt;/code&amp;gt; || Leatherworker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1B&amp;lt;/code&amp;gt; || Bone Carver&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1C&amp;lt;/code&amp;gt; || Weaver&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1D&amp;lt;/code&amp;gt; || Clothier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1E&amp;lt;/code&amp;gt; || Glassmaker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1F&amp;lt;/code&amp;gt; || Strand Extractor&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt; || Queen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x21&amp;lt;/code&amp;gt; || Queen Consort&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x22&amp;lt;/code&amp;gt; || Fishery Worker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x23&amp;lt;/code&amp;gt; || Fisherman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt; || Fish Dissector&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x25&amp;lt;/code&amp;gt; || Fish Cleaner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x26&amp;lt;/code&amp;gt; || Farmer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x27&amp;lt;/code&amp;gt; || Cheese Maker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt; || Milker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x29&amp;lt;/code&amp;gt; || Cook&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2A&amp;lt;/code&amp;gt; || Thresher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2B&amp;lt;/code&amp;gt; || Miller&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2C&amp;lt;/code&amp;gt; || Butcher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2D&amp;lt;/code&amp;gt; || Tanner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2E&amp;lt;/code&amp;gt; || Dyer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2F&amp;lt;/code&amp;gt; || Planter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x30&amp;lt;/code&amp;gt; || Herbalist&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x31&amp;lt;/code&amp;gt; || Brewer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x32&amp;lt;/code&amp;gt; || Soap Maker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x33&amp;lt;/code&amp;gt; || Potash Maker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x34&amp;lt;/code&amp;gt; || Lye Maker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x35&amp;lt;/code&amp;gt; || Wood Burner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x36&amp;lt;/code&amp;gt; || Engineer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x37&amp;lt;/code&amp;gt; || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x38&amp;lt;/code&amp;gt; || Seige Engineer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x39&amp;lt;/code&amp;gt; || Seige Operator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3A&amp;lt;/code&amp;gt; || Pump Operator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3B&amp;lt;/code&amp;gt; || Clerk&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3C&amp;lt;/code&amp;gt; || Administrator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3D&amp;lt;/code&amp;gt; || Trader&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3E&amp;lt;/code&amp;gt; || Architect&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3F&amp;lt;/code&amp;gt; || Alchemist&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x40&amp;lt;/code&amp;gt; || Tax Collector&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x41&amp;lt;/code&amp;gt; || Hammerer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x42&amp;lt;/code&amp;gt; || Baroness&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x43&amp;lt;/code&amp;gt; || Countess&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x44&amp;lt;/code&amp;gt; || Duchess&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x45&amp;lt;/code&amp;gt; || Baroness Consort&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x46&amp;lt;/code&amp;gt; || Countess Consort&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x47&amp;lt;/code&amp;gt; || Duchness Consort&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x48&amp;lt;/code&amp;gt; || Philosopher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x49&amp;lt;/code&amp;gt; || Advisor&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4A&amp;lt;/code&amp;gt; || Dungeon Master&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4B&amp;lt;/code&amp;gt; || Merchant&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4C&amp;lt;/code&amp;gt; || Diplomat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4D&amp;lt;/code&amp;gt; || Guild Representative&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4E&amp;lt;/code&amp;gt; || Merchant Baroness&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4F&amp;lt;/code&amp;gt; || Merchant Princes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x50&amp;lt;/code&amp;gt; || Outpose Liason&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x51&amp;lt;/code&amp;gt; || Druid&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x52&amp;lt;/code&amp;gt; || Champion&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x53&amp;lt;/code&amp;gt; || Hammerman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x54&amp;lt;/code&amp;gt; || Hammer Lord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x55&amp;lt;/code&amp;gt; || Spearman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x56&amp;lt;/code&amp;gt; || Spearmaster&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x57&amp;lt;/code&amp;gt; || Crossbowman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x58&amp;lt;/code&amp;gt; || Elite Crossbowman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x59&amp;lt;/code&amp;gt; || Wrestler&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5A&amp;lt;/code&amp;gt; || Elite Wrestler&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5B&amp;lt;/code&amp;gt; || Axeman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5C&amp;lt;/code&amp;gt; || Axe Lord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5D&amp;lt;/code&amp;gt; || Swordsman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5E&amp;lt;/code&amp;gt; || Swordmaster&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5F&amp;lt;/code&amp;gt; || Maceman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x60&amp;lt;/code&amp;gt; || Mace Lord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x61&amp;lt;/code&amp;gt; || Pikeman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x62&amp;lt;/code&amp;gt; || Pikemaster&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x63&amp;lt;/code&amp;gt; || Bowman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x64&amp;lt;/code&amp;gt; || Elite Bowman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x65&amp;lt;/code&amp;gt; || Blowgunner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x66&amp;lt;/code&amp;gt; || Elite Blowgunner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x67&amp;lt;/code&amp;gt; || Recruit&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x68&amp;lt;/code&amp;gt; || Hunting creature&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x69&amp;lt;/code&amp;gt; || War creature&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6A&amp;lt;/code&amp;gt; || Master Thief&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6B&amp;lt;/code&amp;gt; || Thief&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6C&amp;lt;/code&amp;gt; || Peasant or creature&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6D&amp;lt;/code&amp;gt; || Child&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6E&amp;lt;/code&amp;gt; || Baby&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6F&amp;lt;/code&amp;gt; || Drunk&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x70&amp;lt;/code&amp;gt; || Lasher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x71&amp;lt;/code&amp;gt; || Master Lasher&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2597</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2597"/>
		<updated>2007-11-07T10:59:41Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Versions ==&lt;br /&gt;
See the following subpages for version specific information&lt;br /&gt;
&lt;br /&gt;
* [[Memory hacking/v0.27.169.33a|v0.27.169.33a]]&lt;br /&gt;
&lt;br /&gt;
== Data Types ==&lt;br /&gt;
=== String ===&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || Junk || Junk data that exists due to a curious artifact in the C++ standard. Technically it's the allocator - in reality, the default allocator has no data associated with it.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the second two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
=== Vector ===&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || || Unknown, always 0?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 4 || Array start&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 4 || Array end || (End - Start)/4 = # of elements (if pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 4 || Array current?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Most likely incomplete, but this was all that could be found so far.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt; || Miner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt; || Woodworker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02&amp;lt;/code&amp;gt; || Carpenter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x03&amp;lt;/code&amp;gt; || Bowyer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt; || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x05&amp;lt;/code&amp;gt; || Stoneworker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x06&amp;lt;/code&amp;gt; || Engraver&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x07&amp;lt;/code&amp;gt; || Mason&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt; || Ranger&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x09&amp;lt;/code&amp;gt; || Animal Caretaker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0A&amp;lt;/code&amp;gt; || Animal Trainer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0B&amp;lt;/code&amp;gt; || Hunter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0C&amp;lt;/code&amp;gt; || Trapper&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0D&amp;lt;/code&amp;gt; || Animal Dissector&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0E&amp;lt;/code&amp;gt; || Metalsmith&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x0F&amp;lt;/code&amp;gt; || Furnace Operator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt; || Weaponsmith&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x11&amp;lt;/code&amp;gt; || Armorer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x12&amp;lt;/code&amp;gt; || Blacksmith&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x13&amp;lt;/code&amp;gt; || Metalcrafter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt; || Jeweler&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x15&amp;lt;/code&amp;gt; || Gem Cutter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x16&amp;lt;/code&amp;gt; || Gem Setter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x17&amp;lt;/code&amp;gt; || Craftsman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt; || Woodcrafter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x19&amp;lt;/code&amp;gt; || Stonecrafter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1A&amp;lt;/code&amp;gt; || Leatherworker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1B&amp;lt;/code&amp;gt; || Bone Carver&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1C&amp;lt;/code&amp;gt; || Weaver&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1D&amp;lt;/code&amp;gt; || Clothier&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1E&amp;lt;/code&amp;gt; || Glassmaker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x1F&amp;lt;/code&amp;gt; || Strand Extractor&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt; || Queen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x21&amp;lt;/code&amp;gt; || Queen Consort&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x22&amp;lt;/code&amp;gt; || Fishery Worker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x23&amp;lt;/code&amp;gt; || Fisherman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt; || Fish Dissector&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x25&amp;lt;/code&amp;gt; || Fish Cleaner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x26&amp;lt;/code&amp;gt; || Farmer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x27&amp;lt;/code&amp;gt; || Cheese Maker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt; || Milker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x29&amp;lt;/code&amp;gt; || Cook&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2A&amp;lt;/code&amp;gt; || Thresher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2B&amp;lt;/code&amp;gt; || Miller&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2C&amp;lt;/code&amp;gt; || Butcher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2D&amp;lt;/code&amp;gt; || Tanner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2E&amp;lt;/code&amp;gt; || Dyer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x2F&amp;lt;/code&amp;gt; || Planter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x30&amp;lt;/code&amp;gt; || Herbalist&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x31&amp;lt;/code&amp;gt; || Brewer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x32&amp;lt;/code&amp;gt; || Soap Maker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x33&amp;lt;/code&amp;gt; || Potash Maker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x34&amp;lt;/code&amp;gt; || Lye Maker&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x35&amp;lt;/code&amp;gt; || Wood Burner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x36&amp;lt;/code&amp;gt; || Engineer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x37&amp;lt;/code&amp;gt; || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x38&amp;lt;/code&amp;gt; || Seige Engineer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x39&amp;lt;/code&amp;gt; || Seige Operator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3A&amp;lt;/code&amp;gt; || Pump Operator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3B&amp;lt;/code&amp;gt; || Clerk&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3C&amp;lt;/code&amp;gt; || Administrator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3D&amp;lt;/code&amp;gt; || Trader&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3E&amp;lt;/code&amp;gt; || Architect&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x3F&amp;lt;/code&amp;gt; || Alchemist&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x40&amp;lt;/code&amp;gt; || Tax Collector&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x41&amp;lt;/code&amp;gt; || Hammerer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x42&amp;lt;/code&amp;gt; || Baroness&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x43&amp;lt;/code&amp;gt; || Countess&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x44&amp;lt;/code&amp;gt; || Duchess&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x45&amp;lt;/code&amp;gt; || Baroness Consort&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x46&amp;lt;/code&amp;gt; || Countess Consort&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x47&amp;lt;/code&amp;gt; || Duchness Consort&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x48&amp;lt;/code&amp;gt; || Philosopher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x49&amp;lt;/code&amp;gt; || Advisor&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4A&amp;lt;/code&amp;gt; || Dungeon Master&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4B&amp;lt;/code&amp;gt; || Merchant&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4C&amp;lt;/code&amp;gt; || Diplomat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4D&amp;lt;/code&amp;gt; || Guild Representative&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4E&amp;lt;/code&amp;gt; || Merchant Baroness&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x4F&amp;lt;/code&amp;gt; || Merchant Princes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x50&amp;lt;/code&amp;gt; || Outpose Liason&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x51&amp;lt;/code&amp;gt; || Druid&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x52&amp;lt;/code&amp;gt; || Champion&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x53&amp;lt;/code&amp;gt; || Hammerman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x54&amp;lt;/code&amp;gt; || Hammer Lord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x55&amp;lt;/code&amp;gt; || Spearman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x56&amp;lt;/code&amp;gt; || Spearmaster&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x57&amp;lt;/code&amp;gt; || Crossbowman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x58&amp;lt;/code&amp;gt; || Elite Crossbowman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x59&amp;lt;/code&amp;gt; || Wrestler&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5A&amp;lt;/code&amp;gt; || Elite Wrestler&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5B&amp;lt;/code&amp;gt; || Axeman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5C&amp;lt;/code&amp;gt; || Axe Lord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5D&amp;lt;/code&amp;gt; || Swordsman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5E&amp;lt;/code&amp;gt; || Swordmaster&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x5F&amp;lt;/code&amp;gt; || Maceman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x60&amp;lt;/code&amp;gt; || Mace Lord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x61&amp;lt;/code&amp;gt; || Pikeman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x62&amp;lt;/code&amp;gt; || Pikemaster&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x63&amp;lt;/code&amp;gt; || Bowman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x64&amp;lt;/code&amp;gt; || Elite Bowman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x65&amp;lt;/code&amp;gt; || Blowgunner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x66&amp;lt;/code&amp;gt; || Elite Blowgunner&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x67&amp;lt;/code&amp;gt; || Recruit&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x68&amp;lt;/code&amp;gt; || Hunting creature&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x69&amp;lt;/code&amp;gt; || War creature&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6A&amp;lt;/code&amp;gt; || Master Thief&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6B&amp;lt;/code&amp;gt; || Thief&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6C&amp;lt;/code&amp;gt; || Peasant or creature&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6D&amp;lt;/code&amp;gt; || Child&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6E&amp;lt;/code&amp;gt; || Baby&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x6F&amp;lt;/code&amp;gt; || Drunk&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x70&amp;lt;/code&amp;gt; || Lasher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x71&amp;lt;/code&amp;gt; || Master Lasher&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2589</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2589"/>
		<updated>2007-11-03T10:58:31Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Vector format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || vtable || (not useful)&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || Array start&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || Array end || (End - Start)/4 = # of elements&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attention! ==&lt;br /&gt;
We need to be very clear about what version(s) these addresses apply to.  Please list version numbers along with addresses.&lt;br /&gt;
&lt;br /&gt;
== Addresses for 27.169.33a ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Notes&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Address&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | '''Useful Variables'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Art defacement malus&lt;br /&gt;
| normally -1000 (18 FC FF FF)&lt;br /&gt;
| 0079DC2F&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Current Year&lt;br /&gt;
| &lt;br /&gt;
| 00C34378&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Dwarf Race ID&lt;br /&gt;
| As in the race identifier in the [[#Creature Structure]]&lt;br /&gt;
| 01237AD0 (probably)&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Creature Vector&lt;br /&gt;
|&lt;br /&gt;
| 01416A48 (probably)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
Appears to be still valid in version 27.169.33a (keep this updated when things don't seem to shift around)&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;| Dwarf types. 0x88 is the original dwarf type, 0x8a is the current dwarf type (I'm told Toady stores the original dwarf type for legends). The key is in the &amp;quot;Type ID&amp;quot; table, woefully incomplete.&lt;br /&gt;
|-&lt;br /&gt;
|0x8a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x8C || 4 || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
|-&lt;br /&gt;
|0xe4 || 4 || Flags || (1 &amp;lt;&amp;lt; 1) Unclear. It is set on dead things. Also, when a merchant caravan arrives, merchants and guards are added to the entity list slightly before they are added to the &amp;quot;u&amp;quot; list - during this period, this bit is set.&lt;br /&gt;
|-&lt;br /&gt;
|0xe8 || 4 || Flags || (1 &amp;lt;&amp;lt; 7) Appears to be whether or not the creature is dead.&lt;br /&gt;
(1 &amp;lt;&amp;lt; 17) if creature is ready for slaughter&lt;br /&gt;
|-&lt;br /&gt;
|0x1F8 || 2 || Strange mood || 0xFFFF means no mood&lt;br /&gt;
|-&lt;br /&gt;
|0x41C || 4 || Strength || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x420 || 4 || Agility || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x424 || 4 || Toughness || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x42C || 4 || Skill Start Ptr || Start of skill list&lt;br /&gt;
|-&lt;br /&gt;
|0x430 || 4 || Skill End Ptr || End of skill list&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 102 || Labor preferences || 102 1 byte values, corresponding to the profession list. Mostly bools, with notable exceptions of shieldtype,armortype, and weaponnum. I have No idea what the last one means.&lt;br /&gt;
|-&lt;br /&gt;
|0x504 || 4 || Happiness level || 0 = miserable, &amp;gt;149 = ecstatic&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Peasant or creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2588</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2588"/>
		<updated>2007-11-03T08:09:56Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Vector format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || vtable || (not useful)&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || Array start&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || Array end || (End - Start)/4 = # of elements&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attention! ==&lt;br /&gt;
We need to be very clear about what version(s) these addresses apply to.  Please list version numbers along with addresses.&lt;br /&gt;
&lt;br /&gt;
== Addresses for 27.169.33a ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Notes&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Address&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | '''Useful Variables'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Art defacement malus&lt;br /&gt;
| normally -1000 (18 FC FF FF)&lt;br /&gt;
| 0079DC2F&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Current Year&lt;br /&gt;
| &lt;br /&gt;
| 00C34378&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Dwarf Race ID&lt;br /&gt;
| As in the race identifier in the [[#Creature Structure]]&lt;br /&gt;
| 01237AD0 (probably)&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Creature Vector&lt;br /&gt;
|&lt;br /&gt;
| 01416A48 (probably)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
Appears to be still valid in version 27.169.33a (keep this updated when things don't seem to shift around)&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;| Dwarf types. 0x88 is the original dwarf type, 0x8a is the current dwarf type (I'm told Toady stores the original dwarf type for legends). The key is in the &amp;quot;Type ID&amp;quot; table, woefully incomplete.&lt;br /&gt;
|-&lt;br /&gt;
|0x8a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x8C || 4 || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
|-&lt;br /&gt;
|0xe4 || 4 || Flags || (1 &amp;lt;&amp;lt; 1) if creature is dead (redundant?)&lt;br /&gt;
|-&lt;br /&gt;
|0xe8 || 4 || Flags || (1 &amp;lt;&amp;lt; 7) if creature is dead (redundant?)&lt;br /&gt;
(1 &amp;lt;&amp;lt; 17) if creature is ready for slaughter&lt;br /&gt;
|-&lt;br /&gt;
|0x1F8 || 2 || Strange mood || 0xFFFF means no mood&lt;br /&gt;
|-&lt;br /&gt;
|0x41C || 4 || Strength || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x420 || 4 || Agility || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x424 || 4 || Toughness || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x42C || 4 || Skill Start Ptr || Start of skill list&lt;br /&gt;
|-&lt;br /&gt;
|0x430 || 4 || Skill End Ptr || End of skill list&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 102 || Labor preferences || 102 1 byte values, corresponding to the profession list. Mostly bools, with notable exceptions of shieldtype,armortype, and weaponnum. I have No idea what the last one means.&lt;br /&gt;
|-&lt;br /&gt;
|0x504 || 4 || Happiness level || 0 = miserable, &amp;gt;149 = ecstatic&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Peasant or creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2587</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2587"/>
		<updated>2007-11-03T08:09:02Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Type ID list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Vector format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || vtable || (not useful)&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || Array start&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || Array end || (End - Start)/4 = # of elements&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attention! ==&lt;br /&gt;
We need to be very clear about what version(s) these addresses apply to.  Please list version numbers along with addresses.&lt;br /&gt;
&lt;br /&gt;
== Addresses for 27.169.33a ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Notes&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Address&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | '''Useful Variables'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Art defacement malus&lt;br /&gt;
| normally -1000 (18 FC FF FF)&lt;br /&gt;
| 0079DC2F&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Current Year&lt;br /&gt;
| &lt;br /&gt;
| 00C34378&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Dwarf Race ID&lt;br /&gt;
| As in the race identifier in the [[#Creature Structure]]&lt;br /&gt;
| 01237AD0 (probably)&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Creature Vector&lt;br /&gt;
|&lt;br /&gt;
| 01416A48 (probably)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
In version {fill this in please}&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;| Dwarf types. 0x88 is the original dwarf type, 0x8a is the current dwarf type (I'm told Toady stores the original dwarf type for legends). The key is in the &amp;quot;Type ID&amp;quot; table, woefully incomplete.&lt;br /&gt;
|-&lt;br /&gt;
|0x8a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x8C || 4 || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
|-&lt;br /&gt;
|0xe4 || 4 || Flags || (1 &amp;lt;&amp;lt; 1) if creature is dead (redundant?)&lt;br /&gt;
|-&lt;br /&gt;
|0xe8 || 4 || Flags || (1 &amp;lt;&amp;lt; 7) if creature is dead (redundant?)&lt;br /&gt;
(1 &amp;lt;&amp;lt; 17) if creature is ready for slaughter&lt;br /&gt;
|-&lt;br /&gt;
|0x1F8 || 2 || Strange mood || 0xFFFF means no mood&lt;br /&gt;
|-&lt;br /&gt;
|0x41C || 4 || Strength || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x420 || 4 || Agility || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x424 || 4 || Toughness || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x42C || 4 || Skill Start Ptr || Start of skill list&lt;br /&gt;
|-&lt;br /&gt;
|0x430 || 4 || Skill End Ptr || End of skill list&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 102 || Labor preferences || 102 1 byte values, corresponding to the profession list. Mostly bools, with notable exceptions of shieldtype,armortype, and weaponnum. I have No idea what the last one means.&lt;br /&gt;
|-&lt;br /&gt;
|0x504 || 4 || Happiness level || 0 = miserable, &amp;gt;149 = ecstatic&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Peasant or creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2586</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2586"/>
		<updated>2007-11-03T08:05:54Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Vector format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || vtable || (not useful)&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || Array start&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || Array end || (End - Start)/4 = # of elements&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Attention! ==&lt;br /&gt;
We need to be very clear about what version(s) these addresses apply to.  Please list version numbers along with addresses.&lt;br /&gt;
&lt;br /&gt;
== Addresses for 27.169.33a ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Name&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; | Notes&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Address&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | '''Useful Variables'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Art defacement malus&lt;br /&gt;
| normally -1000 (18 FC FF FF)&lt;br /&gt;
| 0079DC2F&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Current Year&lt;br /&gt;
| &lt;br /&gt;
| 00C34378&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Dwarf Race ID&lt;br /&gt;
| As in the race identifier in the [[#Creature Structure]]&lt;br /&gt;
| 01237AD0 (probably)&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
| Creature Vector&lt;br /&gt;
|&lt;br /&gt;
| 01416A48 (probably)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
In version {fill this in please}&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;| Dwarf types. 0x88 is the original dwarf type, 0x8a is the current dwarf type (I'm told Toady stores the original dwarf type for legends). The key is in the &amp;quot;Type ID&amp;quot; table, woefully incomplete.&lt;br /&gt;
|-&lt;br /&gt;
|0x8a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x8C || 4 || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
|-&lt;br /&gt;
|0xe4 || 4 || Flags || (1 &amp;lt;&amp;lt; 1) if creature is dead (redundant?)&lt;br /&gt;
|-&lt;br /&gt;
|0xe8 || 4 || Flags || (1 &amp;lt;&amp;lt; 7) if creature is dead (redundant?)&lt;br /&gt;
(1 &amp;lt;&amp;lt; 17) if creature is ready for slaughter&lt;br /&gt;
|-&lt;br /&gt;
|0x1F8 || 2 || Strange mood || 0xFFFF means no mood&lt;br /&gt;
|-&lt;br /&gt;
|0x41C || 4 || Strength || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x420 || 4 || Agility || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x424 || 4 || Toughness || 0 to 5&lt;br /&gt;
|-&lt;br /&gt;
|0x42C || 4 || Skill Start Ptr || Start of skill list&lt;br /&gt;
|-&lt;br /&gt;
|0x430 || 4 || Skill End Ptr || End of skill list&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 102 || Labor preferences || 102 1 byte values, corresponding to the profession list. Mostly bools, with notable exceptions of shieldtype,armortype, and weaponnum. I have No idea what the last one means.&lt;br /&gt;
|-&lt;br /&gt;
|0x504 || 4 || Happiness level || 0 = miserable, &amp;gt;149 = ecstatic&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2578</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2578"/>
		<updated>2007-10-30T05:06:30Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;|These two are wild guesses - I believe they are dwarf types. They appear to be duplicated (I'm told Toady stores the original dwarf type for legends) and I don't know which is the &amp;quot;old&amp;quot; and which is the &amp;quot;new&amp;quot;. I've entered the values I've found in the Type ID table below.  #2 is the current type.&lt;br /&gt;
|-&lt;br /&gt;
|0x8a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x8C || 4 || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
|-&lt;br /&gt;
|0xe4 || 4 || Flags || (1 &amp;lt;&amp;lt; 1) if creature is dead (redundant?)&lt;br /&gt;
|-&lt;br /&gt;
|0xe8 || 4 || Flags || (1 &amp;lt;&amp;lt; 7) if creature is dead (redundant?)&lt;br /&gt;
(1 &amp;lt;&amp;lt; 17) if creature is ready for slaughter&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 102 || Labor preferences || 102 1 byte bools, corresponding to the profession list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2577</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2577"/>
		<updated>2007-10-30T05:06:23Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;|These two are wild guesses - I believe they are dwarf types. They appear to be duplicated (I'm told Toady stores the original dwarf type for legends) and I don't know which is the &amp;quot;old&amp;quot; and which is the &amp;quot;new&amp;quot;. I've entered the values I've found in the Type ID table below.  #2 is the current type.&lt;br /&gt;
|-&lt;br /&gt;
|0x8a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x8C || 4 || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
|-&lt;br /&gt;
|0xe4 || 4 || Flags || (1 &amp;lt;&amp;lt; 1) if creature is dead (redundant?)&lt;br /&gt;
|-&lt;br /&gt;
|0xe8 || 4 || Flags || (1 &amp;lt;&amp;lt; 7) if creature is dead (redundant?)&lt;br /&gt;
(1 &amp;lt;&amp;lt; 17) if creature is ready for slaughter&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 104 || Labor preferences || 102 1 byte bools, corresponding to the profession list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2576</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2576"/>
		<updated>2007-10-30T04:35:13Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;|These two are wild guesses - I believe they are dwarf types. They appear to be duplicated (I'm told Toady stores the original dwarf type for legends) and I don't know which is the &amp;quot;old&amp;quot; and which is the &amp;quot;new&amp;quot;. I've entered the values I've found in the Type ID table below.  #2 is the current type.&lt;br /&gt;
|-&lt;br /&gt;
|0x8a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x8C || 4 || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
|-&lt;br /&gt;
|0xe4 || 4 || Flags || (1 &amp;lt;&amp;lt; 1) if creature is dead (redundant?)&lt;br /&gt;
|-&lt;br /&gt;
|0xe8 || 4 || Flags || (1 &amp;lt;&amp;lt; 7) if creature is dead (redundant?)&lt;br /&gt;
(1 &amp;lt;&amp;lt; 17) if creature is ready for slaughter&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 104 || Labor preferences || 104 1 byte bools, corresponding to the profession list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2575</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2575"/>
		<updated>2007-10-30T04:34:45Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;|These two are wild guesses - I believe they are dwarf types. They appear to be duplicated (I'm told Toady stores the original dwarf type for legends) and I don't know which is the &amp;quot;old&amp;quot; and which is the &amp;quot;new&amp;quot;. I've entered the values I've found in the Type ID table below.  #2 is the current type.&lt;br /&gt;
|-&lt;br /&gt;
|0x8a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x8C || 4 || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
|-&lt;br /&gt;
|0xe4 || 4 || Flags || (1 &amp;lt;&amp;lt; 1) if creature is dead&lt;br /&gt;
|-&lt;br /&gt;
|0xe8 || 4 || Flags || (1 &amp;lt;&amp;lt; 7) if creature is dead&lt;br /&gt;
(1 &amp;lt;&amp;lt; 17) if creature is ready for slaughter&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 104 || Labor preferences || 104 1 byte bools, corresponding to the profession list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2574</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2574"/>
		<updated>2007-10-30T04:30:32Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;|These two are wild guesses - I believe they are dwarf types. They appear to be duplicated (I'm told Toady stores the original dwarf type for legends) and I don't know which is the &amp;quot;old&amp;quot; and which is the &amp;quot;new&amp;quot;. I've entered the values I've found in the Type ID table below.  #2 is the current type.&lt;br /&gt;
|-&lt;br /&gt;
|0x8a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x8C || 4 || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)&lt;br /&gt;
|-&lt;br /&gt;
|0xe4 || 4 || Flags || (1 &amp;lt;&amp;lt; 1) if creature is dead&lt;br /&gt;
|-&lt;br /&gt;
|0xe8 || 4 || Flags || (1 &amp;lt;&amp;lt; 7) if creature is dead&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 104 || Labor preferences || 104 1 byte bools, corresponding to the profession list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2571</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2571"/>
		<updated>2007-10-30T03:56:56Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;|These two are wild guesses - I believe they are dwarf types. They appear to be duplicated (I'm told Toady stores the original dwarf type for legends) and I don't know which is the &amp;quot;old&amp;quot; and which is the &amp;quot;new&amp;quot;. I've entered the values I've found in the Type ID table below. I may be completely wrong.&lt;br /&gt;
|-&lt;br /&gt;
|0x9a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 104 || Labor preferences || 104 1 byte bools, corresponding to the profession list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type ID list ==&lt;br /&gt;
&lt;br /&gt;
Hideously incomplete and may be completely wrong.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| ID || Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || Miner&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || Woodcutter&lt;br /&gt;
|-&lt;br /&gt;
|0x2f || Planter&lt;br /&gt;
|-&lt;br /&gt;
|0x29 || Cook&lt;br /&gt;
|-&lt;br /&gt;
|0x31 || Brewer&lt;br /&gt;
|-&lt;br /&gt;
|0x37 || Mechanic&lt;br /&gt;
|-&lt;br /&gt;
|0x3e || Architect&lt;br /&gt;
|-&lt;br /&gt;
|0x6c || Creature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Profession list ==&lt;br /&gt;
&lt;br /&gt;
Obviously could do with some formatting.&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2570</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2570"/>
		<updated>2007-10-30T03:53:48Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x88 || 2 || Type ID #1 || rowspan=&amp;quot;2&amp;quot;|These two are wild guesses - I believe they are dwarf types. They appear to be duplicated (I'm told Toady stores the original dwarf type for legends) and I don't know which is the &amp;quot;old&amp;quot; and which is the &amp;quot;new&amp;quot;. I've entered the values I've found in the Type ID table below. I may be completely wrong.&lt;br /&gt;
|-&lt;br /&gt;
|0x9a || 2 || Type ID #2&lt;br /&gt;
|-&lt;br /&gt;
|0x458 || 104 || Labor preferences || 104 1 byte bools, corresponding to the profession list.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Working notes ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I'm currently trying to figure out the internal representation of the new Dwarf Fortress. I'm putting notes here so if someone else wants to start, they can collaborate instead of duplicating efforts.&lt;br /&gt;
&lt;br /&gt;
Toady has said that the address to the active-creature vector seems to be 0x01415A00. This is indeed a vector, I haven't verified if it's the right one.&lt;br /&gt;
&lt;br /&gt;
Toady's also using MSVC Express. He tends to use vectors and standard strings. MSVC's string is *weird* and I haven't deciphered it yet.&lt;br /&gt;
&lt;br /&gt;
Updates as I figure things out. [[User:ZorbaTHut|ZorbaTHut]] 22:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
Toady is awesome and has sent me the following table:&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:ZorbaTHut|ZorbaTHut]] 22:22, 29 October 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2568</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2568"/>
		<updated>2007-10-30T03:37:17Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name || See above string format&lt;br /&gt;
|-&lt;br /&gt;
|0x8c || 4 || Type ID ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Working notes ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I'm currently trying to figure out the internal representation of the new Dwarf Fortress. I'm putting notes here so if someone else wants to start, they can collaborate instead of duplicating efforts.&lt;br /&gt;
&lt;br /&gt;
Toady has said that the address to the active-creature vector seems to be 0x01415A00. This is indeed a vector, I haven't verified if it's the right one.&lt;br /&gt;
&lt;br /&gt;
Toady's also using MSVC Express. He tends to use vectors and standard strings. MSVC's string is *weird* and I haven't deciphered it yet.&lt;br /&gt;
&lt;br /&gt;
Updates as I figure things out. [[User:ZorbaTHut|ZorbaTHut]] 22:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
Toady is awesome and has sent me the following table:&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:ZorbaTHut|ZorbaTHut]] 22:22, 29 October 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2567</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2567"/>
		<updated>2007-10-30T03:36:52Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== New string format ==&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name ||&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name ||&lt;br /&gt;
|-&lt;br /&gt;
|0x8c || 4 || Type ID ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Working notes ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I'm currently trying to figure out the internal representation of the new Dwarf Fortress. I'm putting notes here so if someone else wants to start, they can collaborate instead of duplicating efforts.&lt;br /&gt;
&lt;br /&gt;
Toady has said that the address to the active-creature vector seems to be 0x01415A00. This is indeed a vector, I haven't verified if it's the right one.&lt;br /&gt;
&lt;br /&gt;
Toady's also using MSVC Express. He tends to use vectors and standard strings. MSVC's string is *weird* and I haven't deciphered it yet.&lt;br /&gt;
&lt;br /&gt;
Updates as I figure things out. [[User:ZorbaTHut|ZorbaTHut]] 22:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
Toady is awesome and has sent me the following table:&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:ZorbaTHut|ZorbaTHut]] 22:22, 29 October 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2566</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2566"/>
		<updated>2007-10-30T03:36:08Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: /* Creature Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dwarf Fortress new string format:&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I'm currently trying to figure out the internal representation of the new Dwarf Fortress. I'm putting notes here so if someone else wants to start, they can collaborate instead of duplicating efforts.&lt;br /&gt;
&lt;br /&gt;
Toady has said that the address to the active-creature vector seems to be 0x01415A00. This is indeed a vector, I haven't verified if it's the right one.&lt;br /&gt;
&lt;br /&gt;
Toady's also using MSVC Express. He tends to use vectors and standard strings. MSVC's string is *weird* and I haven't deciphered it yet.&lt;br /&gt;
&lt;br /&gt;
Updates as I figure things out. [[User:ZorbaTHut|ZorbaTHut]] 22:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
Toady is awesome and has sent me the following table:&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:ZorbaTHut|ZorbaTHut]] 22:22, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Creature Structure ==&lt;br /&gt;
&lt;br /&gt;
The creature vector is at 0x01415A00, so:&lt;br /&gt;
List start: 0x01415A04&lt;br /&gt;
List end:   0x01415A08&lt;br /&gt;
&lt;br /&gt;
Structure Offsets:&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Vptr || Virtual function table pointer&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 24 || First name ||&lt;br /&gt;
|-&lt;br /&gt;
|0x32 || 4 || Surname word 1 || No part of speech, like in the old structure&lt;br /&gt;
|-&lt;br /&gt;
|0x36 || 4 || Surname word 2 || &lt;br /&gt;
|-&lt;br /&gt;
|0x70 || 24 || Custom profession name ||&lt;br /&gt;
|-&lt;br /&gt;
|0x8c || 4 || Type ID ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2563</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2563"/>
		<updated>2007-10-30T02:32:38Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dwarf Fortress new string format:&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| Offset || Size || Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 16 || Character buffer || Holds the string data if capacity &amp;lt; 16&lt;br /&gt;
|-&lt;br /&gt;
|0x00 || 4 || Character pointer || Points to the string data if capacity &amp;gt;= 16&lt;br /&gt;
|-&lt;br /&gt;
|0x10 || 4 || Length || Current length of the string&lt;br /&gt;
|-&lt;br /&gt;
|0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Yes, the first two items overlap. This is correct. This is the MSVC Express string format - Toady appears to be using standard C++ structures pretty much everywhere.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I'm currently trying to figure out the internal representation of the new Dwarf Fortress. I'm putting notes here so if someone else wants to start, they can collaborate instead of duplicating efforts.&lt;br /&gt;
&lt;br /&gt;
Toady has said that the address to the active-creature vector seems to be 0x01415A00. This is indeed a vector, I haven't verified if it's the right one.&lt;br /&gt;
&lt;br /&gt;
Toady's also using MSVC Express. He tends to use vectors and standard strings. MSVC's string is *weird* and I haven't deciphered it yet.&lt;br /&gt;
&lt;br /&gt;
Updates as I figure things out. [[User:ZorbaTHut|ZorbaTHut]] 22:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
Toady is awesome and has sent me the following table:&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:ZorbaTHut|ZorbaTHut]] 22:22, 29 October 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2562</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2562"/>
		<updated>2007-10-30T02:22:05Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm currently trying to figure out the internal representation of the new Dwarf Fortress. I'm putting notes here so if someone else wants to start, they can collaborate instead of duplicating efforts.&lt;br /&gt;
&lt;br /&gt;
Toady has said that the address to the active-creature vector seems to be 0x01415A00. This is indeed a vector, I haven't verified if it's the right one.&lt;br /&gt;
&lt;br /&gt;
Toady's also using MSVC Express. He tends to use vectors and standard strings. MSVC's string is *weird* and I haven't deciphered it yet.&lt;br /&gt;
&lt;br /&gt;
Updates as I figure things out. [[User:ZorbaTHut|ZorbaTHut]] 22:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
Toady is awesome and has sent me the following table:&lt;br /&gt;
&lt;br /&gt;
 PROFESSION_MINE,&lt;br /&gt;
 PROFESSION_HAUL_STONE,&lt;br /&gt;
 PROFESSION_HAUL_WOOD,&lt;br /&gt;
 PROFESSION_HAUL_BODY,&lt;br /&gt;
 PROFESSION_HAUL_FOOD,&lt;br /&gt;
 PROFESSION_HAUL_REFUSE,&lt;br /&gt;
 PROFESSION_HAUL_ITEM,&lt;br /&gt;
 PROFESSION_HAUL_FURNITURE,&lt;br /&gt;
 PROFESSION_HAUL_ANIMALS,&lt;br /&gt;
 PROFESSION_CLEAN,&lt;br /&gt;
 PROFESSION_CUTWOOD,&lt;br /&gt;
 PROFESSION_CARPENTER,&lt;br /&gt;
 PROFESSION_DETAIL,&lt;br /&gt;
 PROFESSION_MASON,&lt;br /&gt;
 PROFESSION_ARCHITECT,&lt;br /&gt;
 PROFESSION_ANIMALTRAIN,&lt;br /&gt;
 PROFESSION_ANIMALCARE,&lt;br /&gt;
 PROFESSION_HEALTHCARE,&lt;br /&gt;
 PROFESSION_BUTCHER,&lt;br /&gt;
 PROFESSION_TRAPPER,&lt;br /&gt;
 PROFESSION_DISSECT_VERMIN,&lt;br /&gt;
 PROFESSION_LEATHER,&lt;br /&gt;
 PROFESSION_TANNER,&lt;br /&gt;
 PROFESSION_BREWER,&lt;br /&gt;
 PROFESSION_ALCHEMIST,&lt;br /&gt;
 PROFESSION_SOAP_MAKER,&lt;br /&gt;
 PROFESSION_WEAVER,&lt;br /&gt;
 PROFESSION_CLOTHESMAKER,&lt;br /&gt;
 PROFESSION_MILLER,&lt;br /&gt;
 PROFESSION_PROCESS_PLANT,&lt;br /&gt;
 PROFESSION_MAKE_CHEESE,&lt;br /&gt;
 PROFESSION_MILK,&lt;br /&gt;
 PROFESSION_COOK,&lt;br /&gt;
 PROFESSION_PLANT,&lt;br /&gt;
 PROFESSION_HERBALIST,&lt;br /&gt;
 PROFESSION_FISH,&lt;br /&gt;
 PROFESSION_CLEAN_FISH,&lt;br /&gt;
 PROFESSION_DISSECT_FISH,&lt;br /&gt;
 PROFESSION_HUNT,&lt;br /&gt;
 PROFESSION_SMELT,&lt;br /&gt;
 PROFESSION_FORGE_WEAPON,&lt;br /&gt;
 PROFESSION_FORGE_ARMOR,&lt;br /&gt;
 PROFESSION_FORGE_FURNITURE,&lt;br /&gt;
 PROFESSION_METAL_CRAFT,&lt;br /&gt;
 PROFESSION_CUT_GEM,&lt;br /&gt;
 PROFESSION_ENCRUST_GEM,&lt;br /&gt;
 PROFESSION_WOOD_CRAFT,&lt;br /&gt;
 PROFESSION_STONE_CRAFT,&lt;br /&gt;
 PROFESSION_BONE_CARVE,&lt;br /&gt;
 PROFESSION_GLASSMAKER,&lt;br /&gt;
 PROFESSION_EXTRACT_STRAND,&lt;br /&gt;
 PROFESSION_AXE,&lt;br /&gt;
 PROFESSION_SWORD,&lt;br /&gt;
 PROFESSION_MACE,&lt;br /&gt;
 PROFESSION_HAMMER,&lt;br /&gt;
 PROFESSION_SPEAR,&lt;br /&gt;
 PROFESSION_DAGGER,&lt;br /&gt;
 PROFESSION_CROSSBOW,&lt;br /&gt;
 PROFESSION_BOW,&lt;br /&gt;
 PROFESSION_BLOWGUN,&lt;br /&gt;
 PROFESSION_PIKE,&lt;br /&gt;
 PROFESSION_WHIP,&lt;br /&gt;
 PROFESSION_SHIELDLEVEL,&lt;br /&gt;
 PROFESSION_ARMORLEVEL,&lt;br /&gt;
 PROFESSION_SIEGECRAFT,&lt;br /&gt;
 PROFESSION_SIEGEOPERATE,&lt;br /&gt;
 PROFESSION_BOWYER,&lt;br /&gt;
 PROFESSION_MECHANIC,&lt;br /&gt;
 PROFESSION_WEAPONNUMBER,&lt;br /&gt;
 PROFESSION_POTASH_MAKING,&lt;br /&gt;
 PROFESSION_LYE_MAKING,&lt;br /&gt;
 PROFESSION_DYER,&lt;br /&gt;
 PROFESSION_BURN_WOOD,&lt;br /&gt;
 PROFESSION_OPERATE_PUMP,&lt;br /&gt;
 PROFESSION_UNUSED_3,&lt;br /&gt;
 PROFESSION_UNUSED_4,&lt;br /&gt;
 PROFESSION_UNUSED_5,&lt;br /&gt;
 PROFESSION_UNUSED_6,&lt;br /&gt;
 PROFESSION_UNUSED_7,&lt;br /&gt;
 PROFESSION_UNUSED_8,&lt;br /&gt;
 PROFESSION_UNUSED_9,&lt;br /&gt;
 PROFESSION_UNUSED_10,&lt;br /&gt;
 PROFESSION_UNUSED_11,&lt;br /&gt;
 PROFESSION_UNUSED_12,&lt;br /&gt;
 PROFESSION_UNUSED_13,&lt;br /&gt;
 PROFESSION_UNUSED_14,&lt;br /&gt;
 PROFESSION_UNUSED_15,&lt;br /&gt;
 PROFESSION_UNUSED_16,&lt;br /&gt;
 PROFESSION_UNUSED_17,&lt;br /&gt;
 PROFESSION_UNUSED_18,&lt;br /&gt;
 PROFESSION_UNUSED_19,&lt;br /&gt;
 PROFESSION_UNUSED_20,&lt;br /&gt;
 PROFESSION_UNUSED_21,&lt;br /&gt;
 PROFESSION_UNUSED_22,&lt;br /&gt;
 PROFESSION_UNUSED_23,&lt;br /&gt;
 PROFESSION_UNUSED_24,&lt;br /&gt;
 PROFESSION_UNUSED_25,&lt;br /&gt;
 PROFESSION_UNUSED_26,&lt;br /&gt;
 PROFESSION_UNUSED_27,&lt;br /&gt;
 PROFESSION_UNUSED_28,&lt;br /&gt;
 PROFESSION_UNUSED_29,&lt;br /&gt;
 PROFESSION_UNUSED_30,&lt;br /&gt;
 PROFESSIONNUM,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:ZorbaTHut|ZorbaTHut]] 22:22, 29 October 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2561</id>
		<title>40d:Memory hacking</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Memory_hacking&amp;diff=2561"/>
		<updated>2007-10-30T02:10:00Z</updated>

		<summary type="html">&lt;p&gt;ZorbaTHut: New page: I'm currently trying to figure out the internal representation of the new Dwarf Fortress. I'm putting notes here so if someone else wants to start, they can collaborate instead of duplicat...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm currently trying to figure out the internal representation of the new Dwarf Fortress. I'm putting notes here so if someone else wants to start, they can collaborate instead of duplicating efforts.&lt;br /&gt;
&lt;br /&gt;
Toady has said that the address to the active-creature vector seems to be 0x01415A00. This is indeed a vector, I haven't verified if it's the right one.&lt;br /&gt;
&lt;br /&gt;
Toady's also using MSVC Express. He tends to use vectors and standard strings. MSVC's string is *weird* and I haven't deciphered it yet.&lt;br /&gt;
&lt;br /&gt;
Updates as I figure things out. [[User:ZorbaTHut|ZorbaTHut]] 22:10, 29 October 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>ZorbaTHut</name></author>
	</entry>
</feed>