Fixed #614 - Implemented an implementation with or without {}....

See documentation of SetBorderZone.
This commit is contained in:
FlightControl 2017-07-12 20:42:06 +02:00
parent 60681d7e23
commit c1bee3a9b0
15 changed files with 133 additions and 98 deletions

View File

@ -406,7 +406,7 @@ do -- AI_A2A_DISPATCHER
-- -- which takes the waypoints of a late activated group with the name CCCP Border as the boundaries of the border area. -- -- which takes the waypoints of a late activated group with the name CCCP Border as the boundaries of the border area.
-- -- Any enemy crossing this border will be engaged. -- -- Any enemy crossing this border will be engaged.
-- CCCPBorderZone = ZONE_POLYGON:New( "CCCP Border", GROUP:FindByName( "CCCP Border" ) ) -- CCCPBorderZone = ZONE_POLYGON:New( "CCCP Border", GROUP:FindByName( "CCCP Border" ) )
-- A2ADispatcher:SetBorderZone( { CCCPBorderZone } ) -- A2ADispatcher:SetBorderZone( CCCPBorderZone )
-- --
-- -- Initialize the dispatcher, setting up a radius of 100km where any airborne friendly -- -- Initialize the dispatcher, setting up a radius of 100km where any airborne friendly
-- -- without an assignment within 100km radius from a detected target, will engage that target. -- -- without an assignment within 100km radius from a detected target, will engage that target.
@ -798,14 +798,22 @@ do -- AI_A2A_DISPATCHER
-- If its a cold war then the **borders of red and blue territory** need to be defined using a @{zone} object derived from @{Zone#ZONE_BASE}. This method needs to be used for this. -- If its a cold war then the **borders of red and blue territory** need to be defined using a @{zone} object derived from @{Zone#ZONE_BASE}. This method needs to be used for this.
-- If a hot war is chosen then **no borders** actually need to be defined using the helicopter units other than it makes it easier sometimes for the mission maker to envisage where the red and blue territories roughly are. In a hot war the borders are effectively defined by the ground based radar coverage of a coalition. Set the noborders parameter to 1 -- If a hot war is chosen then **no borders** actually need to be defined using the helicopter units other than it makes it easier sometimes for the mission maker to envisage where the red and blue territories roughly are. In a hot war the borders are effectively defined by the ground based radar coverage of a coalition. Set the noborders parameter to 1
-- @param #AI_A2A_DISPATCHER self -- @param #AI_A2A_DISPATCHER self
-- @param Core.Zone#ZONE_BASE BorderZone An object derived from ZONE_BASE, that defines a zone between -- @param Core.Zone#ZONE_BASE BorderZone An object derived from ZONE_BASE, or a list of objects derived from ZONE_BASE.
-- @return #AI_A2A_DISPATCHER -- @return #AI_A2A_DISPATCHER
-- @usage -- @usage
-- --
-- -- Set a polygon zone as the border for the A2A dispatcher. -- -- Set one ZONE_POLYGON object as the border for the A2A dispatcher.
-- local BorderZone = ZONE_POLYGON( "CCCP Border", GROUP:FindByName( "CCCP Border" ) ) -- The GROUP object is a late activate helicopter unit. -- local BorderZone = ZONE_POLYGON( "CCCP Border", GROUP:FindByName( "CCCP Border" ) ) -- The GROUP object is a late activate helicopter unit.
-- Dispatcher:SetBorderZone( BorderZone ) -- Dispatcher:SetBorderZone( BorderZone )
-- --
-- or
--
-- -- Set two ZONE_POLYGON objects as the border for the A2A dispatcher.
-- local BorderZone1 = ZONE_POLYGON( "CCCP Border1", GROUP:FindByName( "CCCP Border1" ) ) -- The GROUP object is a late activate helicopter unit.
-- local BorderZone2 = ZONE_POLYGON( "CCCP Border2", GROUP:FindByName( "CCCP Border2" ) ) -- The GROUP object is a late activate helicopter unit.
-- Dispatcher:SetBorderZone( { BorderZone1, BorderZone2 } )
--
--
function AI_A2A_DISPATCHER:SetBorderZone( BorderZone ) function AI_A2A_DISPATCHER:SetBorderZone( BorderZone )
self.Detection:SetAcceptZones( BorderZone ) self.Detection:SetAcceptZones( BorderZone )

View File

@ -298,24 +298,25 @@ end
-- --
-- * ZONE:New( 'some zone' ):IsInstanceOf( 'GROUP' ) will return false -- * ZONE:New( 'some zone' ):IsInstanceOf( 'GROUP' ) will return false
-- --
-- @param ClassName is the name of the class or the class itself to run the check against -- @param #BASE self
-- @param ClassName is the name of the class or the class itself to run the check against
-- @return #boolean -- @return #boolean
function BASE:IsInstanceOf( className ) function BASE:IsInstanceOf( ClassName )
-- Is className NOT a string ? -- Is className NOT a string ?
if type( className ) ~= 'string' then if type( ClassName ) ~= 'string' then
-- Is className a Moose class ? -- Is className a Moose class ?
if type( className ) == 'table' and className.ClassName ~= nil then if type( ClassName ) == 'table' and ClassName.ClassName ~= nil then
-- Get the name of the Moose class as a string -- Get the name of the Moose class as a string
className = className.ClassName ClassName = ClassName.ClassName
-- className is neither a string nor a Moose class, throw an error -- className is neither a string nor a Moose class, throw an error
else else
-- I'm not sure if this should take advantage of MOOSE logging function, or throw an error for pcall -- I'm not sure if this should take advantage of MOOSE logging function, or throw an error for pcall
local err_str = 'className parameter should be a string; parameter received: '..type( className ) local err_str = 'className parameter should be a string; parameter received: '..type( ClassName )
self:E( err_str ) self:E( err_str )
-- error( err_str ) -- error( err_str )
return false return false
@ -323,9 +324,9 @@ function BASE:IsInstanceOf( className )
end end
end end
className = string.upper( className ) ClassName = string.upper( ClassName )
if string.upper( self.ClassName ) == className then if string.upper( self.ClassName ) == ClassName then
return true return true
end end
@ -333,7 +334,7 @@ function BASE:IsInstanceOf( className )
while Parent do while Parent do
if string.upper( Parent.ClassName ) == className then if string.upper( Parent.ClassName ) == ClassName then
return true return true
end end

View File

@ -956,15 +956,20 @@ do -- DETECTION_BASE
--- Accept detections if within the specified zone(s). --- Accept detections if within the specified zone(s).
-- @param #DETECTION_BASE self -- @param #DETECTION_BASE self
-- @param AcceptZones Can be a list or ZONE_BASE objects, or a single ZONE_BASE object. -- @param Core.Zone#ZONE_BASE AcceptZones Can be a list or ZONE_BASE objects, or a single ZONE_BASE object.
-- @return #DETECTION_BASE self -- @return #DETECTION_BASE self
function DETECTION_BASE:SetAcceptZones( AcceptZones ) function DETECTION_BASE:SetAcceptZones( AcceptZones )
self:F2() self:F2()
if type( AcceptZones ) == "table" then if type( AcceptZones ) == "table" then
self.AcceptZones = AcceptZones if AcceptZones.ClassName and AcceptZones:IsInstanceOf( ZONE_BASE ) then
self.AcceptZones = { AcceptZones }
else
self.AcceptZones = AcceptZones
end
else else
self.AcceptZones = { AcceptZones } self:E( { "AcceptZones must be a list of ZONE_BASE derived objects or one ZONE_BASE derived object", AcceptZones } )
error()
end end
return self return self
@ -972,15 +977,20 @@ do -- DETECTION_BASE
--- Reject detections if within the specified zone(s). --- Reject detections if within the specified zone(s).
-- @param #DETECTION_BASE self -- @param #DETECTION_BASE self
-- @param RejectZones Can be a list or ZONE_BASE objects, or a single ZONE_BASE object. -- @param Core.Zone#ZONE_BASE RejectZones Can be a list or ZONE_BASE objects, or a single ZONE_BASE object.
-- @return #DETECTION_BASE self -- @return #DETECTION_BASE self
function DETECTION_BASE:SetRejectZones( RejectZones ) function DETECTION_BASE:SetRejectZones( RejectZones )
self:F2() self:F2()
if type( RejectZones ) == "table" then if type( RejectZones ) == "table" then
self.RejectZones = RejectZones if RejectZones.ClassName and RejectZones:IsInstanceOf( ZONE_BASE ) then
self.RejectZones = { RejectZones }
else
self.RejectZones = RejectZones
end
else else
self.RejectZones = { RejectZones } self:E( { "RejectZones must be a list of ZONE_BASE derived objects or one ZONE_BASE derived object", RejectZones } )
error()
end end
return self return self

View File

@ -575,6 +575,7 @@
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em>
<a id="#(AI_A2A).IdleCount" > <a id="#(AI_A2A).IdleCount" >
<strong>AI_A2A.IdleCount</strong> <strong>AI_A2A.IdleCount</strong>
</a> </a>

View File

@ -1047,7 +1047,7 @@ But you can also define other zone types instead, like moving zones.</p>
-- which takes the waypoints of a late activated group with the name CCCP Border as the boundaries of the border area. -- which takes the waypoints of a late activated group with the name CCCP Border as the boundaries of the border area.
-- Any enemy crossing this border will be engaged. -- Any enemy crossing this border will be engaged.
CCCPBorderZone = ZONE_POLYGON:New( "CCCP Border", GROUP:FindByName( "CCCP Border" ) ) CCCPBorderZone = ZONE_POLYGON:New( "CCCP Border", GROUP:FindByName( "CCCP Border" ) )
A2ADispatcher:SetBorderZone( { CCCPBorderZone } ) A2ADispatcher:SetBorderZone( CCCPBorderZone )
-- Initialize the dispatcher, setting up a radius of 100km where any airborne friendly -- Initialize the dispatcher, setting up a radius of 100km where any airborne friendly
-- without an assignment within 100km radius from a detected target, will engage that target. -- without an assignment within 100km radius from a detected target, will engage that target.
@ -2523,7 +2523,7 @@ If a hot war is chosen then <strong>no borders</strong> actually need to be defi
<li> <li>
<p><code><em><a href="Core.Zone.html##(ZONE_BASE)">Core.Zone#ZONE_BASE</a> BorderZone </em></code>: <p><code><em><a href="Core.Zone.html##(ZONE_BASE)">Core.Zone#ZONE_BASE</a> BorderZone </em></code>:
An object derived from ZONE_BASE, that defines a zone between</p> An object derived from ZONE<em>BASE, or a list of objects derived from ZONE</em>BASE.</p>
</li> </li>
</ul> </ul>
@ -2534,9 +2534,17 @@ An object derived from ZONE_BASE, that defines a zone between</p>
<h3>Usage:</h3> <h3>Usage:</h3>
<pre class="example"><code> <pre class="example"><code>
-- Set a polygon zone as the border for the A2A dispatcher. -- Set one ZONE_POLYGON object as the border for the A2A dispatcher.
local BorderZone = ZONE_POLYGON( "CCCP Border", GROUP:FindByName( "CCCP Border" ) ) -- The GROUP object is a late activate helicopter unit. local BorderZone = ZONE_POLYGON( "CCCP Border", GROUP:FindByName( "CCCP Border" ) ) -- The GROUP object is a late activate helicopter unit.
Dispatcher:SetBorderZone( BorderZone ) Dispatcher:SetBorderZone( BorderZone )
or
-- Set two ZONE_POLYGON objects as the border for the A2A dispatcher.
local BorderZone1 = ZONE_POLYGON( "CCCP Border1", GROUP:FindByName( "CCCP Border1" ) ) -- The GROUP object is a late activate helicopter unit.
local BorderZone2 = ZONE_POLYGON( "CCCP Border2", GROUP:FindByName( "CCCP Border2" ) ) -- The GROUP object is a late activate helicopter unit.
Dispatcher:SetBorderZone( { BorderZone1, BorderZone2 } )
</code></pre> </code></pre>
</dd> </dd>

View File

@ -926,6 +926,9 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
<p> This table contains the targets detected during patrol.</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">

View File

@ -260,7 +260,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).IsInstanceOf">BASE.IsInstanceOf(ClassName, self, className)</a></td> <td class="name" nowrap="nowrap"><a href="##(BASE).IsInstanceOf">BASE:IsInstanceOf(ClassName)</a></td>
<td class="summary"> <td class="summary">
<p>This is the worker method to check if an object is an (sub)instance of a class.</p> <p>This is the worker method to check if an object is an (sub)instance of a class.</p>
</td> </td>
@ -1232,7 +1232,7 @@ Child</p>
<dt> <dt>
<a id="#(BASE).IsInstanceOf" > <a id="#(BASE).IsInstanceOf" >
<strong>BASE.IsInstanceOf(ClassName, self, className)</strong> <strong>BASE:IsInstanceOf(ClassName)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -1252,22 +1252,12 @@ Child</p>
</ul> </ul>
<h3>Parameters</h3> <h3>Parameter</h3>
<ul> <ul>
<li> <li>
<p><code><em> ClassName </em></code>: <p><code><em> ClassName </em></code>:
is the name of the class or the class itself to run the check against</p> is the name of the class or the class itself to run the check against</p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> className </em></code>: </p>
</li> </li>
</ul> </ul>

