Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 68 69 [70] 71 72 ... 192

Author Topic: Dwarf Therapist (LATEST 0.6.12 5/23/12 see first post)  (Read 871393 times)

vityav

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1035 on: February 16, 2012, 02:20:49 pm »

It still doesn't read profession and experience properly, so the souls offset are probably wrong. I'll try looking into it.
You have my complete and unwavering moral support in your endeavors :P

I really should learn how to find memory addresses for the linux releases...
Logged

zwei

  • Bay Watcher
  • [ECHO][MENDING]
    • View Profile
    • Fate of Heroes
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1036 on: February 16, 2012, 03:39:55 pm »

Just small idea:

It would be nice if therapist also displayed favorite materials and items of dwarf.

It helps with job assigments, but more importantly, it helps when assigning baron as game does not let you check thoughts and preferences.

Yaotzin

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1037 on: February 16, 2012, 03:46:18 pm »

If you're going the whole hog, you could basically incorporate dwarven counselor. Show attributes, and what that means the dwarf will be best/worst at.

Also some way for tracking attribute/skill level gain over time would be really awesome.
Logged

Darmarius

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1038 on: February 16, 2012, 03:51:07 pm »

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.
Logged

Girlinhat

  • Bay Watcher
  • [PREFSTRING:large ears]
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1039 on: February 16, 2012, 03:53:21 pm »

Mankind has searched for thousands of years for the soul.  Don't expect to stumble upon it in two days.

kionmaru

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1040 on: February 16, 2012, 04:53:35 pm »

@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 :P): 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.

