<plugin class="jmad" author="Iron_Forge" version="0.5" headersize="188">
  <revision author="DemonicSandwich" version="0.6">Mapped out: [jmad] and Raw pointers; some Call values; grenade, sounds, and effect delay reflexives</revision>
  <revision author="Soldier of Light" version="0.5">Mapped most of the plugin...</revision>
  <revision author="Iron_Forge" version="0.1">Added basic layout of plugin...</revision>
  <tag name="Unknown" offset="0" visible="False" />
  <id name="Unknown" offset="4" visible="False" />
  <byte name="Unknown8" offset="8" visible="False" />
  <byte name="Unknown9" offset="9" visible="False" />
  <byte name="Unknown10" offset="10" visible="False" />
  <byte name="Unknown11" offset="11" visible="False" />
  <struct name="Bones" offset="12" visible="true" size="32" label="">
    <stringid name="Bone" offset="0" visible="True" />
    <short name="Next sibling Bone" offset="4" visible="True" />
    <short name="Child Bone" offset="6" visible="True" />
    <short name="Parent Bone" offset="8" visible="True" />

    <enum16 name="Bone type?" offset="10" visible="True">
      <option name="Basic Bone (nothing special)" value="1" />
      <option name="Primary Bone\Pelvis Bone" value="5" />
      <option name="Right Hand Bone" value="17" />
      <option name="Left Arm\Leg\Finger Bones" value="33" />
      <option name="Left Hand Bone" value="41" />
    </enum16>

    <float name="Unknown12" offset="12" visible="False" />
    <float name="Unknown16" offset="16" visible="False" />
    <float name="Unknown20" offset="20" visible="False" />
    <float name="Unknown20" offset="24" visible="False" />
    <float name="Distance From Parent?" offset="28" visible="False" />
  </struct>
  <struct name="Sounds" offset="20" visible="true" size="12" label="">
    <tag name="Sound" offset="0" visible="True" />
    <id name="Sound" offset="4" visible="True" />
    <int name="Unknown" offset="8" visible="False" />
  </struct>
  <struct name="Effects" offset="28" visible="true" size="12" label="">
    <tag name="Effect" offset="0" visible="True" />
    <id name="Effect" offset="4" visible="True" />
    <unused offset="8" size="4" />
  </struct>
  <struct name="Screen Bounds" offset="36" visible="true" size="28" label="">
    <stringid name="label" offset="0" visible="True" />
    <float name="Right yaw per frame" offset="4" visible="True" />
    <float name="Left yaw per frame" offset="8" visible="True" />
    <short name="Right frame count" offset="12" visible="True" />
    <short name="Left frame count" offset="14" visible="True" />
    <float name="Down pitch per frame" offset="16" visible="True" />
    <float name="Up pitch per frame" offset="20" visible="True" />
    <short name="Down pitch frame count" offset="24" visible="True" />
    <short name="Up pitch frame count" offset="26" visible="True" />
  </struct>
  <struct name="Animations" offset="44" visible="true" size="108" label="Name">
    <stringid name="Name" offset="0" visible="True" />
    <short name="Unknown" offset="4" visible="False" />
    <short name="Unknown" offset="6" visible="False" />
    <byte name="Unknown" offset="8" visible="False" />
    <byte name="Unknown" offset="9" visible="False" />
    <short name="Unknown" offset="10" visible="False" />
    <byte name="Unknown" offset="12" visible="False" />
    <byte name="Unknown" offset="13" visible="False" />
    <short name="Unknown" offset="14" visible="False" />
    <short name="Unknown" offset="16" visible="False" />
    <byte name="Unknown" offset="18" visible="False" />
    <byte name="# of Bones" offset="19" visible="True" />
    <short name="Max Cycle Length in ticks (30 ticks = 1 second)" offset="20" visible="True" />
    <short name="Unknown (Do not Change)" offset="22" visible="False" />
    <short name="Transition Speed?" offset="24" visible="True" />
    <short name="Unknown" offset="26" visible="False" />
    <float name="Unknown" offset="28" visible="False" />
    <unused offset="32" size="4" />
    <int name="Raw Chunk #" offset="36" visible="True" />
    <short name="Offset in raw" offset="40" visible="True" />
    <short name="Unused" offset="42" visible="False" />
    <short name="Unknown" offset="44" visible="False" />
    <bitmask16 name="Doesn't Repeat" offset="46" visible="True">
      <option name="Doesn't Repeat" value="8" />
    </bitmask16>
    <short name="Unknown" offset="48" visible="False" />
    <short name="Unknown" offset="50" visible="False" />
    <unused offset="52" size="8" />
    <byte name="Unknown" offset="60" visible="False" />
    <byte name="Unknown" offset="61" visible="False" />
    <byte name="Unknown" offset="62" visible="False" />
    <byte name="Unknown" offset="63" visible="False" />
    <short name="Unknown" offset="64" visible="False" />
    <short name="Animation Raw Something" offset="66" visible="False" />
    <unused offset="68" size="4" />
    <byte name="Unknown" offset="72" visible="False" />
    <byte name="Unknown" offset="73" visible="False" />
    <short name="Unknown" offset="74" visible="False" />
    <struct name="(Action Delay)&#xD;&#xA;&#xD;&#xA;This Reflexive delays actions such as:&#xD;&#xA;*How long you hold a grenade before throwing it.(0) *Delay between melee and melee damage.(0)&#xD;&#xA;*How long a driver stays seated before you pull him out or steal his shit.(0)&#xD;&#xA;*How long before you can fire weapon after hitting reload.(0)" offset="76" visible="true" size="4" label="">
      <enum16 name="Delay Type?" offset="0" visible="True">
        <option name="Grenade\Melee\HighJack\etc." value="0" />
        <option name="Movement Delay" value="2" />
        <option name="Landing Dead?" value="10" />
      </enum16>
      <short name="Delay action for X amount of ticks (30 ticks = 1 second)" offset="2" visible="True" />
    </struct>
    <struct name="Sounds" offset="84" visible="true" size="8" label="">
      <short name="Sounds Chunk #" offset="0" reflexiveoffset="20" reflexivesize="12" itemoffset="4" itemtype="ident" layer="root" visible="True" />
      <short name="Delay sound for X amount of ticks (30 ticks = 1 second)" offset="2" visible="True" />
      <stringid name="Spawn Marker" offset="4" visible="True" />
    </struct>
    <struct name="Effects" offset="92" visible="true" size="4" label="">
      <short name="Effects Chunk #" offset="0" reflexiveoffset="28" reflexivesize="12" itemoffset="4" itemtype="ident" layer="root" visible="True" />
      <short name="Delay effect for X amount of ticks (30 ticks = 1 second)" offset="2" visible="True" />
    </struct>
    <struct name="Unknown" offset="100" visible="False" size="28" label="">
      <short name="Unknown" offset="0" visible="False" />
      <short name="Unknown" offset="2" visible="False" />
      <undefined name="Unknown" offset="4" visible="False" />
      <undefined name="Unknown" offset="8" visible="False" />
      <float name="Unknown" offset="12" visible="False" />
      <float name="Unknown" offset="16" visible="False" />
      <float name="Unknown" offset="20" visible="False" />
      <float name="Unknown" offset="24" visible="False" />
    </struct>
  </struct>
  <struct name="Animation Calls" offset="52" visible="true" size="20" label="Postion Name">
    <stringid name="Postion Name" offset="0" visible="True" />
    <struct name="Class" offset="4" visible="true" size="20" label="Class Name">
      <stringid name="Class Name" offset="0" visible="True" />
      <struct name="Object" offset="4" visible="true" size="52" label="Type">
        <stringid name="Type" offset="0" visible="True" />
        <struct name="Full Object Animations" offset="4" visible="true" size="8" label="">
          <stringid name="Condition" offset="0" visible="True" />
          <short name="Animation Located in..." offset="4" reflexiveoffset="76" reflexivesize="32" itemoffset="4" itemtype="ident" layer="root" visible="True" />
          <short name="Animation" offset="6" visible="True" />
        </struct>
        <struct name="Half/Upper Object Animations" offset="12" visible="true" size="8" label="">
          <stringid name="Condition" offset="0" visible="True" />
          <short name="Animation Located in..." offset="4" reflexiveoffset="76" reflexivesize="32" itemoffset="4" itemtype="ident" layer="root" visible="True" />
          <short name="Animation" offset="6" visible="True" />
        </struct>
        <struct name="Death/Damage" offset="20" visible="true" size="12" label="">
          <stringid name="Condition" offset="0" visible="True" />
          <struct name="Values" offset="4" visible="true" size="8" label="">
            <struct name="Values" offset="0" visible="true" size="4" label="">
              <short name="Animation Located in..." offset="0" reflexiveoffset="76" reflexivesize="32" itemoffset="4" itemtype="ident" layer="root" visible="True" />
              <short name="Chunk #" offset="2" visible="True" />
            </struct>
          </struct>
        </struct>
        <struct name="AI" offset="28" visible="false" size="20" label="">
          <stringid name="Currently Performing" offset="0" visible="True" />
          <stringid name="Currently Performing" offset="4" visible="True" />
          <float name="Unknown" offset="8" visible="True" />
          <struct name="Options" offset="12" visible="true" size="20" label="">
            <stringid name="Full Name" offset="0" visible="True" />
            <stringid name="State Name" offset="4" visible="True" />
            <stringid name="Animation Name" offset="8" visible="True" />
            <float name="Unknown" offset="12" visible="True" />
            <short name="Unknown" offset="16" visible="True" />
            <short name="Chunk #" offset="18" visible="True" />
          </struct>
        </struct>
        <struct name="Unknown36" offset="36" visible="false" size="4" label="">
          <short name="Unknown" offset="0" visible="True" />
          <short name="Unknown" offset="2" visible="True" />
        </struct>
        <struct name="Unknown44" offset="44" visible="false" size="4" label="">
          <short name="Unknown" offset="0" visible="True" />
          <short name="Unknown" offset="2" visible="True" />
        </struct>
      </struct>
      <struct name="Limb Positioning" offset="12" visible="true" size="8" label="">
        <stringid name="Local Marker" offset="0" visible="True" />
        <stringid name="Remote Marker" offset="4" visible="True" />
      </struct>
    </struct>
    <struct name="Limb Positioning" offset="12" visible="true" size="8" label="">
      <stringid name="This Object's Local Marker" offset="0" visible="True" />
      <stringid name="Forein Object's Remote Marker" offset="4" visible="True" />
    </struct>
  </struct>
  <struct name="Vehicle Suspension" offset="60" visible="true" size="40" label="">
    <stringid name="Suspension part" offset="0" visible="True" />
    <undefined name="Unknown" offset="4" visible="False" />
    <stringid name="Unknown" offset="8" visible="True" />
    <float name="Unknown" offset="12" visible="False" />
    <float name="Unknown" offset="16" visible="False" />
    <float name="Unknown" offset="20" visible="False" />
    <stringid name="Marker" offset="24" visible="True" />
    <unused offset="28" size="4" />
    <float name="Unknown" offset="32" visible="False" />
    <float name="Unknown" offset="36" visible="False" />
  </struct>
  <struct name="Some thing to look at mbmb? k." offset="68" visible="false" size="20" label="">
    <stringid name="Unknown" offset="0" visible="True" />
    <float name="Unknown" offset="4" visible="True" />
    <float name="Unknown" offset="8" visible="True" />
    <stringid name="Unknown" offset="12" visible="True" />
    <float name="Unknown" offset="16" visible="True" />
  </struct>
  <struct name="Referenced Jmads" offset="76" visible="true" size="32" label="">
    <tag name="[jmad] Tag" offset="0" visible="True" />
    <id name="[jmad] Tag" offset="4" visible="True" />
    <struct name="76-8" offset="8" visible="false" size="2" label="">
      <short name="76-8-0" offset="0" visible="True" />
    </struct>
    <struct name="76-16" offset="16" visible="false" size="4" label="">
      <short name="76-16-0" offset="0" visible="True" />
      <short name="76-16-2" offset="2" visible="True" />
    </struct>
    <float name="76-24" offset="24" visible="False" />
    <float name="76-28" offset="28" visible="False" />
  </struct>
  <struct name="Weapon Associations" offset="84" visible="true" size="8" label="">
    <stringid name="Short" offset="0" visible="True" />
    <stringid name="Class" offset="4" visible="True" />
  </struct>
  <byte name="92" offset="92" visible="False" />
  <byte name="93" offset="93" visible="False" />
  <byte name="94" offset="94" visible="False" />
  <byte name="95" offset="95" visible="False" />
  <byte name="96" offset="96" visible="False" />
  <byte name="97" offset="97" visible="False" />
  <byte name="98" offset="98" visible="False" />
  <byte name="99" offset="99" visible="False" />
  <unused offset="100" size="24" />
  <byte name="124" offset="124" visible="False" />
  <byte name="125" offset="125" visible="False" />
  <byte name="126" offset="126" visible="False" />
  <byte name="127" offset="127" visible="False" />
  <byte name="128" offset="128" visible="False" />
  <byte name="129" offset="129" visible="False" />
  <byte name="130" offset="130" visible="False" />
  <byte name="131" offset="131" visible="False" />
  <byte name="132" offset="132" visible="False" />
  <byte name="133" offset="133" visible="False" />
  <byte name="134" offset="134" visible="False" />
  <byte name="135" offset="135" visible="False" />
  <unused offset="136" size="36" />
  <struct name="Raw pointers" offset="172" visible="true" size="20" label="">
    <id name="[jmad] Raw pointer?" offset="0" visible="True" />
    <int name="Raw Size" offset="4" visible="True" />
    <int name="Raw Offset" offset="8" visible="True" />
    <unused offset="12" size="4" />
    <int name="Unknown" offset="16" visible="False" />
  </struct>
  <struct name="Unknown180" offset="180" visible="False" size="24" label="">
    <short name="Unknown" offset="0" visible="True" />
    <short name="Unknown" offset="2" visible="True" />
    <short name="Unknown" offset="4" visible="True" />
    <short name="Unknown" offset="6" visible="True" />
    <short name="Unknown" offset="8" visible="True" />
    <short name="Unknown" offset="10" visible="True" />
    <short name="Unknown" offset="12" visible="True" />
    <short name="Unknown" offset="14" visible="True" />
    <short name="Unknown" offset="16" visible="True" />
    <short name="Unknown" offset="18" visible="True" />
    <short name="Unknown" offset="20" visible="True" />
    <short name="Unknown" offset="22" visible="True" />
  </struct>
</plugin>