This data will help construct a "loaded weapon" such as a Suppressor or a Gauss.<br>
<br>
The data for the weapons nests information for the default (current) type and number of ammunition in its magazine.
This ammunition data essentially is the weapon's magazines as numbered slots.
An "expected" number of ammunition slot data can be passed into the function.</p></div><dlclass="paramcmts block"><dtclass="param">data</dt><ddclass="cmt"><p>field common to multiple game objects</p></dd><dtclass="param">fire_mode</dt><ddclass="cmt"><p>the current fire mode</p></dd><dtclass="param">ammo</dt><ddclass="cmt"><p>data regarding the currently loaded ammunition type(s) and quantity(ies)</p></dd></dl><dlclass="attributes block"><dt>Source</dt><dd><ahref="https://github.com/psforever/PSF-LoginServer/blob/master//home/runner/work/PSF-LoginServer/PSF-LoginServer/src/main/scala/net/psforever/packet/game/objectcreate/DetailedWeaponData.scala"target="_blank">DetailedWeaponData.scala</a></dd><dt>See also</dt><dd><spanclass="cmt"><p><code>DetailedAmmoBoxData</code></p></span><spanclass="cmt"><p><code>WeaponData</code></p></span></dd></dl><divclass="toggleContainer"><divclass="toggle block"><span>Linear Supertypes</span><divclass="superTypes hiddenContent"><ahref="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html#java.io.Serializable"name="java.io.Serializable"id="java.io.Serializable"class="extype">Serializable</a>, <spanname="scala.Product"class="extype">Product</span>, <spanname="scala.Equals"class="extype">Equals</span>, <ahref="ConstructorData.html"name="net.psforever.packet.game.objectcreate.ConstructorData"id="net.psforever.packet.game.objectcreate.ConstructorData"class="extype">ConstructorData</a>, <ahref="StreamBitSize.html"name="net.psforever.packet.game.objectcreate.StreamBitSize"id="net.psforever.packet.game.objectcreate.StreamBitSize"class="extype">StreamBitSize</a>, <spanname="scala.AnyRef"class="extype">AnyRef</span>, <spanname="scala.Any"class="extype">Any</span></div></div></div></div><divid="mbrsel"><divclass="toggle"></div><divid="memberfilter"><iclass="material-icons arrow"></i><spanclass="input"><inputplaceholder="Filter all members"id="mbrsel-input"type="text"accesskey="/"/></span><iclass="clear material-icons"></i></div><divid="filterby"><divid="order"><spanclass="filtertype">Ordering</span><ol><liclass="alpha in"><span>Alphabetic</span></li><liclass="inherit out"><span>By Inheritance</span></li></ol></div><divclass="ancestors"><spanclass="filtertype">Inherited<br/></span><olid="linearization"><liclass="in"name="net.psforever.packet.game.objectcreate.DetailedWeaponData"><span>DetailedWeaponData</span></li><liclass="in"name="java.io.Serializable"><span>Serializable</span></li><liclass="in"name="scala.Product"><span>Product</span></li><liclass="in"name="scala.Equals"><span>Equals</span></li><liclass="in"name="net.psforever.packet.game.objectcreate.ConstructorData"><span>ConstructorData</span></li><liclass="in"name="net.psforever.packet.game.objectcreate.StreamBitSize"><span>StreamBitSize</span></li><liclass="in"name="scala.AnyRef"><span>AnyRef</span></li><liclass="in"name="scala.Any"><span>Any</span></li></ol></div><divclass="ancestors"><spanclass="filtertype"></span><ol><liclass="hideall out"><span>Hide All</span></li><liclass="showall in"><span>Show All</span></li></ol></div><divid="visbl"><spanclass="filtertype">Visibility</span><ol><liclass="public in"><span>Public</span></li><liclass="protected out"><span>Protected</span></li></ol></div></div></div><divid="template"><divid="allMembers"><divid="constructors"class="members"><h3>Instance Constructors</h3><ol><liclass="indented0 "name="net.psforever.packet.game.objectcreate.DetailedWeaponData#<init>"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="<init>(data:net.psforever.packet.game.objectcreate.CommonFieldData,fire_mode:Int,ammo:List[net.psforever.packet.game.objectcreate.InternalSlot],unk:Boolean):net.psforever.packet.game.objectcreate.DetailedWeaponData"></a><aid="<init>:DetailedWeaponData"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/DetailedWeaponData.html#<init>(data:net.psforever.packet.game.objectcreate.CommonFieldData,fire_mode:Int,ammo
<br>
The calculation reflects the <code>scodec Codec</code> definition rather than the explicit parameter fields.</p><divclass="fullcomment"><divclass="comment cmt"><p>Performs a "sizeof()" analysis of the given object.<br>
<br>
The calculation reflects the <code>scodec Codec</code> definition rather than the explicit parameter fields.
For example, a traditional <code>Int</code> is normally a 32-bit number, often rendered as a <code>32u</code> number.
When parsed with a <code>uintL(7)</code>, it's length will be considered 7 bits (<code>7u</code>).
(Note: being permanently signed, an <code>scodec</code> value of <code>32u</code> or longer must fit into a <code>Long</code> type.)</p></div><dlclass="paramcmts block"><dt>returns</dt><ddclass="cmt"><p>the number of bits necessary to measure an object of this class;