View File

@ -2393,6 +2393,7 @@ The index of the DetectedItem.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em>
<a id="#(DETECTION_BASE).DetectedItemCount" > <a id="#(DETECTION_BASE).DetectedItemCount" >
<strong>DETECTION_BASE.DetectedItemCount</strong> <strong>DETECTION_BASE.DetectedItemCount</strong>
</a> </a>
@ -2406,6 +2407,7 @@ The index of the DetectedItem.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em>
<a id="#(DETECTION_BASE).DetectedItemMax" > <a id="#(DETECTION_BASE).DetectedItemMax" >
<strong>DETECTION_BASE.DetectedItemMax</strong> <strong>DETECTION_BASE.DetectedItemMax</strong>
</a> </a>
@ -2563,7 +2565,7 @@ The index of the DetectedItem.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em> <em>#number</em>
<a id="#(DETECTION_BASE).DetectionInterval" > <a id="#(DETECTION_BASE).DetectionInterval" >
<strong>DETECTION_BASE.DetectionInterval</strong> <strong>DETECTION_BASE.DetectionInterval</strong>
</a> </a>
@ -3964,7 +3966,7 @@ self</p>
<ul> <ul>
<li> <li>
<p><code><em> AcceptZones </em></code>: <p><code><em><a href="Core.Zone.html##(ZONE_BASE)">Core.Zone#ZONE_BASE</a> AcceptZones </em></code>:
Can be a list or ZONE<em>BASE objects, or a single ZONE</em>BASE object.</p> Can be a list or ZONE<em>BASE objects, or a single ZONE</em>BASE object.</p>
</li> </li>
@ -4113,7 +4115,7 @@ self</p>
<ul> <ul>
<li> <li>
<p><code><em> RejectZones </em></code>: <p><code><em><a href="Core.Zone.html##(ZONE_BASE)">Core.Zone#ZONE_BASE</a> RejectZones </em></code>:
Can be a list or ZONE<em>BASE objects, or a single ZONE</em>BASE object.</p> Can be a list or ZONE<em>BASE objects, or a single ZONE</em>BASE object.</p>
</li> </li>