Code: [Select]
[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 :D
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:

Code: [Select]
[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.
Logged

Girlinhat

  • Bay Watcher
  • [PREFSTRING:large ears]
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1041 on: February 16, 2012, 04:55:54 pm »

Would it be possible for Therapist to show a dwarf's attributes in a spreadsheet format?  Things like "he is quick to anger" and "she is compassionate"?  I'd love to have a sortable list, and be able to find the most compassionate, impulsive dwarf to make my chief medic.

A method to implement material preferences would be nice as well, though it was my understanding that this was troublesome.

Darmarius

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1042 on: February 16, 2012, 05:58:07 pm »

Allright, I found the missing offsets, everything seems to be working in my DT. I also found the same recheck_equipment as kionmaru (0x0148).

Here's my .ini:
Code: [Select]
[info]
checksum=0xa42a074a
version_name=v0.34.01
complete=true

[addresses]
translation_vector=0x095c7bf8
language_vector=0x095c7be0
creature_vector=0x095868ac
dwarf_race_index=0x0956e240
squad_vector=0x095c47b4

[offsets]
word_table=0x001C

[word_offsets]
base=0x0000
noun_singular=0x0004
noun_plural=0x0008
adjective=0x000C
verb=0x0014
present_simple_verb=0x0018
past_simple_verb=0x001C
past_participle_verb=0x0020
present_participle_verb=0x0024

[dwarf_offsets]
first_name=0x0000
nick_name=0x0004
last_name=0x0008
custom_profession=0x003c
profession=0x0040
race=0x0044
flags1=0x008C
flags2=0x0090
sex=0x00A6
id=0x00A8
recheck_equipment=0x0148
current_job=0x0274
states=0x0
souls=0x05e8
labors=0x0604
happiness=0x0694
squad_ref_id=0x06f8

[soul_details]
skills=0x01D4
traits=0x01EC

[job_details]
id=0x0008
on_break_flag=0x0011
sub_job_id=0x0040

[squad_offsets]
id=0x0000
name=0x000C
members=0x0044

[valid_flags_1]
size=1
1\name=Not from around these parts
1\value=0x80000000

[valid_flags_2]
size=1
1\name=Dead. Deceased. An Undwarf!
1\value=0x02000000

[invalid_flags_1]
size=7
1\name=a zombie
1\value=0x00001000
2\name=a skeleton
2\value=0x00002000
3\name=a merchant or diplomat
3\value=0x00000040
4\name=outpost liason
4\value=0x00000800
5\name=an invader or hostile
5\value=0x00020000
6\name=an invader or hostile
6\value=0x00080000
7\name=an invader or hostile
7\value=0x000C0000

[invalid_flags_2]
size=2
1\name="dead, Jim."
1\value=0x00000080
2\name=from the Underworld. SPOOKY!
2\value=0x00040000

The only difference I can see from the linux ini and the windows one is two missing offsets: states and likes. I have no idea what I'm looking for right now, I'll probably run a linux and windows DF/DT side-by-side to try and find these.

For future reference, I did not "stare intensely at memory dump and hope to find the offset". I saw that there was a correlation between 31.25 and 34.01 windows ini offset changes; every dwarf_offsets from 31.25 to 34.01 are 0x11c apart (in windows). I found the labors offset (the easiest one, thanks stevedore!), calculated the difference between the two versions (0xb8) and added that value to the other offsets (souls, squad, happiness).

For the other values, I stole the difference from the windows version: the soul details are 0x10 apart, recheck_equipement is 0x04 and current_job is 18. I applied these differences blindly and it just worked.

Will this work for future update? No idea :D
Logged

kionmaru

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1043 on: February 16, 2012, 06:05:07 pm »

@Darmarius, that's exactly what I did to find the recheck equipment offset.. I'd calculated it last night but with the labors not showing properly, hadn't tested it until I was in the middle of that post - You beat me to it! Exactly what I was diabolically planning on doing tonight when I had the time.

Again, thank you so much :D
Logged

Myr0ku

  • Bay Watcher
  • D for Dwarf
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1044 on: February 16, 2012, 06:08:28 pm »

If i could adress you a suggestion DE ?
Can you make a button to enable or disable all hauling functions too ?
I think of it for a long time !
Logged

Buttery_Mess

  • Bay Watcher
  • 11x11
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1045 on: February 16, 2012, 06:37:11 pm »

While you're at it, can you add a function to automatically bring about world peace? Something on the drop down menu. Also, perhaps a table that shows all possible quantum realities in eleven dimension? Thanks!
Logged
But .... It's so small!
It's not the size of the pick that counts... it's the size of the man with the pick.
Quote from: Toady One
Naturally, we'd like to make life miserable for everybody, randomly, but that'll take some doing.

nenjin

  • Bay Watcher
  • Inscrubtable Exhortations of the Soul
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1046 on: February 16, 2012, 06:53:50 pm »

Shouldn't we like, wait until they've got the offsets figured out before we start bombarding them with feature requests?
Logged
Cautivo del Milagro seamos, Penitente.
Quote from: Viktor Frankl
When we are no longer able to change a situation, we are challenged to change ourselves.
Quote from: Sindain
Its kinda silly to complain that a friendly NPC isn't a well designed boss fight.
Quote from: Eric Blank
How will I cheese now assholes?
Quote from: MrRoboto75
Always spaghetti, never forghetti

Maldevious

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1047 on: February 16, 2012, 07:11:35 pm »

Not a programmer, but I've noticed that the most recent .ini from dyn seems to cause children to be displayed as 'Pressers.' Thanks all for the excellent work you do.
Logged

dyn

  • Escaped Lunatic
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1048 on: February 16, 2012, 07:23:24 pm »

Not a programmer, but I've noticed that the most recent .ini from dyn seems to cause children to be displayed as 'Pressers.' Thanks all for the excellent work you do.

I'll look into this now. Can anyone else confirm that after the game_data.ini fix that I posted above they are also still having children show up as Pressers or anything else but children?
Logged

Marble_Nuts

  • Bay Watcher
  • Real dwarf dig deep!
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.11 2/15/12 see first post)
« Reply #1049 on: February 16, 2012, 08:08:26 pm »

OMG you guy have no idea how happy I am to know that therapist is going on mac!! I... I mean... There are no other way to say it :D

Is there a bit of funding related to this sudden change on plan? On making therapist available for mac?

As mentioned, I've created a Tip Jar with the intent of getting a mac mini to start merging / supporting OSX. I'll look into adding linux support once again this weekend.

Done and....... DONE !!

Let's just hope it raise up fast to the needed amount
Logged
Pages: 1 ... 68 69 [70] 71 72 ... 192