View Issue Details

IDProjectCategoryView StatusLast Update
0003100Dwarf FortressDwarf Mode -- Militarypublic2014-07-23 11:47
ReporterQuietust Assigned ToToady One  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version0.31.12 
Fixed in Version0.40.05 
Summary0003100: Military dwarves turn off all of their labors when becoming heroes
DescriptionWhen a military dwarf gains enough combat skill to become a Hero (i.e. axe lord, swordmaster, mace lord, hammer lord, spearmaster, elite marksdwarf, or elite wrestler), all of his/her labors are immediately turned off.

This is likely an artifact of behavior from previous versions, when weapon masters were permanently locked into the military. Now that they can freely switch back to being civilians, it doesn't make sense for this to happen anymore.
Tagsbinary patch

Relationships

has duplicate 0003511 resolvedLogical2u Weaponmasters' labour settings are cleared 
has duplicate 0003227 resolveduser1294 Military dwarves can lose job prefs 
related to 0000872 resolvedToady One Children growing up to peasants do not have healthcare labors set. 

Activities

sgrunt

2010-10-09 00:03

reporter   ~0013273

I noticed in my most recent fortress (http://dffd.wimbli.com/file.php?id=3243) that work was gradually grinding to a halt, and after some observation I've come to conclude that it is as a result of this issue - most of the dwarves are rotated in and out of the military and have extremely high weapon skills, and so all labours are disabled on their part upon being rotated into the military and subsequently stay off.

It is extremely aggravating - I have to keep an even closer eye on everyone than usual to make sure that they're doing the work they're supposed to be doing.

kwieland

2010-10-09 07:37

reporter   ~0013274

I noticed this as well. What I didn't notice was an announcement. Do you get an announcement (like 40d) when this happens? Or just when they reach Elite status?

Quietust

2010-10-09 09:04

reporter   ~0013276

The announcement is just "Urist has become an Axe Lord" or whatever military profession they switched to.

Ogg the Blinky Sock

2010-12-05 21:09

reporter   ~0014422

Actually, this seems to happen, intermittently, to other military dwarves. I haven't figured out what the pattern is yet. It's possible that it's something that happens to dwarves who are legendary in other skills.

RageandTears

2010-12-18 10:17

reporter   ~0014621

Last edited: 2010-12-20 12:25

Every time I get a white announcement about " x dwarf has become (any millitary profession) " and that dwarf is flashing ( legendary in any fighting skill ) that dwarf loses all assigned jobs, always.

I re-put his jobs in, he finishes his tour of duty, the jobs are still there.

Whenever he gets back into active duty, as mentioned above, he will lose all assigned jobs again.

Very annoying ><

kwieland

2011-04-07 22:32

reporter   ~0017188

Still exists in .25 I still haven't seen the announcement, though. It could be that mine are only to the GREAT level in fighting, and so they don't become "lords". I don't know why.

Quietust

2011-04-08 05:49

reporter   ~0017195

kwieland: reaching Great skill is all it takes for a soldier to become a weapon master.

kwieland

2011-04-23 07:05

reporter   ~0017485

I agree with Rage above, this can be a very annoying bug. Basically you have to decide if you want them in Military or not. Switching between them is a PITA!

Kogut

2011-04-23 08:21

reporter   ~0017486

use DT

Quietust

2011-04-23 09:04

reporter   ~0017487

Kogut: "use a third party utility" isn't exactly a proper solution to this problem...

Kogut

2011-04-23 23:53

reporter   ~0017492

but it may be useful workaround.

yllamana

2012-02-21 18:19

reporter   ~0020426

Last edited: 2012-02-21 18:39

This issue persists in 34.02. Very bad when trying to run a fort with a citizen militia instead of a dedicated army, because it turns off all jobs constantly.

My fortress has four adult dwarves. They're all in a military squad together with two on duty at a time.

I followed the dwarves' assigned jobs while they were going on and off duty. There's frequently a lag time between a dwarf going on duty and being recognised as a weapon master - they'll go on duty as an Axedwarf, for instance, despite their legendary skill, then after a while the game will realise they're meant to be an Axelord and they'll switch to that.

Their job preferences withstand going on and off duty (and whenever they're placed on active duty, it's as the non-master variant) but the three weapon masters lose all their job preferences when the game remembers they're weapon masters and updates their status accordingly. I haven't seen them lose their job preferences at any other time, and occasionally they have very short spans of duty where they can come on, train for a short while and then go off duty again without getting promoted and subsequently losing their job settings.

The critical part is that the "promotion" happens repeatedly for the same dwarf, because they lose their weapon master status whenever they go off-duty, resulting in this bug wiping their labour settings over and over.

This is a pretty major issue if you're trying to run a citizen militia (rare as that seems to be) and looks like it might be easy to fix.

edit: Hyndis suggested that the promotion lag might be because they get "promoted" when they increase in skill. That would make a lot of sense! So they go on duty as non-heroes, then their first skill level increase triggers a promotion check, which passes and wipes their job settings. Sounds plausible!

AbuDhabi

2012-04-03 07:40

reporter   ~0022049

Still present in .07.

Quietust

2012-06-26 17:33

reporter   ~0023111

Last edited: 2012-06-26 17:59

The following binary patches should fix this issue in Win32 v0.34.11 SDL:

0x6633BD : 5E -> 00 (Axe Lord)
0x6634B9 : 5E -> 00 (Spearmaster)
0x6635B8 : 5E -> 00 (Mace Lord)
0x6636B8 : 5E -> 00 (Hammer Lord)
0x6637B8 : 5E -> 00 (Swordmaster)
0x6638B8 : 5E -> 00 (Elite Crossbowman)
0x6639B8 : 5E -> 00 (Elite Bowman)
0x663B04 : E8 7F 48 12 00 -> 90 90 90 90 90 (Master Blowgunner)
0x663BEB : 5E -> 00 (Master Lasher)
0x663CE8 : 5E -> 00 (Pikemaster)
0x663DFD : 5E -> 00 (Elite Wrestler)

Each patch changes call from "memset(unit->labors, 0, 94);" to "memset(unit->labors, 0, 0);" (except for the Master Blowgunner case which just removes the call altogether since the number 94 also means "Master Blowgunner").

Issue History

Date Modified Username Field Change
2010-08-24 19:59 Quietust New Issue
2010-10-09 00:03 sgrunt Note Added: 0013273
2010-10-09 07:37 kwieland Note Added: 0013274
2010-10-09 09:04 Quietust Note Added: 0013276
2010-11-05 07:20 Logical2u Relationship added has duplicate 0003511
2010-12-05 21:09 Ogg the Blinky Sock Note Added: 0014422
2010-12-18 10:17 RageandTears Note Added: 0014621
2010-12-20 12:25 RageandTears Note Edited: 0014621
2011-04-01 13:06 user6 Relationship added related to 0000872
2011-04-07 22:32 kwieland Note Added: 0017188
2011-04-08 05:49 Quietust Note Added: 0017195
2011-04-23 07:05 kwieland Note Added: 0017485
2011-04-23 08:21 Kogut Note Added: 0017486
2011-04-23 09:04 Quietust Note Added: 0017487
2011-04-23 23:53 Kogut Note Added: 0017492
2011-08-01 08:22 user1294 Relationship added has duplicate 0003227
2012-02-21 18:19 yllamana Note Added: 0020426
2012-02-21 18:39 yllamana Note Edited: 0020426
2012-04-03 07:40 AbuDhabi Note Added: 0022049
2012-06-26 17:33 Quietust Note Added: 0023111
2012-06-26 17:33 Quietust Tag Attached: binary patch
2012-06-26 17:35 Quietust Note Edited: 0023111
2012-06-26 17:59 Quietust Note Edited: 0023111
2014-03-25 13:31 user11 Assigned To => user11
2014-03-25 13:31 user11 Status new => acknowledged
2014-07-23 11:47 Toady One Status acknowledged => resolved
2014-07-23 11:47 Toady One Fixed in Version => Next Version
2014-07-23 11:47 Toady One Resolution open => fixed
2014-07-23 11:47 Toady One Assigned To user11 => Toady One