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.

User:AzureLightning/Memory research

From Dwarf Fortress Wiki
Jump to navigation Jump to search

Any and all offsets and memory addresses are only valid for v0.27.169.33a.

Links[edit]

Main memory hacking research
Rick's memory research
Iluxan's memory research

Addresses[edit]

Address Size Type Name Description
008F5288 4 long Cursor X Coordinate Number of cells EAST from the west side. Value is -30000 when cursor is not in use.
008F528C 4 long Cursor Y Coordinate Number of cells SOUTH from the north side.
008F5290 4 long Cursor Z Coordinate Number of levels UP from the bottom level
00C2F548 4 long Creature Focus Indexes into the full creature list
01237AD0 4 long Dwarven Race ID Used to identify dwarves (Or it could just be the "controlling" civilization you are playing as.)
01416A3C 4:4 vector Full Creature list List of of all creatures. There are other vectors based upon various factors
01458568 4 pointer Map data Points to a list of addresses measuring Block Count X long.

Those each reference a list of addresses measuring Block Count Y long. Each of those reference a list of addresses Block Count Z long. And finally, each of those addresses references a map block.

01458580 4 long Block Count X Number of 16x16 blocks in the X direction
01458584 4 long Block Count Y Number of 16x16 blocks in the Y direction
01458588 4 long Block Count Z Number of Z levels
0145858C 4 long Cell Count X Number of cells in the X direction (Should be Block Count X * 16)
01458590 4 long Cell Count Y Number of cells in the X direction (Should be Block Count Y * 16)
01458594 4 long Cell Count Z Number of Z levels (Should equal the Block Count Z)

Note: Bold addresses need to be verified. I may have remembered them wrong

Map Block[edit]

Offset Size Type Name Notes
0000h 4 pointer Unknown
000Ch 4:4 vector Vein vector
005Eh 2 * 16 * 16 list of shorts Unknown
0260h 4 * 16 * 16 list of longs Designation
Bit Description
0-2 Flow Size (0-7)
9 Hidden
22 Damp?
28 Mossy
0660h 4 * 16 * 16 list of longs Unknown

Is probably flags?

Bit Description
6 Muddy
31 Snow-covered
0A60h 1 * 16 * 16 list of bytes Unknown
0B60h 4 * 16 * 16 list of longs Pathfinding
1160h 2 * 16 * 16 list of shorts Unknown
1360h 2 * 16 * 16 list of shorts Unknown
1560h 2 * 16 * 16 list of shorts Temperature #1 10100 or above counts as 'Warm'.
1760h 2 * 16 * 16 list of shorts Temperature #2
1960h 2 * 16 * 16 list of shorts Unknown
1B60h 2 * 16 * 16 list of shorts Unknown


Veins[edit]

Veins designate a chunk of some material, be it stone, ore or gems, that can be dug up by miners. Using a bit-mask scheme, a vein can be placed anywhere in a 16x16 map block. All it takes for a vein to exist at a given column on a given row is for the corresponding bit in the bit-mask to be 1 for the given row. I've yet to do full-on editing of these veins other than making existing tiles toggle off as well as changing the vein type. Adding to the vein doesn't seem possible yet. There is likely a stacking priority with the different grouping of rock elements.

Veinbitmask.png
View of the bit mask scheme

Offset Size Type Name Notes
0000h 4 pointer Vtable
0004h 2 short Vein type Ore, Stone, Gems are all in the same list
0006h 2*16 list of shorts 16-bit mask for each row in the block Bits start from the west side of the row, going east with each bit position.

Skills[edit]

Offset Size Type Name Notes
0000h 2 short Type See table below.
0002h 2 short ??? might be experience
0004h 2 short Rating Range: 0(Dabbling)-15(Legendary) See table below.


Skill Types[edit]

Colors can do with some work, as they are supposed to indicate groupings of skills.

Index Name
0 Mining
1 Wood Cutter
2 Carpentry
3 Engraver
4 Masonry
5 Animal Training
6 Animal Caretaking
7 Fish Dissecting
8 Animal Dissecting
9 Fish Cleaning
10 Butchery
11 Trapping
12 Tanning
13 Weaving
14 Brewing
15 Alchemist
16 Clothery
17 Milling
18 Threshing
19 Cheese Making
20 Milking
21 Cooking
22 Growing
23 Herbalism
24 Fishing
25 Furnace Operating
26 Strand Extraction
27 Weaponsmithing
28 Armorsmithing
29 Metalsmithing
30 Gem Cutting
31 Gem Setting
32 Wood Crafting
33 Stone Crafting
34 Metal Crafting
35 Glass Making
36 Leatherworking
37 Bone Carving
38 Wrestling
39 Axe User
40 Sword User
41 Knife User
42 Mace User
43 Hammer User
44 Spear User
45 Marks User
46 Shield User
47 Armor User
48 Seige Engineering
49 Seige Operating
50 Bowyering
51 Pike User
52 Lasher
53 Bow User
54 Blowgunner
55 Thrower
56 Mechanics
57 Druid
58 Ambusher
59 Architecture
60 Wood Burning
61 Lye Making
62 Soaping
63 Potash Making
64 Dying
65 Pump Operating
66 Swimming
67 Persuading
68 Negociating
69 Judging of Intent
70 Appraising
71 Organizing
72 Record Keeping
73 Lying
74 Intimidating
75 Conversationalism
76 Comedy
77 Flattery
78 Consoling
79 Pacifying

Skill Ratings[edit]

Rank Name Prefix
0 Dabbling
1 Novice
2 no-prefix
3 Competent
4 Skilled
5 Proficient
6 Talented
7 Adept
8 Expert
9 Professional
10 Accomplished
11 Great
12 Master
13 High Master
14 Grand Master
15 Legendary