<?xml version="1.0" standalone="yes" ?>
<?xml-stylesheet href="x2script.xsl" type="text/xsl" ?>
<script>
<name>lib.Xai.groups</name>
<version>2</version>
<engineversion>25</engineversion>
<description>handles group routines</description>
<arguments>
<argument index="1" name="cmd" type="Var/String" desc="Command" />
<argument index="2" name="Group.Member" type="Var/Ship" desc="Group  Member" />
<argument index="3" name="ships.array" type="Value" desc="Ships Array" />
<argument index="4" name="Lead.Ship" type="Var/Ship" desc="Lead ship" />
</arguments>
<sourcetext>
<line linenr="001" indent=""><comment><text>*&#160;</text><var>Created&#160;by&#160;Xai&#160;Corporation</var></comment></line>
<line linenr="002" indent=""><comment><text>*&#160;</text><var></var></comment></line>
<line linenr="003" indent=""><var>skip&#160;if&#160;</var><var>$Group.Member</var></line>
<line linenr="004" indent="&#160;"><var>$Group.Member&#160;=&#160;</var><var>[THIS]</var></line>
<line linenr="005" indent=""></line>
<line linenr="006" indent=""></line>
<line linenr="007" indent=""><comment><text>*&#160;</text><var>Find&#160;the&#160;group&#160;leader</var></comment></line>
<line linenr="008" indent=""><var>if&#160;</var><var>$cmd</var><text>&#160;</text><var>==</var><text>&#160;</text><var>'find.leader'</var></line>
<line linenr="009" indent="&#160;"><var>$test.ship&#160;=&#160;</var><var>$Group.Member</var></line>
<line linenr="010" indent="&#160;"><var>$Lead.Ship&#160;=&#160;</var><var>$test.ship&#160;-&gt;</var><text>&#160;get&#160;formation&#160;leader</text></line>
<line linenr="011" indent=""><comment><text>*&#160;</text><var>&#160;-&#160;check&#160;each&#160;new&#160;lead.ship&#160;for&#160;a&#160;leader</var></comment></line>
<line linenr="012" indent="&#160;"><var>while&#160;</var><var>$Lead.Ship</var></line>
<line linenr="013" indent="&#160;&#160;"><var>$test.ship&#160;=&#160;</var><var>$Lead.Ship</var></line>
<line linenr="014" indent=""><comment><text>*&#160;</text><var>&#160;&#160;-&#160;break&#160;if&#160;&#160;test.ship&#160;is&#160;group.member.&#160;&#160;Ships&#160;must&#160;be&#160;flying&#160;in&#160;circles.</var></comment></line>
<line linenr="015" indent="&#160;&#160;"><var>skip&#160;if&#160;</var><var>$test.ship</var><text>&#160;</text><var>==</var><text>&#160;</text><var>$Group.Member</var></line>
<line linenr="016" indent="&#160;&#160;&#160;"><text>break</text></line>
<line linenr="017" indent="&#160;&#160;"><var>$Lead.Ship&#160;=&#160;</var><var>$test.ship&#160;-&gt;</var><text>&#160;get&#160;formation&#160;leader</text></line>
<line linenr="018" indent="&#160;"><text>end</text></line>
<line linenr="019" indent="&#160;"><text>return&#160;</text><var>$test.ship</var></line>
<line linenr="020" indent="&#160;"></line>
<line linenr="021" indent="&#160;"></line>
<line linenr="022" indent=""><comment><text>*&#160;</text><var>Find&#160;all&#160;the&#160;ships&#160;in&#160;the&#160;group</var></comment></line>
<line linenr="023" indent=""><var>else&#160;if&#160;</var><var>$cmd</var><text>&#160;</text><var>==</var><text>&#160;</text><var>'find.ships'</var></line>
<line linenr="024" indent="&#160;"><var>skip&#160;if&#160;</var><var>$Lead.Ship</var></line>
<line linenr="025" indent="&#160;&#160;"><var>$Lead.Ship&#160;=&#160;</var><var>[THIS]</var></line>
<line linenr="026" indent="&#160;"><var>if&#160;not&#160;</var><var>$ships.array</var></line>
<line linenr="027" indent="&#160;&#160;"><var>$ships.array&#160;=&#160;</var><text>&#160;array&#160;alloc:&#160;size=</text><var>0</var></line>
<line linenr="028" indent="&#160;"><var>else&#160;if&#160;not&#160;</var><text>&#160;is&#160;datatyp[&#160;</text><var>$ships.array</var><text>&#160;]&#160;==&#160;</text><var>DATATYP_ARRAY</var></line>
<line linenr="029" indent="&#160;&#160;"><var>$ships.array&#160;=&#160;</var><text>&#160;array&#160;alloc:&#160;size=</text><var>0</var></line>
<line linenr="030" indent="&#160;"><text>end</text></line>
<line linenr="031" indent="&#160;"></line>
<line linenr="032" indent="&#160;"><text>append&#160;</text><var>$Group.Member</var><text>&#160;to&#160;array&#160;</text><var>$ships.array</var></line>
<line linenr="033" indent="&#160;"><var>$followers&#160;=&#160;</var><var>$Group.Member&#160;-&gt;</var><text>&#160;get&#160;formation&#160;follower&#160;ships</text></line>
<line linenr="034" indent="&#160;"><var>$followers.num&#160;=&#160;</var><text>&#160;size&#160;of&#160;array&#160;</text><var>$followers</var></line>
<line linenr="035" indent="&#160;"><var>while&#160;</var><var>$followers.num</var></line>
<line linenr="036" indent="&#160;&#160;"><text>dec&#160;</text><var>$followers.num&#160;=&#160;</var></line>
<line linenr="037" indent="&#160;&#160;"><var>$test.ship&#160;=&#160;</var><var>$followers</var><text>[</text><var>$followers.num</var><text>]</text></line>
<line linenr="038" indent="&#160;&#160;"><var>skip&#160;if&#160;</var><var>$test.ship</var><text>&#160;</text><var>==</var><text>&#160;</text><var>$Lead.Ship</var></line>
<line linenr="039" interruptable="@" indent="&#160;&#160;&#160;"><var>$ships.array&#160;=&#160;</var><var>[THIS]&#160;-&gt;</var><text>&#160;call&#160;script&#160;</text><call>lib.Xai.groups</call><text>&#160;:&#160;</text><text>&#160;Command=</text><var>'find.ships'</var><text>&#160;</text><text>&#160;Group&#160;&#160;Member=</text><var>$test.ship</var><text>&#160;</text><text>&#160;Ships&#160;Array=</text><var>$ships.array</var><text>&#160;</text><text>&#160;Lead&#160;ship=</text><var>$Lead.Ship</var></line>
<line linenr="040" indent="&#160;"><text>end</text></line>
<line linenr="041" indent="&#160;"><text>return&#160;</text><var>$ships.array</var></line>
<line linenr="042" indent="&#160;"></line>
<line linenr="043" indent=""><text>end</text></line>
<line linenr="044" indent=""><text>return&#160;</text><var>null</var></line>
</sourcetext>
<codearray>
<sval type="array" size="10"><sval type="string" val="lib.Xai.groups" /><sval type="int" val="25" /><sval type="string" val="handles group routines" /><sval type="int" val="2" /><sval type="int" val="0" /><sval type="array" size="7"><sval type="string" val="cmd" /><sval type="string" val="Group.Member" /><sval type="string" val="ships.array" /><sval type="string" val="Lead.Ship" /><sval type="string" val="test.ship" /><sval type="string" val="followers" /><sval type="string" val="followers.num" /></sval><sval type="array" size="32"><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="-536870393" /><sval type="int" val="1" /><sval type="int" val="131074" /><sval type="int" val="1" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="1" /><sval type="int" val="1" /><sval type="int" val="131075" /><sval type="int" val="65536" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="13"><sval type="int" val="104" /><sval type="int" val="-1610609405" /><sval type="int" val="3" /><sval type="int" val="131074" /><sval type="int" val="0" /><sval type="int" val="5" /><sval type="string" val="find.leader" /><sval type="int" val="15" /><sval type="int" val="0" /><sval type="int" val="3" /><sval type="int" val="-1" /><sval type="int" val="0" /><sval type="int" val="-2" /></sval><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="4" /><sval type="int" val="1" /><sval type="int" val="131074" /><sval type="int" val="1" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="4"><sval type="int" val="512" /><sval type="int" val="131074" /><sval type="int" val="4" /><sval type="int" val="3" /></sval><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="-1610609911" /><sval type="int" val="1" /><sval type="int" val="131074" /><sval type="int" val="3" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="4" /><sval type="int" val="1" /><sval type="int" val="131074" /><sval type="int" val="3" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="13"><sval type="int" val="104" /><sval type="int" val="-536868601" /><sval type="int" val="3" /><sval type="int" val="131074" /><sval type="int" val="4" /><sval type="int" val="131074" /><sval type="int" val="1" /><sval type="int" val="15" /><sval type="int" val="0" /><sval type="int" val="3" /><sval type="int" val="-1" /><sval type="int" val="0" /><sval type="int" val="-2" /></sval><sval type="array" size="2"><sval type="int" val="112" /><sval type="int" val="11" /></sval><sval type="array" size="4"><sval type="int" val="512" /><sval type="int" val="131074" /><sval type="int" val="4" /><sval type="int" val="3" /></sval><sval type="array" size="2"><sval type="int" val="112" /><sval type="int" val="5" /></sval><sval type="array" size="3"><sval type="int" val="103" /><sval type="int" val="131074" /><sval type="int" val="4" /></sval><sval type="array" size="2"><sval type="int" val="112" /><sval type="int" val="31" /></sval><sval type="array" size="13"><sval type="int" val="104" /><sval type="int" val="-1610604795" /><sval type="int" val="3" /><sval type="int" val="131074" /><sval type="int" val="0" /><sval type="int" val="5" /><sval type="string" val="find.ships" /><sval type="int" val="15" /><sval type="int" val="0" /><sval type="int" val="3" /><sval type="int" val="-1" /><sval type="int" val="0" /><sval type="int" val="-2" /></sval><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="-536866809" /><sval type="int" val="1" /><sval type="int" val="131074" /><sval type="int" val="3" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="3" /><sval type="int" val="1" /><sval type="int" val="131075" /><sval type="int" val="65536" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="-536866044" /><sval type="int" val="1" /><sval type="int" val="131074" /><sval type="int" val="2" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="4"><sval type="int" val="128" /><sval type="int" val="2" /><sval type="int" val="4" /><sval type="int" val="0" /></sval><sval type="array" size="2"><sval type="int" val="112" /><sval type="int" val="21" /></sval><sval type="array" size="6"><sval type="int" val="125" /><sval type="int" val="-536865530" /><sval type="int" val="131074" /><sval type="int" val="2" /><sval type="int" val="20" /><sval type="int" val="21" /></sval><sval type="array" size="4"><sval type="int" val="128" /><sval type="int" val="2" /><sval type="int" val="4" /><sval type="int" val="0" /></sval><sval type="array" size="5"><sval type="int" val="135" /><sval type="int" val="131074" /><sval type="int" val="2" /><sval type="int" val="131074" /><sval type="int" val="1" /></sval><sval type="array" size="4"><sval type="int" val="559" /><sval type="int" val="131074" /><sval type="int" val="1" /><sval type="int" val="5" /></sval><sval type="array" size="4"><sval type="int" val="131" /><sval type="int" val="6" /><sval type="int" val="131074" /><sval type="int" val="5" /></sval><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="-1610605047" /><sval type="int" val="1" /><sval type="int" val="131074" /><sval type="int" val="6" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="2"><sval type="int" val="143" /><sval type="int" val="6" /></sval><sval type="array" size="6"><sval type="int" val="129" /><sval type="int" val="4" /><sval type="int" val="131074" /><sval type="int" val="5" /><sval type="int" val="131074" /><sval type="int" val="6" /></sval><sval type="array" size="13"><sval type="int" val="104" /><sval type="int" val="-536863481" /><sval type="int" val="3" /><sval type="int" val="131074" /><sval type="int" val="4" /><sval type="int" val="131074" /><sval type="int" val="3" /><sval type="int" val="15" /><sval type="int" val="0" /><sval type="int" val="3" /><sval type="int" val="-1" /><sval type="int" val="0" /><sval type="int" val="-2" /></sval><sval type="array" size="14"><sval type="int" val="102" /><sval type="string" val="lib.Xai.groups" /><sval type="int" val="2" /><sval type="int" val="131075" /><sval type="int" val="65536" /><sval type="int" val="4" /><sval type="int" val="5" /><sval type="string" val="find.ships" /><sval type="int" val="131074" /><sval type="int" val="4" /><sval type="int" val="131074" /><sval type="int" val="2" /><sval type="int" val="131074" /><sval type="int" val="3" /></sval><sval type="array" size="2"><sval type="int" val="112" /><sval type="int" val="24" /></sval><sval type="array" size="3"><sval type="int" val="103" /><sval type="int" val="131074" /><sval type="int" val="2" /></sval><sval type="array" size="3"><sval type="int" val="103" /><sval type="int" val="0" /><sval type="int" val="0" /></sval></sval><sval type="array" size="4"><sval type="array" size="2"><sval type="int" val="11" /><sval type="string" val="Command" /></sval><sval type="array" size="2"><sval type="int" val="21" /><sval type="string" val="Group  Member" /></sval><sval type="array" size="2"><sval type="int" val="9" /><sval type="string" val="Ships Array" /></sval><sval type="array" size="2"><sval type="int" val="21" /><sval type="string" val="Lead ship" /></sval></sval><sval type="array" size="17"><sval type="array" size="3"><sval type="int" val="0" /><sval type="int" val="1" /><sval type="string" val="Created by Xai Corporation" /></sval><sval type="array" size="3"><sval type="int" val="0" /><sval type="int" val="1" /><sval type="string" val="" /></sval><sval type="array" size="2"><sval type="int" val="2" /><sval type="int" val="2" /></sval><sval type="array" size="2"><sval type="int" val="2" /><sval type="int" val="2" /></sval><sval type="array" size="3"><sval type="int" val="2" /><sval type="int" val="1" /><sval type="string" val="Find the group leader" /></sval><sval type="array" size="3"><sval type="int" val="5" /><sval type="int" val="1" /><sval type="string" val=" - check each new lead.ship for a leader" /></sval><sval type="array" size="3"><sval type="int" val="7" /><sval type="int" val="1" /><sval type="string" val="  - break if  test.ship is group.member.  Ships must be flying in circles." /></sval><sval type="array" size="2"><sval type="int" val="9" /><sval type="int" val="7" /></sval><sval type="array" size="2"><sval type="int" val="11" /><sval type="int" val="4" /></sval><sval type="array" size="2"><sval type="int" val="12" /><sval type="int" val="2" /></sval><sval type="array" size="2"><sval type="int" val="12" /><sval type="int" val="2" /></sval><sval type="array" size="3"><sval type="int" val="12" /><sval type="int" val="1" /><sval type="string" val="Find all the ships in the group" /></sval><sval type="array" size="2"><sval type="int" val="21" /><sval type="int" val="4" /></sval><sval type="array" size="2"><sval type="int" val="21" /><sval type="int" val="2" /></sval><sval type="array" size="2"><sval type="int" val="30" /><sval type="int" val="4" /></sval><sval type="array" size="2"><sval type="int" val="31" /><sval type="int" val="2" /></sval><sval type="array" size="2"><sval type="int" val="31" /><sval type="int" val="4" /></sval></sval><sval type="int" val="0" /></sval>
</codearray>
</script>
