View Issue Details

IDProjectCategoryView StatusLast Update
0001445Dwarf FortressDwarf Mode -- Militarypublic2017-03-29 18:14
ReporterGhede Assigned Touser11 
PrioritynormalSeverityminorReproducibilityhave not tried
Status confirmedResolutionopen 
Product Version0.31.03 
Summary0001445: Weapon Racks do nothing.
DescriptionI have created an armory/training room for my military. I can assign armor stands just fine, and dwarves use them to store armor just fine as well. Weapon Racks cannot be assigned, and dwarves do NOT use them to store weapons. They are fancy decorations at this point.
Steps To Reproduce1. Build a weapon rack.
2. Place a weapon rack.
3. Designate a barracks/armory.
4. Set armed dwarves to stand by.
5. Watch them go to the weapon stockpile and drop them off.
Tagsarmor, barracks, binary patch, Military, stockpile, weapon

Relationships

parent of 0003495 new Boxes/bags do not work correctly as barracks items. 
has duplicate 0004269 resolveduser6 Dwarves don't use weapon racks 
related to 0003395 new Can't assign barracks made out from Cabinets 
related to 0000535 acknowledgedToady One Equipping weapons/armor on military is erratic 
related to 0000428 acknowledgedToady One Dwarves refuse to train, and other training weirdness 
Not all the children of this issue are yet resolved or closed.

Activities

Ghede

2010-04-22 22:55

reporter   ~0004678

Addendum: Armor stand do not appear to work either. Dwarves immediately place their armor on the stands, then remove them and store them in a stockpile.

Ghede

2010-04-22 22:57

reporter   ~0004679

Additional step I performed and forgot to mention: Set the armory for Squad Equip, Individual Equip, and Training.

kwieland

2010-06-25 10:19

reporter   ~0009090

You can use the edit button to combine comments, FYI.

Rhenaya

2010-09-12 02:49

reporter   ~0012594

this issue also extends to barracks from/with cabinets/chests and the clothing they drop, they rather stand around no job as to store them.
however if they have a private room with cabinet, they will store their private clothing there

Granite26

2012-03-01 12:18

reporter   ~0020965

Last edited: 2012-03-01 12:26

This should probably be linked to 0000535. If this is handled some of the weirdness associated with it will probably go away.

user6

2012-03-01 14:52

  ~0020972

Thanks for the heads up!

thvaz

2012-03-26 07:58

reporter   ~0021741

This still happens as of 34.06.

Kogut

2012-06-08 03:57

reporter   ~0022902

Last edited: 2012-06-08 04:00

This still happens as of 34.11.

According to wiki "When used in a barracks designated for individual and squad equipment, dwarves will prefer to store their weapons on the racks instead of stockpiles. Doing so in concert with armor stands will allow you to create centralized armories for your military."

I tried to create barracks with weapon racks but nothing is stored, everything is left in forge.

Save: http://dffd.wimbli.com/file.php?id=6449

ag

2012-10-27 00:13

reporter   ~0023685

I have investigated this yesterday in depth, and there is a whole set of problems here.

1. The racks have to be linked to a specific squad to work (like armor stands, beds etc are to positions), but nothing does this - neither via ui, nor automatically. This is likely an oversight due to the pecularity that racks belong to whole squads, not positions.

2. If you do link them by changing structures in memory, they are still unassigned due to some code using uninitialized variables (likely due to copy&paste error). This patch fixes it for linux:
 
  http://pastebin.com/mt5EUgFZ

3. Finally, even if stuff is put on racks or armor stands, dwarves will quickly come and haul it off to stockpiles. This dfhack tweak fixes it by overriding a handy virtual method:

  https://github.com/angavrilov/dfhack/commit/c5d8bd9db6f56fb133779425f801107a15314eb9

4. Regarding armor stands, their capacity is implemented in a very silly way: they seem to allow only one item of _each type_, resulting in:

  one shield, one helm/cap, one breastplate/mail shirt
  one greaves/leggings, ONE BOOT, ONE GAUNTLET

This basically mean that you need 2 stands for every squad member due to boots alone; and it is also common to use cap+helm, and breastplate+mail shirt. You can see that I tried to hack this in the tweak above, but it didn't work because not all relevant code uses the vmethod.

ag

2012-10-28 23:42

reporter   ~0023694

Over the weekend I've made a few more binary patches:

1. Fixing mistaken removal of weapon racks from squad vectors even if assigned:

  v0.34.11 linux: http://pastebin.com/mt5EUgFZ (same as above)
  v0.34.11 windows: http://pastebin.com/09nRCybe

2. Fix the boot and mail shirt + breastplate problem of armor stands by allowing TWO items of the same type instead of one:

  v0.34.11 linux: http://pastebin.com/c45BXqEz
  v0.34.11 windows: http://pastebin.com/Cxqd0GTh

