@DwarfEngineer - Thank you, I'll go through that thread and a bit and see if I can't find more.
This is the first time I've messed with this kind of thing in a very, very long time.
If you take a look at this thread, it covers how to find the squad vector:
@Darmarius - That's so awesome, thank you.
Found the squad offset on linux (well, DT found it for me ): 0x095c47b4
@dyn - Sweeeeet! I'm quoting your message here for completeness.
I got the okay from Dwarf Engineer to post this quick fix before it is verified by him for official release. This should fix the IDs to correctly display professions, in the process fixing the dwarf child labor issue and the military Recruits without a weapon specialty not showing up at all. Just open up the file game_data.ini in the etc folder and replace the entire [professions] heading with the code below.
[professions]
# all professions assume can_assign_labors is true, and is_military is false
size=106
1/name = Miner
1/id = 0
2/name = Woodworker
2/id = 1
3/name = Carpenter
3/id = 2
4/name = Bowyer
4/id = 3
5/name = Woodcutter
5/id = 4
6/name = Stoneworker
6/id = 5
7/name = Engraver
7/id = 6
8/name = Mason
8/id = 7
9/name = Ranger
9/id = 8
10/name = Animal Caretaker
10/id = 9
11/name = Animal Trainer
11/id = 10
12/name = Hunter
12/id = 11
13/name = Trapper
13/id = 12
14/name = Animal Dissector
14/id = 13
15/name = Metalsmith
15/id = 14
16/name = Furnace Operator
16/id = 15
17/name = Weaponsmith
17/id = 16
18/name = Armorer
18/id = 17
19/name = Blacksmith
19/id = 18
20/name = Metalcrafter
20/id = 19
21/name = Jeweler
21/id = 20
22/name = Gem Cutter
22/id = 21
23/name = Gem Setter
23/id = 22
24/name = Craftsman
24/id = 23
25/name = Woodcrafter
25/id = 24
26/name = Stonecrafter
26/id = 25
27/name = Leatherworker
27/id = 26
28/name = Bone Carver
28/id = 27
29/name = Weaver
29/id = 28
30/name = Clothier
30/id = 29
31/name = Glassmaker
31/id = 30
32/name = Potter
32/id = 31
33/name = Glazer
33/id = 32
34/name = Wax Worker
34/id = 33
35/name = Strand Extractor
35/id = 34
36/name = Fishery Worker
36/id = 35
37/name = Fisherman
37/id = 36
38/name = Fish Dissector
38/id = 37
39/name = Fish Cleaner
39/id = 38
40/name = Farmer
40/id = 39
41/name = Cheesemaker
41/id = 40
42/name = Milker
42/id = 41
43/name = Cooking
43/id = 42
44/name = Thresher
44/id = 43
45/name = Miller
45/id = 44
46/name = Butcher
46/id = 45
47/name = Tanner
47/id = 46
48/name = Dyer
48/id = 47
49/name = Planter
49/id = 48
50/name = Herbalist
50/id = 49
51/name = Brewer
51/id = 50
52/name = Soap Maker
52/id = 51
53/name = Potash Maker
53/id = 52
54/name = Lye Maker
54/id = 53
55/name = Wood Burner
55/id = 54
56/name = Shearer
56/id = 55
57/name = Spinner
57/id = 56
58/name = Presser
58/id = 57
59/name = Beekeeper
59/id = 58
60/name = Engineer
60/id = 59
61/name = Mechanic
61/id = 60
62/name = Siege Engineer
62/id = 61
63/name = Siege Operator
63/id = 62
64/name = Pump Operator
64/id = 63
65/name = Clerk
65/id = 64
66/name = Administrator
66/id = 65
67/name = Trader
67/id = 66
68/name = Architect
68/id = 67
69/name = Alchemist
69/id = 68
70/name = Doctor
70/id = 69
71/name = Diagnoser
71/id = 70
72/name = Bone Setter
72/id = 71
73/name = Suturer
73/id = 72
74/name = Surgeon
74/id = 73
75/name = Merchant
75/id = 74
76/name = Hammerman
76/id = 75
76/is_military = true
76/can_assign_labors = true
77/name = Master Hammerman
77/id = 76
77/is_military = true
77/can_assign_labors = false
78/name = Spearman
78/id = 77
78/is_military = true
78/can_assign_labors = true
79/name = Master Spearman
79/id = 78
79/is_military = true
79/can_assign_labors = false
80/name = Crossbowman
80/id = 79
80/is_military = true
80/can_assign_labors = true
81/name = Master Crossbowman
81/id = 80
81/is_military = true
81/can_assign_labors = false
82/name = Wrestler
82/id = 81
82/is_military = true
82/can_assign_labors = true
83/name = Master Wrestler
83/id = 82
83/is_military = true
83/can_assign_labors = false
84/name = Axeman
84/id = 83
84/is_military = true
84/can_assign_labors = true
85/name = Master Axeman
85/id = 84
85/is_military = true
85/can_assign_labors = false
86/name = Swordsman
86/id = 85
86/is_military = true
86/can_assign_labors = true
87/name = Master Swordsman
87/id = 86
87/is_military = true
87/can_assign_labors = false
88/name = Maceman
88/id = 87
88/is_military = true
88/can_assign_labors = true
89/name = Master Maceman
89/id = 88
89/is_military = true
89/can_assign_labors = false
90/name = Pikeman
90/id = 89
90/is_military = true
90/can_assign_labors = true
91/name = Master Pikeman
91/id = 90
91/is_military = true
91/can_assign_labors = false
92/name = Bowman
92/id = 91
92/is_military = true
92/can_assign_labors = true
93/name = Master Bowman
93/id = 92
93/is_military = true
93/can_assign_labors = false
94/name = Blowgunman
94/id = 93
94/is_military = true
94/can_assign_labors = true
95/name = Master Blowgunman
95/id = 94
95/is_military = true
95/can_assign_labors = false
96/name = Lasher
96/id = 95
96/is_military = true
96/can_assign_labors = true
97/name = Master Lasher
97/id = 96
97/is_military = true
97/can_assign_labors = false
98/name = Recruit
98/id = 97
98/is_military = true
98/can_assign_labors = true
99/name = Trained Hunter
99/id = 98
99/is_military = false
99/can_assign_labors = true
100/name = Trained War
100/id = 99
100/is_military = false
100/can_assign_labors = true
101/name = Master Thief
101/id = 100
101/is_military = false
101/can_assign_labors = true
102/name = Thief
102/id = 101
103/name = Peasant
103/id = 102
104/name = Child
104/id = 103
104/is_military = false
104/can_assign_labors = false
105/name = Baby
105/id = 104
105/is_military = false
105/can_assign_labors = false
106/name = Drunk
106/id = 105
@Bifidius - Yes, DT works natively on linux. You use hg (mercurial) to clone DE's source tree, then get in it an qmake && make. After that, you have the DwarfTherapist binary in bin/releases/DwarfTherapist. It's pretty cool stuff.
@Darmarius (again!) Wow - thank you
Ok, I've found the labor offset (still linux): 0x0604
The soul offset SHOULD be at 0x05e8, but I haven't been able to confirm that since the soul details have changed too.
I'm really going in the dark here :| I'm trying to find similarities between a 2010 memory dump and 2012's, but so far the soul details has eluded me. I'll update some more tonight if I find other offsets.
So, I've got dyn's game_data.ini fix, and I've got the bits from darmarius and I now have a somewhat functional DT - you can see the correct labors assigned on your starting seven dwarves, and. I just successfully changed one of my dwarves labor from DT. I expect that we don't have the re-equip offset right, so enabling/disabling the jobs of miner, woodchopper, anything that requires an equipment change will need to be done actually in DF itself; but it's still got the advantage of knowing which name you want to enable the skill on.
Actually, make that known.. recheck_equipment=0x0148
Like most here, I'm also working from the 31.25 ini file, but here are the known values we (believe) we now have:
[info]
checksum=0xa42a074a
version_name=v0.34.01
complete=false
[addresses]
translation_vector=0x095c7bf8
language_vector=0x095c7be0
creature_vector=0x095868ac
dwarf_race_index=0x0956e240
squad_vector=0x095c47b4
[offsets]
word_table=0x0000001c
[dwarf_offsets]
labors=0x0604
recheck_equipment=0x0148
souls=0x05e8
Of course, all of this should be considered beta, some of them are educated guesses, and some may be wrong in subtle ways we don't yet know.. etc. But on my DT, this gets me to where I can at least view and set labors, however I can't tell how much *skill* any dwarf has in any labor. Yet.