View File

@ -339,12 +339,6 @@ Example code snippet:</p>
<td class="name" nowrap="nowrap"><a href="##(EVENT).Events">EVENT.Events</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).Events">EVENT.Events</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).EventsDead">EVENT.EventsDead</a></td>
<td class="summary">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -417,18 +411,18 @@ Example code snippet:</p>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnTakeOffForTemplate">EVENT:OnTakeOffForTemplate(EventTemplate, EventFunction, EventClass)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnTakeOffForTemplate">EVENT:OnTakeOffForTemplate(EventTemplate, EventFunction, EventClass)</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).Remove">EVENT:Remove(EventClass, EventID)</a></td>
<td class="summary">
<p>Removes a subscription</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).RemoveAll">EVENT:RemoveAll(EventObject)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).RemoveAll">EVENT:RemoveAll(EventObject)</a></td>
<td class="summary"> <td class="summary">
<p>Clears all event subscriptions for a <a href="Base.html##(BASE)">Base#BASE</a> derived object.</p> <p>Clears all event subscriptions for a <a href="Base.html##(BASE)">Base#BASE</a> derived object.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).RemoveEvent">EVENT:RemoveEvent(EventClass, EventID)</a></td>
<td class="summary">
<p>Removes a subscription</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -1033,19 +1027,6 @@ The Cargo created.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).EventsDead" >
<strong>EVENT.EventsDead</strong>
</a>
</dt>
<dd>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1498,8 +1479,29 @@ The self instance of the class for which the event is captured. When the event h
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(EVENT).Remove" > <a id="#(EVENT).RemoveAll" >
<strong>EVENT:Remove(EventClass, EventID)</strong> <strong>EVENT:RemoveAll(EventObject)</strong>
</a>
</dt>
<dd>
<p>Clears all event subscriptions for a <a href="Base.html##(BASE)">Base#BASE</a> derived object.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Base.html##(BASE)">Core.Base#BASE</a> EventObject </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).RemoveEvent" >
<strong>EVENT:RemoveEvent(EventClass, EventID)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -1530,27 +1532,6 @@ The self instance of the class for which the event is.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(EVENT).RemoveAll" >
<strong>EVENT:RemoveAll(EventObject)</strong>
</a>
</dt>
<dd>
<p>Clears all event subscriptions for a <a href="Base.html##(BASE)">Base#BASE</a> derived object.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Base.html##(BASE)">Core.Base#BASE</a> EventObject </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).Reset" > <a id="#(EVENT).Reset" >
<strong>EVENT:Reset(EventClass, EventID, EventObject)</strong> <strong>EVENT:Reset(EventClass, EventID, EventObject)</strong>
</a> </a>