Together with a dfhack plugin and a dfhack script, this appears to mostly fix the issues with squad equipment and barrack storage not being used:

https://github.com/angavrilov/dfhack/blob/master/plugins/fix-armory.cpp
https://github.com/angavrilov/dfhack/blob/master/scripts/gui/assign-rack.lua

Hopefully this research and hack code is clear enough to apply equivalent
fixes to the game itself. It is interesting how the Store Armor and Store
Weapon jobs which apparently haven't been used since 2D still work fine, if
only something creates them :)

There are still various more or less related minor problems:

- Armor stands, cabinets and chests belong to a specific squad member,
  but the member who owns the specific object used to create the barracks
  will use any relevant container in the room, possibly leaving the actual
  owner of that container without place to store his stuff. Due to this quirk,
  it is advisable to always create your armory from a weapon rack.
  The cause of this is that the code enumerating containers also iterates
  over room children, which it probably shouldn't.

- Food is kicked out from backpacks when they are stored in a chest, and
  separately hauled to the squad member's room.

- I'm not sure if ammo is supposed to go anywhere in the barracks; I expect
  it just ends up in the stockpile anyway.

- If the item of clothing a flask is attached to is removed before it,
  the flask drops to the ground, and is even forbidden as a 'death item' if
  the order is set.
  The order of uniform item removal depends purely on the order of
  creation of the items, not on layering or any logical relations.

- Likewise, unless this has been fixed since v0.31.25 (which I doubt), items
  are added to the uniform in the order of creation, which can cause some of
  them to be excluded due to comparing the wrong size sum with the wrong
  permit, e.g. Robe+Breastplate+Cloak+Mail Shirt enumerated in this order
  means no mail shirt equipped.

carbohydrates

2017-03-29 18:14

reporter   ~0036388

This is still an issue as of 43.05

I tried using the fix-armory plugin, it doesn't seem to do anything without a patched binary. But...the patch is 5 years out of date.

It would be great to be able to use this feature of the game!

Add Note

Note

Issue History

Date Modified Username Field Change
2010-04-22 22:46 Ghede New Issue
2010-04-22 22:55 Ghede Note Added: 0004678
2010-04-22 22:57 Ghede Note Added: 0004679
2010-04-22 23:40 user6 Category Dwarf Mode -- Buildings, Cages and Chains => Dwarf Mode -- Military
2010-04-23 06:17 Ghede Tag Attached: barracks
2010-04-23 06:17 Ghede Tag Attached: Military
2010-04-23 06:17 Ghede Tag Attached: stockpile
2010-04-23 06:17 Ghede Tag Attached: armor
2010-04-23 06:17 Ghede Tag Attached: weapon
2010-04-23 16:12 Lac Tag Detached: armor
2010-04-23 16:13 Lac Tag Attached: armour
2010-04-23 16:16 Lac Tag Detached: armour
2010-04-23 16:16 Lac Tag Attached: armor
2010-06-25 10:19 kwieland Note Added: 0009090
2010-09-12 02:49 Rhenaya Note Added: 0012594
2010-11-15 17:35 user6 Relationship added parent of 0003495
2010-11-16 13:21 user6 Relationship added related to 0003395
2011-03-21 06:54 user6 Relationship added has duplicate 0004269
2012-03-01 12:18 Granite26 Note Added: 0020965
2012-03-01 12:22 Granite26 Note Edited: 0020965
2012-03-01 12:22 Granite26 Note Edited: 0020965
2012-03-01 12:23 Granite26 Note Edited: 0020965
2012-03-01 12:23 Granite26 Note Edited: 0020965
2012-03-01 12:23 Granite26 Note Edited: 0020965
2012-03-01 12:23 Granite26 Note Edited: 0020965
2012-03-01 12:23 Granite26 Note Edited: 0020965
2012-03-01 12:26 Granite26 Note Edited: 0020965
2012-03-01 14:51 user6 Relationship added related to 0000535
2012-03-01 14:52 user6 Note Added: 0020972
2012-03-26 07:58 thvaz Note Added: 0021741
2012-06-08 03:57 Kogut Note Added: 0022902
2012-06-08 03:59 Kogut Note Edited: 0022902
2012-06-08 04:00 Kogut Note Edited: 0022902
2012-10-27 00:13 ag Note Added: 0023685
2012-10-28 23:42 ag Note Added: 0023694
2012-10-29 00:00 ag Tag Attached: binary patch
2014-01-27 11:31 user6 Relationship added related to 0000428
2014-03-25 13:24 user11 Assigned To => user11
2014-03-25 13:24 user11 Status new => acknowledged
2014-07-28 14:58 user11 Status acknowledged => confirmed
2017-03-29 18:14 carbohydrates Note Added: 0036388