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.

Difference between revisions of "40d:Memory hacking"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
Line 5: Line 5:
  
 
== Data Types ==
 
== Data Types ==
=== New string format ===
+
=== String ===
  
 
{|  border="1" cellpadding="2" width="100%"
 
{|  border="1" cellpadding="2" width="100%"
Line 21: Line 21:
 
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.
 
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 format ===
+
=== Vector ===
  
 
{|  border="1" cellpadding="2" width="100%"
 
{|  border="1" cellpadding="2" width="100%"
 
| Offset || Size || Type || Description
 
| Offset || Size || Type || Description
 
|-
 
|-
|0x00 || 4 || vtable || (not useful)
+
| 0x00 || 4 || || Unknown, always 0?
 
|-
 
|-
|0x04 || 4 || Array start
+
| 0x04 || 4 || Array start
 
|-
 
|-
|0x08 || 4 || Array end || (End - Start)/4 = # of elements
+
| 0x08 || 4 || Array end || (End - Start)/4 = # of elements (if pointers)
 +
|-
 +
| 0x0C || 4 || Array current?
 
|}
 
|}
  

Revision as of 14:43, 5 November 2007

Versions

See the following subpages for version specific information

Data Types

String

Offset Size Type Description
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 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

Offset Size Type Description
0x00 4 Unknown, always 0?
0x04 4 Array start
0x08 4 Array end (End - Start)/4 = # of elements (if pointers)
0x0C 4 Array current?

Type ID list

Most likely incomplete, but this was all that could be found so far.

ID Meaning
0x00 Miner
0x01 Woodworker
0x02 Carpenter
0x03 Bowyer
0x04 Woodcutter
0x05 Stoneworker
0x06 Engraver
0x07 Mason
0x08 Ranger
0x09 Animal Caretaker
0x0A Animal Trainer
0x0B Hunter
0x0C Trapper
0x0D Animal Dissector
0x0E Metalsmith
0x0F Furnace Operator
0x10 Weaponsmith
0x11 Armorer
0x12 Blacksmith
0x13 Metalcrafter
0x14 Jeweler
0x15 Gem Cutter
0x16 Gem Setter
0x17 Craftsman
0x18 Woodcrafter
0x19 Stonecrafter
0x1A Leatherworker
0x1B Bone Carver
0x1C Weaver
0x1D Clothier
0x1E Glassmaker
0x1F Strand Extractor
0x20 Queen
0x21 Queen Consort
0x22 Fishery Worker
0x23 Fisherman
0x24 Fish Dissector
0x25 Fish Cleaner
0x26 Farmer
0x27 Cheese Maker
0x28 Milker
0x29 Cook
0x2A Thresher
0x2B Miller
0x2C Butcher
0x2D Tanner
0x2E Dyer
0x2F Planter
0x30 Herbalist
0x31 Brewer
0x32 Soap Maker
0x33 Potash Maker
0x34 Lye Maker
0x35 Wood Burner
0x36 Engineer
0x37 Mechanic
0x38 Seige Engineer
0x39 Seige Operator
0x3A Pump Operator
0x3B Clerk
0x3C Administrator
0x3D Trader
0x3E Architect
0x3F Alchemist
0x40 Tax Collector
0x41 Hammerer
0x42 Baroness
0x43 Countess
0x44 Duchess
0x45 Baroness Consort
0x46 Countess Consort
0x47 Duchness Consort
0x48 Philosopher
0x49 Advisor
0x4A Dungeon Master
0x4B Merchant
0x4C Diplomat
0x4D Guild Representative
0x4E Merchant Baroness
0x4F Merchant Princes
0x50 Outpose Liason
0x51 Druid
0x52 Champion
0x53 Hammerman
0x54 Hammer Lord
0x55 Spearman
0x56 Spearmaster
0x57 Crossbowman
0x58 Elite Crossbowman
0x59 Wrestler
0x5A Elite Wrestler
0x5B Axeman
0x5C Axe Lord
0x5D Swordsman
0x5E Swordmaster
0x5F Maceman
0x60 Mace Lord
0x61 Pikeman
0x62 Pikemaster
0x63 Bowman
0x64 Elite Bowman
0x65 Blowgunner
0x66 Elite Blowgunner
0x67 Recruit
0x68 Hunting creature
0x69 War creature
0x6A Master Thief
0x6B Thief
0x6C Peasant or creature
0x6D Child
0x6E Baby
0x6F Drunk
0x70 Lasher
0x71 Master Lasher

Profession list

PROFESSION_MINE,
PROFESSION_HAUL_STONE,
PROFESSION_HAUL_WOOD,
PROFESSION_HAUL_BODY,
PROFESSION_HAUL_FOOD,
PROFESSION_HAUL_REFUSE,
PROFESSION_HAUL_ITEM,
PROFESSION_HAUL_FURNITURE,
PROFESSION_HAUL_ANIMALS,
PROFESSION_CLEAN,
PROFESSION_CUTWOOD,
PROFESSION_CARPENTER,
PROFESSION_DETAIL,
PROFESSION_MASON,
PROFESSION_ARCHITECT,
PROFESSION_ANIMALTRAIN,
PROFESSION_ANIMALCARE,
PROFESSION_HEALTHCARE,
PROFESSION_BUTCHER,
PROFESSION_TRAPPER,
PROFESSION_DISSECT_VERMIN,
PROFESSION_LEATHER,
PROFESSION_TANNER,
PROFESSION_BREWER,
PROFESSION_ALCHEMIST,
PROFESSION_SOAP_MAKER,
PROFESSION_WEAVER,
PROFESSION_CLOTHESMAKER,
PROFESSION_MILLER,
PROFESSION_PROCESS_PLANT,
PROFESSION_MAKE_CHEESE,
PROFESSION_MILK,
PROFESSION_COOK,
PROFESSION_PLANT,
PROFESSION_HERBALIST,
PROFESSION_FISH,
PROFESSION_CLEAN_FISH,
PROFESSION_DISSECT_FISH,
PROFESSION_HUNT,
PROFESSION_SMELT,
PROFESSION_FORGE_WEAPON,
PROFESSION_FORGE_ARMOR,
PROFESSION_FORGE_FURNITURE,
PROFESSION_METAL_CRAFT,
PROFESSION_CUT_GEM,
PROFESSION_ENCRUST_GEM,
PROFESSION_WOOD_CRAFT,
PROFESSION_STONE_CRAFT,
PROFESSION_BONE_CARVE,
PROFESSION_GLASSMAKER,
PROFESSION_EXTRACT_STRAND,
PROFESSION_AXE,
PROFESSION_SWORD,
PROFESSION_MACE,
PROFESSION_HAMMER,
PROFESSION_SPEAR,
PROFESSION_DAGGER,
PROFESSION_CROSSBOW,
PROFESSION_BOW,
PROFESSION_BLOWGUN,
PROFESSION_PIKE,
PROFESSION_WHIP,
PROFESSION_SHIELDLEVEL,
PROFESSION_ARMORLEVEL,
PROFESSION_SIEGECRAFT,
PROFESSION_SIEGEOPERATE,
PROFESSION_BOWYER,
PROFESSION_MECHANIC,
PROFESSION_WEAPONNUMBER,
PROFESSION_POTASH_MAKING,
PROFESSION_LYE_MAKING,
PROFESSION_DYER,
PROFESSION_BURN_WOOD,
PROFESSION_OPERATE_PUMP,
PROFESSION_UNUSED_3,
PROFESSION_UNUSED_4,
PROFESSION_UNUSED_5,
PROFESSION_UNUSED_6,
PROFESSION_UNUSED_7,
PROFESSION_UNUSED_8,
PROFESSION_UNUSED_9,
PROFESSION_UNUSED_10,
PROFESSION_UNUSED_11,
PROFESSION_UNUSED_12,
PROFESSION_UNUSED_13,
PROFESSION_UNUSED_14,
PROFESSION_UNUSED_15,
PROFESSION_UNUSED_16,
PROFESSION_UNUSED_17,
PROFESSION_UNUSED_18,
PROFESSION_UNUSED_19,
PROFESSION_UNUSED_20,
PROFESSION_UNUSED_21,
PROFESSION_UNUSED_22,
PROFESSION_UNUSED_23,
PROFESSION_UNUSED_24,
PROFESSION_UNUSED_25,
PROFESSION_UNUSED_26,
PROFESSION_UNUSED_27,
PROFESSION_UNUSED_28,
PROFESSION_UNUSED_29,
PROFESSION_UNUSED_30,
PROFESSIONNUM,