v50 Steam/Premium information for editors
- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.
Editing 40d:Memory hacking
Jump to navigation
Jump to search
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
You are editing a page for an older version of Dwarf Fortress ("Main" is the current version, not "40d"). Please make sure you intend to do this. If you are here by mistake, see the current page instead.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | |||
− | |||
== Versions == | == Versions == | ||
See the following subpages for version specific information | See the following subpages for version specific information | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
* [[Memory hacking/v0.27.169.33a|v0.27.169.33a]] | * [[Memory hacking/v0.27.169.33a|v0.27.169.33a]] | ||
− | |||
− | |||
− | |||
− | |||
== Data Types == | == Data Types == | ||
Line 21: | Line 10: | ||
| Offset || Size || Type || Description | | Offset || Size || Type || Description | ||
|- | |- | ||
− | | 0x00 | + | |0x00 || 16 || Character buffer || Holds the string data if capacity < 16 |
− | |||
− | |||
|- | |- | ||
− | | | + | |0x00 || 4 || Character pointer || Points to the string data if capacity >= 16 |
|- | |- | ||
− | | | + | |0x10 || 4 || Length || Current length of the string |
|- | |- | ||
− | | | + | |0x14 || 4 || Capacity || Current capacity of the string buffer (also indicates which mode the string is in) |
|} | |} | ||
− | Yes, the | + | 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. |
=== Vector === | === Vector === | ||
Line 39: | Line 26: | ||
| Offset || Size || Type || Description | | Offset || Size || Type || Description | ||
|- | |- | ||
− | | 0x00 || 4 || | + | | 0x00 || 4 || || Unknown, always 0? |
|- | |- | ||
| 0x04 || 4 || Array start | | 0x04 || 4 || Array start | ||
Line 45: | Line 32: | ||
| 0x08 || 4 || Array end || (End - Start)/4 = # of elements (if pointers) | | 0x08 || 4 || Array end || (End - Start)/4 = # of elements (if pointers) | ||
|- | |- | ||
− | | 0x0C || 4 || Array | + | | 0x0C || 4 || Array current? |
|} | |} | ||
Line 167: | Line 154: | ||
| <code>0x37</code> || Mechanic | | <code>0x37</code> || Mechanic | ||
|- | |- | ||
− | | <code>0x38</code> || | + | | <code>0x38</code> || Seige Engineer |
|- | |- | ||
− | | <code>0x39</code> || | + | | <code>0x39</code> || Seige Operator |
|- | |- | ||
| <code>0x3A</code> || Pump Operator | | <code>0x3A</code> || Pump Operator | ||
Line 213: | Line 200: | ||
| <code>0x4E</code> || Merchant Baroness | | <code>0x4E</code> || Merchant Baroness | ||
|- | |- | ||
− | | <code>0x4F</code> || Merchant | + | | <code>0x4F</code> || Merchant Princes |
|- | |- | ||
− | | <code>0x50</code> || | + | | <code>0x50</code> || Outpose Liason |
|- | |- | ||
| <code>0x51</code> || Druid | | <code>0x51</code> || Druid | ||
Line 388: | Line 375: | ||
PROFESSION_UNUSED_30, | PROFESSION_UNUSED_30, | ||
PROFESSIONNUM, | PROFESSIONNUM, | ||
− |