Merge remote-tracking branch 'refs/remotes/origin/master' into Bugfix

This commit is contained in:
FlightControl 2016-06-28 11:19:11 +02:00
commit dc644df47e
115 changed files with 18018 additions and 11149 deletions

View File

@ -2,8 +2,8 @@
--
-- ===
--
-- 1) @{Airbase#AIRBASE} class, extends @{Base#BASE}
-- =================================================
-- 1) @{Airbase#AIRBASE} class, extends @{Positionable#POSITIONABLE}
-- =================================================================
-- The @{AIRBASE} class is a wrapper class to handle the DCS Airbase objects:
--
-- * Support all DCS Airbase APIs.
@ -49,7 +49,7 @@
--- The AIRBASE class
-- @type AIRBASE
-- @extends Base#BASE
-- @extends Positionable#POSITIONABLE
AIRBASE = {
ClassName="AIRBASE",
CategoryName = {
@ -63,13 +63,11 @@ AIRBASE = {
--- Create a new AIRBASE from DCSAirbase.
-- @param #AIRBASE self
-- @param DCSAirbase#Airbase DCSAirbase
-- @param Database#DATABASE Database
-- @param #string AirbaseName The name of the airbase.
-- @return Airbase#AIRBASE
function AIRBASE:Register( AirbaseName )
local self = BASE:Inherit( self, BASE:New() )
self:F2( AirbaseName )
local self = BASE:Inherit( self, POSITIONABLE:New( AirbaseName ) )
self.AirbaseName = AirbaseName
return self
end

View File

@ -440,7 +440,7 @@ end
-- @param Arguments A #table or any field.
function BASE:_F( Arguments, DebugInfoCurrentParam, DebugInfoFromParam )
if ( _TraceAll == true ) or ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
if debug and ( _TraceAll == true ) or ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
local DebugInfoCurrent = DebugInfoCurrentParam and DebugInfoCurrentParam or debug.getinfo( 2, "nl" )
local DebugInfoFrom = DebugInfoFromParam and DebugInfoFromParam or debug.getinfo( 3, "l" )
@ -469,7 +469,7 @@ end
-- @param Arguments A #table or any field.
function BASE:F( Arguments )
if _TraceOnOff then
if debug and _TraceOnOff then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -485,7 +485,7 @@ end
-- @param Arguments A #table or any field.
function BASE:F2( Arguments )
if _TraceOnOff then
if debug and _TraceOnOff then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -500,7 +500,7 @@ end
-- @param Arguments A #table or any field.
function BASE:F3( Arguments )
if _TraceOnOff then
if debug and _TraceOnOff then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -515,7 +515,7 @@ end
-- @param Arguments A #table or any field.
function BASE:_T( Arguments, DebugInfoCurrentParam, DebugInfoFromParam )
if ( _TraceAll == true ) or ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
if debug and ( _TraceAll == true ) or ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
local DebugInfoCurrent = DebugInfoCurrentParam and DebugInfoCurrentParam or debug.getinfo( 2, "nl" )
local DebugInfoFrom = DebugInfoFromParam and DebugInfoFromParam or debug.getinfo( 3, "l" )
@ -544,7 +544,7 @@ end
-- @param Arguments A #table or any field.
function BASE:T( Arguments )
if _TraceOnOff then
if debug and _TraceOnOff then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -560,7 +560,7 @@ end
-- @param Arguments A #table or any field.
function BASE:T2( Arguments )
if _TraceOnOff then
if debug and _TraceOnOff then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -575,7 +575,7 @@ end
-- @param Arguments A #table or any field.
function BASE:T3( Arguments )
if _TraceOnOff then
if debug and _TraceOnOff then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -590,6 +590,7 @@ end
-- @param Arguments A #table or any field.
function BASE:E( Arguments )
if debug then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -605,6 +606,8 @@ function BASE:E( Arguments )
end
env.info( string.format( "%6d(%6d)/%1s:%20s%05d.%s(%s)" , LineCurrent, LineFrom, "E", self.ClassName, self.ClassID, Function, routines.utils.oneLineSerialize( Arguments ) ) )
end
end

View File

@ -887,7 +887,6 @@ function CARGO_PACKAGE:OnBoard( Client, LandingZone, OnBoardSide )
end
self:T( "Routing " .. CargoHostName )
--routines.scheduleFunction( routines.goRoute, { CargoHostName, Points}, timer.getTime() + 4 )
SCHEDULER:New( self, routines.goRoute, { CargoHostName, Points }, 4 )
return Valid

View File

@ -43,7 +43,6 @@ function CLEANUP:New( ZoneNames, TimeInterval ) local self = BASE:Inherit( self,
_EVENTDISPATCHER:OnBirth( self._OnEventBirth, self )
--self.CleanUpScheduler = routines.scheduleFunction( self._CleanUpScheduler, { self }, timer.getTime() + 1, TimeInterval )
self.CleanUpScheduler = SCHEDULER:New( self, self._CleanUpScheduler, {}, 1, TimeInterval )
return self
@ -168,7 +167,6 @@ function CLEANUP:_EventShot( Event )
if ( CurrentLandingZoneID ) then
-- Okay, the missile was fired within the CLEANUP.ZoneNames, destroy the fired weapon.
--_SEADmissile:destroy()
--routines.scheduleFunction( CLEANUP._DestroyMissile, { self, Event.Weapon }, timer.getTime() + 0.1)
SCHEDULER:New( self, CLEANUP._DestroyMissile, { Event.Weapon }, 0.1 )
end
end
@ -185,7 +183,6 @@ function CLEANUP:_EventHitCleanUp( Event )
self:T( { "Life: ", Event.IniDCSUnitName, ' = ', Event.IniDCSUnit:getLife(), "/", Event.IniDCSUnit:getLife0() } )
if Event.IniDCSUnit:getLife() < Event.IniDCSUnit:getLife0() then
self:T( "CleanUp: Destroy: " .. Event.IniDCSUnitName )
--routines.scheduleFunction( CLEANUP._DestroyUnit, { self, Event.IniDCSUnit }, timer.getTime() + 0.1)
SCHEDULER:New( self, CLEANUP._DestroyUnit, { Event.IniDCSUnit }, 0.1 )
end
end
@ -196,7 +193,6 @@ function CLEANUP:_EventHitCleanUp( Event )
self:T( { "Life: ", Event.TgtDCSUnitName, ' = ', Event.TgtDCSUnit:getLife(), "/", Event.TgtDCSUnit:getLife0() } )
if Event.TgtDCSUnit:getLife() < Event.TgtDCSUnit:getLife0() then
self:T( "CleanUp: Destroy: " .. Event.TgtDCSUnitName )
--routines.scheduleFunction( CLEANUP._DestroyUnit, { self, Event.TgtDCSUnit }, timer.getTime() + 0.1 )
SCHEDULER:New( self, CLEANUP._DestroyUnit, { Event.TgtDCSUnit }, 0.1 )
end
end

File diff suppressed because it is too large Load Diff

View File

@ -119,6 +119,8 @@ end
function DATABASE:AddUnit( DCSUnitName )
if not self.UNITS[DCSUnitName] then
local UnitRegister = UNIT:Register( DCSUnitName )
self:E( UnitRegister.UnitName )
self.UNITS[DCSUnitName] = UNIT:Register( DCSUnitName )
end

View File

@ -3,9 +3,64 @@
-- ===
--
-- 1) @{Detection#DETECTION_BASE} class, extends @{Base#BASE}
-- =====================================================
-- ==========================================================
-- The @{Detection#DETECTION_BASE} class defines the core functions to administer detected objects.
-- Detected objects are grouped in SETS of UNITS.
--
-- 1.1) DETECTION_BASE constructor
-- -------------------------------
-- Construct a new DETECTION_BASE instance using the @{Detection#DETECTION_BASE.New}() method.
--
-- 1.2) DETECTION_BASE initialization
-- ----------------------------------
-- By default, detection will return detected objects with all the detection sensors available.
-- However, you can ask how the objects were found with specific detection methods.
-- If you use one of the below methods, the detection will work with the detection method specified.
-- You can specify to apply multiple detection methods.
--
-- Use the following functions to report the objects it detected using the methods Visual, Optical, Radar, IRST, RWR, DLINK:
--
-- * @{Detection#DETECTION_BASE.InitDetectVisual}(): Detected using Visual.
-- * @{Detection#DETECTION_BASE.InitDetectOptical}(): Detected using Optical.
-- * @{Detection#DETECTION_BASE.InitDetectRadar}(): Detected using Radar.
-- * @{Detection#DETECTION_BASE.InitDetectIRST}(): Detected using IRST.
-- * @{Detection#DETECTION_BASE.InitDetectRWR}(): Detected using RWR.
-- * @{Detection#DETECTION_BASE.InitDetectDLINK}(): Detected using DLINK.
--
-- 1.3) Obtain objects detected by DETECTION_BASE
-- ----------------------------------------------
-- DETECTION_BASE builds @{Set}s of objects detected. These @{Set#SET_BASE}s can be retrieved using the method @{Detection#DETECTION_BASE.GetDetectedSets}().
-- The method will return a list (table) of @{Set#SET_BASE} objects.
--
-- ===
--
-- 2) @{Detection#DETECTION_UNITGROUPS} class, extends @{Detection#DETECTION_BASE}
-- ===============================================================================
-- The @{Detection#DETECTION_UNITGROUPS} class will detect units within the battle zone for a FAC group,
-- and will build a list (table) of @{Set#SET_UNIT}s containing the @{Unit#UNIT}s detected.
-- The class is group the detected units within zones given a DetectedZoneRange parameter.
-- A set with multiple detected zones will be created as there are groups of units detected.
--
-- 2.1) Retrieve the Detected Unit sets and Detected Zones
-- -------------------------------------------------------
-- The DetectedUnitSets methods are implemented in @{Detection#DECTECTION_BASE} and the DetectedZones methods is implemented in @{Detection#DETECTION_UNITGROUPS}.
--
-- Retrieve the DetectedUnitSets with the method @{Detection#DETECTION_BASE.GetDetectedSets}(). A table will be return of @{Set#SET_UNIT}s.
-- To understand the amount of sets created, use the method @{Detection#DETECTION_BASE.GetDetectedSetCount}().
-- If you want to obtain a specific set from the DetectedSets, use the method @{Detection#DETECTION_BASE.GetDetectedSet}() with a given index.
--
-- Retrieve the formed @{Zone@ZONE_UNIT}s as a result of the grouping the detected units within the DetectionZoneRange, use the method @{Detection#DETECTION_BASE.GetDetectionZones}().
-- To understand the amount of zones created, use the method @{Detection#DETECTION_BASE.GetDetectionZoneCount}().
-- If you want to obtain a specific zone from the DetectedZones, use the method @{Detection#DETECTION_BASE.GetDetectionZone}() with a given index.
--
-- 1.4) Flare or Smoke detected units
-- ----------------------------------
-- Use the methods @{Detection#DETECTION_UNITGROUPS.FlareDetectedUnits}() or @{Detection#DETECTION_UNITGROUPS.SmokeDetectedUnits}() to flare or smoke the detected units when a new detection has taken place.
--
-- 1.5) Flare or Smoke detected zones
-- ----------------------------------
-- Use the methods @{Detection#DETECTION_UNITGROUPS.FlareDetectedZones}() or @{Detection#DETECTION_UNITGROUPS.SmokeDetectedZones}() to flare or smoke the detected zones when a new detection has taken place.
--
-- ===
--
-- @module Detection
-- @author Mechanic : Concept & Testing
@ -17,127 +72,396 @@
-- @type DETECTION_BASE
-- @field Group#GROUP FACGroup The GROUP in the Forward Air Controller role.
-- @field DCSTypes#Distance DetectionRange The range till which targets are accepted to be detected.
-- @field DCSTypes#Distance DetectionZoneRange The range till which targets are grouped upon the first detected target.
-- @field #DETECTION_BASE.DetectedUnitSets DetectedUnitSets A list of @{Set#SET_UNIT}s containing the units in each set that were detected within a DetectedZoneRange.
-- @field #DETECTION_BASE.DetectedZones DetectedZones A list of @{Zone#ZONE_UNIT}s containing the zones of the reference detected units.
-- @extends Set#SET_BASE
-- @field #DETECTION_BASE.DetectedSets DetectedSets A list of @{Set#SET_BASE}s containing the objects in each set that were detected. The base class will not build the detected sets, but will leave that to the derived classes.
-- @extends Base#BASE
DETECTION_BASE = {
ClassName = "DETECTION_BASE",
DetectedUnitSets = {},
DetectedUnits = {},
DetectedSets = {},
DetectedObjects = {},
FACGroup = nil,
DetectionRange = nil,
DetectionZoneRange = nil,
}
--- @type DETECTION_BASE.DetectedUnitSets
-- @list <Set#SET_UNIT>
--- @type DETECTION_BASE.DetectedSets
-- @list <Set#SET_BASE>
--- @type DETECTION_BASE.DetectedZones
-- @list <Zone#ZONE_UNIT>
-- @list <Zone#ZONE_BASE>
--- DETECTION constructor.
-- @param #DETECTION_BASE self
-- @param Group#GROUP FACGroup The GROUP in the Forward Air Controller role.
-- @param DCSTypes#Distance DetectionRange The range till which targets are accepted to be detected.
-- @return #DETECTION_BASE self
function DETECTION_BASE:New( FACGroup, DetectionRange, DetectionZoneRange )
function DETECTION_BASE:New( FACGroup, DetectionRange )
-- Inherits from BASE
local self = BASE:Inherit( self, BASE:New() )
self.FACGroup = FACGroup
self.DetectionRange = DetectionRange
self.DetectionZoneRange = DetectionZoneRange
self.DetectionScheduler = SCHEDULER:New(self, self._DetectionScheduler, { self, "Detection" }, 10, 30, 0.2 )
self:InitDetectVisual( false )
self:InitDetectOptical( false )
self:InitDetectRadar( false )
self:InitDetectRWR( false )
self:InitDetectIRST( false )
self:InitDetectDLINK( false )
return self
end
--- Form @{Set}s of detected @{Unit#UNIT}s in an array of @{Set#SET_UNIT}s.
--- Detect Visual.
-- @param #DETECTION_BASE self
-- @param #boolean DetectVisual
-- @return #DETECTION_BASE self
function DETECTION_BASE:InitDetectVisual( DetectVisual )
self.DetectVisual = DetectVisual
end
--- Detect Optical.
-- @param #DETECTION_BASE self
-- @param #boolean DetectOptical
-- @return #DETECTION_BASE self
function DETECTION_BASE:InitDetectOptical( DetectOptical )
self:F2()
self.DetectOptical = DetectOptical
end
--- Detect Radar.
-- @param #DETECTION_BASE self
-- @param #boolean DetectRadar
-- @return #DETECTION_BASE self
function DETECTION_BASE:InitDetectRadar( DetectRadar )
self:F2()
self.DetectRadar = DetectRadar
end
--- Detect IRST.
-- @param #DETECTION_BASE self
-- @param #boolean DetectIRST
-- @return #DETECTION_BASE self
function DETECTION_BASE:InitDetectIRST( DetectIRST )
self:F2()
self.DetectIRST = DetectIRST
end
--- Detect RWR.
-- @param #DETECTION_BASE self
-- @param #boolean DetectRWR
-- @return #DETECTION_BASE self
function DETECTION_BASE:InitDetectRWR( DetectRWR )
self:F2()
self.DetectRWR = DetectRWR
end
--- Detect DLINK.
-- @param #DETECTION_BASE self
-- @param #boolean DetectDLINK
-- @return #DETECTION_BASE self
function DETECTION_BASE:InitDetectDLINK( DetectDLINK )
self:F2()
self.DetectDLINK = DetectDLINK
end
--- Gets the FAC group.
-- @param #DETECTION_BASE self
-- @return Group#GROUP self
function DETECTION_BASE:GetFACGroup()
self:F2()
return self.FACGroup
end
--- Get the detected @{Set#SET_BASE}s.
-- @param #DETECTION_BASE self
-- @return #DETECTION_BASE.DetectedSets DetectedSets
function DETECTION_BASE:GetDetectedSets()
local DetectionSets = self.DetectedSets
return DetectionSets
end
--- Get the amount of SETs with detected objects.
-- @param #DETECTION_BASE self
-- @return #number Count
function DETECTION_BASE:GetDetectedSetCount()
local DetectionSetCount = #self.DetectedSets
return DetectionSetCount
end
--- Get a SET of detected objects using a given numeric index.
-- @param #DETECTION_BASE self
-- @param #number Index
-- @return Set#SET_BASE
function DETECTION_BASE:GetDetectedSet( Index )
local DetectionSet = self.DetectedSets[Index]
if DetectionSet then
return DetectionSet
end
return nil
end
--- Make a DetectionSet table. This function will be overridden in the derived clsses.
-- @param #DETECTION_BASE self
-- @return #DETECTION_BASE self
function DETECTION_BASE:CreateDetectionSets()
self:F2()
self:E( "Error, in DETECTION_BASE class..." )
end
--- Schedule the DETECTION construction.
-- @param #DETECTION_BASE self
-- @param #number DelayTime The delay in seconds to wait the reporting.
-- @param #number RepeatInterval The repeat interval in seconds for the reporting to happen repeatedly.
-- @return #DETECTION_BASE self
function DETECTION_BASE:Schedule( DelayTime, RepeatInterval )
self:F2()
self.ScheduleDelayTime = DelayTime
self.ScheduleRepeatInterval = RepeatInterval
self.DetectionScheduler = SCHEDULER:New(self, self._DetectionScheduler, { self, "Detection" }, DelayTime, RepeatInterval )
return self
end
--- Form @{Set}s of detected @{Unit#UNIT}s in an array of @{Set#SET_BASE}s.
-- @param #DETECTION_BASE self
function DETECTION_BASE:_DetectionScheduler( SchedulerName )
self:F2( { SchedulerName } )
self.DetectedUnitSets = {}
self.DetectedObjects = {}
self.DetectedSets = {}
self.DetectedZones = {}
if self.FACGroup:IsAlive() then
local FACGroupName = self.FACGroup:GetName()
local FACDetectedTargets = self.FACGroup:GetDetectedTargets()
local FACDetectedTargets = self.FACGroup:GetDetectedTargets(
self.DetectVisual,
self.DetectOptical,
self.DetectRadar,
self.DetectIRST,
self.DetectRWR,
self.DetectDLINK
)
for FACDetectedTargetID, FACDetectedTarget in pairs( FACDetectedTargets ) do
local FACObject = FACDetectedTarget.object
local FACObject = FACDetectedTarget.object -- DCSObject#Object
self:T2( FACObject )
if FACObject and FACObject:isExist() and FACObject.id_ < 50000000 then
local FACDetectedUnit = UNIT:Find( FACObject )
local FACDetectedUnitName = FACDetectedUnit:GetName()
local FACDetectedObjectName = FACObject:getName()
local FACDetectedUnitPositionVec3 = FACDetectedUnit:GetPointVec3()
local FACDetectedObjectPositionVec3 = FACObject:getPoint()
local FACGroupPositionVec3 = self.FACGroup:GetPointVec3()
local Distance = ( ( FACDetectedUnitPositionVec3.x - FACGroupPositionVec3.x )^2 +
( FACDetectedUnitPositionVec3.y - FACGroupPositionVec3.y )^2 +
( FACDetectedUnitPositionVec3.z - FACGroupPositionVec3.z )^2
local Distance = ( ( FACDetectedObjectPositionVec3.x - FACGroupPositionVec3.x )^2 +
( FACDetectedObjectPositionVec3.y - FACGroupPositionVec3.y )^2 +
( FACDetectedObjectPositionVec3.z - FACGroupPositionVec3.z )^2
) ^ 0.5 / 1000
self:T( { FACGroupName, FACDetectedUnitName, Distance } )
self:T( { FACGroupName, FACDetectedObjectName, Distance } )
if Distance <= self.DetectionRange then
if not self.DetectedUnits[FACDetectedUnitName] then
self.DetectedUnits[FACDetectedUnitName] = {}
if not self.DetectedObjects[FACDetectedObjectName] then
self.DetectedObjects[FACDetectedObjectName] = {}
end
self.DetectedUnits[FACDetectedUnitName].DetectedUnit = UNIT:FindByName( FACDetectedUnitName )
self.DetectedUnits[FACDetectedUnitName].Visible = FACDetectedTarget.visible
self.DetectedUnits[FACDetectedUnitName].Type = FACDetectedTarget.type
self.DetectedUnits[FACDetectedUnitName].Distance = FACDetectedTarget.distance
self.DetectedObjects[FACDetectedObjectName].Name = FACDetectedObjectName
self.DetectedObjects[FACDetectedObjectName].Visible = FACDetectedTarget.visible
self.DetectedObjects[FACDetectedObjectName].Type = FACDetectedTarget.type
self.DetectedObjects[FACDetectedObjectName].Distance = FACDetectedTarget.distance
else
-- if beyond the DetectionRange then nullify...
if self.DetectedUnits[FACDetectedUnitName] then
self.DetectedUnits[FACDetectedUnitName] = nil
if self.DetectedObjects[FACDetectedObjectName] then
self.DetectedObjects[FACDetectedObjectName] = nil
end
end
end
end
-- okay, now we have a list of detected unit names ...
self:T2( self.DetectedObjects )
-- okay, now we have a list of detected object names ...
-- Sort the table based on distance ...
self:T( { "Sorting DetectedUnits table:", self.DetectedUnits } )
table.sort( self.DetectedUnits, function( a, b ) return a.Distance < b.Distance end )
self:T( { "Sorted Targets Table:", self.DetectedUnits } )
self:T( { "Sorting DetectedObjects table:", self.DetectedObjects } )
table.sort( self.DetectedObjects, function( a, b ) return a.Distance < b.Distance end )
self:T( { "Sorted Targets Table:", self.DetectedObjects } )
-- Now group the DetectedUnits table into SET_UNITs, evaluating the DetectionZoneRange.
-- Now group the DetectedObjects table into SET_BASEs, evaluating the DetectionZoneRange.
if self.DetectedUnits then
for DetectedUnitName, DetectedUnitData in pairs( self.DetectedUnits ) do
local DetectedUnit = DetectedUnitData.DetectedUnit -- Unit#UNIT
if self.DetectedObjects then
self:CreateDetectionSets()
end
end
end
--- @type DETECTION_UNITGROUPS.DetectedSets
-- @list <Set#SET_UNIT>
--
--- @type DETECTION_UNITGROUPS.DetectedZones
-- @list <Zone#ZONE_UNIT>
--
--- DETECTION_UNITGROUPS class
-- @type DETECTION_UNITGROUPS
-- @param DCSTypes#Distance DetectionZoneRange The range till which targets are grouped upon the first detected target.
-- @field #DETECTION_UNITGROUPS.DetectedSets DetectedSets A list of @{Set#SET_UNIT}s containing the units in each set that were detected within a DetectionZoneRange.
-- @field #DETECTION_UNITGROUPS.DetectedZones DetectedZones A list of @{Zone#ZONE_UNIT}s containing the zones of the reference detected units.
-- @extends Detection#DETECTION_BASE
DETECTION_UNITGROUPS = {
ClassName = "DETECTION_UNITGROUPS",
DetectedZones = {},
}
--- DETECTION_UNITGROUPS constructor.
-- @param Detection#DETECTION_UNITGROUPS self
-- @param Group#GROUP FACGroup The GROUP in the Forward Air Controller role.
-- @param DCSTypes#Distance DetectionRange The range till which targets are accepted to be detected.
-- @param DCSTypes#Distance DetectionZoneRange The range till which targets are grouped upon the first detected target.
-- @return Detection#DETECTION_UNITGROUPS self
function DETECTION_UNITGROUPS:New( FACGroup, DetectionRange, DetectionZoneRange )
-- Inherits from DETECTION_BASE
local self = BASE:Inherit( self, DETECTION_BASE:New( FACGroup, DetectionRange ) )
self.DetectionZoneRange = DetectionZoneRange
self:Schedule( 10, 30 )
return self
end
--- Get the detected @{Zone#ZONE_UNIT}s.
-- @param #DETECTION_UNITGROUPS self
-- @return #DETECTION_UNITGROUPS.DetectedZones DetectedZones
function DETECTION_UNITGROUPS:GetDetectedZones()
local DetectedZones = self.DetectedZones
return DetectedZones
end
--- Get the amount of @{Zone#ZONE_UNIT}s with detected units.
-- @param #DETECTION_UNITGROUPS self
-- @return #number Count
function DETECTION_UNITGROUPS:GetDetectedZoneCount()
local DetectedZoneCount = #self.DetectedZones
return DetectedZoneCount
end
--- Get a SET of detected objects using a given numeric index.
-- @param #DETECTION_UNITGROUPS self
-- @param #number Index
-- @return Zone#ZONE_UNIT
function DETECTION_UNITGROUPS:GetDetectedZone( Index )
local DetectedZone = self.DetectedZones[Index]
if DetectedZone then
return DetectedZone
end
return nil
end
--- Smoke the detected units
-- @param #DETECTION_UNITGROUPS self
-- @return #DETECTION_UNITGROUPS self
function DETECTION_UNITGROUPS:SmokeDetectedUnits()
self:F2()
self._SmokeDetectedUnits = true
return self
end
--- Flare the detected units
-- @param #DETECTION_UNITGROUPS self
-- @return #DETECTION_UNITGROUPS self
function DETECTION_UNITGROUPS:FlareDetectedUnits()
self:F2()
self._FlareDetectedUnits = true
return self
end
--- Smoke the detected zones
-- @param #DETECTION_UNITGROUPS self
-- @return #DETECTION_UNITGROUPS self
function DETECTION_UNITGROUPS:SmokeDetectedZones()
self:F2()
self._SmokeDetectedZones = true
return self
end
--- Flare the detected zones
-- @param #DETECTION_UNITGROUPS self
-- @return #DETECTION_UNITGROUPS self
function DETECTION_UNITGROUPS:FlareDetectedZones()
self:F2()
self._FlareDetectedZones = true
return self
end
--- Make a DetectionSet table. This function will be overridden in the derived clsses.
-- @param #DETECTION_UNITGROUPS self
-- @return #DETECTION_UNITGROUPS self
function DETECTION_UNITGROUPS:CreateDetectionSets()
self:F2()
for DetectedUnitName, DetectedUnitData in pairs( self.DetectedObjects ) do
self:T( DetectedUnitData.Name )
local DetectedUnit = UNIT:FindByName( DetectedUnitData.Name ) -- Unit#UNIT
if DetectedUnit and DetectedUnit:IsAlive() then
self:T( DetectedUnit:GetName() )
if #self.DetectedUnitSets == 0 then
if #self.DetectedSets == 0 then
self:T( { "Adding Unit Set #", 1 } )
self.DetectedUnitSets[1] = {}
self.DetectedUnitSets[1].Zone = ZONE_UNIT:New( DetectedUnitName, DetectedUnit, self.DetectionZoneRange )
self.DetectedUnitSets[1].Set = SET_UNIT:New()
self.DetectedUnitSets[1].Set:AddUnit( DetectedUnit )
self.DetectedZones[1] = ZONE_UNIT:New( DetectedUnitName, DetectedUnit, self.DetectionZoneRange )
self.DetectedSets[1] = SET_UNIT:New()
self.DetectedSets[1]:AddUnit( DetectedUnit )
else
local AddedToSet = false
for DetectedUnitSetID, DetectedUnitSetData in pairs( self.DetectedUnitSets ) do
self:T( "Detected Unit Set #" .. DetectedUnitSetID )
local DetectedUnitSet = DetectedUnitSetData.Set -- Set#SET_UNIT
local DetectedZone = DetectedUnitSetData.Zone -- Zone#ZONE_UNIT
for DetectedZoneIndex = 1, #self.DetectedZones do
self:T( "Detected Unit Set #" .. DetectedZoneIndex )
local DetectedUnitSet = self.DetectedSets[DetectedZoneIndex] -- Set#SET_BASE
local DetectedZone = self.DetectedZones[DetectedZoneIndex] -- Zone#ZONE_UNIT
if DetectedUnit:IsInZone( DetectedZone ) then
self:T( "Adding to Unit Set #" .. DetectedUnitSetID )
self.DetectedUnitSets[DetectedUnitSetID].Set:AddUnit( DetectedUnit )
self:T( "Adding to Unit Set #" .. DetectedZoneIndex )
DetectedUnitSet:AddUnit( DetectedUnit )
AddedToSet = true
end
end
if AddedToSet == false then
self:T( "Adding new Unit Set #" .. #self.DetectedUnitSets+1 )
self.DetectedUnitSets[#self.DetectedUnitSets+1] = {}
self.DetectedUnitSets[#self.DetectedUnitSets].Zone = ZONE_UNIT:New( DetectedUnitName, DetectedUnit, self.DetectionZoneRange )
self.DetectedUnitSets[#self.DetectedUnitSets].Set = SET_UNIT:New()
self.DetectedUnitSets[#self.DetectedUnitSets].Set:AddUnit( DetectedUnit )
end
local DetectedZoneIndex = #self.DetectedZones + 1
self:T( "Adding new zone #" .. DetectedZoneIndex )
self.DetectedZones[DetectedZoneIndex] = ZONE_UNIT:New( DetectedUnitName, DetectedUnit, self.DetectionZoneRange )
self.DetectedSets[DetectedZoneIndex] = SET_UNIT:New()
self.DetectedSets[DetectedZoneIndex]:AddUnit( DetectedUnit )
end
end
end
@ -145,18 +469,30 @@ function DETECTION_BASE:_DetectionScheduler( SchedulerName )
-- Now all the tests should have been build, now make some smoke and flares...
for DetectedUnitSetID, DetectedUnitSetData in pairs( self.DetectedUnitSets ) do
local DetectedUnitSet = DetectedUnitSetData.Set -- Set#SET_UNIT
local DetectedZone = DetectedUnitSetData.Zone -- Zone#ZONE_UNIT
self:T( "Detected Set #" .. DetectedUnitSetID )
for DetectedZoneIndex = 1, #self.DetectedZones do
local DetectedUnitSet = self.DetectedSets[DetectedZoneIndex] -- Set#SET_BASE
local DetectedZone = self.DetectedZones[DetectedZoneIndex] -- Zone#ZONE_UNIT
self:T( "Detected Set #" .. DetectedZoneIndex )
DetectedUnitSet:ForEachUnit(
--- @param Unit#UNIT DetectedUnit
function( DetectedUnit )
self:T( DetectedUnit:GetName() )
if self._FlareDetectedUnits then
DetectedUnit:FlareRed()
end
if self._SmokeDetectedUnits then
DetectedUnit:SmokeRed()
end
end
)
if self._FlareDetectedZones then
DetectedZone:FlareZone( POINT_VEC3.SmokeColor.White, 30, math.random( 0,90 ) )
end
if self._SmokeDetectedZones then
DetectedZone:SmokeZone( POINT_VEC3.SmokeColor.White, 30 )
end
end
end

View File

@ -557,7 +557,6 @@ function ESCORT:MenuReportTargets( Seconds )
self.EscortMenuAttackNearbyTargets = MENU_CLIENT:New( self.EscortClient, "Attack targets", self.EscortMenu )
--self.ReportTargetsScheduler = routines.scheduleFunction( self._ReportTargetsScheduler, { self }, timer.getTime() + 1, Seconds )
self.ReportTargetsScheduler = SCHEDULER:New( self, self._ReportTargetsScheduler, {}, 1, Seconds )
return self
@ -779,7 +778,6 @@ function ESCORT._SwitchReportNearbyTargets( MenuParam )
if self.ReportTargets then
if not self.ReportTargetsScheduler then
--self.ReportTargetsScheduler = routines.scheduleFunction( self._ReportTargetsScheduler, { self }, timer.getTime() + 1, 30 )
self.ReportTargetsScheduler = SCHEDULER:New( self, self._ReportTargetsScheduler, {}, 1, 30 )
end
else
@ -856,16 +854,6 @@ function ESCORT._AttackTarget( MenuParam )
EscortGroup:OptionROEOpenFire()
EscortGroup:OptionROTPassiveDefense()
EscortGroup:SetState( EscortGroup, "Escort", self )
-- routines.scheduleFunction(
-- EscortGroup.PushTask,
-- { EscortGroup,
-- EscortGroup:TaskCombo(
-- { EscortGroup:TaskAttackUnit( AttackUnit ),
-- EscortGroup:TaskFunction( 1, 2, "_Resume", {"''"} )
-- }
-- )
-- }, timer.getTime() + 10
-- )
SCHEDULER:New( EscortGroup,
EscortGroup.PushTask,
{ EscortGroup:TaskCombo(
@ -876,15 +864,6 @@ function ESCORT._AttackTarget( MenuParam )
}, 10
)
else
-- routines.scheduleFunction(
-- EscortGroup.PushTask,
-- { EscortGroup,
-- EscortGroup:TaskCombo(
-- { EscortGroup:TaskFireAtPoint( AttackUnit:GetPointVec2(), 50 )
-- }
-- )
-- }, timer.getTime() + 10
-- )
SCHEDULER:New( EscortGroup,
EscortGroup.PushTask,
{ EscortGroup:TaskCombo(
@ -915,16 +894,6 @@ function ESCORT._AssistTarget( MenuParam )
if EscortGroupAttack:IsAir() then
EscortGroupAttack:OptionROEOpenFire()
EscortGroupAttack:OptionROTVertical()
-- routines.scheduleFunction(
-- EscortGroupAttack.PushTask,
-- { EscortGroupAttack,
-- EscortGroupAttack:TaskCombo(
-- { EscortGroupAttack:TaskAttackUnit( AttackUnit ),
-- EscortGroupAttack:TaskOrbitCircle( 500, 350 )
-- }
-- )
-- }, timer.getTime() + 10
-- )
SCHDULER:New( EscortGroupAttack,
EscortGroupAttack.PushTask,
{ EscortGroupAttack:TaskCombo(
@ -935,15 +904,6 @@ function ESCORT._AssistTarget( MenuParam )
}, 10
)
else
-- routines.scheduleFunction(
-- EscortGroupAttack.PushTask,
-- { EscortGroupAttack,
-- EscortGroupAttack:TaskCombo(
-- { EscortGroupAttack:TaskFireAtPoint( AttackUnit:GetPointVec2(), 50 )
-- }
-- )
-- }, timer.getTime() + 10
-- )
SCHEDULER:New( EscortGroupAttack,
EscortGroupAttack.PushTask,
{ EscortGroupAttack:TaskCombo(
@ -1003,7 +963,6 @@ function ESCORT._ResumeMission( MenuParam )
table.remove( WayPoints, 1 )
end
--routines.scheduleFunction( EscortGroup.SetTask, {EscortGroup, EscortGroup:TaskRoute( WayPoints ) }, timer.getTime() + 1 )
SCHEDULER:New( EscortGroup, EscortGroup.SetTask, { EscortGroup:TaskRoute( WayPoints ) }, 1 )
EscortGroup:MessageToClient( "Resuming mission from waypoint " .. WayPoint .. ".", 10, EscortClient )

View File

@ -465,7 +465,8 @@ function EVENT:OnPlayerLeaveUnit( EventFunction, EventSelf )
end
--- @param #EVENT self
-- @param #EVENTDATA Event
function EVENT:onEvent( Event )
self:F2( { _EVENTCODES[Event.id], Event } )
@ -499,7 +500,7 @@ function EVENT:onEvent( Event )
Event.WeaponName = Event.Weapon:getTypeName()
--Event.WeaponTgtDCSUnit = Event.Weapon:getTarget()
end
self:E( { _EVENTCODES[Event.id], Event } )
self:E( { _EVENTCODES[Event.id], Event.IniUnitName, Event.TgtUnitName, Event.WeaponName } )
for ClassName, EventData in pairs( self.Events[Event.id] ) do
if Event.IniDCSUnitName and EventData.IniUnit and EventData.IniUnit[Event.IniDCSUnitName] then
self:E( { "Calling event function for class ", ClassName, " unit ", Event.IniDCSUnitName } )

View File

@ -0,0 +1,210 @@
--- This module contains the FAC classes.
--
-- ===
--
-- 1) @{Fac#FAC_BASE} class, extends @{Base#BASE}
-- ==============================================
-- The @{Fac#FAC_BASE} class defines the core functions to report detected objects to clients.
-- Reportings can be done in several manners, and it is up to the derived classes if FAC_BASE to model the reporting behaviour.
--
-- 1.1) FAC_BASE constructor:
-- ----------------------------
-- * @{Fac#FAC_BASE.New}(): Create a new FAC_BASE instance.
--
-- 1.2) FAC_BASE reporting:
-- ------------------------
-- Derived FAC_BASE classes will reports detected units using the method @{Fac#FAC_BASE.ReportDetected}(). This method implements polymorphic behaviour.
--
-- The time interval in seconds of the reporting can be changed using the methods @{Fac#FAC_BASE.SetReportInterval}().
-- To control how long a reporting message is displayed, use @{Fac#FAC_BASE.SetReportDisplayTime}().
-- Derived classes need to implement the method @{Fac#FAC_BASE.GetReportDisplayTime}() to use the correct display time for displayed messages during a report.
--
-- Reporting can be started and stopped using the methods @{Fac#FAC_BASE.StartReporting}() and @{Fac#FAC_BASE.StopReporting}() respectively.
-- If an ad-hoc report is requested, use the method @{Fac#FAC_BASE#ReportNow}().
--
-- The default reporting interval is every 60 seconds. The reporting messages are displayed 15 seconds.
--
-- ===
--
-- 2) @{Fac#FAC_REPORTING} class, extends @{Fac#FAC_BASE}
-- ======================================================
-- The @{Fac#FAC_REPORTING} class implements detected units reporting. Reporting can be controlled using the reporting methods available in the @{Fac#FAC_BASE} class.
--
-- 2.1) FAC_REPORTING constructor:
-- -------------------------------
-- The @{Fac#FAC_REPORTING.New}() method creates a new FAC_REPORTING instance.
--
-- ===
--
-- @module Fac
-- @author Mechanic, Prof_Hilactic, FlightControl : Concept & Testing
-- @author FlightControl : Design & Programming
--- FAC_BASE class.
-- @type FAC_BASE
-- @field Set#SET_CLIENT ClientSet The clients to which the FAC will report to.
-- @field Detection#DETECTION_BASE Detection The DETECTION_BASE object that is used to report the detected objects.
-- @extends Base#BASE
FAC_BASE = {
ClassName = "FAC_BASE",
ClientSet = nil,
Detection = nil,
}
--- FAC constructor.
-- @param #FAC_BASE self
-- @param Set#SET_CLIENT ClientSet
-- @param Detection#DETECTION_BASE Detection
-- @return #FAC_BASE self
function FAC_BASE:New( ClientSet, Detection )
-- Inherits from BASE
local self = BASE:Inherit( self, BASE:New() ) -- Fac#FAC_BASE
self.ClientSet = ClientSet
self.Detection = Detection
self:SetReportInterval( 60 )
self:SetReportDisplayTime( 15 )
return self
end
--- Set the reporting time interval.
-- @param #FAC_BASE self
-- @param #number ReportInterval The interval in seconds when a report needs to be done.
-- @return #FAC_BASE self
function FAC_BASE:SetReportInterval( ReportInterval )
self:F2()
self._ReportInterval = ReportInterval
end
--- Set the reporting message display time.
-- @param #FAC_BASE self
-- @param #number ReportDisplayTime The display time in seconds when a report needs to be done.
-- @return #FAC_BASE self
function FAC_BASE:SetReportDisplayTime( ReportDisplayTime )
self:F2()
self._ReportDisplayTime = ReportDisplayTime
end
--- Get the reporting message display time.
-- @param #FAC_BASE self
-- @return #number ReportDisplayTime The display time in seconds when a report needs to be done.
function FAC_BASE:GetReportDisplayTime()
self:F2()
return self._ReportDisplayTime
end
--- Reports the detected items to the @{Set#SET_CLIENT}.
-- @param #FAC_BASE self
-- @param Set#SET_BASE DetectedSets The detected Sets created by the @{Detection#DETECTION_BASE} object.
-- @return #FAC_BASE self
function FAC_BASE:ReportDetected( DetectedSets )
self:F2()
end
--- Schedule the FAC reporting.
-- @param #FAC_BASE self
-- @param #number DelayTime The delay in seconds to wait the reporting.
-- @param #number ReportInterval The repeat interval in seconds for the reporting to happen repeatedly.
-- @return #FAC_BASE self
function FAC_BASE:Schedule( DelayTime, ReportInterval )
self:F2()
self._ScheduleDelayTime = DelayTime
self:SetReportInterval( ReportInterval )
self.FacScheduler = SCHEDULER:New(self, self._FacScheduler, { self, "Fac" }, self._ScheduleDelayTime, self._ReportInterval )
return self
end
--- Report the detected @{Unit#UNIT}s detected within the @{DetectION#DETECTION_BASE} object to the @{Set#SET_CLIENT}s.
-- @param #FAC_BASE self
function FAC_BASE:_FacScheduler( SchedulerName )
self:F2( { SchedulerName } )
self.ClientSet:ForEachClient(
--- @param Client#CLIENT Client
function( Client )
if Client:IsAlive() then
local DetectedSets = self.Detection:GetDetectedSets()
return self:ReportDetected( Client, DetectedSets )
end
end
)
return true
end
-- FAC_REPORTING
--- FAC_REPORTING class.
-- @type FAC_REPORTING
-- @field Set#SET_CLIENT ClientSet The clients to which the FAC will report to.
-- @field Detection#DETECTION_BASE Detection The DETECTION_BASE object that is used to report the detected objects.
-- @extends #FAC_BASE
FAC_REPORTING = {
ClassName = "FAC_REPORTING",
}
--- FAC_REPORTING constructor.
-- @param #FAC_REPORTING self
-- @param Set#SET_CLIENT ClientSet
-- @param Detection#DETECTION_BASE Detection
-- @return #FAC_REPORTING self
function FAC_REPORTING:New( ClientSet, Detection )
-- Inherits from FAC_BASE
local self = BASE:Inherit( self, FAC_BASE:New( ClientSet, Detection ) ) -- #FAC_REPORTING
self:Schedule( 5, 60 )
return self
end
--- Reports the detected items to the @{Set#SET_CLIENT}.
-- @param #FAC_REPORTING self
-- @param Client#CLIENT Client The @{Client} object to where the report needs to go.
-- @param Set#SET_BASE DetectedSets The detected Sets created by the @{Detection#DETECTION_BASE} object.
-- @return #boolean Return true if you want the reporting to continue... false will cancel the reporting loop.
function FAC_REPORTING:ReportDetected( Client, DetectedSets )
self:F2( Client )
local DetectedMsg = {}
for DetectedUnitSetID, DetectedUnitSet in pairs( DetectedSets ) do
local UnitSet = DetectedUnitSet -- Set#SET_UNIT
local MT = {} -- Message Text
local UnitTypes = {}
for DetectedUnitID, DetectedUnitData in pairs( UnitSet:GetSet() ) do
local DetectedUnit = DetectedUnitData -- Unit#UNIT
local UnitType = DetectedUnit:GetTypeName()
if not UnitTypes[UnitType] then
UnitTypes[UnitType] = 1
else
UnitTypes[UnitType] = UnitTypes[UnitType] + 1
end
end
for UnitTypeID, UnitType in pairs( UnitTypes ) do
MT[#MT+1] = UnitType .. " of " .. UnitTypeID
end
local MessageText = table.concat( MT, ", " )
DetectedMsg[#DetectedMsg+1] = " - Group #" .. DetectedUnitSetID .. ": " .. MessageText
end
local FACGroup = self.Detection:GetFACGroup()
FACGroup:MessageToClient( "Reporting detected target groups:\n" .. table.concat( DetectedMsg, "\n" ), self:GetReportDisplayTime(), Client )
return true
end

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,205 @@
--- This module contains the IDENTIFIABLE class.
--
-- 1) @{Identifiable#IDENTIFIABLE} class, extends @{Object#OBJECT}
-- ===============================================================
-- The @{Identifiable#IDENTIFIABLE} class is a wrapper class to handle the DCS Identifiable objects:
--
-- * Support all DCS Identifiable APIs.
-- * Enhance with Identifiable specific APIs not in the DCS Identifiable API set.
-- * Manage the "state" of the DCS Identifiable.
--
-- 1.1) IDENTIFIABLE constructor:
-- ------------------------------
-- The IDENTIFIABLE class provides the following functions to construct a IDENTIFIABLE instance:
--
-- * @{Identifiable#IDENTIFIABLE.New}(): Create a IDENTIFIABLE instance.
--
-- 1.2) IDENTIFIABLE methods:
-- --------------------------
-- The following methods can be used to identify an identifiable object:
--
-- * @{Identifiable#IDENTIFIABLE.GetName}(): Returns the name of the Identifiable.
-- * @{Identifiable#IDENTIFIABLE.IsAlive}(): Returns if the Identifiable is alive.
-- * @{Identifiable#IDENTIFIABLE.GetTypeName}(): Returns the type name of the Identifiable.
-- * @{Identifiable#IDENTIFIABLE.GetCoalition}(): Returns the coalition of the Identifiable.
-- * @{Identifiable#IDENTIFIABLE.GetCountry}(): Returns the country of the Identifiable.
-- * @{Identifiable#IDENTIFIABLE.GetDesc}(): Returns the descriptor structure of the Identifiable.
--
--
-- ===
--
-- @module Identifiable
-- @author FlightControl
--- The IDENTIFIABLE class
-- @type IDENTIFIABLE
-- @extends Object#OBJECT
-- @field #string IdentifiableName The name of the identifiable.
IDENTIFIABLE = {
ClassName = "IDENTIFIABLE",
IdentifiableName = "",
}
local _CategoryName = {
[Unit.Category.AIRPLANE] = "Airplane",
[Unit.Category.HELICOPTER] = "Helicoper",
[Unit.Category.GROUND_UNIT] = "Ground Identifiable",
[Unit.Category.SHIP] = "Ship",
[Unit.Category.STRUCTURE] = "Structure",
}
--- Create a new IDENTIFIABLE from a DCSIdentifiable
-- @param #IDENTIFIABLE self
-- @param DCSIdentifiable#Identifiable IdentifiableName The DCS Identifiable name
-- @return #IDENTIFIABLE self
function IDENTIFIABLE:New( IdentifiableName )
local self = BASE:Inherit( self, BASE:New() )
self:F2( IdentifiableName )
self.IdentifiableName = IdentifiableName
return self
end
--- Returns if the Identifiable is alive.
-- @param Identifiable#IDENTIFIABLE self
-- @return #boolean true if Identifiable is alive.
-- @return #nil The DCS Identifiable is not existing or alive.
function IDENTIFIABLE:IsAlive()
self:F2( self.IdentifiableName )
local DCSIdentifiable = self:GetDCSObject()
if DCSIdentifiable then
local IdentifiableIsAlive = DCSIdentifiable:isExist()
return IdentifiableIsAlive
end
return false
end
--- Returns DCS Identifiable object name.
-- The function provides access to non-activated objects too.
-- @param Identifiable#IDENTIFIABLE self
-- @return #string The name of the DCS Identifiable.
-- @return #nil The DCS Identifiable is not existing or alive.
function IDENTIFIABLE:GetName()
self:F2( self.IdentifiableName )
local DCSIdentifiable = self:GetDCSObject()
if DCSIdentifiable then
local IdentifiableName = self.IdentifiableName
return IdentifiableName
end
self:E( self.ClassName .. " " .. self.IdentifiableName .. " not found!" )
return nil
end
--- Returns the type name of the DCS Identifiable.
-- @param Identifiable#IDENTIFIABLE self
-- @return #string The type name of the DCS Identifiable.
-- @return #nil The DCS Identifiable is not existing or alive.
function IDENTIFIABLE:GetTypeName()
self:F2( self.IdentifiableName )
local DCSIdentifiable = self:GetDCSObject()
if DCSIdentifiable then
local IdentifiableTypeName = DCSIdentifiable:getTypeName()
self:T3( IdentifiableTypeName )
return IdentifiableTypeName
end
self:E( self.ClassName .. " " .. self.IdentifiableName .. " not found!" )
return nil
end
--- Returns the DCS Identifiable category name as defined within the DCS Identifiable Descriptor.
-- @param Identifiable#IDENTIFIABLE self
-- @return #string The DCS Identifiable Category Name
function IDENTIFIABLE:GetCategoryName()
local DCSIdentifiable = self:GetDCSObject()
if DCSIdentifiable then
local IdentifiableCategoryName = _CategoryName[ self:GetDesc().category ]
return IdentifiableCategoryName
end
self:E( self.ClassName .. " " .. self.IdentifiableName .. " not found!" )
return nil
end
--- Returns coalition of the Identifiable.
-- @param Identifiable#IDENTIFIABLE self
-- @return DCSCoalitionObject#coalition.side The side of the coalition.
-- @return #nil The DCS Identifiable is not existing or alive.
function IDENTIFIABLE:GetCoalition()
self:F2( self.IdentifiableName )
local DCSIdentifiable = self:GetDCSObject()
if DCSIdentifiable then
local IdentifiableCoalition = DCSIdentifiable:getCoalition()
self:T3( IdentifiableCoalition )
return IdentifiableCoalition
end
self:E( self.ClassName .. " " .. self.IdentifiableName .. " not found!" )
return nil
end
--- Returns country of the Identifiable.
-- @param Identifiable#IDENTIFIABLE self
-- @return DCScountry#country.id The country identifier.
-- @return #nil The DCS Identifiable is not existing or alive.
function IDENTIFIABLE:GetCountry()
self:F2( self.IdentifiableName )
local DCSIdentifiable = self:GetDCSObject()
if DCSIdentifiable then
local IdentifiableCountry = DCSIdentifiable:getCountry()
self:T3( IdentifiableCountry )
return IdentifiableCountry
end
self:E( self.ClassName .. " " .. self.IdentifiableName .. " not found!" )
return nil
end
--- Returns Identifiable descriptor. Descriptor type depends on Identifiable category.
-- @param Identifiable#IDENTIFIABLE self
-- @return DCSIdentifiable#Identifiable.Desc The Identifiable descriptor.
-- @return #nil The DCS Identifiable is not existing or alive.
function IDENTIFIABLE:GetDesc()
self:F2( self.IdentifiableName )
local DCSIdentifiable = self:GetDCSObject()
if DCSIdentifiable then
local IdentifiableDesc = DCSIdentifiable:getDesc()
self:T2( IdentifiableDesc )
return IdentifiableDesc
end
self:E( self.ClassName .. " " .. self.IdentifiableName .. " not found!" )
return nil
end

View File

@ -2,6 +2,10 @@
Include.File( "Routines" )
Include.File( "Base" )
Include.File( "Object" )
Include.File( "Identifiable" )
Include.File( "Positionable" )
Include.File( "Controllable" )
Include.File( "Scheduler" )
Include.File( "Event" )
Include.File( "Menu" )
@ -40,6 +44,7 @@ Include.File( "PatrolZone" )
Include.File( "AIBalancer" )
Include.File( "AirbasePolice" )
Include.File( "Detection" )
Include.File( "FAC" )
-- The order of the declarations is important here. Don't touch it.

View File

@ -0,0 +1,213 @@
--- This module contains the OBJECT class.
--
-- 1) @{Object#OBJECT} class, extends @{Base#BASE}
-- ===========================================================
-- The @{Object#OBJECT} class is a wrapper class to handle the DCS Object objects:
--
-- * Support all DCS Object APIs.
-- * Enhance with Object specific APIs not in the DCS Object API set.
-- * Manage the "state" of the DCS Object.
--
-- 1.1) OBJECT constructor:
-- ------------------------------
-- The OBJECT class provides the following functions to construct a OBJECT instance:
--
-- * @{Object#OBJECT.New}(): Create a OBJECT instance.
--
-- 1.2) OBJECT methods:
-- --------------------------
-- The following methods can be used to identify an Object object:
--
-- * @{Object#OBJECT.GetID}(): Returns the ID of the Object object.
--
-- ===
--
-- @module Object
-- @author FlightControl
--- The OBJECT class
-- @type OBJECT
-- @extends Base#BASE
-- @field #string ObjectName The name of the Object.
OBJECT = {
ClassName = "OBJECT",
ObjectName = "",
}
--- A DCSObject
-- @type DCSObject
-- @field id_ The ID of the controllable in DCS
--- Create a new OBJECT from a DCSObject
-- @param #OBJECT self
-- @param DCSObject#Object ObjectName The Object name
-- @return #OBJECT self
function OBJECT:New( ObjectName )
local self = BASE:Inherit( self, BASE:New() )
self:F2( ObjectName )
self.ObjectName = ObjectName
return self
end
--- Returns if the Object is alive.
-- @param Object#OBJECT self
-- @return #boolean true if Object is alive.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:IsAlive()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectIsAlive = DCSObject:isExist()
return ObjectIsAlive
end
return false
end
--- Returns DCS Object object name.
-- The function provides access to non-activated objects too.
-- @param Object#OBJECT self
-- @return #string The name of the DCS Object.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetName()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectName = self.ObjectName
return ObjectName
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns the type name of the DCS Object.
-- @param Object#OBJECT self
-- @return #string The type name of the DCS Object.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetTypeName()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectTypeName = DCSObject:getTypeName()
self:T3( ObjectTypeName )
return ObjectTypeName
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns the Object's callsign - the localized string.
-- @param Object#OBJECT self
-- @return #string The Callsign of the Object.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetCallSign()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectCallSign = DCSObject:getCallsign()
return ObjectCallSign
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns the DCS Object category name as defined within the DCS Object Descriptor.
-- @param Object#OBJECT self
-- @return #string The DCS Object Category Name
function OBJECT:GetCategoryName()
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectCategoryName = _CategoryName[ self:GetDesc().category ]
return ObjectCategoryName
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns coalition of the Object.
-- @param Object#OBJECT self
-- @return DCSCoalitionObject#coalition.side The side of the coalition.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetCoalition()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectCoalition = DCSObject:getCoalition()
self:T3( ObjectCoalition )
return ObjectCoalition
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns country of the Object.
-- @param Object#OBJECT self
-- @return DCScountry#country.id The country identifier.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetCountry()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectCountry = DCSObject:getCountry()
self:T3( ObjectCountry )
return ObjectCountry
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns Object descriptor. Descriptor type depends on Object category.
-- @param Object#OBJECT self
-- @return DCSObject#Object.Desc The Object descriptor.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetDesc()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectDesc = DCSObject:getDesc()
self:T2( ObjectDesc )
return ObjectDesc
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end

View File

@ -0,0 +1,213 @@
--- This module contains the POSITIONABLE class.
--
-- 1) @{Positionable#POSITIONABLE} class, extends @{Identifiable#IDENTIFIABLE}
-- ===========================================================
-- The @{Positionable#POSITIONABLE} class is a wrapper class to handle the DCS Positionable objects:
--
-- * Support all DCS Positionable APIs.
-- * Enhance with Positionable specific APIs not in the DCS Positionable API set.
-- * Manage the "state" of the DCS Positionable.
--
-- 1.1) POSITIONABLE constructor:
-- ------------------------------
-- The POSITIONABLE class provides the following functions to construct a POSITIONABLE instance:
--
-- * @{Positionable#POSITIONABLE.New}(): Create a POSITIONABLE instance.
--
-- 1.2) POSITIONABLE methods:
-- --------------------------
-- The following methods can be used to identify an measurable object:
--
-- * @{Positionable#POSITIONABLE.GetID}(): Returns the ID of the measurable object.
-- * @{Positionable#POSITIONABLE.GetName}(): Returns the name of the measurable object.
--
-- ===
--
-- @module Positionable
-- @author FlightControl
--- The POSITIONABLE class
-- @type POSITIONABLE
-- @extends Identifiable#IDENTIFIABLE
-- @field #string PositionableName The name of the measurable.
POSITIONABLE = {
ClassName = "POSITIONABLE",
PositionableName = "",
}
--- A DCSPositionable
-- @type DCSPositionable
-- @field id_ The ID of the controllable in DCS
--- Create a new POSITIONABLE from a DCSPositionable
-- @param #POSITIONABLE self
-- @param DCSPositionable#Positionable PositionableName The DCS Positionable name
-- @return #POSITIONABLE self
function POSITIONABLE:New( PositionableName )
local self = BASE:Inherit( self, IDENTIFIABLE:New( PositionableName ) )
return self
end
--- Returns the @{DCSTypes#Position3} position vectors indicating the point and direction vectors in 3D of the DCS Positionable within the mission.
-- @param Positionable#POSITIONABLE self
-- @return DCSTypes#Position The 3D position vectors of the DCS Positionable.
-- @return #nil The DCS Positionable is not existing or alive.
function POSITIONABLE:GetPositionVec3()
self:F2( self.PositionableName )
local DCSPositionable = self:GetDCSObject()
if DCSPositionable then
local PositionablePosition = DCSPositionable:getPosition()
self:T3( PositionablePosition )
return PositionablePosition
end
return nil
end
--- Returns the @{DCSTypes#Vec2} vector indicating the point in 2D of the DCS Positionable within the mission.
-- @param Positionable#POSITIONABLE self
-- @return DCSTypes#Vec2 The 2D point vector of the DCS Positionable.
-- @return #nil The DCS Positionable is not existing or alive.
function POSITIONABLE:GetPointVec2()
self:F2( self.PositionableName )
local DCSPositionable = self:GetDCSObject()
if DCSPositionable then
local PositionablePointVec3 = DCSPositionable:getPosition().p
local PositionablePointVec2 = {}
PositionablePointVec2.x = PositionablePointVec3.x
PositionablePointVec2.y = PositionablePointVec3.z
self:T2( PositionablePointVec2 )
return PositionablePointVec2
end
return nil
end
--- Returns the @{DCSTypes#Vec3} vector indicating the point in 3D of the DCS Positionable within the mission.
-- @param Positionable#POSITIONABLE self
-- @return DCSTypes#Vec3 The 3D point vector of the DCS Positionable.
-- @return #nil The DCS Positionable is not existing or alive.
function POSITIONABLE:GetPointVec3()
self:F2( self.PositionableName )
local DCSPositionable = self:GetDCSObject()
if DCSPositionable then
local PositionablePointVec3 = DCSPositionable:getPosition().p
self:T3( PositionablePointVec3 )
return PositionablePointVec3
end
return nil
end
--- Returns the altitude of the DCS Positionable.
-- @param Positionable#POSITIONABLE self
-- @return DCSTypes#Distance The altitude of the DCS Positionable.
-- @return #nil The DCS Positionable is not existing or alive.
function POSITIONABLE:GetAltitude()
self:F2()
local DCSPositionable = self:GetDCSObject()
if DCSPositionable then
local PositionablePointVec3 = DCSPositionable:getPoint() --DCSTypes#Vec3
return PositionablePointVec3.y
end
return nil
end
--- Returns if the Positionable is located above a runway.
-- @param Positionable#POSITIONABLE self
-- @return #boolean true if Positionable is above a runway.
-- @return #nil The DCS Positionable is not existing or alive.
function POSITIONABLE:IsAboveRunway()
self:F2( self.PositionableName )
local DCSPositionable = self:GetDCSObject()
if DCSPositionable then
local PointVec2 = self:GetPointVec2()
local SurfaceType = land.getSurfaceType( PointVec2 )
local IsAboveRunway = SurfaceType == land.SurfaceType.RUNWAY
self:T2( IsAboveRunway )
return IsAboveRunway
end
return nil
end
--- Returns the DCS Positionable heading.
-- @param Positionable#POSITIONABLE self
-- @return #number The DCS Positionable heading
function POSITIONABLE:GetHeading()
local DCSPositionable = self:GetDCSObject()
if DCSPositionable then
local PositionablePosition = DCSPositionable:getPosition()
if PositionablePosition then
local PositionableHeading = math.atan2( PositionablePosition.x.z, PositionablePosition.x.x )
if PositionableHeading < 0 then
PositionableHeading = PositionableHeading + 2 * math.pi
end
self:T2( PositionableHeading )
return PositionableHeading
end
end
return nil
end
--- Returns true if the DCS Positionable is in the air.
-- @param Positionable#POSITIONABLE self
-- @return #boolean true if in the air.
-- @return #nil The DCS Positionable is not existing or alive.
function POSITIONABLE:InAir()
self:F2( self.PositionableName )
local DCSPositionable = self:GetDCSObject()
if DCSPositionable then
local PositionableInAir = DCSPositionable:inAir()
self:T3( PositionableInAir )
return PositionableInAir
end
return nil
end
--- Returns the DCS Positionable velocity vector.
-- @param Positionable#POSITIONABLE self
-- @return DCSTypes#Vec3 The velocity vector
-- @return #nil The DCS Positionable is not existing or alive.
function POSITIONABLE:GetVelocity()
self:F2( self.PositionableName )
local DCSPositionable = self:GetDCSObject()
if DCSPositionable then
local PositionableVelocityVec3 = DCSPositionable:getVelocity()
self:T3( PositionableVelocityVec3 )
return PositionableVelocityVec3
end
return nil
end

View File

@ -441,22 +441,6 @@ routines.getNorthCorrection = function(point) --gets the correction needed for
end
-- the main area
do
-- THE MAIN FUNCTION -- Accessed 100 times/sec.
routines.main = function()
timer.scheduleFunction(routines.main, {}, timer.getTime() + 2) --reschedule first in case of Lua error
----------------------------------------------------------------------------------------------------------
--area to add new stuff in
routines.do_scheduled_functions()
end -- end of routines.main
timer.scheduleFunction(routines.main, {}, timer.getTime() + 2)
end
do
local idNum = 0

View File

@ -111,7 +111,9 @@ function SCHEDULER:_Scheduler()
local ErrorHandler = function( errmsg )
env.info( "Error in SCHEDULER function:" .. errmsg )
if debug ~= nil then
env.info( debug.traceback() )
end
return errmsg
end

View File

@ -50,7 +50,6 @@ function SEAD:EventShot( Event )
local SEADUnitName = Event.IniDCSUnitName
local SEADWeapon = Event.Weapon -- Identify the weapon fired
local SEADWeaponName = Event.WeaponName -- return weapon type
--trigger.action.outText( string.format("Alerte, depart missile " ..string.format(SEADWeaponName)), 20) --debug message
-- Start of the 2nd loop
self:T( "Missile Launched = " .. SEADWeaponName )
if SEADWeaponName == "KH-58" or SEADWeaponName == "KH-25MPU" or SEADWeaponName == "AGM-88" or SEADWeaponName == "KH-31A" or SEADWeaponName == "KH-31P" then -- Check if the missile is a SEAD
@ -76,10 +75,10 @@ function SEAD:EventShot( Event )
local Skills = { "Average", "Good", "High", "Excellent" }
_targetskill = Skills[ math.random(1,4) ]
end
self:T( _targetskill ) -- debug message for skill check
self:T( _targetskill )
if self.TargetSkill[_targetskill] then
if (_evade > self.TargetSkill[_targetskill].Evade) then
self:T( string.format("Evading, target skill " ..string.format(_targetskill)) ) --debug message
self:T( string.format("Evading, target skill " ..string.format(_targetskill)) )
local _targetMim = Weapon.getTarget(SEADWeapon)
local _targetMimname = Unit.getName(_targetMim)
local _targetMimgroup = Unit.getGroup(Weapon.getTarget(SEADWeapon))

View File

@ -260,6 +260,15 @@ function SET_BASE:_Find( ObjectName )
end
--- Gets the Set.
-- @param #SET_BASE self
-- @return #SET_BASE self
function SET_BASE:GetSet()
self:F2()
return self.Set
end
--- Adds a @{Base#BASE} object in the @{Set#SET_BASE}, using the Object Name as the index.
-- @param #SET_BASE self
-- @param #string ObjectName
@ -390,7 +399,7 @@ end
-- @param #SET_BASE self
-- @param Event#EVENTDATA Event
function SET_BASE:_EventOnDeadOrCrash( Event )
self:F2( { Event } )
self:F3( { Event } )
if Event.IniDCSUnit then
local ObjectName, Object = self:FindInDatabase( Event )
@ -446,7 +455,7 @@ function SET_BASE:ForEach( IteratorFunction, arg, Set, Function, FunctionArgumen
local function CoRoutine()
local Count = 0
for ObjectID, Object in pairs( Set ) do
self:T2( Object )
self:T3( Object )
if Function then
if Function( unpack( FunctionArguments ), Object ) == true then
IteratorFunction( Object, unpack( arg ) )
@ -535,7 +544,7 @@ function SET_BASE:IsIncludeObject( Object )
return true
end
--- Flushes the current SET_BASE contents in the log ... (for debug reasons).
--- Flushes the current SET_BASE contents in the log ... (for debugging reasons).
-- @param #SET_BASE self
-- @return #string A string with the names of the objects.
function SET_BASE:Flush()
@ -1156,7 +1165,6 @@ end
function SET_UNIT:FindInDatabase( Event )
self:F3( { Event } )
self:E( { Event.IniDCSUnitName, self.Database[Event.IniDCSUnitName] } )
return Event.IniDCSUnitName, self.Database[Event.IniDCSUnitName]
end

View File

@ -1,7 +1,7 @@
--- This module contains the STATIC class.
--
-- 1) @{Static#STATIC} class, extends @{Unit#UNIT}
-- ===============================================
-- 1) @{Static#STATIC} class, extends @{Positionable#POSITIONABLE}
-- ===============================================================
-- Statics are **Static Units** defined within the Mission Editor.
-- Note that Statics are almost the same as Units, but they don't have a controller.
-- The @{Static#STATIC} class is a wrapper class to handle the DCS Static objects:
@ -38,7 +38,7 @@
--- The STATIC class
-- @type STATIC
-- @extends Unit#UNIT
-- @extends Positionable#POSITIONABLE
STATIC = {
ClassName = "STATIC",
}
@ -62,10 +62,7 @@ function STATIC:FindByName( StaticName )
end
function STATIC:Register( StaticName )
local self = BASE:Inherit( self, UNIT:Register( StaticName ) )
self:F( StaticName )
local self = BASE:Inherit( self, POSITIONABLE:New( StaticName ) )
return self
end

View File

@ -1,7 +1,7 @@
--- This module contains the UNIT class.
--
-- 1) @{Unit#UNIT} class, extends @{Base#BASE}
-- ===========================================
-- 1) @{Unit#UNIT} class, extends @{Controllable#CONTROLLABLE}
-- ===========================================================
-- The @{Unit#UNIT} class is a wrapper class to handle the DCS Unit objects:
--
-- * Support all DCS Unit APIs.
@ -74,18 +74,11 @@
--- The UNIT class
-- @type UNIT
-- @extends Base#BASE
-- @extends Controllable#CONTROLLABLE
-- @field #UNIT.FlareColor FlareColor
-- @field #UNIT.SmokeColor SmokeColor
UNIT = {
ClassName="UNIT",
CategoryName = {
[Unit.Category.AIRPLANE] = "Airplane",
[Unit.Category.HELICOPTER] = "Helicoper",
[Unit.Category.GROUND_UNIT] = "Ground Unit",
[Unit.Category.SHIP] = "Ship",
[Unit.Category.STRUCTURE] = "Structure",
},
FlareColor = {
Green = trigger.flareColor.Green,
Red = trigger.flareColor.Red,
@ -120,13 +113,10 @@ UNIT = {
--- Create a new UNIT from DCSUnit.
-- @param #UNIT self
-- @param DCSUnit#Unit DCSUnit
-- @param Database#DATABASE Database
-- @param #string UnitName The name of the DCS unit.
-- @return Unit#UNIT
function UNIT:Register( UnitName )
local self = BASE:Inherit( self, BASE:New() )
self:F2( UnitName )
local self = BASE:Inherit( self, CONTROLLABLE:New( UnitName ) )
self.UnitName = UnitName
return self
end
@ -154,7 +144,10 @@ function UNIT:FindByName( UnitName )
return UnitFound
end
function UNIT:GetDCSUnit()
--- @param #UNIT self
-- @return DCSUnit#Unit
function UNIT:GetDCSObject()
local DCSUnit = Unit.getByName( self.UnitName )
@ -165,78 +158,8 @@ function UNIT:GetDCSUnit()
return nil
end
--- Returns coalition of the Unit.
-- @param Unit#UNIT self
-- @return DCSCoalitionObject#coalition.side The side of the coalition.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetCoalition()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitCoalition = DCSUnit:getCoalition()
self:T3( UnitCoalition )
return UnitCoalition
end
return nil
end
--- Returns country of the Unit.
-- @param Unit#UNIT self
-- @return DCScountry#country.id The country identifier.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetCountry()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitCountry = DCSUnit:getCountry()
self:T3( UnitCountry )
return UnitCountry
end
return nil
end
--- Returns DCS Unit object name.
-- The function provides access to non-activated units too.
-- @param Unit#UNIT self
-- @return #string The name of the DCS Unit.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetName()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitName = self.UnitName
return UnitName
end
return nil
end
--- Returns if the unit is alive.
-- @param Unit#UNIT self
-- @return #boolean true if Unit is alive.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:IsAlive()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitIsAlive = DCSUnit:isExist()
return UnitIsAlive
end
return false
end
--- Returns if the unit is activated.
-- @param Unit#UNIT self
@ -245,7 +168,7 @@ end
function UNIT:IsActive()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
@ -256,30 +179,25 @@ function UNIT:IsActive()
return nil
end
--- Returns if the unit is located above a runway.
--- Returns the Unit's callsign - the localized string.
-- @param Unit#UNIT self
-- @return #boolean true if Unit is above a runway.
-- @return #string The Callsign of the Unit.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:IsAboveRunway()
function UNIT:GetCallSign()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local PointVec2 = self:GetPointVec2()
local SurfaceType = land.getSurfaceType( PointVec2 )
local IsAboveRunway = SurfaceType == land.SurfaceType.RUNWAY
self:T2( IsAboveRunway )
return IsAboveRunway
local UnitCallSign = DCSUnit:getCallsign()
return UnitCallSign
end
self:E( self.ClassName .. " " .. self.UnitName .. " not found!" )
return nil
end
--- Returns name of the player that control the unit or nil if the unit is controlled by A.I.
-- @param Unit#UNIT self
-- @return #string Player Name
@ -287,7 +205,7 @@ end
function UNIT:GetPlayerName()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
@ -301,23 +219,6 @@ function UNIT:GetPlayerName()
return nil
end
--- Returns the unit's unique identifier.
-- @param Unit#UNIT self
-- @return DCSUnit#Unit.ID Unit ID
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetID()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitID = DCSUnit:getID()
return UnitID
end
return nil
end
--- Returns the unit's number in the group.
-- The number is the same number the unit has in ME.
-- It may not be changed during the mission.
@ -328,7 +229,7 @@ end
function UNIT:GetNumber()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitNumber = DCSUnit:getNumber()
@ -345,7 +246,7 @@ end
function UNIT:GetGroup()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitGroup = GROUP:Find( DCSUnit:getGroup() )
@ -356,69 +257,23 @@ function UNIT:GetGroup()
end
--- Returns the unit's callsign - the localized string.
-- Need to add here functions to check if radar is on and which object etc.
--- Returns the prefix name of the DCS Unit. A prefix name is a part of the name before a '#'-sign.
-- DCS Units spawned with the @{SPAWN} class contain a '#'-sign to indicate the end of the (base) DCS Unit name.
-- The spawn sequence number and unit number are contained within the name after the '#' sign.
-- @param Unit#UNIT self
-- @return #string The Callsign of the Unit.
-- @return #string The name of the DCS Unit.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetCallSign()
function UNIT:GetPrefix()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitCallSign = DCSUnit:getCallsign()
return UnitCallSign
end
return nil
end
--- Returns the unit's health. Dead units has health <= 1.0.
-- @param Unit#UNIT self
-- @return #number The Unit's health value.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetLife()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitLife = DCSUnit:getLife()
return UnitLife
end
return nil
end
--- Returns the Unit's initial health.
-- @param Unit#UNIT self
-- @return #number The Unit's initial health value.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetLife0()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitLife0 = DCSUnit:getLife0()
return UnitLife0
end
return nil
end
--- Returns relative amount of fuel (from 0.0 to 1.0) the unit has in its internal tanks. If there are additional fuel tanks the value may be greater than 1.0.
-- @param Unit#UNIT self
-- @return #number The relative amount of fuel (from 0.0 to 1.0).
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetFuel()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitFuel = DCSUnit:getFuel()
return UnitFuel
local UnitPrefix = string.match( self.UnitName, ".*#" ):sub( 1, -2 )
self:T3( UnitPrefix )
return UnitPrefix
end
return nil
@ -431,7 +286,7 @@ end
function UNIT:GetAmmo()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitAmmo = DCSUnit:getAmmo()
@ -448,7 +303,7 @@ end
function UNIT:GetSensors()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitSensors = DCSUnit:getSensors()
@ -472,7 +327,7 @@ end
function UNIT:GetRadar()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitRadarOn, UnitRadarObject = DCSUnit:getRadar()
@ -482,41 +337,52 @@ function UNIT:GetRadar()
return nil, nil
end
-- Need to add here functions to check if radar is on and which object etc.
--- Returns unit descriptor. Descriptor type depends on unit category.
--- Returns relative amount of fuel (from 0.0 to 1.0) the unit has in its internal tanks. If there are additional fuel tanks the value may be greater than 1.0.
-- @param Unit#UNIT self
-- @return DCSUnit#Unit.Desc The Unit descriptor.
-- @return #number The relative amount of fuel (from 0.0 to 1.0).
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetDesc()
function UNIT:GetFuel()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitDesc = DCSUnit:getDesc()
self:T2( UnitDesc )
return UnitDesc
local UnitFuel = DCSUnit:getFuel()
return UnitFuel
end
self:E( "Unit " .. self.UnitName .. "not found!" )
return nil
end
--- Returns the type name of the DCS Unit.
--- Returns the unit's health. Dead units has health <= 1.0.
-- @param Unit#UNIT self
-- @return #string The type name of the DCS Unit.
-- @return #number The Unit's health value.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetTypeName()
function UNIT:GetLife()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitTypeName = DCSUnit:getTypeName()
self:T3( UnitTypeName )
return UnitTypeName
local UnitLife = DCSUnit:getLife()
return UnitLife
end
return nil
end
--- Returns the Unit's initial health.
-- @param Unit#UNIT self
-- @return #number The Unit's initial health value.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetLife0()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitLife0 = DCSUnit:getLife0()
return UnitLife0
end
return nil
@ -524,105 +390,6 @@ end
--- Returns the prefix name of the DCS Unit. A prefix name is a part of the name before a '#'-sign.
-- DCS Units spawned with the @{SPAWN} class contain a '#'-sign to indicate the end of the (base) DCS Unit name.
-- The spawn sequence number and unit number are contained within the name after the '#' sign.
-- @param Unit#UNIT self
-- @return #string The name of the DCS Unit.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetPrefix()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitPrefix = string.match( self.UnitName, ".*#" ):sub( 1, -2 )
self:T3( UnitPrefix )
return UnitPrefix
end
return nil
end
--- Returns the @{DCSTypes#Vec2} vector indicating the point in 2D of the DCS Unit within the mission.
-- @param Unit#UNIT self
-- @return DCSTypes#Vec2 The 2D point vector of the DCS Unit.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetPointVec2()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitPointVec3 = DCSUnit:getPosition().p
local UnitPointVec2 = {}
UnitPointVec2.x = UnitPointVec3.x
UnitPointVec2.y = UnitPointVec3.z
self:T2( UnitPointVec2 )
return UnitPointVec2
end
return nil
end
--- Returns the @{DCSTypes#Vec3} vector indicating the point in 3D of the DCS Unit within the mission.
-- @param Unit#UNIT self
-- @return DCSTypes#Vec3 The 3D point vector of the DCS Unit.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetPointVec3()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitPointVec3 = DCSUnit:getPosition().p
self:T3( UnitPointVec3 )
return UnitPointVec3
end
return nil
end
--- Returns the @{DCSTypes#Position3} position vectors indicating the point and direction vectors in 3D of the DCS Unit within the mission.
-- @param Unit#UNIT self
-- @return DCSTypes#Position The 3D position vectors of the DCS Unit.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetPositionVec3()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitPosition = DCSUnit:getPosition()
self:T3( UnitPosition )
return UnitPosition
end
return nil
end
--- Returns the DCS Unit velocity vector.
-- @param Unit#UNIT self
-- @return DCSTypes#Vec3 The velocity vector
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetVelocity()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitVelocityVec3 = DCSUnit:getVelocity()
self:T3( UnitVelocityVec3 )
return UnitVelocityVec3
end
return nil
end
-- Is functions
@ -660,40 +427,6 @@ function UNIT:IsNotInZone( Zone )
end
end
--- Returns true if the DCS Unit is in the air.
-- @param Unit#UNIT self
-- @return #boolean true if in the air.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:InAir()
self:F2( self.UnitName )
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitInAir = DCSUnit:inAir()
self:T3( UnitInAir )
return UnitInAir
end
return nil
end
--- Returns the altitude of the DCS Unit.
-- @param Unit#UNIT self
-- @return DCSTypes#Distance The altitude of the DCS Unit.
-- @return #nil The DCS Unit is not existing or alive.
function UNIT:GetAltitude()
self:F2()
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitPointVec3 = DCSUnit:getPoint() --DCSTypes#Vec3
return UnitPointVec3.y
end
return nil
end
--- Returns true if there is an **other** DCS Unit within a radius of the current 2D point of the DCS Unit.
-- @param Unit#UNIT self
@ -704,7 +437,7 @@ end
function UNIT:OtherUnitInRadius( AwaitUnit, Radius )
self:F2( { self.UnitName, AwaitUnit.UnitName, Radius } )
local DCSUnit = self:GetDCSUnit()
local DCSUnit = self:GetDCSObject()
if DCSUnit then
local UnitPos = self:GetPointVec3()
@ -722,41 +455,6 @@ function UNIT:OtherUnitInRadius( AwaitUnit, Radius )
return nil
end
--- Returns the DCS Unit category name as defined within the DCS Unit Descriptor.
-- @param Unit#UNIT self
-- @return #string The DCS Unit Category Name
function UNIT:GetCategoryName()
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitCategoryName = self.CategoryName[ self:GetDesc().category ]
return UnitCategoryName
end
return nil
end
--- Returns the DCS Unit heading.
-- @param Unit#UNIT self
-- @return #number The DCS Unit heading
function UNIT:GetHeading()
local DCSUnit = self:GetDCSUnit()
if DCSUnit then
local UnitPosition = DCSUnit:getPosition()
if UnitPosition then
local UnitHeading = math.atan2( UnitPosition.x.z, UnitPosition.x.x )
if UnitHeading < 0 then
UnitHeading = UnitHeading + 2 * math.pi
end
self:T2( UnitHeading )
return UnitHeading
end
end
return nil
end
--- Signal a flare at the position of the UNIT.

View File

@ -490,33 +490,34 @@ end
--- Returns if a location is within the zone.
-- Source learned and taken from: https://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
-- @param #ZONE_POLYGON_BASE self
-- @param DCSTypes#Vec2 PointVec2 The location to test.
-- @return #boolean true if the location is within the zone.
function ZONE_POLYGON_BASE:IsPointVec2InZone( PointVec2 )
self:F2( PointVec2 )
local i
local j
local c = false
local Next
local Prev
local InPolygon = false
i = 1
j = #self.Polygon
Next = 1
Prev = #self.Polygon
while i < #self.Polygon do
j = i
i = i + 1
self:T( { i, j, self.Polygon[i], self.Polygon[j] } )
if ( ( ( self.Polygon[i].y > PointVec2.y ) ~= ( self.Polygon[j].y > PointVec2.y ) ) and
( PointVec2.x < ( self.Polygon[j].x - self.Polygon[i].x ) * ( PointVec2.y - self.Polygon[i].y ) / ( self.Polygon[j].y - self.Polygon[i].y ) + self.Polygon[i].x )
while Next <= #self.Polygon do
self:T( { Next, Prev, self.Polygon[Next], self.Polygon[Prev] } )
if ( ( ( self.Polygon[Next].y > PointVec2.y ) ~= ( self.Polygon[Prev].y > PointVec2.y ) ) and
( PointVec2.x < ( self.Polygon[Prev].x - self.Polygon[Next].x ) * ( PointVec2.y - self.Polygon[Next].y ) / ( self.Polygon[Prev].y - self.Polygon[Next].y ) + self.Polygon[Next].x )
) then
c = not c
InPolygon = not InPolygon
end
self:T2( { "c = ", c } )
self:T2( { InPolygon = InPolygon } )
Prev = Next
Next = Next + 1
end
self:T( { "c = ", c } )
return c
self:T( { InPolygon = InPolygon } )
return InPolygon
end
--- Define a random @{DCSTypes#Vec2} within the zone.

View File

@ -3,25 +3,13 @@ local base = _G
Include = {}
Include.Path = function()
local str = debug.getinfo(2, "S").source
return str:match("(.*/)"):sub(1,-2):gsub("\\","/")
end
Include.File = function( IncludeFile )
if not Include.Files[ IncludeFile ] then
Include.Files[IncludeFile] = IncludeFile
env.info( "Include:" .. IncludeFile .. " from " .. Include.ProgramPath )
local f = assert( base.loadfile( Include.ProgramPath .. IncludeFile .. ".lua" ) )
if f == nil then
env.info( "Include:" .. IncludeFile .. " from " .. Include.MissionPath )
local f = assert( base.loadfile( Include.MissionPath .. IncludeFile .. ".lua" ) )
if f == nil then
error ("Could not load MOOSE file " .. IncludeFile .. ".lua" )
else
env.info( "Include:" .. IncludeFile .. " loaded from " .. Include.MissionPath )
return f()
end
else
env.info( "Include:" .. IncludeFile .. " loaded from " .. Include.ProgramPath )
return f()
@ -30,10 +18,8 @@ Include.File = function( IncludeFile )
end
Include.ProgramPath = "Scripts/Moose/"
Include.MissionPath = Include.Path()
env.info( "Include.ProgramPath = " .. Include.ProgramPath)
env.info( "Include.MissionPath = " .. Include.MissionPath)
Include.Files = {}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -40,6 +40,10 @@ COPY /b Moose.lua + "Moose Create Static\Moose_Static_Loader.lua" Moose.
COPY /b Moose.lua + %1\Routines.lua Moose.lua
COPY /b Moose.lua + %1\Base.lua Moose.lua
COPY /b Moose.lua + %1\Object.lua Moose.lua
COPY /b Moose.lua + %1\Identifiable.lua Moose.lua
COPY /b Moose.lua + %1\Positionable.lua Moose.lua
COPY /b Moose.lua + %1\Controllable.lua Moose.lua
COPY /b Moose.lua + %1\Scheduler.lua Moose.lua
COPY /b Moose.lua + %1\Event.lua Moose.lua
COPY /b Moose.lua + %1\Menu.lua Moose.lua
@ -78,6 +82,7 @@ COPY /b Moose.lua + %1\PatrolZone.lua Moose.lua
COPY /b Moose.lua + %1\AIBalancer.lua Moose.lua
COPY /b Moose.lua + %1\AirbasePolice.lua Moose.lua
COPY /b Moose.lua + %1\Detection.lua Moose.lua
COPY /b Moose.lua + %1\FAC.lua Moose.lua
COPY /b Moose.lua + "Moose Create Static\Moose_Trace_Off.lua" Moose.lua

View File

@ -1,4 +1,5 @@
local FACGroup = GROUP:FindByName( "FAC Group" )
local FACDetection = DETECTION_BASE:New( FACGroup, 1000, 250 )
local FACDetection = DETECTION_UNITGROUPS:New( FACGroup, 1000, 250 ):SmokeDetectedZones():FlareDetectedUnits()

View File

@ -0,0 +1,63 @@
local FACGroup = GROUP:FindByName( "FAC Group Lase" )
local FACDetection = DETECTION_BASE:New( FACGroup, 1000, 250 )
local LaseScheduler = SCHEDULER:New(nil,
--- @param Group#GROUP FACGroup
-- @param Detection#DETECTION_BASE FACDetection
function( FACGroup, FACDetection )
if FACDetection:GetDetectionUnitSetCount() > 0 then
local DetectedUnitSet = FACDetection:GetDetectionUnitSet(1)
if DetectedUnitSet then
FACDetection:E( { "I have a unit set ", DetectedUnitSet } )
local FACUnit = FACGroup:GetUnit(1)
if FACUnit then
FACDetection:E( FACUnit )
local FACDCSUnit = FACUnit:GetDCSUnit()
local FACUnitController = FACDCSUnit:getController()
DetectedUnitSet:ForEachUnit(
--- @param Unit#UNIT DetectedUnit
function( DetectedUnit, FACDCSUnit )
FACDetection:E( DetectedUnit:GetDCSUnit() )
FACDetection:E( FACDCSUnit )
local JTAC = Spot.createInfraRed( FACDCSUnit, {x = 0, y = 2.0, z = 0}, DetectedUnit:GetPointVec3(), 1337)
end, FACDCSUnit
)
end
end
end
end, { FACGroup, FACDetection },
30
)
local LaseScheduler2 = SCHEDULER:New(nil,
--- @param Group#GROUP FACGroup
-- @param Detection#DETECTION_BASE FACDetection
function( FACGroup, FACDetection )
if FACDetection:GetDetectionUnitSetCount() > 0 then
local DetectedUnitSet = FACDetection:GetDetectionUnitSet(1)
if DetectedUnitSet then
FACDetection:E( { "I have a unit set ", DetectedUnitSet } )
local FACUnit = FACGroup:GetUnit(1)
if FACUnit then
FACDetection:E( FACUnit )
local FACDCSUnit = FACUnit:GetDCSUnit()
local FACUnitController = FACDCSUnit:getController()
DetectedUnitSet:ForEachUnit(
--- @param Unit#UNIT DetectedUnit
function( DetectedUnit, FACDCSUnit )
FACDetection:E( DetectedUnit:GetDCSUnit() )
FACDetection:E( FACDCSUnit )
local TargetIsDetected, TargetIsVisible, TargetLastTime, TargetKnowType, TargetKnowDistance, TargetLastPos, TargetLastVelocity
= FACUnitController:isTargetDetected( DetectedUnit:GetDCSUnit(), Controller.Detection.IRST )
FACDetection:E( { TargetIsDetected, TargetIsVisible, TargetLastTime, TargetKnowType, TargetKnowDistance, TargetLastPos, TargetLastVelocity } )
end, FACDCSUnit
)
end
end
end
end, { FACGroup, FACDetection },
40
)

View File

@ -18,6 +18,7 @@ do
:MenuSmoke()
:MenuReportTargets( 60, 20 )
:MenuResumeMission()
:MenuROE()
:MenuAssistedAttack()
local EscortGroupArtillery = SpawnEscortArtillery:ReSpawn(1)

View File

@ -0,0 +1,8 @@
local FACGroup = GROUP:FindByName( "FAC Group" )
local FACDetection = DETECTION_UNITGROUPS:New( FACGroup, 1000, 250 )
local FACClientSet = SET_CLIENT:New():FilterCoalitions( "blue" ):FilterStart()
local FACReporting = FAC_REPORTING:New( FACClientSet, FACDetection )

Binary file not shown.

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
@ -80,7 +86,7 @@
<hr/>
<h1>1) <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<h1>1) <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> class, extends <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a></h1>
<p>The <a href="AIRBASE.html">AIRBASE</a> class is a wrapper class to handle the DCS Airbase objects:</p>
<ul>
@ -227,7 +233,7 @@ is implemented in the AIRBASE class as <a href="##(AIRBASE).GetName">AIRBASE.Get
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASE).Register">AIRBASE:Register(DCSAirbase, Database, AirbaseName)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AIRBASE).Register">AIRBASE:Register(AirbaseName)</a></td>
<td class="summary">
<p>Create a new AIRBASE from DCSAirbase.</p>
</td>
@ -649,28 +655,19 @@ The DCS Airbase is not existing or alive. </p>
<dt>
<a id="#(AIRBASE).Register" >
<strong>AIRBASE:Register(DCSAirbase, Database, AirbaseName)</strong>
<strong>AIRBASE:Register(AirbaseName)</strong>
</a>
</dt>
<dd>
<p>Create a new AIRBASE from DCSAirbase.</p>
<h3>Parameters</h3>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="DCSAirbase.html##(Airbase)">DCSAirbase#Airbase</a> DCSAirbase </em></code>: </p>
</li>
<li>
<p><code><em><a href="Database.html##(DATABASE)">Database#DATABASE</a> Database </em></code>: </p>
</li>
<li>
<p><code><em> AirbaseName </em></code>: </p>
<p><code><em>#string AirbaseName </em></code>:
The name of the airbase.</p>
</li>
</ul>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li>CARGO</li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li>CleanUp</li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li>Client</li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

File diff suppressed because it is too large Load Diff

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li>DCSAirbase</li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li>DCSCoalitionObject</li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li>DCSCommand</li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li>DESTROYRADARSTASK</li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li>DESTROYUNITTYPESTASK</li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li>Database</li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

File diff suppressed because it is too large Load Diff

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li>Escort</li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li>Event</li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -0,0 +1,691 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AIBalancer.html">AIBalancer</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li>Fac</li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Fac</code></h1>
<p>This module contains the FAC classes.</p>
<hr/>
<h1>1) <a href="Fac.html##(FAC_BASE)">Fac#FAC_BASE</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="Fac.html##(FAC_BASE)">Fac#FAC_BASE</a> class defines the core functions to report detected objects to clients.
Reportings can be done in several manners, and it is up to the derived classes if FAC_BASE to model the reporting behaviour.</p>
<h2>1.1) FAC_BASE constructor:</h2>
<p> * <a href="Fac.html##(FAC_BASE).New">Fac#FAC_BASE.New</a>(): Create a new FAC_BASE instance.</p>
<h2>1.2) FAC_BASE reporting:</h2>
<p>Derived FAC_BASE classes will reports detected units using the method <a href="Fac.html##(FAC_BASE).ReportDetected">Fac#FAC_BASE.ReportDetected</a>(). This method implements polymorphic behaviour.</p>
<p>The time interval in seconds of the reporting can be changed using the methods <a href="Fac.html##(FAC_BASE).SetReportInterval">Fac#FAC_BASE.SetReportInterval</a>().
To control how long a reporting message is displayed, use <a href="Fac.html##(FAC_BASE).SetReportDisplayTime">Fac#FAC_BASE.SetReportDisplayTime</a>().
Derived classes need to implement the method <a href="Fac.html##(FAC_BASE).GetReportDisplayTime">Fac#FAC_BASE.GetReportDisplayTime</a>() to use the correct display time for displayed messages during a report.</p>
<p>Reporting can be started and stopped using the methods <a href="Fac.html##(FAC_BASE).StartReporting">Fac#FAC_BASE.StartReporting</a>() and <a href="Fac.html##(FAC_BASE).StopReporting">Fac#FAC_BASE.StopReporting</a>() respectively.
If an ad-hoc report is requested, use the method <a href="Fac.html##(FAC_BASE)">Fac#FAC_BASE</a>().</p>
<p>The default reporting interval is every 60 seconds. The reporting messages are displayed 15 seconds.</p>
<hr/>
<h1>2) <a href="Fac.html##(FAC_REPORTING)">Fac#FAC_REPORTING</a> class, extends <a href="Fac.html##(FAC_BASE)">Fac#FAC_BASE</a></h1>
<p>The <a href="Fac.html##(FAC_REPORTING)">Fac#FAC_REPORTING</a> class implements detected units reporting. Reporting can be controlled using the reporting methods available in the <a href="Fac.html##(FAC_BASE)">Fac#FAC_BASE</a> class.</p>
<h2>2.1) FAC_REPORTING constructor:</h2>
<p>The <a href="Fac.html##(FAC_REPORTING).New">Fac#FAC_REPORTING.New</a>() method creates a new FAC_REPORTING instance.</p>
<hr/>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#FAC_BASE">FAC_BASE</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#FAC_REPORTING">FAC_REPORTING</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(FAC_BASE)">Type <code>FAC_BASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).ClassName">FAC_BASE.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).ClientSet">FAC_BASE.ClientSet</a></td>
<td class="summary">
<p>The clients to which the FAC will report to.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).Detection">FAC_BASE.Detection</a></td>
<td class="summary">
<p>The DETECTION_BASE object that is used to report the detected objects.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).FacScheduler">FAC_BASE.FacScheduler</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).GetReportDisplayTime">FAC_BASE:GetReportDisplayTime()</a></td>
<td class="summary">
<p>Get the reporting message display time.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).New">FAC_BASE:New(ClientSet, Detection)</a></td>
<td class="summary">
<p>FAC constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).ReportDetected">FAC_BASE:ReportDetected(DetectedSets)</a></td>
<td class="summary">
<p>Reports the detected items to the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).Schedule">FAC_BASE:Schedule(DelayTime, ReportInterval)</a></td>
<td class="summary">
<p>Schedule the FAC reporting.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).SetReportDisplayTime">FAC_BASE:SetReportDisplayTime(ReportDisplayTime)</a></td>
<td class="summary">
<p>Set the reporting message display time.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE).SetReportInterval">FAC_BASE:SetReportInterval(ReportInterval)</a></td>
<td class="summary">
<p>Set the reporting time interval.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE)._FacScheduler">FAC_BASE:_FacScheduler(SchedulerName)</a></td>
<td class="summary">
<p>Report the detected <a href="Unit.html##(UNIT)">Unit#UNIT</a>s detected within the <a href="DetectION.html##(DETECTION_BASE)">DetectION#DETECTION_BASE</a> object to the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a>s.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE)._ReportDisplayTime">FAC_BASE._ReportDisplayTime</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE)._ReportInterval">FAC_BASE._ReportInterval</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_BASE)._ScheduleDelayTime">FAC_BASE._ScheduleDelayTime</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(FAC_REPORTING)">Type <code>FAC_REPORTING</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).ClassName">FAC_REPORTING.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).ClientSet">FAC_REPORTING.ClientSet</a></td>
<td class="summary">
<p>The clients to which the FAC will report to.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).Detection">FAC_REPORTING.Detection</a></td>
<td class="summary">
<p>The DETECTION_BASE object that is used to report the detected objects.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).New">FAC_REPORTING:New(ClientSet, Detection)</a></td>
<td class="summary">
<p>FAC_REPORTING constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).ReportDetected">FAC_REPORTING:ReportDetected(Client, DetectedSets)</a></td>
<td class="summary">
<p>Reports the detected items to the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a>.</p>
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(FAC_BASE)">#FAC_BASE</a></em>
<a id="FAC_BASE" >
<strong>FAC_BASE</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(FAC_REPORTING)">#FAC_REPORTING</a></em>
<a id="FAC_REPORTING" >
<strong>FAC_REPORTING</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Fac)" >Type <code>Fac</code></a></h2>
<h2><a id="#(FAC_BASE)" >Type <code>FAC_BASE</code></a></h2>
<p>FAC_BASE class.</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(FAC_BASE).ClassName" >
<strong>FAC_BASE.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a></em>
<a id="#(FAC_BASE).ClientSet" >
<strong>FAC_BASE.ClientSet</strong>
</a>
</dt>
<dd>
<p>The clients to which the FAC will report to.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a></em>
<a id="#(FAC_BASE).Detection" >
<strong>FAC_BASE.Detection</strong>
</a>
</dt>
<dd>
<p>The DETECTION_BASE object that is used to report the detected objects.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(FAC_BASE).FacScheduler" >
<strong>FAC_BASE.FacScheduler</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FAC_BASE).GetReportDisplayTime" >
<strong>FAC_BASE:GetReportDisplayTime()</strong>
</a>
</dt>
<dd>
<p>Get the reporting message display time.</p>
<h3>Return value</h3>
<p><em>#number:</em>
ReportDisplayTime The display time in seconds when a report needs to be done.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FAC_BASE).New" >
<strong>FAC_BASE:New(ClientSet, Detection)</strong>
</a>
</dt>
<dd>
<p>FAC constructor.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a> ClientSet </em></code>: </p>
</li>
<li>
<p><code><em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a> Detection </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(FAC_BASE)">#FAC_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FAC_BASE).ReportDetected" >
<strong>FAC_BASE:ReportDetected(DetectedSets)</strong>
</a>
</dt>
<dd>
<p>Reports the detected items to the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Set.html##(SET_BASE)">Set#SET_BASE</a> DetectedSets </em></code>:
The detected Sets created by the <a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a> object.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(FAC_BASE)">#FAC_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FAC_BASE).Schedule" >
<strong>FAC_BASE:Schedule(DelayTime, ReportInterval)</strong>
</a>
</dt>
<dd>
<p>Schedule the FAC reporting.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number DelayTime </em></code>:
The delay in seconds to wait the reporting.</p>
</li>
<li>
<p><code><em>#number ReportInterval </em></code>:
The repeat interval in seconds for the reporting to happen repeatedly.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(FAC_BASE)">#FAC_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FAC_BASE).SetReportDisplayTime" >
<strong>FAC_BASE:SetReportDisplayTime(ReportDisplayTime)</strong>
</a>
</dt>
<dd>
<p>Set the reporting message display time.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number ReportDisplayTime </em></code>:
The display time in seconds when a report needs to be done.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(FAC_BASE)">#FAC_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FAC_BASE).SetReportInterval" >
<strong>FAC_BASE:SetReportInterval(ReportInterval)</strong>
</a>
</dt>
<dd>
<p>Set the reporting time interval.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number ReportInterval </em></code>:
The interval in seconds when a report needs to be done.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(FAC_BASE)">#FAC_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FAC_BASE)._FacScheduler" >
<strong>FAC_BASE:_FacScheduler(SchedulerName)</strong>
</a>
</dt>
<dd>
<p>Report the detected <a href="Unit.html##(UNIT)">Unit#UNIT</a>s detected within the <a href="DetectION.html##(DETECTION_BASE)">DetectION#DETECTION_BASE</a> object to the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a>s.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> SchedulerName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(FAC_BASE)._ReportDisplayTime" >
<strong>FAC_BASE._ReportDisplayTime</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(FAC_BASE)._ReportInterval" >
<strong>FAC_BASE._ReportInterval</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(FAC_BASE)._ScheduleDelayTime" >
<strong>FAC_BASE._ScheduleDelayTime</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(FAC_REPORTING)" >Type <code>FAC_REPORTING</code></a></h2>
<p>FAC_REPORTING class.</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(FAC_REPORTING).ClassName" >
<strong>FAC_REPORTING.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a></em>
<a id="#(FAC_REPORTING).ClientSet" >
<strong>FAC_REPORTING.ClientSet</strong>
</a>
</dt>
<dd>
<p>The clients to which the FAC will report to.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a></em>
<a id="#(FAC_REPORTING).Detection" >
<strong>FAC_REPORTING.Detection</strong>
</a>
</dt>
<dd>
<p>The DETECTION_BASE object that is used to report the detected objects.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FAC_REPORTING).New" >
<strong>FAC_REPORTING:New(ClientSet, Detection)</strong>
</a>
</dt>
<dd>
<p>FAC_REPORTING constructor.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a> ClientSet </em></code>: </p>
</li>
<li>
<p><code><em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a> Detection </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(FAC_REPORTING)">#FAC_REPORTING</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FAC_REPORTING).ReportDetected" >
<strong>FAC_REPORTING:ReportDetected(Client, DetectedSets)</strong>
</a>
</dt>
<dd>
<p>Reports the detected items to the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a>.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Client.html##(CLIENT)">Client#CLIENT</a> Client </em></code>:
The <a href="Client.html">Client</a> object to where the report needs to go.</p>
</li>
<li>
<p><code><em><a href="Set.html##(SET_BASE)">Set#SET_BASE</a> DetectedSets </em></code>:
The detected Sets created by the <a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a> object.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Return true if you want the reporting to continue... false will cancel the reporting loop.</p>
</dd>
</dl>
</div>
</div>
</body>
</html>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li>GOHOMETASK</li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,466 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AIBalancer.html">AIBalancer</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li>Identifiable</li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Identifiable</code></h1>
<p>This module contains the IDENTIFIABLE class.</p>
<h1>1) <a href="Identifiable.html##(IDENTIFIABLE)">Identifiable#IDENTIFIABLE</a> class, extends <a href="Object.html##(OBJECT)">Object#OBJECT</a></h1>
<p>The <a href="Identifiable.html##(IDENTIFIABLE)">Identifiable#IDENTIFIABLE</a> class is a wrapper class to handle the DCS Identifiable objects:</p>
<ul>
<li>Support all DCS Identifiable APIs.</li>
<li>Enhance with Identifiable specific APIs not in the DCS Identifiable API set.</li>
<li>Manage the "state" of the DCS Identifiable.</li>
</ul>
<h2>1.1) IDENTIFIABLE constructor:</h2>
<p>The IDENTIFIABLE class provides the following functions to construct a IDENTIFIABLE instance:</p>
<ul>
<li><a href="Identifiable.html##(IDENTIFIABLE).New">Identifiable#IDENTIFIABLE.New</a>(): Create a IDENTIFIABLE instance.</li>
</ul>
<h2>1.2) IDENTIFIABLE methods:</h2>
<p>The following methods can be used to identify an identifiable object:</p>
<ul>
<li><a href="Identifiable.html##(IDENTIFIABLE).GetName">Identifiable#IDENTIFIABLE.GetName</a>(): Returns the name of the Identifiable.</li>
<li><a href="Identifiable.html##(IDENTIFIABLE).IsAlive">Identifiable#IDENTIFIABLE.IsAlive</a>(): Returns if the Identifiable is alive.</li>
<li><a href="Identifiable.html##(IDENTIFIABLE).GetTypeName">Identifiable#IDENTIFIABLE.GetTypeName</a>(): Returns the type name of the Identifiable.</li>
<li><a href="Identifiable.html##(IDENTIFIABLE).GetCoalition">Identifiable#IDENTIFIABLE.GetCoalition</a>(): Returns the coalition of the Identifiable.</li>
<li><a href="Identifiable.html##(IDENTIFIABLE).GetCountry">Identifiable#IDENTIFIABLE.GetCountry</a>(): Returns the country of the Identifiable.</li>
<li><a href="Identifiable.html##(IDENTIFIABLE).GetDesc">Identifiable#IDENTIFIABLE.GetDesc</a>(): Returns the descriptor structure of the Identifiable.</li>
</ul>
<hr/>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#IDENTIFIABLE">IDENTIFIABLE</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(IDENTIFIABLE)">Type <code>IDENTIFIABLE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).ClassName">IDENTIFIABLE.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).GetCategoryName">IDENTIFIABLE:GetCategoryName()</a></td>
<td class="summary">
<p>Returns the DCS Identifiable category name as defined within the DCS Identifiable Descriptor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).GetCoalition">IDENTIFIABLE:GetCoalition()</a></td>
<td class="summary">
<p>Returns coalition of the Identifiable.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).GetCountry">IDENTIFIABLE:GetCountry()</a></td>
<td class="summary">
<p>Returns country of the Identifiable.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).GetDesc">IDENTIFIABLE:GetDesc()</a></td>
<td class="summary">
<p>Returns Identifiable descriptor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).GetName">IDENTIFIABLE:GetName()</a></td>
<td class="summary">
<p>Returns DCS Identifiable object name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).GetTypeName">IDENTIFIABLE:GetTypeName()</a></td>
<td class="summary">
<p>Returns the type name of the DCS Identifiable.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).IdentifiableName">IDENTIFIABLE.IdentifiableName</a></td>
<td class="summary">
<p>The name of the identifiable.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).IsAlive">IDENTIFIABLE:IsAlive()</a></td>
<td class="summary">
<p>Returns if the Identifiable is alive.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).New">IDENTIFIABLE:New(IdentifiableName)</a></td>
<td class="summary">
<p>Create a new IDENTIFIABLE from a DCSIdentifiable</p>
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(IDENTIFIABLE)">#IDENTIFIABLE</a></em>
<a id="IDENTIFIABLE" >
<strong>IDENTIFIABLE</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Identifiable)" >Type <code>Identifiable</code></a></h2>
<h2><a id="#(IDENTIFIABLE)" >Type <code>IDENTIFIABLE</code></a></h2>
<p>The IDENTIFIABLE class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(IDENTIFIABLE).ClassName" >
<strong>IDENTIFIABLE.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(IDENTIFIABLE).GetCategoryName" >
<strong>IDENTIFIABLE:GetCategoryName()</strong>
</a>
</dt>
<dd>
<p>Returns the DCS Identifiable category name as defined within the DCS Identifiable Descriptor.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The DCS Identifiable Category Name</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(IDENTIFIABLE).GetCoalition" >
<strong>IDENTIFIABLE:GetCoalition()</strong>
</a>
</dt>
<dd>
<p>Returns coalition of the Identifiable.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCSCoalitionObject.html##(coalition.side)">DCSCoalitionObject#coalition.side</a>:</em>
The side of the coalition.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Identifiable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(IDENTIFIABLE).GetCountry" >
<strong>IDENTIFIABLE:GetCountry()</strong>
</a>
</dt>
<dd>
<p>Returns country of the Identifiable.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCScountry.html##(country.id)">DCScountry#country.id</a>:</em>
The country identifier.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Identifiable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(IDENTIFIABLE).GetDesc" >
<strong>IDENTIFIABLE:GetDesc()</strong>
</a>
</dt>
<dd>
<p>Returns Identifiable descriptor.</p>
<p>Descriptor type depends on Identifiable category.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCSIdentifiable.html##(Identifiable.Desc)">DCSIdentifiable#Identifiable.Desc</a>:</em>
The Identifiable descriptor.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Identifiable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(IDENTIFIABLE).GetName" >
<strong>IDENTIFIABLE:GetName()</strong>
</a>
</dt>
<dd>
<p>Returns DCS Identifiable object name.</p>
<p>The function provides access to non-activated objects too.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the DCS Identifiable.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Identifiable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(IDENTIFIABLE).GetTypeName" >
<strong>IDENTIFIABLE:GetTypeName()</strong>
</a>
</dt>
<dd>
<p>Returns the type name of the DCS Identifiable.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The type name of the DCS Identifiable.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Identifiable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(IDENTIFIABLE).IdentifiableName" >
<strong>IDENTIFIABLE.IdentifiableName</strong>
</a>
</dt>
<dd>
<p>The name of the identifiable.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(IDENTIFIABLE).IsAlive" >
<strong>IDENTIFIABLE:IsAlive()</strong>
</a>
</dt>
<dd>
<p>Returns if the Identifiable is alive.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em>#boolean:</em>
true if Identifiable is alive.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Identifiable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(IDENTIFIABLE).New" >
<strong>IDENTIFIABLE:New(IdentifiableName)</strong>
</a>
</dt>
<dd>
<p>Create a new IDENTIFIABLE from a DCSIdentifiable</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="DCSIdentifiable.html##(Identifiable)">DCSIdentifiable#Identifiable</a> IdentifiableName </em></code>:
The DCS Identifiable name</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(IDENTIFIABLE)">#IDENTIFIABLE</a>:</em>
self</p>
</dd>
</dl>
</div>
</div>
</body>
</html>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li>Mission</li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li>MOVEMENT</li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li>Menu</li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li>Message</li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li>MissileTrainer</li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li>NOTASK</li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -0,0 +1,523 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AIBalancer.html">AIBalancer</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li>Object</li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Object</code></h1>
<p>This module contains the OBJECT class.</p>
<h1>1) <a href="Object.html##(OBJECT)">Object#OBJECT</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="Object.html##(OBJECT)">Object#OBJECT</a> class is a wrapper class to handle the DCS Object objects:</p>
<ul>
<li>Support all DCS Object APIs.</li>
<li>Enhance with Object specific APIs not in the DCS Object API set.</li>
<li>Manage the "state" of the DCS Object.</li>
</ul>
<h2>1.1) OBJECT constructor:</h2>
<p>The OBJECT class provides the following functions to construct a OBJECT instance:</p>
<ul>
<li><a href="Object.html##(OBJECT).New">Object#OBJECT.New</a>(): Create a OBJECT instance.</li>
</ul>
<h2>1.2) OBJECT methods:</h2>
<p>The following methods can be used to identify an Object object:</p>
<ul>
<li><a href="Object.html##(OBJECT).GetID">Object#OBJECT.GetID</a>(): Returns the ID of the Object object.</li>
</ul>
<hr/>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#OBJECT">OBJECT</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(DCSObject)">Type <code>DCSObject</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(DCSObject).id_">DCSObject.id_</a></td>
<td class="summary">
<p>The ID of the controllable in DCS</p>
</td>
</tr>
</table>
<h2><a id="#(OBJECT)">Type <code>OBJECT</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).ClassName">OBJECT.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).GetCallSign">OBJECT:GetCallSign()</a></td>
<td class="summary">
<p>Returns the Object's callsign - the localized string.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).GetCategoryName">OBJECT:GetCategoryName()</a></td>
<td class="summary">
<p>Returns the DCS Object category name as defined within the DCS Object Descriptor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).GetCoalition">OBJECT:GetCoalition()</a></td>
<td class="summary">
<p>Returns coalition of the Object.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).GetCountry">OBJECT:GetCountry()</a></td>
<td class="summary">
<p>Returns country of the Object.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).GetDesc">OBJECT:GetDesc()</a></td>
<td class="summary">
<p>Returns Object descriptor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).GetName">OBJECT:GetName()</a></td>
<td class="summary">
<p>Returns DCS Object object name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).GetTypeName">OBJECT:GetTypeName()</a></td>
<td class="summary">
<p>Returns the type name of the DCS Object.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).IsAlive">OBJECT:IsAlive()</a></td>
<td class="summary">
<p>Returns if the Object is alive.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).New">OBJECT:New(ObjectName)</a></td>
<td class="summary">
<p>Create a new OBJECT from a DCSObject</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(OBJECT).ObjectName">OBJECT.ObjectName</a></td>
<td class="summary">
<p>The name of the Object.</p>
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(OBJECT)">#OBJECT</a></em>
<a id="OBJECT" >
<strong>OBJECT</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Object)" >Type <code>Object</code></a></h2>
<h2><a id="#(DCSObject)" >Type <code>DCSObject</code></a></h2>
<p>A DCSObject</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(DCSObject).id_" >
<strong>DCSObject.id_</strong>
</a>
</dt>
<dd>
<p>The ID of the controllable in DCS</p>
</dd>
</dl>
<h2><a id="#(OBJECT)" >Type <code>OBJECT</code></a></h2>
<p>The OBJECT class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(OBJECT).ClassName" >
<strong>OBJECT.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(OBJECT).GetCallSign" >
<strong>OBJECT:GetCallSign()</strong>
</a>
</dt>
<dd>
<p>Returns the Object's callsign - the localized string.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The Callsign of the Object.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Object is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(OBJECT).GetCategoryName" >
<strong>OBJECT:GetCategoryName()</strong>
</a>
</dt>
<dd>
<p>Returns the DCS Object category name as defined within the DCS Object Descriptor.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The DCS Object Category Name</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(OBJECT).GetCoalition" >
<strong>OBJECT:GetCoalition()</strong>
</a>
</dt>
<dd>
<p>Returns coalition of the Object.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCSCoalitionObject.html##(coalition.side)">DCSCoalitionObject#coalition.side</a>:</em>
The side of the coalition.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Object is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(OBJECT).GetCountry" >
<strong>OBJECT:GetCountry()</strong>
</a>
</dt>
<dd>
<p>Returns country of the Object.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCScountry.html##(country.id)">DCScountry#country.id</a>:</em>
The country identifier.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Object is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(OBJECT).GetDesc" >
<strong>OBJECT:GetDesc()</strong>
</a>
</dt>
<dd>
<p>Returns Object descriptor.</p>
<p>Descriptor type depends on Object category.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCSObject.html##(Object.Desc)">DCSObject#Object.Desc</a>:</em>
The Object descriptor.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Object is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(OBJECT).GetName" >
<strong>OBJECT:GetName()</strong>
</a>
</dt>
<dd>
<p>Returns DCS Object object name.</p>
<p>The function provides access to non-activated objects too.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the DCS Object.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Object is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(OBJECT).GetTypeName" >
<strong>OBJECT:GetTypeName()</strong>
</a>
</dt>
<dd>
<p>Returns the type name of the DCS Object.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The type name of the DCS Object.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Object is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(OBJECT).IsAlive" >
<strong>OBJECT:IsAlive()</strong>
</a>
</dt>
<dd>
<p>Returns if the Object is alive.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em>#boolean:</em>
true if Object is alive.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Object is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(OBJECT).New" >
<strong>OBJECT:New(ObjectName)</strong>
</a>
</dt>
<dd>
<p>Create a new OBJECT from a DCSObject</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="DCSObject.html##(Object)">DCSObject#Object</a> ObjectName </em></code>:
The Object name</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(OBJECT)">#OBJECT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(OBJECT).ObjectName" >
<strong>OBJECT.ObjectName</strong>
</a>
</dt>
<dd>
<p>The name of the Object.</p>
</dd>
</dl>
</div>
</div>
</body>
</html>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li>PICKUPTASK</li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li>PatrolZone</li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li>Point</li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -0,0 +1,518 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AIBalancer.html">AIBalancer</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li>Positionable</li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Positionable</code></h1>
<p>This module contains the POSITIONABLE class.</p>
<h1>1) <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a> class, extends <a href="Identifiable.html##(IDENTIFIABLE)">Identifiable#IDENTIFIABLE</a></h1>
<p>The <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a> class is a wrapper class to handle the DCS Positionable objects:</p>
<ul>
<li>Support all DCS Positionable APIs.</li>
<li>Enhance with Positionable specific APIs not in the DCS Positionable API set.</li>
<li>Manage the "state" of the DCS Positionable.</li>
</ul>
<h2>1.1) POSITIONABLE constructor:</h2>
<p>The POSITIONABLE class provides the following functions to construct a POSITIONABLE instance:</p>
<ul>
<li><a href="Positionable.html##(POSITIONABLE).New">Positionable#POSITIONABLE.New</a>(): Create a POSITIONABLE instance.</li>
</ul>
<h2>1.2) POSITIONABLE methods:</h2>
<p>The following methods can be used to identify an measurable object:</p>
<ul>
<li><a href="Positionable.html##(POSITIONABLE).GetID">Positionable#POSITIONABLE.GetID</a>(): Returns the ID of the measurable object.</li>
<li><a href="Positionable.html##(POSITIONABLE).GetName">Positionable#POSITIONABLE.GetName</a>(): Returns the name of the measurable object.</li>
</ul>
<hr/>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#POSITIONABLE">POSITIONABLE</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(DCSPositionable)">Type <code>DCSPositionable</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(DCSPositionable).id_">DCSPositionable.id_</a></td>
<td class="summary">
<p>The ID of the controllable in DCS</p>
</td>
</tr>
</table>
<h2><a id="#(POSITIONABLE)">Type <code>POSITIONABLE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).ClassName">POSITIONABLE.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).GetAltitude">POSITIONABLE:GetAltitude()</a></td>
<td class="summary">
<p>Returns the altitude of the DCS Positionable.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).GetHeading">POSITIONABLE:GetHeading()</a></td>
<td class="summary">
<p>Returns the DCS Positionable heading.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).GetPointVec2">POSITIONABLE:GetPointVec2()</a></td>
<td class="summary">
<p>Returns the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> vector indicating the point in 2D of the DCS Positionable within the mission.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).GetPointVec3">POSITIONABLE:GetPointVec3()</a></td>
<td class="summary">
<p>Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> vector indicating the point in 3D of the DCS Positionable within the mission.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).GetPositionVec3">POSITIONABLE:GetPositionVec3()</a></td>
<td class="summary">
<p>Returns the <a href="DCSTypes.html##(Position3)">DCSTypes#Position3</a> position vectors indicating the point and direction vectors in 3D of the DCS Positionable within the mission.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).GetVelocity">POSITIONABLE:GetVelocity()</a></td>
<td class="summary">
<p>Returns the DCS Positionable velocity vector.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).InAir">POSITIONABLE:InAir()</a></td>
<td class="summary">
<p>Returns true if the DCS Positionable is in the air.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).IsAboveRunway">POSITIONABLE:IsAboveRunway()</a></td>
<td class="summary">
<p>Returns if the Positionable is located above a runway.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).New">POSITIONABLE:New(PositionableName)</a></td>
<td class="summary">
<p>Create a new POSITIONABLE from a DCSPositionable</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).PositionableName">POSITIONABLE.PositionableName</a></td>
<td class="summary">
<p>The name of the measurable.</p>
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(POSITIONABLE)">#POSITIONABLE</a></em>
<a id="POSITIONABLE" >
<strong>POSITIONABLE</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Positionable)" >Type <code>Positionable</code></a></h2>
<h2><a id="#(DCSPositionable)" >Type <code>DCSPositionable</code></a></h2>
<p>A DCSPositionable</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(DCSPositionable).id_" >
<strong>DCSPositionable.id_</strong>
</a>
</dt>
<dd>
<p>The ID of the controllable in DCS</p>
</dd>
</dl>
<h2><a id="#(POSITIONABLE)" >Type <code>POSITIONABLE</code></a></h2>
<p>The POSITIONABLE class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(POSITIONABLE).ClassName" >
<strong>POSITIONABLE.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POSITIONABLE).GetAltitude" >
<strong>POSITIONABLE:GetAltitude()</strong>
</a>
</dt>
<dd>
<p>Returns the altitude of the DCS Positionable.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a>:</em>
The altitude of the DCS Positionable.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Positionable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POSITIONABLE).GetHeading" >
<strong>POSITIONABLE:GetHeading()</strong>
</a>
</dt>
<dd>
<p>Returns the DCS Positionable heading.</p>
<h3>Return value</h3>
<p><em>#number:</em>
The DCS Positionable heading</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POSITIONABLE).GetPointVec2" >
<strong>POSITIONABLE:GetPointVec2()</strong>
</a>
</dt>
<dd>
<p>Returns the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> vector indicating the point in 2D of the DCS Positionable within the mission.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a>:</em>
The 2D point vector of the DCS Positionable.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Positionable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POSITIONABLE).GetPointVec3" >
<strong>POSITIONABLE:GetPointVec3()</strong>
</a>
</dt>
<dd>
<p>Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> vector indicating the point in 3D of the DCS Positionable within the mission.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a>:</em>
The 3D point vector of the DCS Positionable.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Positionable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POSITIONABLE).GetPositionVec3" >
<strong>POSITIONABLE:GetPositionVec3()</strong>
</a>
</dt>
<dd>
<p>Returns the <a href="DCSTypes.html##(Position3)">DCSTypes#Position3</a> position vectors indicating the point and direction vectors in 3D of the DCS Positionable within the mission.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCSTypes.html##(Position)">DCSTypes#Position</a>:</em>
The 3D position vectors of the DCS Positionable.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Positionable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POSITIONABLE).GetVelocity" >
<strong>POSITIONABLE:GetVelocity()</strong>
</a>
</dt>
<dd>
<p>Returns the DCS Positionable velocity vector.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a>:</em>
The velocity vector</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Positionable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POSITIONABLE).InAir" >
<strong>POSITIONABLE:InAir()</strong>
</a>
</dt>
<dd>
<p>Returns true if the DCS Positionable is in the air.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em>#boolean:</em>
true if in the air.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Positionable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POSITIONABLE).IsAboveRunway" >
<strong>POSITIONABLE:IsAboveRunway()</strong>
</a>
</dt>
<dd>
<p>Returns if the Positionable is located above a runway.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em>#boolean:</em>
true if Positionable is above a runway.</p>
</li>
<li>
<p><em>#nil:</em>
The DCS Positionable is not existing or alive. </p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POSITIONABLE).New" >
<strong>POSITIONABLE:New(PositionableName)</strong>
</a>
</dt>
<dd>
<p>Create a new POSITIONABLE from a DCSPositionable</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="DCSPositionable.html##(Positionable)">DCSPositionable#Positionable</a> PositionableName </em></code>:
The DCS Positionable name</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(POSITIONABLE)">#POSITIONABLE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(POSITIONABLE).PositionableName" >
<strong>POSITIONABLE.PositionableName</strong>
</a>
</dt>
<dd>
<p>The name of the measurable.</p>
</dd>
</dl>
</div>
</div>
</body>
</html>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li>ROUTETASK</li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>

View File

@ -24,6 +24,7 @@
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
@ -41,19 +42,24 @@
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fac.html">Fac</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="PatrolZone.html">PatrolZone</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li>STAGE</li>
<li><a href="Scheduler.html">Scheduler</a></li>

Some files were not shown because too many files have changed in this diff Show More