<plugin class="grhi" author="conure" version="1" headersize="0">
 <text name="grenade hud screen alignment" visible="true"/>
 <enum16 name="GHSA - anchor" offset="0x0" visible="true">
  <option name="top left" vale="0"/>
  <option name="top right" vale="1"/>
  <option name="bottem left" vale="2"/>
  <option name="bottem right" vale="3"/>
  <option name="center" vale="4"/>
 </enum16>
 <text name="grenade hud backround" visible="true"/>
 <short name="GHB - anchor offset - x" offset="0x24" visible="true"/>
 <short name="GHB - anchor offset - y" offset="0x26" visible="true"/>
 <float name="GHB - width scale" offset="0x28" visible="true"/>
 <float name="GHB - height scale" offset="0x2c" visible="true"/>
 <bitmask32 name="GHB - scaling flags" offset="0x30" visible="true">
  <option name="dont scale offset" value="31"/>
  <option name="dont scale size" value="30"/>
  <option name="use high res scale" value="29"/>
 </bitmask32>
 <dependency name="GHB - interface bitmap" offset="0x48" visible="true"/>
 <colorByte name="GHB - default color" offset="0x58" visible="true"/>
 <colorByte name="GHB - flashing color" offset="0x5c" visible="true"/>
 <Float name="GHB - flashing period" offset="0x60" visible="true"/>
 <float name="GHB - flash delay" offset="0x64" visible="true"/>
 <short name="GHB - number of flashes" offset="0x68" visible="true"/>
 <bitmask32 name="GHB - flash flags" offset="0x6a" visible="true">
  <option name="reverse default/flashing color" value="31"/>
 </bitmask32>
 <float name="GHB - flash length" offset="0x6c" visible="true"/>
 <colorbyte name="GHB - disabled color" offset="0x70" visible="true"/>
 <short name="GHB - sequence index" offset="0x78" visible="true"/>
 <struct name="multitex overlay 1" offset="0x7c" visible="true" size="480">
  <short name="type" offset="0x0" visible="true"/>
  <enum16 name="framebufferblend func" offset="0x4" visible="true">
   <option name="alpha blend" value="0"/>
   <option name="multiply" value="1"/>
   <option name="double multiply" value="2"/>
   <option name="add" value="3"/>
   <option name="subtract" value="4"/>
   <option name="component min" value="5"/>
   <option name="component max" value="6"/>
   <option name="alpha-multiply add" value="7"/>
  </enum16>
  <text name="anchors" subtext="where you want the origin of the texture. texture uses the coordinates supplied. screen uses the origin of the screen as the origin of the texture." visible="true"/>
  <enum16 name="primary anchor" offset="0x28" visible="true">
   <option name="texture" value="0"/>
   <option name="screen" value="1"/>
  </enum16>
  <enum16 name="secondary anchor" offset="0x2a" visible="true">
   <option name="texture" value="0"/>
   <option name="screen" value="1"/>
  </enum16>
  <enum16 name="tertiary anchor" offset="0x2c" visible="true">
   <option name="texture" value="0"/>
   <option name="screen" value="1"/>
  </enum16>
  <text name="blending function" subtext="how to blend the textures together" visible="true"/>
  <enum16 name="0 to 1 blend func" offset="0x2e" visible="true">
   <option name="add" value="0"/>
   <option name="subtract" value="1"/>
   <option name="multiply" value="2"/>
   <option name="multiply2x" value="3"/>
   <option name="dot" value="4"/>
  </enum16>
  <enum16 name="1 to 2 blend func" offset="0x30" visible="true">
   <option name="add" value="0"/>
   <option name="subtract" value="1"/>
   <option name="multiply" value="2"/>
   <option name="multiply2x" value="3"/>
   <option name="dot" value="4"/>
  </enum16>
  <text name="map scales" subtext="how much to scale the textures" visible="true"/>
  <float name="primary scale - x" offset="0x34" visible="true"/>
  <float name="primary scale - y" offset="0x38" visible="true"/>
  <float name="secondary scale - x" offset="0x3c" visible="true"/>
  <float name="secondary scale - y" offset="0x40" visible="true"/>
  <float name="tertiary scale - x" offset="0x44" visible="true"/>
  <float name="tertiary scale - y" offset="0x48" visible="true"/>
  <text name="map offsets" subtext="how much to offset the origin of the texture" visible="true"/>
  <float name="primary offset - x" offset="0x4c" visible="true"/>
  <float name="primary offset - y" offset="0x50" visible="true"/>
  <float name="secondary offset - x" offset="0x54" visible="true"/>
  <float name="secondary offset - y" offset="0x58" visible="true"/>
  <float name="tertiary offset - x" offset="0x5c" visible="true"/>
  <float name="tertiary offset - y" offset="0x60" visible="true"/>
  <text name="map" subtext="which map to use" visible="true"/>
  <dependency name="primary" offset="0x64" visible="true"/>
  <dependency name="secondary" offset="0x74" visible="true"/>
  <dependency name="tertiary" offset="0x84" visible="true"/>
  <enum16 name="primary wrap mode" offset="0x94" visible="true">
   <option name="clamp" value="0"/>
   <option name="wrap" value="1"/>
  </enum16>
  <enum16 name="secondary wrap mode" offset="0x96" visible="true">
   <option name="clamp" value="0"/>
   <option name="wrap" value="1"/>
  </enum16>
  <enum16 name="tertiary wrap mode" offset="0x98" visible="true">
   <option name="clamp" value="0"/>
   <option name="wrap" value="1"/>
  </enum16>
  <struct name="effectors 1" offset="0x154" visible="true" size="220">
   <Text name="source/destination" subtext="These describe the relationship that causes the effect. *destination type is the type of variable you want to be effected. *destination tells which texture map (or geometry offset) to apply it to. *source says which value to look at when computing the effect." visible="true"/>
   <enum16 name="destination type" offset="0x40" visible="true">
    <option name="tint [0,1]" value="0"/>
    <option name="horizontal offset" value="1"/>
    <option name="vertical offset" value="2"/>
    <option name="fade [0,1]" value="3"/>
   </enum16>
   <enum16 name="destination" offset="0x42" visible="true">
    <option name="geometry offset" value="0"/>
    <option name="primary map" value="1"/>
    <option name="secondary map" value="2"/>
    <option name="tertiary map" value="3"/>
   </enum16>
   <enum16 name="source" offset="0x44" visible="true">
    <option name="player pitch" value="0"/>
    <option name="player pitch tangent" value="1"/>
    <option name="player yaw" value="2"/>
    <option name="weapon ammo (total)" value="3"/>
    <option name="weapon ammo (loaded)" value="4"/>
    <option name="weapon heat" value="5"/>
    <option name="explicit (uses low bound)" value="6"/>
    <option name="weapon zoom level" value="7"/>
   </enum16>
   <text name="in/out bounds" subtext="When the source is at the lower inbound, the destination ends up the lower outbound and vice-versa applies for the upper values." visible="true"/>
   <float name="in bounds - from" offset="0x48" visible="true"/>
   <float name="in bounds - to" offset="0x4c" visible="true"/>
   <float name="out bounds - from" offset="0x50" visible="true"/>
   <float name="out bounds - to" offset="0x54" visible="true"/>
   <colorRGB name="tint color lower bound" offset="0x98" visible="true"/>
   <colorRGB name="tint color lower bound" offset="0xA4" visible="true"/>
   <enum16 name="periodic function" offset="0xb0" visible="true">
    <option name="one" value="0"/>
    <option name="zero" value="1"/>
    <option name="cosine" value="2"/>
    <option name="cosine (varible period)" value="3"/>
    <option name="diagonal wave" value="4"/>
    <option name="diagonal wave (variable period)" value="5"/>
    <option name="slide" value="6"/>
    <option name="slide (variable period)" value="7"/>
    <option name="noise" value="8"/>
    <option name="jitter" value="9"/>
    <option name="wander" value="10"/>
    <option name="spark" value="11"/>
   </enum16>
   <float name="function period" offset="0xb4" visible="true"/>
   <float name="function phase" offset="0xb8" visible="true"/>
  </struct>
 </struct>
 <text name="total grenade background" visible="true"/>
 <short name="TGB - anchor offset - x" offset="0x8c" visible="true"/>
 <short name="TGB - anchor offset - y" offset="0x8e" visible="true"/>
 <float name="TGB - width scale" offset="0x90" visible="true"/>
 <float name="TGB - height scale" offset="0x94" visible="true"/>
 <bitmask32 name="TGB - scaling flags" offset="0x98" visible="true">
  <option name="dont scale offset" vale="31"/>
  <option name="dont scale size" vale="30"/>
  <option name="use high res scale" vale="29"/>
 </bitmask32>
 <dependency name="TGB - interface bitmap" offset="0xb0" visible="true"/>
 <colorByte name="TGB - default color" offset="0xc0" visible="true"/>
 <colorByte name="TGB - flashing color" offset="0xc4" visible="true"/>
 <Float name="TGB - flashing period" offset="0xc8" visible="true"/>
 <float name="TGB - flash delay" offset="0xcc" visible="true"/>
 <short name="TGB - number of flashes" offset="0xd0" visible="true"/>
 <bitmask32 name="TGB - flash flags" offset="0xd2" visible="true">
  <option name="reverse default/flashing color" value="31"/>
 </bitmask32>
 <float name="TGB - flash length" offset="0xd4" visible="true"/>
 <colorbyte name="TGB - disabled color" offset="0xd8" visible="true"/>
 <short name="TGB - sequence index" offset="0xe0" visible="true"/>
 <struct name="multitex overlay 2" offset="0xe4" visible="true" size="480">
  <short name="type" offset="0x0" visible="true"/>
  <enum16 name="framebufferblend func" offset="0x4" visible="true">
   <option name="alpha blend" value="0"/>
   <option name="multiply" value="1"/>
   <option name="double multiply" value="2"/>
   <option name="add" value="3"/>
   <option name="subtract" value="4"/>
   <option name="component min" value="5"/>
   <option name="component max" value="6"/>
   <option name="alpha-multiply add" value="7"/>
  </enum16>
  <text name="anchors" subtext="where you want the origin of the texture. texture uses the coordinates supplied. screen uses the origin of the screen as the origin of the texture." visible="true"/>
  <enum16 name="primary anchor" offset="0x28" visible="true">
   <option name="texture" value="0"/>
   <option name="screen" value="1"/>
  </enum16>
  <enum16 name="secondary anchor" offset="0x2a" visible="true">
   <option name="texture" value="0"/>
   <option name="screen" value="1"/>
  </enum16>
  <enum16 name="tertiary anchor" offset="0x2c" visible="true">
   <option name="texture" value="0"/>
   <option name="screen" value="1"/>
  </enum16>
  <text name="blending function" subtext="how to blend the textures together" visible="true"/>
  <enum16 name="0 to 1 blend func" offset="0x2e" visible="true">
   <option name="add" value="0"/>
   <option name="subtract" value="1"/>
   <option name="multiply" value="2"/>
   <option name="multiply2x" value="3"/>
   <option name="dot" value="4"/>
  </enum16>
  <enum16 name="1 to 2 blend func" offset="0x30" visible="true">
   <option name="add" value="0"/>
   <option name="subtract" value="1"/>
   <option name="multiply" value="2"/>
   <option name="multiply2x" value="3"/>
   <option name="dot" value="4"/>
  </enum16>
  <text name="map scales" subtext="how much to scale the textures" visible="true"/>
  <float name="primary scale - x" offset="0x34" visible="true"/>
  <float name="primary scale - y" offset="0x38" visible="true"/>
  <float name="secondary scale - x" offset="0x3c" visible="true"/>
  <float name="secondary scale - y" offset="0x40" visible="true"/>
  <float name="tertiary scale - x" offset="0x44" visible="true"/>
  <float name="tertiary scale - y" offset="0x48" visible="true"/>
  <text name="map offsets" subtext="how much to offset the origin of the texture" visible="true"/>
  <float name="primary offset - x" offset="0x4c" visible="true"/>
  <float name="primary offset - y" offset="0x50" visible="true"/>
  <float name="secondary offset - x" offset="0x54" visible="true"/>
  <float name="secondary offset - y" offset="0x58" visible="true"/>
  <float name="tertiary offset - x" offset="0x5c" visible="true"/>
  <float name="tertiary offset - y" offset="0x60" visible="true"/>
  <text name="map" subtext="which map to use" visible="true"/>
  <dependency name="primary" offset="0x64" visible="true"/>
  <dependency name="secondary" offset="0x74" visible="true"/>
  <dependency name="tertiary" offset="0x84" visible="true"/>
  <enum16 name="primary wrap mode" offset="0x94" visible="true">
   <option name="clamp" value="0"/>
   <option name="wrap" value="1"/>
  </enum16>
  <enum16 name="secondary wrap mode" offset="0x96" visible="true">
   <option name="clamp" value="0"/>
   <option name="wrap" value="1"/>
  </enum16>
  <enum16 name="tertiary wrap mode" offset="0x98" visible="true">
   <option name="clamp" value="0"/>
   <option name="wrap" value="1"/>
  </enum16>
  <struct name="effectors 2" offset="0x154" visible="true" size="220">
   <Text name="source/destination" subtext="These describe the relationship that causes the effect. *destination type is the type of variable you want to be effected. *destination tells which texture map (or geometry offset) to apply it to. *source says which value to look at when computing the effect." visible="true"/>
   <enum16 name="destination type" offset="0x40" visible="true">
    <option name="tint [0,1]" value="0"/>
    <option name="horizontal offset" value="1"/>
    <option name="vertical offset" value="2"/>
    <option name="fade [0,1]" value="3"/>
   </enum16>
   <enum16 name="destination" offset="0x42" visible="true">
    <option name="geometry offset" value="0"/>
    <option name="primary map" value="1"/>
    <option name="secondary map" value="2"/>
    <option name="tertiary map" value="3"/>
   </enum16>
   <enum16 name="source" offset="0x44" visible="true">
    <option name="player pitch" value="0"/>
    <option name="player pitch tangent" value="1"/>
    <option name="player yaw" value="2"/>
    <option name="weapon ammo (total)" value="3"/>
    <option name="weapon ammo (loaded)" value="4"/>
    <option name="weapon heat" value="5"/>
    <option name="explicit (uses low bound)" value="6"/>
    <option name="weapon zoom level" value="7"/>
   </enum16>
   <text name="in/out bounds" subtext="When the source is at the lower inbound, the destination ends up the lower outbound and vice-versa applies for the upper values." visible="true"/>
   <float name="in bounds - from" offset="0x48" visible="true"/>
   <float name="in bounds - to" offset="0x4c" visible="true"/>
   <float name="out bounds - from" offset="0x50" visible="true"/>
   <float name="out bounds - to" offset="0x54" visible="true"/>
   <colorRGB name="tint color lower bound" offset="0x98" visible="true"/>
   <colorRGB name="tint color lower bound" offset="0xA4" visible="true"/>
   <enum16 name="periodic function" offset="0xb0" visible="true">
    <option name="one" value="0"/>
    <option name="zero" value="1"/>
    <option name="cosine" value="2"/>
    <option name="cosine (varible period)" value="3"/>
    <option name="diagonal wave" value="4"/>
    <option name="diagonal wave (variable period)" value="5"/>
    <option name="slide" value="6"/>
    <option name="slide (variable period)" value="7"/>
    <option name="noise" value="8"/>
    <option name="jitter" value="9"/>
    <option name="wander" value="10"/>
    <option name="spark" value="11"/>
   </enum16>
   <float name="function period" offset="0xb4" visible="true"/>
   <float name="function phase" offset="0xb8" visible="true"/>
  </struct>
 </struct>
 <text name="total grenades numbers" visible="true"/>
 <short name="TGN - anchor offset - x" offset="0xf4" visible="true"/>
 <short name="TGN - anchor offset - y" offset="0xf6" visible="true"/>
 <float name="TGN - width scale" offset="0xf8" vislbe="true"/> 
 <float name="TGN - hieght scale" offset="0xfc" vislbe="true"/> 
 <bitmask32 name="TGN - scaling flags" offset="0x100" visible="true">
  <option name="dont scale offset" value="31"/>
  <option name="dont scale size" value="30"/>
  <option name="use high res scale" value="29"/>
 </bitmask32>
 <colorbyte name="TGN - defualt color" offset="0x118" visible="true"/>
 <colorbyte name="TGN - flashing color" offset="0x11c" visible="true"/>
 <float name="TGN - flash period" offset="0x120" vislbe="true"/> 
 <float name="TGN - flash delay" offset="0x124" vislbe="true"/> 
 <short name="TGN - number of flashes" offset="0x128" visible="true"/>
 <bitmask32 name="TGN - flash flags" offset="0x12a" visible="true">
  <option name="reverse default/flashing colors" value="31"/>
 </bitmask32>
 <float name="TGN - flash length" offset="0x12c" vislbe="true"/> 
 <colorbyte name="TGN - disabled color" offset="0x130" visible="true"/>
 <char name="TGN - maximum number of digits" offset="0x138" visible="true"/>
 <bitmask8 name="TGN - flags" offset="0x139" visible="true">
  <option name="show leading zeros" value="7"/>
  <option name="only show when zoomed" value="6"/>
  <option name="draw a trailing m" value="5"/>
 </bitmask8>
 <char name="TGN - number of fractional digits" offset="0x13a" visible="true"/>
 <short name="TGN - flash cutoff" offset="0x148" visible="true"/>
 <text name="total grenades overlays" visible="true"/>
 <dependency name="TGO - overlay bitmap" offset="0x14c" visible="true"/>
 <struct name="overlays" offset="0x15c" visible="true" size="136">
  <short name="anchor offset - x" offset="0x0" visible="true"/>
  <short name="anchor offset - y" offset="0x2" visible="true"/>
  <float name="width scale" offset="0x4" visible="true"/>
  <float name="height scale" offset="0x8" visible="true"/>
  <bitmask32 name="scaling flags" offset="0xc" visible="true">
   <option name="dont scale offset" vale="31"/>
   <option name="dont scale size" vale="30"/>
   <option name="use high res scale" vale="29"/>
  </bitmask32>
  <colorByte name="default color" offset="0x24" visible="true"/>
  <colorByte name="flashing color" offset="0x28" visible="true"/>
  <Float name="flashing period" offset="0x2c" visible="true"/>
  <float name="flash delay" offset="0x30" visible="true"/>
  <short name="number of flashes" offset="0x34" visible="true"/>
  <bitmask32 name="flash flags" offset="0x36" visible="true">
   <option name="reverse default/flashing color" value="31"/>
  </bitmask32>
  <float name="flash length" offset="0x38" visible="true"/>
  <colorbyte name="disabled color" offset="0x3c" visible="true"/>
  <float name="framerate" offset="0x44" visible="true"/>
  <short name="sequence index" offset="0x48" visible="true"/>
  <bitmask32 name="type" offset="0x4a" visible="true">
   <option name="show on flashing" value="31"/>
   <option name="show on empty" value="30"/>
   <option name="show on defualt" value="29"/>
   <option name="show always" value="28"/>
  </bitmask32>
  <bitmask32 name="flags" offset="0x4e" visible="true">
   <option name="flashes when active" value="31"/>
  </bitmask32>
 </struct>
 <struct name="warning sounds" offset="0x168" visible="true" size="56">
  <dependency name="sound" offset="0x0" visible="true"/>
  <bitmask32 name="latched to" offset="0x10" visible="true">
   <option name="low grenade count" value="31"/>
   <option name="no grenade left" value="30"/>
   <option name="throw on no grenade" value="29"/>
  </bitmask32>
  <float name="scale" offset="0x14" visible="true"/>
 </struct>
 <text name="messaging information" visible="true"/>
 <short name="MI - sequence index" offset="0x1b8" visible="true"/>
 <short name="MI - width offset" offset="0x1ba" visible="true"/>
 <short name="MI - offset from corner - x" offset="0x1bc" visible="true"/>
 <short name="MI - offset from corner - y" offset="0x1be" visible="true"/>
 <colorbyte name="MI - override icon color" offset="0x1c0" visible="true"/>
 <char name="MI - framerate" offset="0x1c4" visible="true"/>
 <bitmask8 name="MI - flags" offset="0x1c5" visible="true">
  <option name="use text from string_list instead" value="7"/>
  <option name="override default color" value="6"/>
  <option name="width offset is absolute icon width" value="5"/>
 </bitmask8>
 <short name="MI - text index" offset="0x1c6" visible="true"/>
</plugin>