View File

@ -227,7 +227,6 @@ on defined intervals (currently every minute).</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em>
<a id="#(MOVEMENT).AliveUnits" > <a id="#(MOVEMENT).AliveUnits" >
<strong>MOVEMENT.AliveUnits</strong> <strong>MOVEMENT.AliveUnits</strong>
</a> </a>
@ -236,9 +235,6 @@ on defined intervals (currently every minute).</p>
<p> Contains the counter how many units are currently alive</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">

View File

@ -907,6 +907,12 @@ mission designer to add a dedicated method</p>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).RemoveGroupsByName">SET_GROUP:RemoveGroupsByName(RemoveGroupNames)</a></td> <td class="name" nowrap="nowrap"><a href="##(SET_GROUP).RemoveGroupsByName">SET_GROUP:RemoveGroupsByName(RemoveGroupNames)</a></td>
<td class="summary"> <td class="summary">
<p>Remove GROUP(s) from SET_GROUP.</p> <p>Remove GROUP(s) from SET_GROUP.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP)._EventOnDeadOrCrash">SET_GROUP:_EventOnDeadOrCrash(Event)</a></td>
<td class="summary">
<p>Handles the OnDead or OnCrash event for alive groups set.</p>
</td> </td>
</tr> </tr>
</table> </table>
@ -4428,6 +4434,30 @@ A single name or an array of GROUP names.</p>
<p>self</p> <p>self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP)._EventOnDeadOrCrash" >
<strong>SET_GROUP:_EventOnDeadOrCrash(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the OnDead or OnCrash event for alive groups set.</p>
<p>Note: The GROUP object in the SET_GROUP collection will only be removed if the last unit is destroyed of the GROUP.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
</dd> </dd>
</dl> </dl>

View File

@ -1082,7 +1082,7 @@ true if metric.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#boolean</em> <em></em>
<a id="#(SETTINGS).Metric" > <a id="#(SETTINGS).Metric" >
<strong>SETTINGS.Metric</strong> <strong>SETTINGS.Metric</strong>
</a> </a>

View File

@ -2194,9 +2194,6 @@ The group that was spawned. You can use this group for further actions.</p>
<p> Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -2746,6 +2743,9 @@ when nothing was spawned.</p>
<p> By default, no InitLimit</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -2781,7 +2781,7 @@ when nothing was spawned.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em> <em>#number</em>
<a id="#(SPAWN).SpawnMaxGroups" > <a id="#(SPAWN).SpawnMaxGroups" >
<strong>SPAWN.SpawnMaxGroups</strong> <strong>SPAWN.SpawnMaxGroups</strong>
</a> </a>
@ -2798,7 +2798,7 @@ when nothing was spawned.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em> <em>#number</em>
<a id="#(SPAWN).SpawnMaxUnitsAlive" > <a id="#(SPAWN).SpawnMaxUnitsAlive" >
<strong>SPAWN.SpawnMaxUnitsAlive</strong> <strong>SPAWN.SpawnMaxUnitsAlive</strong>
</a> </a>

View File

@ -765,6 +765,7 @@ true if it is lasing</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em>
<a id="#(SPOT).ScheduleID" > <a id="#(SPOT).ScheduleID" >
<strong>SPOT.ScheduleID</strong> <strong>SPOT.ScheduleID</strong>
</a> </a>
@ -778,6 +779,7 @@ true if it is lasing</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em>
<a id="#(SPOT).SpotIR" > <a id="#(SPOT).SpotIR" >
<strong>SPOT.SpotIR</strong> <strong>SPOT.SpotIR</strong>
</a> </a>
@ -791,6 +793,7 @@ true if it is lasing</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em>
<a id="#(SPOT).SpotLaser" > <a id="#(SPOT).SpotLaser" >
<strong>SPOT.SpotLaser</strong> <strong>SPOT.SpotLaser</strong>
</a> </a>
@ -804,6 +807,7 @@ true if it is lasing</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em>
<a id="#(SPOT).Target" > <a id="#(SPOT).Target" >
<strong>SPOT.Target</strong> <strong>SPOT.Target</strong>
</a> </a>

View File

@ -552,7 +552,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="Core.Cargo.html##(CARGO_GROUP)">Core.Cargo#CARGO_GROUP</a></em> <em><a href="Core.Cargo.html##(CARGO)">Core.Cargo#CARGO</a></em>
<a id="#(FSM_PROCESS).Cargo" > <a id="#(FSM_PROCESS).Cargo" >
<strong>FSM_PROCESS.Cargo</strong> <strong>FSM_PROCESS.Cargo</strong>
</a> </a>
@ -566,6 +566,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em>
<a id="#(FSM_PROCESS).DeployZone" > <a id="#(FSM_PROCESS).DeployZone" >
<strong>FSM_PROCESS.DeployZone</strong> <strong>FSM_PROCESS.DeployZone</strong>
</a> </a>