weapons.dat contains info about weapons.
it is parsed in vshell @sub_4125E8 (loadWeaponsData), population of primary data-structure at sub_41237B (readWeaponInfo1) and population of secondary data-structure at sub_41205A (readWeaponInfo2).
it begins with _WORD containing number of entries (33)
each element:
_WORD index
_WORD strlen
(STRLEN) x char weaponCode (null terminated)
_WORD cost (read into field14 and multiplied by 1000 => salvage required to build, saved as tons. the field itself stores kgs!)
_BYTE unk1 (read into field16)
_WORD unk2 (read into word_484086 array, which is prepopulated?!)
then, a second set of entries with different format and count (39 ?!?!):
_WORD index => sub_411FD8 parses this into field2, too
_WORD unk1 => field6
_WORD unk2 => field8