Merge pull request #117 from FlightControl-Master/Detection

Menu Restructuring and Documentation
This commit is contained in:
Sven Van de Velde 2016-07-22 17:22:12 +02:00 committed by GitHub
commit a634fbb33c
130 changed files with 51091 additions and 2751 deletions

View File

@ -1,76 +1,332 @@
--- Encapsulation of DCS World Menu system in a set of MENU classes. --- This module contains the MENU classes.
--
-- There is a small note... When you see a class like MENU_COMMAND_COALITION with COMMAND in italic, it acutally represents it like this: `MENU_COMMAND_COALITION`.
--
-- ===
--
-- DCS Menus can be managed using the MENU classes.
-- The advantage of using MENU classes is that it hides the complexity of dealing with menu management in more advanced scanerios where you need to
-- set menus and later remove them, and later set them again. You'll find while using use normal DCS scripting functions, that setting and removing
-- menus is not a easy feat if you have complex menu hierarchies defined.
-- Using the MOOSE menu classes, the removal and refreshing of menus are nicely being handled within these classes, and becomes much more easy.
-- On top, MOOSE implements **variable parameter** passing for command menus.
--
-- There are basically two different MENU class types that you need to use:
--
-- ### To manage **main menus**, the classes begin with **MENU_**:
--
-- * @{Menu#MENU_CLIENT}: Manages main menus for CLIENTs. This manages menus for units with the skill level "Client".
-- * @{Menu#MENU_GROUP}: Manages main menus for GROUPs.
-- * @{Menu#MENU_COALITION}: Manages main menus for whole COALITIONs.
--
-- ### To manage **command menus**, which are menus that allow the player to issue **functions**, the classes begin with **MENU_COMMAND_**:
--
-- * @{Menu#MENU_CLIENT_COMMAND}: Manages command menus for CLIENTs. This manages menus for units with the skill level "Client".
-- * @{Menu#MENU_GROUP_COMMAND}: Manages command menus for GROUPs.
-- * @{Menu#MENU_COALITION_COMMAND}: Manages command menus for whole COALITIONs.
--
-- ===
--
-- The above menus classes **are derived** from 2 main **abstract** classes defined within the MOOSE framework (so don't use these):
--
-- 1) MENU_ BASE classes (don't use them)
-- ======================================
-- The underlying base menu classes are not to be used within your missions. They simply are abstract classes defining a couple of fields that are used by the
-- derived MENU_ classes to manage menus.
--
-- 1.1) @{Menu#MENU_BASE} class, extends @{Base#BASE}
-- --------------------------------------------------
-- The @{#MENU_BASE} class defines the main MENU class where other MENU classes are derived from.
--
-- 1.2) @{Menu#MENU_COMMAND_BASE} class, extends @{Base#BASE}
-- ----------------------------------------------------------
-- The @{#MENU_COMMAND_BASE} class defines the main MENU class where other MENU COMMAND_ classes are derived from, in order to set commands.
--
-- ===
--
-- The next menus define the MENU classes that you can use within your missions:
--
-- 2) MENU COALITION classes
-- =========================
-- The underlying classes manage the menus for whole coalitions.
--
-- 2.1) @{Menu#MENU_COALITION} class, extends @{Menu#MENU_BASE}
-- ------------------------------------------------------------
-- The @{Menu#MENU_COALITION} class manages the main menus for coalitions.
-- You can add menus with the @{#MENU_COALITION.New} method, which constructs a MENU_COALITION object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_COALITION.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- 2.2) @{Menu#MENU_COALITION_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- ----------------------------------------------------------------------------
-- The @{Menu#MENU_COALITION_COMMAND} class manages the command menus for coalitions, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_COALITION_COMMAND.New} method, which constructs a MENU_COALITION_COMMAND object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_COALITION_COMMAND.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- ===
--
-- 3) MENU CLIENT classes
-- ======================
-- The underlying classes manage the menus for units with skill level client or player.
--
-- 3.1) @{Menu#MENU_CLIENT} class, extends @{Menu#MENU_BASE}
-- ---------------------------------------------------------
-- The @{Menu#MENU_CLIENT} class manages the main menus for coalitions.
-- You can add menus with the @{#MENU_CLIENT.New} method, which constructs a MENU_CLIENT object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_CLIENT.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- 3.2) @{Menu#MENU_CLIENT_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- -------------------------------------------------------------------------
-- The @{Menu#MENU_CLIENT_COMMAND} class manages the command menus for coalitions, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_CLIENT_COMMAND.New} method, which constructs a MENU_CLIENT_COMMAND object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_CLIENT_COMMAND.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- ===
--
-- 4) MENU GROUP classes
-- =====================
-- The underlying classes manage the menus for groups. Note that groups can be inactive, alive or can be destroyed.
--
-- 4.1) @{Menu#MENU_GROUP} class, extends @{Menu#MENU_BASE}
-- --------------------------------------------------------
-- The @{Menu#MENU_GROUP} class manages the main menus for coalitions.
-- You can add menus with the @{#MENU_GROUP.New} method, which constructs a MENU_GROUP object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_GROUP.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- 4.2) @{Menu#MENU_GROUP_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- ------------------------------------------------------------------------
-- The @{Menu#MENU_GROUP_COMMAND} class manages the command menus for coalitions, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_GROUP_COMMAND.New} method, which constructs a MENU_GROUP_COMMAND object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_GROUP_COMMAND.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- ===
--
-- ### Contributions: -
-- ### Authors: FlightControl : Design & Programming
--
-- @module Menu -- @module Menu
--- The MENU class
-- @type MENU do -- MENU_BASE
-- @extends Base#BASE
MENU = { --- The MENU_BASE class
ClassName = "MENU", -- @type MENU_BASE
-- @extends Base#BASE
MENU_BASE = {
ClassName = "MENU_BASE",
MenuPath = nil, MenuPath = nil,
MenuText = "", MenuText = "",
MenuParentPath = nil MenuParentPath = nil
} }
--- --- Consructor
function MENU:New( MenuText, MenuParentPath ) function MENU_BASE:New( MenuText, ParentMenu )
-- Arrange meta tables local MenuParentPath = {}
local Child = BASE:Inherit( self, BASE:New() ) if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, BASE:New() )
self.MenuPath = nil
self.MenuText = MenuText
self.MenuParentPath = MenuParentPath
return self
end
Child.MenuPath = nil
Child.MenuText = MenuText
Child.MenuParentPath = MenuParentPath
return Child
end end
--- The COMMANDMENU class do -- MENU_COMMAND_BASE
-- @type COMMANDMENU
-- @extends Menu#MENU --- The MENU_COMMAND_BASE class
COMMANDMENU = { -- @type MENU_COMMAND_BASE
ClassName = "COMMANDMENU", -- @field #function MenuCallHandler
-- @extends Menu#MENU_BASE
MENU_COMMAND_BASE = {
ClassName = "MENU_COMMAND_BASE",
CommandMenuFunction = nil, CommandMenuFunction = nil,
CommandMenuArgument = nil CommandMenuArgument = nil,
} MenuCallHandler = nil,
}
function COMMANDMENU:New( MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument ) --- Constructor
function MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, CommandMenuArguments )
-- Arrange meta tables local self = BASE:Inherit( self, MENU_BASE:New( MenuText, ParentMenu ) )
local MenuParentPath = nil self.CommandMenuFunction = CommandMenuFunction
if ParentMenu ~= nil then self.MenuCallHandler = function( CommandMenuArguments )
MenuParentPath = ParentMenu.MenuPath self.CommandMenuFunction( unpack( CommandMenuArguments ) )
end end
local Child = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) return self
Child.MenuPath = missionCommands.addCommand( MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument )
Child.CommandMenuFunction = CommandMenuFunction
Child.CommandMenuArgument = CommandMenuArgument
return Child
end
--- The SUBMENU class
-- @type SUBMENU
-- @extends Menu#MENU
SUBMENU = {
ClassName = "SUBMENU"
}
function SUBMENU:New( MenuText, ParentMenu )
-- Arrange meta tables
local MenuParentPath = nil
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end end
local Child = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
Child.MenuPath = missionCommands.addSubMenu( MenuText, MenuParentPath )
return Child
end end
do do -- MENU_COALITION
--- The MENU_COALITION class
-- @type MENU_COALITION
-- @extends Menu#MENU_BASE
-- @usage
-- -- This demo creates a menu structure for the planes within the red coalition.
-- -- To test, join the planes, then look at the other radio menus (Option F10).
-- -- Then switch planes and check if the menu is still there.
--
-- local Plane1 = CLIENT:FindByName( "Plane 1" )
-- local Plane2 = CLIENT:FindByName( "Plane 2" )
--
--
-- -- This would create a menu for the red coalition under the main DCS "Others" menu.
-- local MenuCoalitionRed = MENU_COALITION:New( coalition.side.RED, "Manage Menus" )
--
--
-- local function ShowStatus( StatusText, Coalition )
--
-- MESSAGE:New( Coalition, 15 ):ToRed()
-- Plane1:Message( StatusText, 15 )
-- Plane2:Message( StatusText, 15 )
-- end
--
-- local MenuStatus -- Menu#MENU_COALITION
-- local MenuStatusShow -- Menu#MENU_COALITION_COMMAND
--
-- local function RemoveStatusMenu()
-- MenuStatus:Remove()
-- end
--
-- local function AddStatusMenu()
--
-- -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
-- MenuStatus = MENU_COALITION:New( coalition.side.RED, "Status for Planes" )
-- MenuStatusShow = MENU_COALITION_COMMAND:New( coalition.side.RED, "Show Status", MenuStatus, ShowStatus, "Status of planes is ok!", "Message to Red Coalition" )
-- end
--
-- local MenuAdd = MENU_COALITION_COMMAND:New( coalition.side.RED, "Add Status Menu", MenuCoalitionRed, AddStatusMenu )
-- local MenuRemove = MENU_COALITION_COMMAND:New( coalition.side.RED, "Remove Status Menu", MenuCoalitionRed, RemoveStatusMenu )
MENU_COALITION = {
ClassName = "MENU_COALITION"
}
--- MENU_COALITION constructor. Creates a new MENU_COALITION object and creates the menu for a complete coalition.
-- @param #MENU_COALITION self
-- @param DCSCoalition#coalition.side Coalition The coalition owning the menu.
-- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu. This parameter can be ignored if you want the menu to be located at the perent menu of DCS world (under F10 other).
-- @return #MENU_COALITION self
function MENU_COALITION:New( Coalition, MenuText, ParentMenu )
local self = BASE:Inherit( self, MENU_BASE:New( MenuText, ParentMenu ) )
self:F( { Coalition, MenuText, ParentMenu } )
self.Coalition = Coalition
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self.Menus = {}
self:T( { MenuText } )
self.MenuPath = missionCommands.addSubMenuForCoalition( Coalition, MenuText, self.MenuParentPath )
self:T( { self.MenuPath } )
if ParentMenu and ParentMenu.Menus then
ParentMenu.Menus[self.MenuPath] = self
end
return self
end
--- Removes the sub menus recursively of this MENU_COALITION. Note that the main menu is kept!
-- @param #MENU_COALITION self
-- @return #MENU_COALITION self
function MENU_COALITION:RemoveSubMenus()
self:F( self.MenuPath )
for MenuID, Menu in pairs( self.Menus ) do
Menu:Remove()
end
end
--- Removes the main menu and the sub menus recursively of this MENU_COALITION.
-- @param #MENU_COALITION self
-- @return #nil
function MENU_COALITION:Remove()
self:F( self.MenuPath )
self:RemoveSubMenus()
missionCommands.removeItemForCoalition( self.Coalition, self.MenuPath )
if self.ParentMenu then
self.ParentMenu.Menus[self.MenuPath] = nil
end
return nil
end
end
do -- MENU_COALITION_COMMAND
--- The MENU_COALITION_COMMAND class
-- @type MENU_COALITION_COMMAND
-- @extends Menu#MENU_COMMAND_BASE
MENU_COALITION_COMMAND = {
ClassName = "MENU_COALITION_COMMAND"
}
--- MENU_COALITION constructor. Creates a new radio command item for a coalition, which can invoke a function with parameters.
-- @param #MENU_COALITION_COMMAND self
-- @param DCSCoalition#coalition.side Coalition The coalition owning the menu.
-- @param #string MenuText The text for the menu.
-- @param Menu#MENU_COALITION ParentMenu The parent menu.
-- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function. There can only be ONE argument given. So multiple arguments must be wrapped into a table. See the below example how to do this.
-- @return #MENU_COALITION_COMMAND self
function MENU_COALITION_COMMAND:New( Coalition, MenuText, ParentMenu, CommandMenuFunction, ... )
local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, arg ) )
self.MenuCoalition = Coalition
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self:T( { MenuText, CommandMenuFunction, arg } )
self.MenuPath = missionCommands.addCommandForCoalition( self.MenuCoalition, MenuText, self.MenuParentPath, self.MenuCallHandler, arg )
ParentMenu.Menus[self.MenuPath] = self
return self
end
--- Removes a radio command item for a coalition
-- @param #MENU_COALITION_COMMAND self
-- @return #nil
function MENU_COALITION_COMMAND:Remove()
self:F( self.MenuPath )
missionCommands.removeItemForCoalition( self.MenuCoalition, self.MenuPath )
if self.ParentMenu then
self.ParentMenu.Menus[self.MenuPath] = nil
end
return nil
end
end
do -- MENU_CLIENT
-- This local variable is used to cache the menus registered under clients. -- This local variable is used to cache the menus registered under clients.
-- Menus don't dissapear when clients are destroyed and restarted. -- Menus don't dissapear when clients are destroyed and restarted.
@ -79,20 +335,70 @@ do
-- These menu classes are handling this logic with this variable. -- These menu classes are handling this logic with this variable.
local _MENUCLIENTS = {} local _MENUCLIENTS = {}
--- The MENU_CLIENT class --- MENU_COALITION constructor. Creates a new radio command item for a coalition, which can invoke a function with parameters.
-- @type MENU_CLIENT -- @type MENU_CLIENT
-- @extends Menu#MENU -- @extends Menu#MENU_BASE
-- @usage
-- -- This demo creates a menu structure for the two clients of planes.
-- -- Each client will receive a different menu structure.
-- -- To test, join the planes, then look at the other radio menus (Option F10).
-- -- Then switch planes and check if the menu is still there.
-- -- And play with the Add and Remove menu options.
--
-- -- Note that in multi player, this will only work after the DCS clients bug is solved.
--
-- local function ShowStatus( PlaneClient, StatusText, Coalition )
--
-- MESSAGE:New( Coalition, 15 ):ToRed()
-- PlaneClient:Message( StatusText, 15 )
-- end
--
-- local MenuStatus = {}
--
-- local function RemoveStatusMenu( MenuClient )
-- local MenuClientName = MenuClient:GetName()
-- MenuStatus[MenuClientName]:Remove()
-- end
--
-- --- @param Client#CLIENT MenuClient
-- local function AddStatusMenu( MenuClient )
-- env.info(MenuClient.ClientName)
-- local MenuClientName = MenuClient:GetName()
-- -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
-- MenuStatus[MenuClientName] = MENU_CLIENT:New( MenuClient, "Status for Planes" )
-- MENU_CLIENT_COMMAND:New( MenuClient, "Show Status", MenuStatus[MenuClientName], ShowStatus, MenuClient, "Status of planes is ok!", "Message to Red Coalition" )
-- end
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneClient = CLIENT:FindByName( "Plane 1" )
-- if PlaneClient and PlaneClient:IsAlive() then
-- local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneClient )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneClient )
-- end
-- end, {}, 10, 10 )
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneClient = CLIENT:FindByName( "Plane 2" )
-- if PlaneClient and PlaneClient:IsAlive() then
-- local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneClient )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneClient )
-- end
-- end, {}, 10, 10 )
MENU_CLIENT = { MENU_CLIENT = {
ClassName = "MENU_CLIENT" ClassName = "MENU_CLIENT"
} }
--- Creates a new menu item for a group --- MENU_CLIENT constructor. Creates a new radio menu item for a client.
-- @param self -- @param #MENU_CLIENT self
-- @param Client#CLIENT MenuClient The Client owning the menu. -- @param Client#CLIENT Client The Client owning the menu.
-- @param #string MenuText The text for the menu. -- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu. -- @param #table ParentMenu The parent menu.
-- @return #MENU_CLIENT self -- @return #MENU_CLIENT self
function MENU_CLIENT:New( MenuClient, MenuText, ParentMenu ) function MENU_CLIENT:New( Client, MenuText, ParentMenu )
-- Arrange meta tables -- Arrange meta tables
local MenuParentPath = {} local MenuParentPath = {}
@ -100,11 +406,11 @@ do
MenuParentPath = ParentMenu.MenuPath MenuParentPath = ParentMenu.MenuPath
end end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) local self = BASE:Inherit( self, MENU_BASE:New( MenuText, MenuParentPath ) )
self:F( { MenuClient, MenuText, ParentMenu } ) self:F( { Client, MenuText, ParentMenu } )
self.MenuClient = MenuClient self.MenuClient = Client
self.MenuClientGroupID = MenuClient:GetClientGroupID() self.MenuClientGroupID = Client:GetClientGroupID()
self.MenuParentPath = MenuParentPath self.MenuParentPath = MenuParentPath
self.MenuText = MenuText self.MenuText = MenuText
self.ParentMenu = ParentMenu self.ParentMenu = ParentMenu
@ -117,7 +423,7 @@ do
local MenuPath = _MENUCLIENTS[self.MenuClientGroupID] local MenuPath = _MENUCLIENTS[self.MenuClientGroupID]
self:T( { MenuClient:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText } ) self:T( { Client:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText } )
local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText
if MenuPath[MenuPathID] then if MenuPath[MenuPathID] then
@ -127,7 +433,7 @@ do
self.MenuPath = missionCommands.addSubMenuForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath ) self.MenuPath = missionCommands.addSubMenuForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath )
MenuPath[MenuPathID] = self.MenuPath MenuPath[MenuPathID] = self.MenuPath
self:T( { MenuClient:GetClientGroupName(), self.MenuPath } ) self:T( { Client:GetClientGroupName(), self.MenuPath } )
if ParentMenu and ParentMenu.Menus then if ParentMenu and ParentMenu.Menus then
ParentMenu.Menus[self.MenuPath] = self ParentMenu.Menus[self.MenuPath] = self
@ -135,7 +441,7 @@ do
return self return self
end end
--- Removes the sub menus recursively of this MENU_CLIENT. --- Removes the sub menus recursively of this @{#MENU_CLIENT}.
-- @param #MENU_CLIENT self -- @param #MENU_CLIENT self
-- @return #MENU_CLIENT self -- @return #MENU_CLIENT self
function MENU_CLIENT:RemoveSubMenus() function MENU_CLIENT:RemoveSubMenus()
@ -149,7 +455,7 @@ do
--- Removes the sub menus recursively of this MENU_CLIENT. --- Removes the sub menus recursively of this MENU_CLIENT.
-- @param #MENU_CLIENT self -- @param #MENU_CLIENT self
-- @return #MENU_CLIENT self -- @return #nil
function MENU_CLIENT:Remove() function MENU_CLIENT:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -173,20 +479,20 @@ do
--- The MENU_CLIENT_COMMAND class --- The MENU_CLIENT_COMMAND class
-- @type MENU_CLIENT_COMMAND -- @type MENU_CLIENT_COMMAND
-- @extends Menu#MENU -- @extends Menu#MENU_COMMAND
MENU_CLIENT_COMMAND = { MENU_CLIENT_COMMAND = {
ClassName = "MENU_CLIENT_COMMAND" ClassName = "MENU_CLIENT_COMMAND"
} }
--- Creates a new radio command item for a group --- MENU_CLIENT_COMMAND constructor. Creates a new radio command item for a client, which can invoke a function with parameters.
-- @param self -- @param #MENU_CLIENT_COMMAND self
-- @param Client#CLIENT MenuClient The Client owning the menu. -- @param Client#CLIENT Client The Client owning the menu.
-- @param MenuText The text for the menu. -- @param #string MenuText The text for the menu.
-- @param ParentMenu The parent menu. -- @param #MENU_BASE ParentMenu The parent menu.
-- @param CommandMenuFunction A function that is called when the menu key is pressed. -- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function. -- @param CommandMenuArgument An argument for the function.
-- @return Menu#MENU_CLIENT_COMMAND self -- @return Menu#MENU_CLIENT_COMMAND self
function MENU_CLIENT_COMMAND:New( MenuClient, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument ) function MENU_CLIENT_COMMAND:New( MenuClient, MenuText, ParentMenu, CommandMenuFunction, ... )
-- Arrange meta tables -- Arrange meta tables
@ -195,7 +501,7 @@ do
MenuParentPath = ParentMenu.MenuPath MenuParentPath = ParentMenu.MenuPath
end end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, MenuParentPath, CommandMenuFunction, arg ) ) -- Menu#MENU_CLIENT_COMMAND
self.MenuClient = MenuClient self.MenuClient = MenuClient
self.MenuClientGroupID = MenuClient:GetClientGroupID() self.MenuClientGroupID = MenuClient:GetClientGroupID()
@ -209,24 +515,24 @@ do
local MenuPath = _MENUCLIENTS[self.MenuClientGroupID] local MenuPath = _MENUCLIENTS[self.MenuClientGroupID]
self:T( { MenuClient:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText, CommandMenuFunction, CommandMenuArgument } ) self:T( { MenuClient:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText, CommandMenuFunction, arg } )
local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText
if MenuPath[MenuPathID] then if MenuPath[MenuPathID] then
missionCommands.removeItemForGroup( self.MenuClient:GetClientGroupID(), MenuPath[MenuPathID] ) missionCommands.removeItemForGroup( self.MenuClient:GetClientGroupID(), MenuPath[MenuPathID] )
end end
self.MenuPath = missionCommands.addCommandForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument ) self.MenuPath = missionCommands.addCommandForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath, self.MenuCallHandler, arg )
MenuPath[MenuPathID] = self.MenuPath MenuPath[MenuPathID] = self.MenuPath
self.CommandMenuFunction = CommandMenuFunction
self.CommandMenuArgument = CommandMenuArgument
ParentMenu.Menus[self.MenuPath] = self ParentMenu.Menus[self.MenuPath] = self
return self return self
end end
--- Removes a menu structure for a client.
-- @param #MENU_CLIENT_COMMAND self
-- @return #nil
function MENU_CLIENT_COMMAND:Remove() function MENU_CLIENT_COMMAND:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -249,22 +555,73 @@ end
--- MENU_GROUP --- MENU_GROUP
do do
-- This local variable is used to cache the menus registered under clients. -- This local variable is used to cache the menus registered under groups.
-- Menus don't dissapear when clients are destroyed and restarted. -- Menus don't dissapear when groups for players are destroyed and restarted.
-- So every menu for a client created must be tracked so that program logic accidentally does not create -- So every menu for a client created must be tracked so that program logic accidentally does not create.
-- the same menus twice during initialization logic. -- the same menus twice during initialization logic.
-- These menu classes are handling this logic with this variable. -- These menu classes are handling this logic with this variable.
local _MENUGROUPS = {} local _MENUGROUPS = {}
--- The MENU_GROUP class --- The MENU_GROUP class
-- @type MENU_GROUP -- @type MENU_GROUP
-- @extends Menu#MENU -- @extends Menu#MENU_BASE
-- @usage
-- -- This demo creates a menu structure for the two groups of planes.
-- -- Each group will receive a different menu structure.
-- -- To test, join the planes, then look at the other radio menus (Option F10).
-- -- Then switch planes and check if the menu is still there.
-- -- And play with the Add and Remove menu options.
--
-- -- Note that in multi player, this will only work after the DCS groups bug is solved.
--
-- local function ShowStatus( PlaneGroup, StatusText, Coalition )
--
-- MESSAGE:New( Coalition, 15 ):ToRed()
-- PlaneGroup:Message( StatusText, 15 )
-- end
--
-- local MenuStatus = {}
--
-- local function RemoveStatusMenu( MenuGroup )
-- local MenuGroupName = MenuGroup:GetName()
-- MenuStatus[MenuGroupName]:Remove()
-- end
--
-- --- @param Group#GROUP MenuGroup
-- local function AddStatusMenu( MenuGroup )
-- env.info(MenuGroup.GroupName)
-- local MenuGroupName = MenuGroup:GetName()
-- -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
-- MenuStatus[MenuGroupName] = MENU_GROUP:New( MenuGroup, "Status for Planes" )
-- MENU_GROUP_COMMAND:New( MenuGroup, "Show Status", MenuStatus[MenuGroupName], ShowStatus, MenuGroup, "Status of planes is ok!", "Message to Red Coalition" )
-- end
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneGroup = GROUP:FindByName( "Plane 1" )
-- if PlaneGroup and PlaneGroup:IsAlive() then
-- local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneGroup )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneGroup )
-- end
-- end, {}, 10, 10 )
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneGroup = GROUP:FindByName( "Plane 2" )
-- if PlaneGroup and PlaneGroup:IsAlive() then
-- local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneGroup )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneGroup )
-- end
-- end, {}, 10, 10 )
--
MENU_GROUP = { MENU_GROUP = {
ClassName = "MENU_GROUP" ClassName = "MENU_GROUP"
} }
--- Creates a new menu item for a group --- MENU_GROUP constructor. Creates a new radio menu item for a group.
-- @param self -- @param #MENU_GROUP self
-- @param Group#GROUP MenuGroup The Group owning the menu. -- @param Group#GROUP MenuGroup The Group owning the menu.
-- @param #string MenuText The text for the menu. -- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu. -- @param #table ParentMenu The parent menu.
@ -277,7 +634,7 @@ do
MenuParentPath = ParentMenu.MenuPath MenuParentPath = ParentMenu.MenuPath
end end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) local self = BASE:Inherit( self, MENU_BASE:New( MenuText, MenuParentPath ) )
self:F( { MenuGroup, MenuText, ParentMenu } ) self:F( { MenuGroup, MenuText, ParentMenu } )
self.MenuGroup = MenuGroup self.MenuGroup = MenuGroup
@ -325,9 +682,9 @@ do
end end
--- Removes the sub menus recursively of this MENU_GROUP. --- Removes the main menu and sub menus recursively of this MENU_GROUP.
-- @param #MENU_GROUP self -- @param #MENU_GROUP self
-- @return #MENU_GROUP self -- @return #nil
function MENU_GROUP:Remove() function MENU_GROUP:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -353,7 +710,7 @@ do
--- The MENU_GROUP_COMMAND class --- The MENU_GROUP_COMMAND class
-- @type MENU_GROUP_COMMAND -- @type MENU_GROUP_COMMAND
-- @extends Menu#MENU -- @extends Menu#MENU_BASE
MENU_GROUP_COMMAND = { MENU_GROUP_COMMAND = {
ClassName = "MENU_GROUP_COMMAND" ClassName = "MENU_GROUP_COMMAND"
} }
@ -366,20 +723,12 @@ do
-- @param CommandMenuFunction A function that is called when the menu key is pressed. -- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function. -- @param CommandMenuArgument An argument for the function.
-- @return Menu#MENU_GROUP_COMMAND self -- @return Menu#MENU_GROUP_COMMAND self
function MENU_GROUP_COMMAND:New( MenuGroup, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument ) function MENU_GROUP_COMMAND:New( MenuGroup, MenuText, ParentMenu, CommandMenuFunction, ... )
-- Arrange meta tables local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, arg ) )
local MenuParentPath = {}
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
self.MenuGroup = MenuGroup self.MenuGroup = MenuGroup
self.MenuGroupID = MenuGroup:GetID() self.MenuGroupID = MenuGroup:GetID()
self.MenuParentPath = MenuParentPath
self.MenuText = MenuText self.MenuText = MenuText
self.ParentMenu = ParentMenu self.ParentMenu = ParentMenu
@ -389,25 +738,25 @@ do
local MenuPath = _MENUGROUPS[self.MenuGroupID] local MenuPath = _MENUGROUPS[self.MenuGroupID]
self:T( { MenuGroup:GetName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText, CommandMenuFunction, CommandMenuArgument } ) self:T( { MenuGroup:GetName(), MenuPath[table.concat(self.MenuParentPath)], self.MenuParentPath, MenuText, CommandMenuFunction, arg } )
local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText local MenuPathID = table.concat(self.MenuParentPath) .. "/" .. MenuText
if MenuPath[MenuPathID] then if MenuPath[MenuPathID] then
missionCommands.removeItemForGroup( self.MenuGroupID, MenuPath[MenuPathID] ) missionCommands.removeItemForGroup( self.MenuGroupID, MenuPath[MenuPathID] )
end end
self:T( { "Adding for MenuPath ", MenuText, MenuParentPath } ) self:T( { "Adding for MenuPath ", MenuText, self.MenuParentPath } )
self.MenuPath = missionCommands.addCommandForGroup( self.MenuGroupID, MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument ) self.MenuPath = missionCommands.addCommandForGroup( self.MenuGroupID, MenuText, self.MenuParentPath, self.MenuCallHandler, arg )
MenuPath[MenuPathID] = self.MenuPath MenuPath[MenuPathID] = self.MenuPath
self.CommandMenuFunction = CommandMenuFunction
self.CommandMenuArgument = CommandMenuArgument
ParentMenu.Menus[self.MenuPath] = self ParentMenu.Menus[self.MenuPath] = self
return self return self
end end
--- Removes a menu structure for a group.
-- @param #MENU_GROUP_COMMAND self
-- @return #nil
function MENU_GROUP_COMMAND:Remove() function MENU_GROUP_COMMAND:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -429,125 +778,3 @@ do
end end
--- The MENU_COALITION class
-- @type MENU_COALITION
-- @extends Menu#MENU
MENU_COALITION = {
ClassName = "MENU_COALITION"
}
--- Creates a new coalition menu item
-- @param #MENU_COALITION self
-- @param DCSCoalition#coalition.side Coalition The coalition owning the menu.
-- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu.
-- @return #MENU_COALITION self
function MENU_COALITION:New( Coalition, MenuText, ParentMenu )
-- Arrange meta tables
local MenuParentPath = {}
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
self:F( { Coalition, MenuText, ParentMenu } )
self.Coalition = Coalition
self.MenuParentPath = MenuParentPath
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self.Menus = {}
self:T( { MenuParentPath, MenuText } )
self.MenuPath = missionCommands.addSubMenuForCoalition( self.Coalition, MenuText, MenuParentPath )
self:T( { self.MenuPath } )
if ParentMenu and ParentMenu.Menus then
ParentMenu.Menus[self.MenuPath] = self
end
return self
end
--- Removes the sub menus recursively of this MENU_COALITION.
-- @param #MENU_COALITION self
-- @return #MENU_COALITION self
function MENU_COALITION:RemoveSubMenus()
self:F( self.MenuPath )
for MenuID, Menu in pairs( self.Menus ) do
Menu:Remove()
end
end
--- Removes the sub menus recursively of this MENU_COALITION.
-- @param #MENU_COALITION self
-- @return #MENU_COALITION self
function MENU_COALITION:Remove()
self:F( self.MenuPath )
self:RemoveSubMenus()
missionCommands.removeItemForCoalition( self.MenuCoalition, self.MenuPath )
self.ParentMenu.Menus[self.MenuPath] = nil
return nil
end
--- The MENU_COALITION_COMMAND class
-- @type MENU_COALITION_COMMAND
-- @extends Menu#MENU
MENU_COALITION_COMMAND = {
ClassName = "MENU_COALITION_COMMAND"
}
--- Creates a new radio command item for a group
-- @param #MENU_COALITION_COMMAND self
-- @param DCSCoalition#coalition.side MenuCoalition The coalition owning the menu.
-- @param MenuText The text for the menu.
-- @param ParentMenu The parent menu.
-- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function.
-- @return #MENU_COALITION_COMMAND self
function MENU_COALITION_COMMAND:New( MenuCoalition, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument )
-- Arrange meta tables
local MenuParentPath = {}
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
self.MenuCoalition = MenuCoalition
self.MenuParentPath = MenuParentPath
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self:T( { MenuParentPath, MenuText, CommandMenuFunction, CommandMenuArgument } )
self.MenuPath = missionCommands.addCommandForCoalition( self.MenuCoalition, MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument )
self.CommandMenuFunction = CommandMenuFunction
self.CommandMenuArgument = CommandMenuArgument
ParentMenu.Menus[self.MenuPath] = self
return self
end
--- Removes a radio command item for a coalition
-- @param #MENU_COALITION_COMMAND self
-- @return #MENU_COALITION_COMMAND self
function MENU_COALITION_COMMAND:Remove()
self:F( self.MenuPath )
missionCommands.removeItemForCoalition( self.MenuCoalition, self.MenuPath )
self.ParentMenu.Menus[self.MenuPath] = nil
return nil
end

View File

@ -94,7 +94,9 @@ do -- PROCESS_SMOKE_TARGETS
if math.random( 1, ( 100 * self.TargetSetUnit:Count() ) / 4 ) <= 100 then if math.random( 1, ( 100 * self.TargetSetUnit:Count() ) / 4 ) <= 100 then
SCHEDULER:New( self, SCHEDULER:New( self,
function() function()
if SmokeUnit:IsAlive() then
SmokeUnit:Smoke( self.SmokeColor, 150 ) SmokeUnit:Smoke( self.SmokeColor, 150 )
end
end, {}, math.random( 10, 60 ) end, {}, math.random( 10, 60 )
) )
end end

View File

@ -1,5 +1,5 @@
env.info( '*** MOOSE STATIC INCLUDE START *** ' ) env.info( '*** MOOSE STATIC INCLUDE START *** ' )
env.info( 'Moose Generation Timestamp: 20160721_2013' ) env.info( 'Moose Generation Timestamp: 20160722_1718' )
local base = _G local base = _G
Include = {} Include = {}
@ -7175,79 +7175,335 @@ function EVENT:onEvent( Event )
end end
end end
--- Encapsulation of DCS World Menu system in a set of MENU classes. --- This module contains the MENU classes.
--
-- There is a small note... When you see a class like MENU_COMMAND_COALITION with COMMAND in italic, it acutally represents it like this: `MENU_COMMAND_COALITION`.
--
-- ===
--
-- DCS Menus can be managed using the MENU classes.
-- The advantage of using MENU classes is that it hides the complexity of dealing with menu management in more advanced scanerios where you need to
-- set menus and later remove them, and later set them again. You'll find while using use normal DCS scripting functions, that setting and removing
-- menus is not a easy feat if you have complex menu hierarchies defined.
-- Using the MOOSE menu classes, the removal and refreshing of menus are nicely being handled within these classes, and becomes much more easy.
-- On top, MOOSE implements **variable parameter** passing for command menus.
--
-- There are basically two different MENU class types that you need to use:
--
-- ### To manage **main menus**, the classes begin with **MENU_**:
--
-- * @{Menu#MENU_CLIENT}: Manages main menus for CLIENTs. This manages menus for units with the skill level "Client".
-- * @{Menu#MENU_GROUP}: Manages main menus for GROUPs.
-- * @{Menu#MENU_COALITION}: Manages main menus for whole COALITIONs.
--
-- ### To manage **command menus**, which are menus that allow the player to issue **functions**, the classes begin with **MENU_COMMAND_**:
--
-- * @{Menu#MENU_CLIENT_COMMAND}: Manages command menus for CLIENTs. This manages menus for units with the skill level "Client".
-- * @{Menu#MENU_GROUP_COMMAND}: Manages command menus for GROUPs.
-- * @{Menu#MENU_COALITION_COMMAND}: Manages command menus for whole COALITIONs.
--
-- ===
--
-- The above menus classes **are derived** from 2 main **abstract** classes defined within the MOOSE framework (so don't use these):
--
-- 1) MENU_ BASE classes (don't use them)
-- ======================================
-- The underlying base menu classes are not to be used within your missions. They simply are abstract classes defining a couple of fields that are used by the
-- derived MENU_ classes to manage menus.
--
-- 1.1) @{Menu#MENU_BASE} class, extends @{Base#BASE}
-- --------------------------------------------------
-- The @{#MENU_BASE} class defines the main MENU class where other MENU classes are derived from.
--
-- 1.2) @{Menu#MENU_COMMAND_BASE} class, extends @{Base#BASE}
-- ----------------------------------------------------------
-- The @{#MENU_COMMAND_BASE} class defines the main MENU class where other MENU COMMAND_ classes are derived from, in order to set commands.
--
-- ===
--
-- The next menus define the MENU classes that you can use within your missions:
--
-- 2) MENU COALITION classes
-- =========================
-- The underlying classes manage the menus for whole coalitions.
--
-- 2.1) @{Menu#MENU_COALITION} class, extends @{Menu#MENU_BASE}
-- ------------------------------------------------------------
-- The @{Menu#MENU_COALITION} class manages the main menus for coalitions.
-- You can add menus with the @{#MENU_COALITION.New} method, which constructs a MENU_COALITION object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_COALITION.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- 2.2) @{Menu#MENU_COALITION_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- ----------------------------------------------------------------------------
-- The @{Menu#MENU_COALITION_COMMAND} class manages the command menus for coalitions, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_COALITION_COMMAND.New} method, which constructs a MENU_COALITION_COMMAND object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_COALITION_COMMAND.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- ===
--
-- 3) MENU CLIENT classes
-- ======================
-- The underlying classes manage the menus for units with skill level client or player.
--
-- 3.1) @{Menu#MENU_CLIENT} class, extends @{Menu#MENU_BASE}
-- ---------------------------------------------------------
-- The @{Menu#MENU_CLIENT} class manages the main menus for coalitions.
-- You can add menus with the @{#MENU_CLIENT.New} method, which constructs a MENU_CLIENT object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_CLIENT.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- 3.2) @{Menu#MENU_CLIENT_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- -------------------------------------------------------------------------
-- The @{Menu#MENU_CLIENT_COMMAND} class manages the command menus for coalitions, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_CLIENT_COMMAND.New} method, which constructs a MENU_CLIENT_COMMAND object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_CLIENT_COMMAND.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- ===
--
-- 4) MENU GROUP classes
-- =====================
-- The underlying classes manage the menus for groups. Note that groups can be inactive, alive or can be destroyed.
--
-- 4.1) @{Menu#MENU_GROUP} class, extends @{Menu#MENU_BASE}
-- --------------------------------------------------------
-- The @{Menu#MENU_GROUP} class manages the main menus for coalitions.
-- You can add menus with the @{#MENU_GROUP.New} method, which constructs a MENU_GROUP object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_GROUP.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- 4.2) @{Menu#MENU_GROUP_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- ------------------------------------------------------------------------
-- The @{Menu#MENU_GROUP_COMMAND} class manages the command menus for coalitions, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_GROUP_COMMAND.New} method, which constructs a MENU_GROUP_COMMAND object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_GROUP_COMMAND.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- ===
--
-- ### Contributions: -
-- ### Authors: FlightControl : Design & Programming
--
-- @module Menu -- @module Menu
--- The MENU class
-- @type MENU do -- MENU_BASE
-- @extends Base#BASE
MENU = { --- The MENU_BASE class
ClassName = "MENU", -- @type MENU_BASE
-- @extends Base#BASE
MENU_BASE = {
ClassName = "MENU_BASE",
MenuPath = nil, MenuPath = nil,
MenuText = "", MenuText = "",
MenuParentPath = nil MenuParentPath = nil
} }
--- --- Consructor
function MENU:New( MenuText, MenuParentPath ) function MENU_BASE:New( MenuText, ParentMenu )
-- Arrange meta tables local MenuParentPath = {}
local Child = BASE:Inherit( self, BASE:New() ) if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, BASE:New() )
self.MenuPath = nil
self.MenuText = MenuText
self.MenuParentPath = MenuParentPath
return self
end
Child.MenuPath = nil
Child.MenuText = MenuText
Child.MenuParentPath = MenuParentPath
return Child
end end
--- The COMMANDMENU class do -- MENU_COMMAND_BASE
-- @type COMMANDMENU
-- @extends Menu#MENU --- The MENU_COMMAND_BASE class
COMMANDMENU = { -- @type MENU_COMMAND_BASE
ClassName = "COMMANDMENU", -- @field #function MenuCallHandler
-- @extends Menu#MENU_BASE
MENU_COMMAND_BASE = {
ClassName = "MENU_COMMAND_BASE",
CommandMenuFunction = nil, CommandMenuFunction = nil,
CommandMenuArgument = nil CommandMenuArgument = nil,
} MenuCallHandler = nil,
}
function COMMANDMENU:New( MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument ) --- Constructor
function MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, CommandMenuArguments )
-- Arrange meta tables local self = BASE:Inherit( self, MENU_BASE:New( MenuText, ParentMenu ) )
local MenuParentPath = nil self.CommandMenuFunction = CommandMenuFunction
if ParentMenu ~= nil then self.MenuCallHandler = function( CommandMenuArguments )
MenuParentPath = ParentMenu.MenuPath self.CommandMenuFunction( unpack( CommandMenuArguments ) )
end end
local Child = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) return self
Child.MenuPath = missionCommands.addCommand( MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument )
Child.CommandMenuFunction = CommandMenuFunction
Child.CommandMenuArgument = CommandMenuArgument
return Child
end
--- The SUBMENU class
-- @type SUBMENU
-- @extends Menu#MENU
SUBMENU = {
ClassName = "SUBMENU"
}
function SUBMENU:New( MenuText, ParentMenu )
-- Arrange meta tables
local MenuParentPath = nil
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end end
local Child = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
Child.MenuPath = missionCommands.addSubMenu( MenuText, MenuParentPath )
return Child
end end
do do -- MENU_COALITION
--- The MENU_COALITION class
-- @type MENU_COALITION
-- @extends Menu#MENU_BASE
-- @usage
-- -- This demo creates a menu structure for the planes within the red coalition.
-- -- To test, join the planes, then look at the other radio menus (Option F10).
-- -- Then switch planes and check if the menu is still there.
--
-- local Plane1 = CLIENT:FindByName( "Plane 1" )
-- local Plane2 = CLIENT:FindByName( "Plane 2" )
--
--
-- -- This would create a menu for the red coalition under the main DCS "Others" menu.
-- local MenuCoalitionRed = MENU_COALITION:New( coalition.side.RED, "Manage Menus" )
--
--
-- local function ShowStatus( StatusText, Coalition )
--
-- MESSAGE:New( Coalition, 15 ):ToRed()
-- Plane1:Message( StatusText, 15 )
-- Plane2:Message( StatusText, 15 )
-- end
--
-- local MenuStatus -- Menu#MENU_COALITION
-- local MenuStatusShow -- Menu#MENU_COALITION_COMMAND
--
-- local function RemoveStatusMenu()
-- MenuStatus:Remove()
-- end
--
-- local function AddStatusMenu()
--
-- -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
-- MenuStatus = MENU_COALITION:New( coalition.side.RED, "Status for Planes" )
-- MenuStatusShow = MENU_COALITION_COMMAND:New( coalition.side.RED, "Show Status", MenuStatus, ShowStatus, "Status of planes is ok!", "Message to Red Coalition" )
-- end
--
-- local MenuAdd = MENU_COALITION_COMMAND:New( coalition.side.RED, "Add Status Menu", MenuCoalitionRed, AddStatusMenu )
-- local MenuRemove = MENU_COALITION_COMMAND:New( coalition.side.RED, "Remove Status Menu", MenuCoalitionRed, RemoveStatusMenu )
MENU_COALITION = {
ClassName = "MENU_COALITION"
}
--- MENU_COALITION constructor. Creates a new MENU_COALITION object and creates the menu for a complete coalition.
-- @param #MENU_COALITION self
-- @param DCSCoalition#coalition.side Coalition The coalition owning the menu.
-- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu. This parameter can be ignored if you want the menu to be located at the perent menu of DCS world (under F10 other).
-- @return #MENU_COALITION self
function MENU_COALITION:New( Coalition, MenuText, ParentMenu )
local self = BASE:Inherit( self, MENU_BASE:New( MenuText, ParentMenu ) )
self:F( { Coalition, MenuText, ParentMenu } )
self.Coalition = Coalition
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self.Menus = {}
self:T( { MenuText } )
self.MenuPath = missionCommands.addSubMenuForCoalition( Coalition, MenuText, self.MenuParentPath )
self:T( { self.MenuPath } )
if ParentMenu and ParentMenu.Menus then
ParentMenu.Menus[self.MenuPath] = self
end
return self
end
--- Removes the sub menus recursively of this MENU_COALITION. Note that the main menu is kept!
-- @param #MENU_COALITION self
-- @return #MENU_COALITION self
function MENU_COALITION:RemoveSubMenus()
self:F( self.MenuPath )
for MenuID, Menu in pairs( self.Menus ) do
Menu:Remove()
end
end
--- Removes the main menu and the sub menus recursively of this MENU_COALITION.
-- @param #MENU_COALITION self
-- @return #nil
function MENU_COALITION:Remove()
self:F( self.MenuPath )
self:RemoveSubMenus()
missionCommands.removeItemForCoalition( self.Coalition, self.MenuPath )
if self.ParentMenu then
self.ParentMenu.Menus[self.MenuPath] = nil
end
return nil
end
end
do -- MENU_COALITION_COMMAND
--- The MENU_COALITION_COMMAND class
-- @type MENU_COALITION_COMMAND
-- @extends Menu#MENU_COMMAND_BASE
MENU_COALITION_COMMAND = {
ClassName = "MENU_COALITION_COMMAND"
}
--- MENU_COALITION constructor. Creates a new radio command item for a coalition, which can invoke a function with parameters.
-- @param #MENU_COALITION_COMMAND self
-- @param DCSCoalition#coalition.side Coalition The coalition owning the menu.
-- @param #string MenuText The text for the menu.
-- @param Menu#MENU_COALITION ParentMenu The parent menu.
-- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function. There can only be ONE argument given. So multiple arguments must be wrapped into a table. See the below example how to do this.
-- @return #MENU_COALITION_COMMAND self
function MENU_COALITION_COMMAND:New( Coalition, MenuText, ParentMenu, CommandMenuFunction, ... )
local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, arg ) )
self.MenuCoalition = Coalition
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self:T( { MenuText, CommandMenuFunction, arg } )
self.MenuPath = missionCommands.addCommandForCoalition( self.MenuCoalition, MenuText, self.MenuParentPath, self.MenuCallHandler, arg )
ParentMenu.Menus[self.MenuPath] = self
return self
end
--- Removes a radio command item for a coalition
-- @param #MENU_COALITION_COMMAND self
-- @return #nil
function MENU_COALITION_COMMAND:Remove()
self:F( self.MenuPath )
missionCommands.removeItemForCoalition( self.MenuCoalition, self.MenuPath )
if self.ParentMenu then
self.ParentMenu.Menus[self.MenuPath] = nil
end
return nil
end
end
do -- MENU_CLIENT
-- This local variable is used to cache the menus registered under clients. -- This local variable is used to cache the menus registered under clients.
-- Menus don't dissapear when clients are destroyed and restarted. -- Menus don't dissapear when clients are destroyed and restarted.
@ -7256,20 +7512,70 @@ do
-- These menu classes are handling this logic with this variable. -- These menu classes are handling this logic with this variable.
local _MENUCLIENTS = {} local _MENUCLIENTS = {}
--- The MENU_CLIENT class --- MENU_COALITION constructor. Creates a new radio command item for a coalition, which can invoke a function with parameters.
-- @type MENU_CLIENT -- @type MENU_CLIENT
-- @extends Menu#MENU -- @extends Menu#MENU_BASE
-- @usage
-- -- This demo creates a menu structure for the two clients of planes.
-- -- Each client will receive a different menu structure.
-- -- To test, join the planes, then look at the other radio menus (Option F10).
-- -- Then switch planes and check if the menu is still there.
-- -- And play with the Add and Remove menu options.
--
-- -- Note that in multi player, this will only work after the DCS clients bug is solved.
--
-- local function ShowStatus( PlaneClient, StatusText, Coalition )
--
-- MESSAGE:New( Coalition, 15 ):ToRed()
-- PlaneClient:Message( StatusText, 15 )
-- end
--
-- local MenuStatus = {}
--
-- local function RemoveStatusMenu( MenuClient )
-- local MenuClientName = MenuClient:GetName()
-- MenuStatus[MenuClientName]:Remove()
-- end
--
-- --- @param Client#CLIENT MenuClient
-- local function AddStatusMenu( MenuClient )
-- env.info(MenuClient.ClientName)
-- local MenuClientName = MenuClient:GetName()
-- -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
-- MenuStatus[MenuClientName] = MENU_CLIENT:New( MenuClient, "Status for Planes" )
-- MENU_CLIENT_COMMAND:New( MenuClient, "Show Status", MenuStatus[MenuClientName], ShowStatus, MenuClient, "Status of planes is ok!", "Message to Red Coalition" )
-- end
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneClient = CLIENT:FindByName( "Plane 1" )
-- if PlaneClient and PlaneClient:IsAlive() then
-- local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneClient )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneClient )
-- end
-- end, {}, 10, 10 )
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneClient = CLIENT:FindByName( "Plane 2" )
-- if PlaneClient and PlaneClient:IsAlive() then
-- local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneClient )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneClient )
-- end
-- end, {}, 10, 10 )
MENU_CLIENT = { MENU_CLIENT = {
ClassName = "MENU_CLIENT" ClassName = "MENU_CLIENT"
} }
--- Creates a new menu item for a group --- MENU_CLIENT constructor. Creates a new radio menu item for a client.
-- @param self -- @param #MENU_CLIENT self
-- @param Client#CLIENT MenuClient The Client owning the menu. -- @param Client#CLIENT Client The Client owning the menu.
-- @param #string MenuText The text for the menu. -- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu. -- @param #table ParentMenu The parent menu.
-- @return #MENU_CLIENT self -- @return #MENU_CLIENT self
function MENU_CLIENT:New( MenuClient, MenuText, ParentMenu ) function MENU_CLIENT:New( Client, MenuText, ParentMenu )
-- Arrange meta tables -- Arrange meta tables
local MenuParentPath = {} local MenuParentPath = {}
@ -7277,11 +7583,11 @@ do
MenuParentPath = ParentMenu.MenuPath MenuParentPath = ParentMenu.MenuPath
end end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) local self = BASE:Inherit( self, MENU_BASE:New( MenuText, MenuParentPath ) )
self:F( { MenuClient, MenuText, ParentMenu } ) self:F( { Client, MenuText, ParentMenu } )
self.MenuClient = MenuClient self.MenuClient = Client
self.MenuClientGroupID = MenuClient:GetClientGroupID() self.MenuClientGroupID = Client:GetClientGroupID()
self.MenuParentPath = MenuParentPath self.MenuParentPath = MenuParentPath
self.MenuText = MenuText self.MenuText = MenuText
self.ParentMenu = ParentMenu self.ParentMenu = ParentMenu
@ -7294,7 +7600,7 @@ do
local MenuPath = _MENUCLIENTS[self.MenuClientGroupID] local MenuPath = _MENUCLIENTS[self.MenuClientGroupID]
self:T( { MenuClient:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText } ) self:T( { Client:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText } )
local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText
if MenuPath[MenuPathID] then if MenuPath[MenuPathID] then
@ -7304,7 +7610,7 @@ do
self.MenuPath = missionCommands.addSubMenuForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath ) self.MenuPath = missionCommands.addSubMenuForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath )
MenuPath[MenuPathID] = self.MenuPath MenuPath[MenuPathID] = self.MenuPath
self:T( { MenuClient:GetClientGroupName(), self.MenuPath } ) self:T( { Client:GetClientGroupName(), self.MenuPath } )
if ParentMenu and ParentMenu.Menus then if ParentMenu and ParentMenu.Menus then
ParentMenu.Menus[self.MenuPath] = self ParentMenu.Menus[self.MenuPath] = self
@ -7312,7 +7618,7 @@ do
return self return self
end end
--- Removes the sub menus recursively of this MENU_CLIENT. --- Removes the sub menus recursively of this @{#MENU_CLIENT}.
-- @param #MENU_CLIENT self -- @param #MENU_CLIENT self
-- @return #MENU_CLIENT self -- @return #MENU_CLIENT self
function MENU_CLIENT:RemoveSubMenus() function MENU_CLIENT:RemoveSubMenus()
@ -7326,7 +7632,7 @@ do
--- Removes the sub menus recursively of this MENU_CLIENT. --- Removes the sub menus recursively of this MENU_CLIENT.
-- @param #MENU_CLIENT self -- @param #MENU_CLIENT self
-- @return #MENU_CLIENT self -- @return #nil
function MENU_CLIENT:Remove() function MENU_CLIENT:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -7350,20 +7656,20 @@ do
--- The MENU_CLIENT_COMMAND class --- The MENU_CLIENT_COMMAND class
-- @type MENU_CLIENT_COMMAND -- @type MENU_CLIENT_COMMAND
-- @extends Menu#MENU -- @extends Menu#MENU_COMMAND
MENU_CLIENT_COMMAND = { MENU_CLIENT_COMMAND = {
ClassName = "MENU_CLIENT_COMMAND" ClassName = "MENU_CLIENT_COMMAND"
} }
--- Creates a new radio command item for a group --- MENU_CLIENT_COMMAND constructor. Creates a new radio command item for a client, which can invoke a function with parameters.
-- @param self -- @param #MENU_CLIENT_COMMAND self
-- @param Client#CLIENT MenuClient The Client owning the menu. -- @param Client#CLIENT Client The Client owning the menu.
-- @param MenuText The text for the menu. -- @param #string MenuText The text for the menu.
-- @param ParentMenu The parent menu. -- @param #MENU_BASE ParentMenu The parent menu.
-- @param CommandMenuFunction A function that is called when the menu key is pressed. -- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function. -- @param CommandMenuArgument An argument for the function.
-- @return Menu#MENU_CLIENT_COMMAND self -- @return Menu#MENU_CLIENT_COMMAND self
function MENU_CLIENT_COMMAND:New( MenuClient, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument ) function MENU_CLIENT_COMMAND:New( MenuClient, MenuText, ParentMenu, CommandMenuFunction, ... )
-- Arrange meta tables -- Arrange meta tables
@ -7372,7 +7678,7 @@ do
MenuParentPath = ParentMenu.MenuPath MenuParentPath = ParentMenu.MenuPath
end end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, MenuParentPath, CommandMenuFunction, arg ) ) -- Menu#MENU_CLIENT_COMMAND
self.MenuClient = MenuClient self.MenuClient = MenuClient
self.MenuClientGroupID = MenuClient:GetClientGroupID() self.MenuClientGroupID = MenuClient:GetClientGroupID()
@ -7386,24 +7692,24 @@ do
local MenuPath = _MENUCLIENTS[self.MenuClientGroupID] local MenuPath = _MENUCLIENTS[self.MenuClientGroupID]
self:T( { MenuClient:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText, CommandMenuFunction, CommandMenuArgument } ) self:T( { MenuClient:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText, CommandMenuFunction, arg } )
local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText
if MenuPath[MenuPathID] then if MenuPath[MenuPathID] then
missionCommands.removeItemForGroup( self.MenuClient:GetClientGroupID(), MenuPath[MenuPathID] ) missionCommands.removeItemForGroup( self.MenuClient:GetClientGroupID(), MenuPath[MenuPathID] )
end end
self.MenuPath = missionCommands.addCommandForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument ) self.MenuPath = missionCommands.addCommandForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath, self.MenuCallHandler, arg )
MenuPath[MenuPathID] = self.MenuPath MenuPath[MenuPathID] = self.MenuPath
self.CommandMenuFunction = CommandMenuFunction
self.CommandMenuArgument = CommandMenuArgument
ParentMenu.Menus[self.MenuPath] = self ParentMenu.Menus[self.MenuPath] = self
return self return self
end end
--- Removes a menu structure for a client.
-- @param #MENU_CLIENT_COMMAND self
-- @return #nil
function MENU_CLIENT_COMMAND:Remove() function MENU_CLIENT_COMMAND:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -7426,22 +7732,73 @@ end
--- MENU_GROUP --- MENU_GROUP
do do
-- This local variable is used to cache the menus registered under clients. -- This local variable is used to cache the menus registered under groups.
-- Menus don't dissapear when clients are destroyed and restarted. -- Menus don't dissapear when groups for players are destroyed and restarted.
-- So every menu for a client created must be tracked so that program logic accidentally does not create -- So every menu for a client created must be tracked so that program logic accidentally does not create.
-- the same menus twice during initialization logic. -- the same menus twice during initialization logic.
-- These menu classes are handling this logic with this variable. -- These menu classes are handling this logic with this variable.
local _MENUGROUPS = {} local _MENUGROUPS = {}
--- The MENU_GROUP class --- The MENU_GROUP class
-- @type MENU_GROUP -- @type MENU_GROUP
-- @extends Menu#MENU -- @extends Menu#MENU_BASE
-- @usage
-- -- This demo creates a menu structure for the two groups of planes.
-- -- Each group will receive a different menu structure.
-- -- To test, join the planes, then look at the other radio menus (Option F10).
-- -- Then switch planes and check if the menu is still there.
-- -- And play with the Add and Remove menu options.
--
-- -- Note that in multi player, this will only work after the DCS groups bug is solved.
--
-- local function ShowStatus( PlaneGroup, StatusText, Coalition )
--
-- MESSAGE:New( Coalition, 15 ):ToRed()
-- PlaneGroup:Message( StatusText, 15 )
-- end
--
-- local MenuStatus = {}
--
-- local function RemoveStatusMenu( MenuGroup )
-- local MenuGroupName = MenuGroup:GetName()
-- MenuStatus[MenuGroupName]:Remove()
-- end
--
-- --- @param Group#GROUP MenuGroup
-- local function AddStatusMenu( MenuGroup )
-- env.info(MenuGroup.GroupName)
-- local MenuGroupName = MenuGroup:GetName()
-- -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
-- MenuStatus[MenuGroupName] = MENU_GROUP:New( MenuGroup, "Status for Planes" )
-- MENU_GROUP_COMMAND:New( MenuGroup, "Show Status", MenuStatus[MenuGroupName], ShowStatus, MenuGroup, "Status of planes is ok!", "Message to Red Coalition" )
-- end
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneGroup = GROUP:FindByName( "Plane 1" )
-- if PlaneGroup and PlaneGroup:IsAlive() then
-- local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneGroup )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneGroup )
-- end
-- end, {}, 10, 10 )
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneGroup = GROUP:FindByName( "Plane 2" )
-- if PlaneGroup and PlaneGroup:IsAlive() then
-- local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneGroup )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneGroup )
-- end
-- end, {}, 10, 10 )
--
MENU_GROUP = { MENU_GROUP = {
ClassName = "MENU_GROUP" ClassName = "MENU_GROUP"
} }
--- Creates a new menu item for a group --- MENU_GROUP constructor. Creates a new radio menu item for a group.
-- @param self -- @param #MENU_GROUP self
-- @param Group#GROUP MenuGroup The Group owning the menu. -- @param Group#GROUP MenuGroup The Group owning the menu.
-- @param #string MenuText The text for the menu. -- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu. -- @param #table ParentMenu The parent menu.
@ -7454,7 +7811,7 @@ do
MenuParentPath = ParentMenu.MenuPath MenuParentPath = ParentMenu.MenuPath
end end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) local self = BASE:Inherit( self, MENU_BASE:New( MenuText, MenuParentPath ) )
self:F( { MenuGroup, MenuText, ParentMenu } ) self:F( { MenuGroup, MenuText, ParentMenu } )
self.MenuGroup = MenuGroup self.MenuGroup = MenuGroup
@ -7502,9 +7859,9 @@ do
end end
--- Removes the sub menus recursively of this MENU_GROUP. --- Removes the main menu and sub menus recursively of this MENU_GROUP.
-- @param #MENU_GROUP self -- @param #MENU_GROUP self
-- @return #MENU_GROUP self -- @return #nil
function MENU_GROUP:Remove() function MENU_GROUP:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -7530,7 +7887,7 @@ do
--- The MENU_GROUP_COMMAND class --- The MENU_GROUP_COMMAND class
-- @type MENU_GROUP_COMMAND -- @type MENU_GROUP_COMMAND
-- @extends Menu#MENU -- @extends Menu#MENU_BASE
MENU_GROUP_COMMAND = { MENU_GROUP_COMMAND = {
ClassName = "MENU_GROUP_COMMAND" ClassName = "MENU_GROUP_COMMAND"
} }
@ -7543,20 +7900,12 @@ do
-- @param CommandMenuFunction A function that is called when the menu key is pressed. -- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function. -- @param CommandMenuArgument An argument for the function.
-- @return Menu#MENU_GROUP_COMMAND self -- @return Menu#MENU_GROUP_COMMAND self
function MENU_GROUP_COMMAND:New( MenuGroup, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument ) function MENU_GROUP_COMMAND:New( MenuGroup, MenuText, ParentMenu, CommandMenuFunction, ... )
-- Arrange meta tables local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, arg ) )
local MenuParentPath = {}
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
self.MenuGroup = MenuGroup self.MenuGroup = MenuGroup
self.MenuGroupID = MenuGroup:GetID() self.MenuGroupID = MenuGroup:GetID()
self.MenuParentPath = MenuParentPath
self.MenuText = MenuText self.MenuText = MenuText
self.ParentMenu = ParentMenu self.ParentMenu = ParentMenu
@ -7566,25 +7915,25 @@ do
local MenuPath = _MENUGROUPS[self.MenuGroupID] local MenuPath = _MENUGROUPS[self.MenuGroupID]
self:T( { MenuGroup:GetName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText, CommandMenuFunction, CommandMenuArgument } ) self:T( { MenuGroup:GetName(), MenuPath[table.concat(self.MenuParentPath)], self.MenuParentPath, MenuText, CommandMenuFunction, arg } )
local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText local MenuPathID = table.concat(self.MenuParentPath) .. "/" .. MenuText
if MenuPath[MenuPathID] then if MenuPath[MenuPathID] then
missionCommands.removeItemForGroup( self.MenuGroupID, MenuPath[MenuPathID] ) missionCommands.removeItemForGroup( self.MenuGroupID, MenuPath[MenuPathID] )
end end
self:T( { "Adding for MenuPath ", MenuText, MenuParentPath } ) self:T( { "Adding for MenuPath ", MenuText, self.MenuParentPath } )
self.MenuPath = missionCommands.addCommandForGroup( self.MenuGroupID, MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument ) self.MenuPath = missionCommands.addCommandForGroup( self.MenuGroupID, MenuText, self.MenuParentPath, self.MenuCallHandler, arg )
MenuPath[MenuPathID] = self.MenuPath MenuPath[MenuPathID] = self.MenuPath
self.CommandMenuFunction = CommandMenuFunction
self.CommandMenuArgument = CommandMenuArgument
ParentMenu.Menus[self.MenuPath] = self ParentMenu.Menus[self.MenuPath] = self
return self return self
end end
--- Removes a menu structure for a group.
-- @param #MENU_GROUP_COMMAND self
-- @return #nil
function MENU_GROUP_COMMAND:Remove() function MENU_GROUP_COMMAND:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -7606,128 +7955,6 @@ do
end end
--- The MENU_COALITION class
-- @type MENU_COALITION
-- @extends Menu#MENU
MENU_COALITION = {
ClassName = "MENU_COALITION"
}
--- Creates a new coalition menu item
-- @param #MENU_COALITION self
-- @param DCSCoalition#coalition.side Coalition The coalition owning the menu.
-- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu.
-- @return #MENU_COALITION self
function MENU_COALITION:New( Coalition, MenuText, ParentMenu )
-- Arrange meta tables
local MenuParentPath = {}
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
self:F( { Coalition, MenuText, ParentMenu } )
self.Coalition = Coalition
self.MenuParentPath = MenuParentPath
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self.Menus = {}
self:T( { MenuParentPath, MenuText } )
self.MenuPath = missionCommands.addSubMenuForCoalition( self.Coalition, MenuText, MenuParentPath )
self:T( { self.MenuPath } )
if ParentMenu and ParentMenu.Menus then
ParentMenu.Menus[self.MenuPath] = self
end
return self
end
--- Removes the sub menus recursively of this MENU_COALITION.
-- @param #MENU_COALITION self
-- @return #MENU_COALITION self
function MENU_COALITION:RemoveSubMenus()
self:F( self.MenuPath )
for MenuID, Menu in pairs( self.Menus ) do
Menu:Remove()
end
end
--- Removes the sub menus recursively of this MENU_COALITION.
-- @param #MENU_COALITION self
-- @return #MENU_COALITION self
function MENU_COALITION:Remove()
self:F( self.MenuPath )
self:RemoveSubMenus()
missionCommands.removeItemForCoalition( self.MenuCoalition, self.MenuPath )
self.ParentMenu.Menus[self.MenuPath] = nil
return nil
end
--- The MENU_COALITION_COMMAND class
-- @type MENU_COALITION_COMMAND
-- @extends Menu#MENU
MENU_COALITION_COMMAND = {
ClassName = "MENU_COALITION_COMMAND"
}
--- Creates a new radio command item for a group
-- @param #MENU_COALITION_COMMAND self
-- @param DCSCoalition#coalition.side MenuCoalition The coalition owning the menu.
-- @param MenuText The text for the menu.
-- @param ParentMenu The parent menu.
-- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function.
-- @return #MENU_COALITION_COMMAND self
function MENU_COALITION_COMMAND:New( MenuCoalition, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument )
-- Arrange meta tables
local MenuParentPath = {}
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
self.MenuCoalition = MenuCoalition
self.MenuParentPath = MenuParentPath
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self:T( { MenuParentPath, MenuText, CommandMenuFunction, CommandMenuArgument } )
self.MenuPath = missionCommands.addCommandForCoalition( self.MenuCoalition, MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument )
self.CommandMenuFunction = CommandMenuFunction
self.CommandMenuArgument = CommandMenuArgument
ParentMenu.Menus[self.MenuPath] = self
return self
end
--- Removes a radio command item for a coalition
-- @param #MENU_COALITION_COMMAND self
-- @return #MENU_COALITION_COMMAND self
function MENU_COALITION_COMMAND:Remove()
self:F( self.MenuPath )
missionCommands.removeItemForCoalition( self.MenuCoalition, self.MenuPath )
self.ParentMenu.Menus[self.MenuPath] = nil
return nil
end
--- This module contains the GROUP class. --- This module contains the GROUP class.
-- --
-- 1) @{Group#GROUP} class, extends @{Controllable#CONTROLLABLE} -- 1) @{Group#GROUP} class, extends @{Controllable#CONTROLLABLE}
@ -27371,7 +27598,9 @@ do -- PROCESS_SMOKE_TARGETS
if math.random( 1, ( 100 * self.TargetSetUnit:Count() ) / 4 ) <= 100 then if math.random( 1, ( 100 * self.TargetSetUnit:Count() ) / 4 ) <= 100 then
SCHEDULER:New( self, SCHEDULER:New( self,
function() function()
if SmokeUnit:IsAlive() then
SmokeUnit:Smoke( self.SmokeColor, 150 ) SmokeUnit:Smoke( self.SmokeColor, 150 )
end
end, {}, math.random( 10, 60 ) end, {}, math.random( 10, 60 )
) )
end end

View File

@ -1,5 +1,5 @@
env.info( '*** MOOSE STATIC INCLUDE START *** ' ) env.info( '*** MOOSE STATIC INCLUDE START *** ' )
env.info( 'Moose Generation Timestamp: 20160721_2013' ) env.info( 'Moose Generation Timestamp: 20160722_1718' )
local base = _G local base = _G
Include = {} Include = {}
@ -7175,79 +7175,335 @@ function EVENT:onEvent( Event )
end end
end end
--- Encapsulation of DCS World Menu system in a set of MENU classes. --- This module contains the MENU classes.
--
-- There is a small note... When you see a class like MENU_COMMAND_COALITION with COMMAND in italic, it acutally represents it like this: `MENU_COMMAND_COALITION`.
--
-- ===
--
-- DCS Menus can be managed using the MENU classes.
-- The advantage of using MENU classes is that it hides the complexity of dealing with menu management in more advanced scanerios where you need to
-- set menus and later remove them, and later set them again. You'll find while using use normal DCS scripting functions, that setting and removing
-- menus is not a easy feat if you have complex menu hierarchies defined.
-- Using the MOOSE menu classes, the removal and refreshing of menus are nicely being handled within these classes, and becomes much more easy.
-- On top, MOOSE implements **variable parameter** passing for command menus.
--
-- There are basically two different MENU class types that you need to use:
--
-- ### To manage **main menus**, the classes begin with **MENU_**:
--
-- * @{Menu#MENU_CLIENT}: Manages main menus for CLIENTs. This manages menus for units with the skill level "Client".
-- * @{Menu#MENU_GROUP}: Manages main menus for GROUPs.
-- * @{Menu#MENU_COALITION}: Manages main menus for whole COALITIONs.
--
-- ### To manage **command menus**, which are menus that allow the player to issue **functions**, the classes begin with **MENU_COMMAND_**:
--
-- * @{Menu#MENU_CLIENT_COMMAND}: Manages command menus for CLIENTs. This manages menus for units with the skill level "Client".
-- * @{Menu#MENU_GROUP_COMMAND}: Manages command menus for GROUPs.
-- * @{Menu#MENU_COALITION_COMMAND}: Manages command menus for whole COALITIONs.
--
-- ===
--
-- The above menus classes **are derived** from 2 main **abstract** classes defined within the MOOSE framework (so don't use these):
--
-- 1) MENU_ BASE classes (don't use them)
-- ======================================
-- The underlying base menu classes are not to be used within your missions. They simply are abstract classes defining a couple of fields that are used by the
-- derived MENU_ classes to manage menus.
--
-- 1.1) @{Menu#MENU_BASE} class, extends @{Base#BASE}
-- --------------------------------------------------
-- The @{#MENU_BASE} class defines the main MENU class where other MENU classes are derived from.
--
-- 1.2) @{Menu#MENU_COMMAND_BASE} class, extends @{Base#BASE}
-- ----------------------------------------------------------
-- The @{#MENU_COMMAND_BASE} class defines the main MENU class where other MENU COMMAND_ classes are derived from, in order to set commands.
--
-- ===
--
-- The next menus define the MENU classes that you can use within your missions:
--
-- 2) MENU COALITION classes
-- =========================
-- The underlying classes manage the menus for whole coalitions.
--
-- 2.1) @{Menu#MENU_COALITION} class, extends @{Menu#MENU_BASE}
-- ------------------------------------------------------------
-- The @{Menu#MENU_COALITION} class manages the main menus for coalitions.
-- You can add menus with the @{#MENU_COALITION.New} method, which constructs a MENU_COALITION object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_COALITION.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- 2.2) @{Menu#MENU_COALITION_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- ----------------------------------------------------------------------------
-- The @{Menu#MENU_COALITION_COMMAND} class manages the command menus for coalitions, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_COALITION_COMMAND.New} method, which constructs a MENU_COALITION_COMMAND object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_COALITION_COMMAND.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- ===
--
-- 3) MENU CLIENT classes
-- ======================
-- The underlying classes manage the menus for units with skill level client or player.
--
-- 3.1) @{Menu#MENU_CLIENT} class, extends @{Menu#MENU_BASE}
-- ---------------------------------------------------------
-- The @{Menu#MENU_CLIENT} class manages the main menus for coalitions.
-- You can add menus with the @{#MENU_CLIENT.New} method, which constructs a MENU_CLIENT object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_CLIENT.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- 3.2) @{Menu#MENU_CLIENT_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- -------------------------------------------------------------------------
-- The @{Menu#MENU_CLIENT_COMMAND} class manages the command menus for coalitions, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_CLIENT_COMMAND.New} method, which constructs a MENU_CLIENT_COMMAND object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_CLIENT_COMMAND.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- ===
--
-- 4) MENU GROUP classes
-- =====================
-- The underlying classes manage the menus for groups. Note that groups can be inactive, alive or can be destroyed.
--
-- 4.1) @{Menu#MENU_GROUP} class, extends @{Menu#MENU_BASE}
-- --------------------------------------------------------
-- The @{Menu#MENU_GROUP} class manages the main menus for coalitions.
-- You can add menus with the @{#MENU_GROUP.New} method, which constructs a MENU_GROUP object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_GROUP.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- 4.2) @{Menu#MENU_GROUP_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- ------------------------------------------------------------------------
-- The @{Menu#MENU_GROUP_COMMAND} class manages the command menus for coalitions, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_GROUP_COMMAND.New} method, which constructs a MENU_GROUP_COMMAND object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_GROUP_COMMAND.Remove}.
-- Refer to the respective methods documentation for usage examples.
--
-- ===
--
-- ### Contributions: -
-- ### Authors: FlightControl : Design & Programming
--
-- @module Menu -- @module Menu
--- The MENU class
-- @type MENU do -- MENU_BASE
-- @extends Base#BASE
MENU = { --- The MENU_BASE class
ClassName = "MENU", -- @type MENU_BASE
-- @extends Base#BASE
MENU_BASE = {
ClassName = "MENU_BASE",
MenuPath = nil, MenuPath = nil,
MenuText = "", MenuText = "",
MenuParentPath = nil MenuParentPath = nil
} }
--- --- Consructor
function MENU:New( MenuText, MenuParentPath ) function MENU_BASE:New( MenuText, ParentMenu )
-- Arrange meta tables local MenuParentPath = {}
local Child = BASE:Inherit( self, BASE:New() ) if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, BASE:New() )
self.MenuPath = nil
self.MenuText = MenuText
self.MenuParentPath = MenuParentPath
return self
end
Child.MenuPath = nil
Child.MenuText = MenuText
Child.MenuParentPath = MenuParentPath
return Child
end end
--- The COMMANDMENU class do -- MENU_COMMAND_BASE
-- @type COMMANDMENU
-- @extends Menu#MENU --- The MENU_COMMAND_BASE class
COMMANDMENU = { -- @type MENU_COMMAND_BASE
ClassName = "COMMANDMENU", -- @field #function MenuCallHandler
-- @extends Menu#MENU_BASE
MENU_COMMAND_BASE = {
ClassName = "MENU_COMMAND_BASE",
CommandMenuFunction = nil, CommandMenuFunction = nil,
CommandMenuArgument = nil CommandMenuArgument = nil,
} MenuCallHandler = nil,
}
function COMMANDMENU:New( MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument ) --- Constructor
function MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, CommandMenuArguments )
-- Arrange meta tables local self = BASE:Inherit( self, MENU_BASE:New( MenuText, ParentMenu ) )
local MenuParentPath = nil self.CommandMenuFunction = CommandMenuFunction
if ParentMenu ~= nil then self.MenuCallHandler = function( CommandMenuArguments )
MenuParentPath = ParentMenu.MenuPath self.CommandMenuFunction( unpack( CommandMenuArguments ) )
end end
local Child = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) return self
Child.MenuPath = missionCommands.addCommand( MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument )
Child.CommandMenuFunction = CommandMenuFunction
Child.CommandMenuArgument = CommandMenuArgument
return Child
end
--- The SUBMENU class
-- @type SUBMENU
-- @extends Menu#MENU
SUBMENU = {
ClassName = "SUBMENU"
}
function SUBMENU:New( MenuText, ParentMenu )
-- Arrange meta tables
local MenuParentPath = nil
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end end
local Child = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
Child.MenuPath = missionCommands.addSubMenu( MenuText, MenuParentPath )
return Child
end end
do do -- MENU_COALITION
--- The MENU_COALITION class
-- @type MENU_COALITION
-- @extends Menu#MENU_BASE
-- @usage
-- -- This demo creates a menu structure for the planes within the red coalition.
-- -- To test, join the planes, then look at the other radio menus (Option F10).
-- -- Then switch planes and check if the menu is still there.
--
-- local Plane1 = CLIENT:FindByName( "Plane 1" )
-- local Plane2 = CLIENT:FindByName( "Plane 2" )
--
--
-- -- This would create a menu for the red coalition under the main DCS "Others" menu.
-- local MenuCoalitionRed = MENU_COALITION:New( coalition.side.RED, "Manage Menus" )
--
--
-- local function ShowStatus( StatusText, Coalition )
--
-- MESSAGE:New( Coalition, 15 ):ToRed()
-- Plane1:Message( StatusText, 15 )
-- Plane2:Message( StatusText, 15 )
-- end
--
-- local MenuStatus -- Menu#MENU_COALITION
-- local MenuStatusShow -- Menu#MENU_COALITION_COMMAND
--
-- local function RemoveStatusMenu()
-- MenuStatus:Remove()
-- end
--
-- local function AddStatusMenu()
--
-- -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
-- MenuStatus = MENU_COALITION:New( coalition.side.RED, "Status for Planes" )
-- MenuStatusShow = MENU_COALITION_COMMAND:New( coalition.side.RED, "Show Status", MenuStatus, ShowStatus, "Status of planes is ok!", "Message to Red Coalition" )
-- end
--
-- local MenuAdd = MENU_COALITION_COMMAND:New( coalition.side.RED, "Add Status Menu", MenuCoalitionRed, AddStatusMenu )
-- local MenuRemove = MENU_COALITION_COMMAND:New( coalition.side.RED, "Remove Status Menu", MenuCoalitionRed, RemoveStatusMenu )
MENU_COALITION = {
ClassName = "MENU_COALITION"
}
--- MENU_COALITION constructor. Creates a new MENU_COALITION object and creates the menu for a complete coalition.
-- @param #MENU_COALITION self
-- @param DCSCoalition#coalition.side Coalition The coalition owning the menu.
-- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu. This parameter can be ignored if you want the menu to be located at the perent menu of DCS world (under F10 other).
-- @return #MENU_COALITION self
function MENU_COALITION:New( Coalition, MenuText, ParentMenu )
local self = BASE:Inherit( self, MENU_BASE:New( MenuText, ParentMenu ) )
self:F( { Coalition, MenuText, ParentMenu } )
self.Coalition = Coalition
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self.Menus = {}
self:T( { MenuText } )
self.MenuPath = missionCommands.addSubMenuForCoalition( Coalition, MenuText, self.MenuParentPath )
self:T( { self.MenuPath } )
if ParentMenu and ParentMenu.Menus then
ParentMenu.Menus[self.MenuPath] = self
end
return self
end
--- Removes the sub menus recursively of this MENU_COALITION. Note that the main menu is kept!
-- @param #MENU_COALITION self
-- @return #MENU_COALITION self
function MENU_COALITION:RemoveSubMenus()
self:F( self.MenuPath )
for MenuID, Menu in pairs( self.Menus ) do
Menu:Remove()
end
end
--- Removes the main menu and the sub menus recursively of this MENU_COALITION.
-- @param #MENU_COALITION self
-- @return #nil
function MENU_COALITION:Remove()
self:F( self.MenuPath )
self:RemoveSubMenus()
missionCommands.removeItemForCoalition( self.Coalition, self.MenuPath )
if self.ParentMenu then
self.ParentMenu.Menus[self.MenuPath] = nil
end
return nil
end
end
do -- MENU_COALITION_COMMAND
--- The MENU_COALITION_COMMAND class
-- @type MENU_COALITION_COMMAND
-- @extends Menu#MENU_COMMAND_BASE
MENU_COALITION_COMMAND = {
ClassName = "MENU_COALITION_COMMAND"
}
--- MENU_COALITION constructor. Creates a new radio command item for a coalition, which can invoke a function with parameters.
-- @param #MENU_COALITION_COMMAND self
-- @param DCSCoalition#coalition.side Coalition The coalition owning the menu.
-- @param #string MenuText The text for the menu.
-- @param Menu#MENU_COALITION ParentMenu The parent menu.
-- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function. There can only be ONE argument given. So multiple arguments must be wrapped into a table. See the below example how to do this.
-- @return #MENU_COALITION_COMMAND self
function MENU_COALITION_COMMAND:New( Coalition, MenuText, ParentMenu, CommandMenuFunction, ... )
local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, arg ) )
self.MenuCoalition = Coalition
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self:T( { MenuText, CommandMenuFunction, arg } )
self.MenuPath = missionCommands.addCommandForCoalition( self.MenuCoalition, MenuText, self.MenuParentPath, self.MenuCallHandler, arg )
ParentMenu.Menus[self.MenuPath] = self
return self
end
--- Removes a radio command item for a coalition
-- @param #MENU_COALITION_COMMAND self
-- @return #nil
function MENU_COALITION_COMMAND:Remove()
self:F( self.MenuPath )
missionCommands.removeItemForCoalition( self.MenuCoalition, self.MenuPath )
if self.ParentMenu then
self.ParentMenu.Menus[self.MenuPath] = nil
end
return nil
end
end
do -- MENU_CLIENT
-- This local variable is used to cache the menus registered under clients. -- This local variable is used to cache the menus registered under clients.
-- Menus don't dissapear when clients are destroyed and restarted. -- Menus don't dissapear when clients are destroyed and restarted.
@ -7256,20 +7512,70 @@ do
-- These menu classes are handling this logic with this variable. -- These menu classes are handling this logic with this variable.
local _MENUCLIENTS = {} local _MENUCLIENTS = {}
--- The MENU_CLIENT class --- MENU_COALITION constructor. Creates a new radio command item for a coalition, which can invoke a function with parameters.
-- @type MENU_CLIENT -- @type MENU_CLIENT
-- @extends Menu#MENU -- @extends Menu#MENU_BASE
-- @usage
-- -- This demo creates a menu structure for the two clients of planes.
-- -- Each client will receive a different menu structure.
-- -- To test, join the planes, then look at the other radio menus (Option F10).
-- -- Then switch planes and check if the menu is still there.
-- -- And play with the Add and Remove menu options.
--
-- -- Note that in multi player, this will only work after the DCS clients bug is solved.
--
-- local function ShowStatus( PlaneClient, StatusText, Coalition )
--
-- MESSAGE:New( Coalition, 15 ):ToRed()
-- PlaneClient:Message( StatusText, 15 )
-- end
--
-- local MenuStatus = {}
--
-- local function RemoveStatusMenu( MenuClient )
-- local MenuClientName = MenuClient:GetName()
-- MenuStatus[MenuClientName]:Remove()
-- end
--
-- --- @param Client#CLIENT MenuClient
-- local function AddStatusMenu( MenuClient )
-- env.info(MenuClient.ClientName)
-- local MenuClientName = MenuClient:GetName()
-- -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
-- MenuStatus[MenuClientName] = MENU_CLIENT:New( MenuClient, "Status for Planes" )
-- MENU_CLIENT_COMMAND:New( MenuClient, "Show Status", MenuStatus[MenuClientName], ShowStatus, MenuClient, "Status of planes is ok!", "Message to Red Coalition" )
-- end
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneClient = CLIENT:FindByName( "Plane 1" )
-- if PlaneClient and PlaneClient:IsAlive() then
-- local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneClient )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneClient )
-- end
-- end, {}, 10, 10 )
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneClient = CLIENT:FindByName( "Plane 2" )
-- if PlaneClient and PlaneClient:IsAlive() then
-- local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneClient )
-- MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneClient )
-- end
-- end, {}, 10, 10 )
MENU_CLIENT = { MENU_CLIENT = {
ClassName = "MENU_CLIENT" ClassName = "MENU_CLIENT"
} }
--- Creates a new menu item for a group --- MENU_CLIENT constructor. Creates a new radio menu item for a client.
-- @param self -- @param #MENU_CLIENT self
-- @param Client#CLIENT MenuClient The Client owning the menu. -- @param Client#CLIENT Client The Client owning the menu.
-- @param #string MenuText The text for the menu. -- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu. -- @param #table ParentMenu The parent menu.
-- @return #MENU_CLIENT self -- @return #MENU_CLIENT self
function MENU_CLIENT:New( MenuClient, MenuText, ParentMenu ) function MENU_CLIENT:New( Client, MenuText, ParentMenu )
-- Arrange meta tables -- Arrange meta tables
local MenuParentPath = {} local MenuParentPath = {}
@ -7277,11 +7583,11 @@ do
MenuParentPath = ParentMenu.MenuPath MenuParentPath = ParentMenu.MenuPath
end end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) local self = BASE:Inherit( self, MENU_BASE:New( MenuText, MenuParentPath ) )
self:F( { MenuClient, MenuText, ParentMenu } ) self:F( { Client, MenuText, ParentMenu } )
self.MenuClient = MenuClient self.MenuClient = Client
self.MenuClientGroupID = MenuClient:GetClientGroupID() self.MenuClientGroupID = Client:GetClientGroupID()
self.MenuParentPath = MenuParentPath self.MenuParentPath = MenuParentPath
self.MenuText = MenuText self.MenuText = MenuText
self.ParentMenu = ParentMenu self.ParentMenu = ParentMenu
@ -7294,7 +7600,7 @@ do
local MenuPath = _MENUCLIENTS[self.MenuClientGroupID] local MenuPath = _MENUCLIENTS[self.MenuClientGroupID]
self:T( { MenuClient:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText } ) self:T( { Client:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText } )
local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText
if MenuPath[MenuPathID] then if MenuPath[MenuPathID] then
@ -7304,7 +7610,7 @@ do
self.MenuPath = missionCommands.addSubMenuForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath ) self.MenuPath = missionCommands.addSubMenuForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath )
MenuPath[MenuPathID] = self.MenuPath MenuPath[MenuPathID] = self.MenuPath
self:T( { MenuClient:GetClientGroupName(), self.MenuPath } ) self:T( { Client:GetClientGroupName(), self.MenuPath } )
if ParentMenu and ParentMenu.Menus then if ParentMenu and ParentMenu.Menus then
ParentMenu.Menus[self.MenuPath] = self ParentMenu.Menus[self.MenuPath] = self
@ -7312,7 +7618,7 @@ do
return self return self
end end
--- Removes the sub menus recursively of this MENU_CLIENT. --- Removes the sub menus recursively of this @{#MENU_CLIENT}.
-- @param #MENU_CLIENT self -- @param #MENU_CLIENT self
-- @return #MENU_CLIENT self -- @return #MENU_CLIENT self
function MENU_CLIENT:RemoveSubMenus() function MENU_CLIENT:RemoveSubMenus()
@ -7326,7 +7632,7 @@ do
--- Removes the sub menus recursively of this MENU_CLIENT. --- Removes the sub menus recursively of this MENU_CLIENT.
-- @param #MENU_CLIENT self -- @param #MENU_CLIENT self
-- @return #MENU_CLIENT self -- @return #nil
function MENU_CLIENT:Remove() function MENU_CLIENT:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -7350,20 +7656,20 @@ do
--- The MENU_CLIENT_COMMAND class --- The MENU_CLIENT_COMMAND class
-- @type MENU_CLIENT_COMMAND -- @type MENU_CLIENT_COMMAND
-- @extends Menu#MENU -- @extends Menu#MENU_COMMAND
MENU_CLIENT_COMMAND = { MENU_CLIENT_COMMAND = {
ClassName = "MENU_CLIENT_COMMAND" ClassName = "MENU_CLIENT_COMMAND"
} }
--- Creates a new radio command item for a group --- MENU_CLIENT_COMMAND constructor. Creates a new radio command item for a client, which can invoke a function with parameters.
-- @param self -- @param #MENU_CLIENT_COMMAND self
-- @param Client#CLIENT MenuClient The Client owning the menu. -- @param Client#CLIENT Client The Client owning the menu.
-- @param MenuText The text for the menu. -- @param #string MenuText The text for the menu.
-- @param ParentMenu The parent menu. -- @param #MENU_BASE ParentMenu The parent menu.
-- @param CommandMenuFunction A function that is called when the menu key is pressed. -- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function. -- @param CommandMenuArgument An argument for the function.
-- @return Menu#MENU_CLIENT_COMMAND self -- @return Menu#MENU_CLIENT_COMMAND self
function MENU_CLIENT_COMMAND:New( MenuClient, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument ) function MENU_CLIENT_COMMAND:New( MenuClient, MenuText, ParentMenu, CommandMenuFunction, ... )
-- Arrange meta tables -- Arrange meta tables
@ -7372,7 +7678,7 @@ do
MenuParentPath = ParentMenu.MenuPath MenuParentPath = ParentMenu.MenuPath
end end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, MenuParentPath, CommandMenuFunction, arg ) ) -- Menu#MENU_CLIENT_COMMAND
self.MenuClient = MenuClient self.MenuClient = MenuClient
self.MenuClientGroupID = MenuClient:GetClientGroupID() self.MenuClientGroupID = MenuClient:GetClientGroupID()
@ -7386,24 +7692,24 @@ do
local MenuPath = _MENUCLIENTS[self.MenuClientGroupID] local MenuPath = _MENUCLIENTS[self.MenuClientGroupID]
self:T( { MenuClient:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText, CommandMenuFunction, CommandMenuArgument } ) self:T( { MenuClient:GetClientGroupName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText, CommandMenuFunction, arg } )
local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText
if MenuPath[MenuPathID] then if MenuPath[MenuPathID] then
missionCommands.removeItemForGroup( self.MenuClient:GetClientGroupID(), MenuPath[MenuPathID] ) missionCommands.removeItemForGroup( self.MenuClient:GetClientGroupID(), MenuPath[MenuPathID] )
end end
self.MenuPath = missionCommands.addCommandForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument ) self.MenuPath = missionCommands.addCommandForGroup( self.MenuClient:GetClientGroupID(), MenuText, MenuParentPath, self.MenuCallHandler, arg )
MenuPath[MenuPathID] = self.MenuPath MenuPath[MenuPathID] = self.MenuPath
self.CommandMenuFunction = CommandMenuFunction
self.CommandMenuArgument = CommandMenuArgument
ParentMenu.Menus[self.MenuPath] = self ParentMenu.Menus[self.MenuPath] = self
return self return self
end end
--- Removes a menu structure for a client.
-- @param #MENU_CLIENT_COMMAND self
-- @return #nil
function MENU_CLIENT_COMMAND:Remove() function MENU_CLIENT_COMMAND:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -7426,22 +7732,73 @@ end
--- MENU_GROUP --- MENU_GROUP
do do
-- This local variable is used to cache the menus registered under clients. -- This local variable is used to cache the menus registered under groups.
-- Menus don't dissapear when clients are destroyed and restarted. -- Menus don't dissapear when groups for players are destroyed and restarted.
-- So every menu for a client created must be tracked so that program logic accidentally does not create -- So every menu for a client created must be tracked so that program logic accidentally does not create.
-- the same menus twice during initialization logic. -- the same menus twice during initialization logic.
-- These menu classes are handling this logic with this variable. -- These menu classes are handling this logic with this variable.
local _MENUGROUPS = {} local _MENUGROUPS = {}
--- The MENU_GROUP class --- The MENU_GROUP class
-- @type MENU_GROUP -- @type MENU_GROUP
-- @extends Menu#MENU -- @extends Menu#MENU_BASE
-- @usage
-- -- This demo creates a menu structure for the two groups of planes.
-- -- Each group will receive a different menu structure.
-- -- To test, join the planes, then look at the other radio menus (Option F10).
-- -- Then switch planes and check if the menu is still there.
-- -- And play with the Add and Remove menu options.
--
-- -- Note that in multi player, this will only work after the DCS groups bug is solved.
--
-- local function ShowStatus( PlaneGroup, StatusText, Coalition )
--
-- MESSAGE:New( Coalition, 15 ):ToRed()
-- PlaneGroup:Message( StatusText, 15 )
-- end
--
-- local MenuStatus = {}
--
-- local function RemoveStatusMenu( MenuGroup )
-- local MenuGroupName = MenuGroup:GetName()
-- MenuStatus[MenuGroupName]:Remove()
-- end
--
-- --- @param Group#GROUP MenuGroup
-- local function AddStatusMenu( MenuGroup )
-- env.info(MenuGroup.GroupName)
-- local MenuGroupName = MenuGroup:GetName()
-- -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
-- MenuStatus[MenuGroupName] = MENU_GROUP:New( MenuGroup, "Status for Planes" )
-- MENU_GROUP_COMMAND:New( MenuGroup, "Show Status", MenuStatus[MenuGroupName], ShowStatus, MenuGroup, "Status of planes is ok!", "Message to Red Coalition" )
-- end
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneGroup = GROUP:FindByName( "Plane 1" )
-- if PlaneGroup and PlaneGroup:IsAlive() then
-- local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneGroup )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneGroup )
-- end
-- end, {}, 10, 10 )
--
-- SCHEDULER:New( nil,
-- function()
-- local PlaneGroup = GROUP:FindByName( "Plane 2" )
-- if PlaneGroup and PlaneGroup:IsAlive() then
-- local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneGroup )
-- MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneGroup )
-- end
-- end, {}, 10, 10 )
--
MENU_GROUP = { MENU_GROUP = {
ClassName = "MENU_GROUP" ClassName = "MENU_GROUP"
} }
--- Creates a new menu item for a group --- MENU_GROUP constructor. Creates a new radio menu item for a group.
-- @param self -- @param #MENU_GROUP self
-- @param Group#GROUP MenuGroup The Group owning the menu. -- @param Group#GROUP MenuGroup The Group owning the menu.
-- @param #string MenuText The text for the menu. -- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu. -- @param #table ParentMenu The parent menu.
@ -7454,7 +7811,7 @@ do
MenuParentPath = ParentMenu.MenuPath MenuParentPath = ParentMenu.MenuPath
end end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) ) local self = BASE:Inherit( self, MENU_BASE:New( MenuText, MenuParentPath ) )
self:F( { MenuGroup, MenuText, ParentMenu } ) self:F( { MenuGroup, MenuText, ParentMenu } )
self.MenuGroup = MenuGroup self.MenuGroup = MenuGroup
@ -7502,9 +7859,9 @@ do
end end
--- Removes the sub menus recursively of this MENU_GROUP. --- Removes the main menu and sub menus recursively of this MENU_GROUP.
-- @param #MENU_GROUP self -- @param #MENU_GROUP self
-- @return #MENU_GROUP self -- @return #nil
function MENU_GROUP:Remove() function MENU_GROUP:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -7530,7 +7887,7 @@ do
--- The MENU_GROUP_COMMAND class --- The MENU_GROUP_COMMAND class
-- @type MENU_GROUP_COMMAND -- @type MENU_GROUP_COMMAND
-- @extends Menu#MENU -- @extends Menu#MENU_BASE
MENU_GROUP_COMMAND = { MENU_GROUP_COMMAND = {
ClassName = "MENU_GROUP_COMMAND" ClassName = "MENU_GROUP_COMMAND"
} }
@ -7543,20 +7900,12 @@ do
-- @param CommandMenuFunction A function that is called when the menu key is pressed. -- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function. -- @param CommandMenuArgument An argument for the function.
-- @return Menu#MENU_GROUP_COMMAND self -- @return Menu#MENU_GROUP_COMMAND self
function MENU_GROUP_COMMAND:New( MenuGroup, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument ) function MENU_GROUP_COMMAND:New( MenuGroup, MenuText, ParentMenu, CommandMenuFunction, ... )
-- Arrange meta tables local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, arg ) )
local MenuParentPath = {}
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
self.MenuGroup = MenuGroup self.MenuGroup = MenuGroup
self.MenuGroupID = MenuGroup:GetID() self.MenuGroupID = MenuGroup:GetID()
self.MenuParentPath = MenuParentPath
self.MenuText = MenuText self.MenuText = MenuText
self.ParentMenu = ParentMenu self.ParentMenu = ParentMenu
@ -7566,25 +7915,25 @@ do
local MenuPath = _MENUGROUPS[self.MenuGroupID] local MenuPath = _MENUGROUPS[self.MenuGroupID]
self:T( { MenuGroup:GetName(), MenuPath[table.concat(MenuParentPath)], MenuParentPath, MenuText, CommandMenuFunction, CommandMenuArgument } ) self:T( { MenuGroup:GetName(), MenuPath[table.concat(self.MenuParentPath)], self.MenuParentPath, MenuText, CommandMenuFunction, arg } )
local MenuPathID = table.concat(MenuParentPath) .. "/" .. MenuText local MenuPathID = table.concat(self.MenuParentPath) .. "/" .. MenuText
if MenuPath[MenuPathID] then if MenuPath[MenuPathID] then
missionCommands.removeItemForGroup( self.MenuGroupID, MenuPath[MenuPathID] ) missionCommands.removeItemForGroup( self.MenuGroupID, MenuPath[MenuPathID] )
end end
self:T( { "Adding for MenuPath ", MenuText, MenuParentPath } ) self:T( { "Adding for MenuPath ", MenuText, self.MenuParentPath } )
self.MenuPath = missionCommands.addCommandForGroup( self.MenuGroupID, MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument ) self.MenuPath = missionCommands.addCommandForGroup( self.MenuGroupID, MenuText, self.MenuParentPath, self.MenuCallHandler, arg )
MenuPath[MenuPathID] = self.MenuPath MenuPath[MenuPathID] = self.MenuPath
self.CommandMenuFunction = CommandMenuFunction
self.CommandMenuArgument = CommandMenuArgument
ParentMenu.Menus[self.MenuPath] = self ParentMenu.Menus[self.MenuPath] = self
return self return self
end end
--- Removes a menu structure for a group.
-- @param #MENU_GROUP_COMMAND self
-- @return #nil
function MENU_GROUP_COMMAND:Remove() function MENU_GROUP_COMMAND:Remove()
self:F( self.MenuPath ) self:F( self.MenuPath )
@ -7606,128 +7955,6 @@ do
end end
--- The MENU_COALITION class
-- @type MENU_COALITION
-- @extends Menu#MENU
MENU_COALITION = {
ClassName = "MENU_COALITION"
}
--- Creates a new coalition menu item
-- @param #MENU_COALITION self
-- @param DCSCoalition#coalition.side Coalition The coalition owning the menu.
-- @param #string MenuText The text for the menu.
-- @param #table ParentMenu The parent menu.
-- @return #MENU_COALITION self
function MENU_COALITION:New( Coalition, MenuText, ParentMenu )
-- Arrange meta tables
local MenuParentPath = {}
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
self:F( { Coalition, MenuText, ParentMenu } )
self.Coalition = Coalition
self.MenuParentPath = MenuParentPath
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self.Menus = {}
self:T( { MenuParentPath, MenuText } )
self.MenuPath = missionCommands.addSubMenuForCoalition( self.Coalition, MenuText, MenuParentPath )
self:T( { self.MenuPath } )
if ParentMenu and ParentMenu.Menus then
ParentMenu.Menus[self.MenuPath] = self
end
return self
end
--- Removes the sub menus recursively of this MENU_COALITION.
-- @param #MENU_COALITION self
-- @return #MENU_COALITION self
function MENU_COALITION:RemoveSubMenus()
self:F( self.MenuPath )
for MenuID, Menu in pairs( self.Menus ) do
Menu:Remove()
end
end
--- Removes the sub menus recursively of this MENU_COALITION.
-- @param #MENU_COALITION self
-- @return #MENU_COALITION self
function MENU_COALITION:Remove()
self:F( self.MenuPath )
self:RemoveSubMenus()
missionCommands.removeItemForCoalition( self.MenuCoalition, self.MenuPath )
self.ParentMenu.Menus[self.MenuPath] = nil
return nil
end
--- The MENU_COALITION_COMMAND class
-- @type MENU_COALITION_COMMAND
-- @extends Menu#MENU
MENU_COALITION_COMMAND = {
ClassName = "MENU_COALITION_COMMAND"
}
--- Creates a new radio command item for a group
-- @param #MENU_COALITION_COMMAND self
-- @param DCSCoalition#coalition.side MenuCoalition The coalition owning the menu.
-- @param MenuText The text for the menu.
-- @param ParentMenu The parent menu.
-- @param CommandMenuFunction A function that is called when the menu key is pressed.
-- @param CommandMenuArgument An argument for the function.
-- @return #MENU_COALITION_COMMAND self
function MENU_COALITION_COMMAND:New( MenuCoalition, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument )
-- Arrange meta tables
local MenuParentPath = {}
if ParentMenu ~= nil then
MenuParentPath = ParentMenu.MenuPath
end
local self = BASE:Inherit( self, MENU:New( MenuText, MenuParentPath ) )
self.MenuCoalition = MenuCoalition
self.MenuParentPath = MenuParentPath
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self:T( { MenuParentPath, MenuText, CommandMenuFunction, CommandMenuArgument } )
self.MenuPath = missionCommands.addCommandForCoalition( self.MenuCoalition, MenuText, MenuParentPath, CommandMenuFunction, CommandMenuArgument )
self.CommandMenuFunction = CommandMenuFunction
self.CommandMenuArgument = CommandMenuArgument
ParentMenu.Menus[self.MenuPath] = self
return self
end
--- Removes a radio command item for a coalition
-- @param #MENU_COALITION_COMMAND self
-- @return #MENU_COALITION_COMMAND self
function MENU_COALITION_COMMAND:Remove()
self:F( self.MenuPath )
missionCommands.removeItemForCoalition( self.MenuCoalition, self.MenuPath )
self.ParentMenu.Menus[self.MenuPath] = nil
return nil
end
--- This module contains the GROUP class. --- This module contains the GROUP class.
-- --
-- 1) @{Group#GROUP} class, extends @{Controllable#CONTROLLABLE} -- 1) @{Group#GROUP} class, extends @{Controllable#CONTROLLABLE}
@ -27371,7 +27598,9 @@ do -- PROCESS_SMOKE_TARGETS
if math.random( 1, ( 100 * self.TargetSetUnit:Count() ) / 4 ) <= 100 then if math.random( 1, ( 100 * self.TargetSetUnit:Count() ) / 4 ) <= 100 then
SCHEDULER:New( self, SCHEDULER:New( self,
function() function()
if SmokeUnit:IsAlive() then
SmokeUnit:Smoke( self.SmokeColor, 150 ) SmokeUnit:Smoke( self.SmokeColor, 150 )
end
end, {}, math.random( 10, 60 ) end, {}, math.random( 10, 60 )
) )
end end

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
routes=
{
}

View File

@ -0,0 +1,209 @@
-- View scripts
-- Copyright (C) 2004, Eagle Dynamics.
DisableCombatViews = false -- F5 & Ctrl-F5
ExternalObjectsLockDistance = 10000.0
ShowTargetInfo = false
CameraTerrainRestriction = true
hAngleRearDefault = 180
vAngleRearDefault = -8.0
vAngleRearMin = -90 -- -8.0
vAngleRearMax = 90.0
dbg_shell = "weapons.shells.PKT_7_62_T" -- 23mm shell
-- dbg_shell = "weapons.shells.2A64_152" -- 152mm shell
dbg_shell_v0 = -1 -- Muzzle speed m/s (-1 - speed from shall database)
dbg_shell_fire_rate = 60
--reformatted per-unit data to be mod system friendly
--this file is no longer should be edited for adding new flyable aircraft , DCS automatically check core database (i.e. where you define your aircraft in aircraft table just define ViewSettings and SnapViews tables)
function default_fighter_player(t)
local res = {
CameraViewAngleLimits = {20.000000,140.000000},
CameraAngleRestriction = {false ,90.000000,0.500000},
EyePoint = {0.05 ,0.000000 ,0.000000},
limits_6DOF = {x = {-0.050000,0.4500000},y ={-0.300000,0.100000},z = {-0.220000,0.220000},roll = 90.000000},
Allow360rotation = false,
CameraAngleLimits = {200,-80.000000,110.000000},
ShoulderSize = 0.2, -- move body when azimuth value more then 90 degrees
}
if t then
for i,o in pairs(t) do
res[i] = o
end
end
return res
end
function fulcrum()
return {
Cockpit = {
default_fighter_player({CockpitLocalPoint = {4.71,1.28,0.000000}})
},
Chase = {
LocalPoint = {1.220000,3.750000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Chase
Arcade = {
LocalPoint = {-15.080000,6.350000,0.000000},
AnglesDefault = {0.000000,-8.000000},
}, -- Arcade
}
end
ViewSettings = {}
ViewSettings["A-10A"] = {
Cockpit = {
[1] = default_fighter_player({CockpitLocalPoint = {4.300000,1.282000,0.000000},
EyePoint = {0.000000,0.000000,0.000000},
limits_6DOF = {x = {-0.050000,0.600000},
y = {-0.300000,0.100000},
z = {-0.250000,0.250000},
roll = 90.000000}}),
}, -- Cockpit
Chase = {
LocalPoint = {0.600000,3.682000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Chase
Arcade = {
LocalPoint = {-27.000000,12.000000,0.000000},
AnglesDefault = {0.000000,-12.000000},
}, -- Arcade
}
ViewSettings["A-10C"] = {
Cockpit = {
[1] = default_fighter_player({CockpitLocalPoint = {4.300000,1.282000,0.000000},
EyePoint = {0.000000,0.000000,0.000000},
limits_6DOF = {x = {-0.050000,0.600000},
y = {-0.300000,0.100000},
z = {-0.250000,0.250000},
roll = 90.000000}}),
}, -- Cockpit
Chase = {
LocalPoint = {0.600000,3.682000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Chase
Arcade = {
LocalPoint = {-27.000000,12.000000,0.000000},
AnglesDefault = {0.000000,-12.000000},
}, -- Arcade
}
ViewSettings["F-15C"] = {
Cockpit = {
[1] = default_fighter_player({CockpitLocalPoint = {6.210000,1.204000,0.000000}})-- player slot 1
}, -- Cockpit
Chase = {
LocalPoint = {2.510000,3.604000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Chase
Arcade = {
LocalPoint = {-13.790000,6.204000,0.000000},
AnglesDefault = {0.000000,-8.000000},
}, -- Arcade
}
ViewSettings["Ka-50"] = {
Cockpit = {
[1] = {-- player slot 1
CockpitLocalPoint = {3.188000,0.390000,0.000000},
CameraViewAngleLimits = {20.000000,120.000000},
CameraAngleRestriction = {false,60.000000,0.400000},
CameraAngleLimits = {140.000000,-65.000000,90.000000},
EyePoint = {0.090000,0.000000,0.000000},
limits_6DOF = {x = {-0.020000,0.350000},y ={-0.150000,0.165000},z = {-0.170000,0.170000},roll = 90.000000},
},
}, -- Cockpit
Chase = {
LocalPoint = {-0.512000,2.790000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Chase
Arcade = {
LocalPoint = {-16.812000,5.390000,0.000000},
AnglesDefault = {0.000000,-8.000000},
}, -- Arcade
}
ViewSettings["MiG-29A"] = fulcrum()
ViewSettings["MiG-29G"] = fulcrum()
ViewSettings["MiG-29S"] = fulcrum()
ViewSettings["P-51D"] = {
Cockpit = {
[1] = {-- player slot 1
CockpitLocalPoint = {-1.500000,0.618000,0.000000},
CameraViewAngleLimits = {20.000000,120.000000},
CameraAngleRestriction = {false,90.000000,0.500000},
CameraAngleLimits = {200,-80.000000,90.000000},
EyePoint = {0.025000,0.100000,0.000000},
ShoulderSize = 0.15,
Allow360rotation = false,
limits_6DOF = {x = {-0.050000,0.450000},y ={-0.200000,0.200000},z = {-0.220000,0.220000},roll = 90.000000},
},
}, -- Cockpit
Chase = {
LocalPoint = {0.200000,-0.652000,-0.650000},
AnglesDefault = {0.000000,0.000000},
}, -- Chase
Arcade = {
LocalPoint = {-21.500000,5.618000,0.000000},
AnglesDefault = {0.000000,-8.000000},
}, -- Arcade
}
ViewSettings["Su-25"] = {
Cockpit = {
[1] = default_fighter_player({CockpitLocalPoint = {3.352000,0.506000,0.000000}}),-- player slot 1
}, -- Cockpit
Chase = {
LocalPoint = {-0.348000,2.906000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Chase
Arcade = {
LocalPoint = {-16.648001,5.506000,0.000000},
AnglesDefault = {0.000000,-8.000000},
}, -- Arcade
}
ViewSettings["Su-25T"] = {
Cockpit = {
[1] = default_fighter_player({CockpitLocalPoint = {3.406000,0.466000,0.000000}}),-- player slot 1
}, -- Cockpit
Chase = {
LocalPoint = {-0.294000,2.866000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Chase
Arcade = {
LocalPoint = {-16.594000,5.466000,0.000000},
AnglesDefault = {0.000000,-8.000000},
}, -- Arcade
}
ViewSettings["Su-25TM"] = {
Cockpit = {
[1] = {-- player slot 1
CockpitLocalPoint = {4.000000,1.000000,0.000000},
CameraViewAngleLimits = {20.000000,140.000000},
CameraAngleRestriction = {true,90.000000,0.400000},
CameraAngleLimits = {160.000000,-70.000000,90.000000},
EyePoint = {0.000000,0.000000,0.000000},
limits_6DOF = {x = {-0.200000,0.200000},y ={-0.200000,0.200000},z = {-0.200000,0.200000},roll = 60.000000},
},
}, -- Cockpit
Chase = {
LocalPoint = {4.000000,2.000000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Chase
Arcade = {
LocalPoint = {4.000000,2.000000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Arcade
}
ViewSettings["Su-27"] = {
Cockpit = {
[1] = default_fighter_player({CockpitLocalPoint = {7.959000,1.419000,0.000000}})-- player slot 1
}, -- Cockpit
Chase = {
LocalPoint = {4.259000,3.819000,0.000000},
AnglesDefault = {180.000000,-8.000000},
}, -- Chase
Arcade = {
LocalPoint = {-12.041000,6.419000,0.000000},
AnglesDefault = {0.000000,-8.000000},
}, -- Arcade
}
ViewSettings["Su-33"] = ViewSettings["Su-27"]

View File

@ -0,0 +1,128 @@
-- View scripts
-- Copyright (C) 2004, Eagle Dynamics.
CockpitMouse = true --false
CockpitMouseSpeedSlow = 1.0
CockpitMouseSpeedNormal = 10.0
CockpitMouseSpeedFast = 20.0
CockpitKeyboardAccelerationSlow = 5.0
CockpitKeyboardAccelerationNormal = 30.0
CockpitKeyboardAccelerationFast = 80.0
CockpitKeyboardZoomAcceleration = 300.0
DisableSnapViewsSaving = false
UseDefaultSnapViews = true
CockpitPanStepHor = 45.0
CockpitPanStepVert = 30.0
CockpitNyMove = true
CockpitHAngleAccelerateTimeMax = 0.15
CockpitVAngleAccelerateTimeMax = 0.15
CockpitZoomAccelerateTimeMax = 0.2
function NaturalHeadMoving(tang, roll, omz)
local r = roll
if r > 90.0 then
r = 180.0 - r
elseif roll < -90.0 then
r = -180.0 - r
end
local hAngle = -0.25 * r
local vAngle = math.min(math.max(0.0, 0.4 * tang + 45.0 * omz), 90.0)
return hAngle, vAngle
end
ExternalMouse = true
ExternalMouseSpeedSlow = 1.0
ExternalMouseSpeedNormal = 5.0
ExternalMouseSpeedFast = 20.0
ExternalViewAngleMin = 3.0
ExternalViewAngleMax = 170.0
ExternalViewAngleDefault = 60.0
ExternalKeyboardZoomAcceleration = 30.0
ExternalKeyboardZoomAccelerateTimeMax = 1.0
ExplosionExpoTime = 4.0
ExternalKeyboardAccelerationSlow = 1.0
ExternalKeyboardAccelerationNormal = 10.0
ExternalKeyboardAccelerationFast = 30.0
ExternalHAngleAccelerateTimeMax = 3.0
ExternalVAngleAccelerateTimeMax = 3.0
ExternalDistAccelerateTimeMax = 3.0
ExternalHAngleLocalAccelerateTimeMax = 3.0
ExternalVAngleLocalAccelerateTimeMax = 3.0
ExternalAngleNormalDiscreteStep = 15.0/ExternalKeyboardAccelerationNormal -- When 'S' is pressed only
ChaseCameraNyMove = true
FreeCameraAngleIncrement = 3.0
FreeCameraDistanceIncrement = 200.0
FreeCameraLeftRightIncrement = 2.0
FreeCameraAltitudeIncrement = 2.0
FreeCameraScalarSpeedAcceleration = 0.1
xMinMap = -300000
xMaxMap = 500000
yMinMap = -400000
yMaxMap = 200000
dxMap = 150000
dyMap = 100000
head_roll_shaking = true
head_roll_shaking_max = 30.0
head_roll_shaking_compensation_gain = 0.3
-- CameraJiggle() and CameraFloat() functions make camera position
-- dependent on FPS so be careful in using the Shift-J command with tracks, please.
-- uncomment to use custom jiggle functions
--[[
function CameraJiggle(t,rnd1,rnd2,rnd3)
local rotX, rotY, rotZ
rotX = 0.05 * rnd1 * math.sin(37.0 * (t - 0.0))
rotY = 0.05 * rnd2 * math.sin(41.0 * (t - 1.0))
rotZ = 0.05 * rnd3 * math.sin(53.0 * (t - 2.0))
return rotX, rotY, rotZ
end
function CameraFloat(t)
local dX, dY, dZ
dX = 0.61 * math.sin(0.7 * t) + 0.047 * math.sin(1.6 * t);
dY = 0.43 * math.sin(0.6 * t) + 0.067 * math.sin(1.7 * t);
dZ = 0.53 * math.sin(1.0 * t) + 0.083 * math.sin(1.9 * t);
return dX, dY, dZ
end
--]]
--Debug keys
DEBUG_TEXT = 1
DEBUG_GEOMETRY = 2
debug_keys = {
[DEBUG_TEXT] = 1,
[DEBUG_GEOMETRY] = 1
}
function onDebugCommand(command)
if command == 10000 then
if debug_keys[DEBUG_TEXT] ~= 0 or debug_keys[DEBUG_GEOMETRY] ~= 0 then
debug_keys[DEBUG_GEOMETRY] = 0
debug_keys[DEBUG_TEXT] = 0
else
debug_keys[DEBUG_GEOMETRY] = 1
debug_keys[DEBUG_TEXT] = 1
end
elseif command == 10001 then
if debug_keys[DEBUG_TEXT] ~= 0 then
debug_keys[DEBUG_TEXT] = 0
else
debug_keys[DEBUG_TEXT] = 1
end
elseif command == 10002 then
if debug_keys[DEBUG_GEOMETRY] ~= 0 then
debug_keys[DEBUG_GEOMETRY] = 0
else
debug_keys[DEBUG_GEOMETRY] = 1
end
end
end
-- gain values for TrackIR , to unify responce on diffrent types of aircraft
TrackIR_gain_x = -0.6
TrackIR_gain_y = 0.3
TrackIR_gain_z = -0.25
TrackIR_gain_roll = -90

View File

@ -0,0 +1,53 @@
mode = ADF_ADF
receiver_mode = ADF_RECEIVER_TLF
homer_selection_method = ADF_HOMER_SELECTION_AUTO
channel = 1
volume = 0.5
local theatre = theatre or "none"
if theatre == 'Caucasus' then
channels = {
[1] = runway_homer_pair(Airdrome[Krasnodar],nil,localizedAirdromeName(terrainAirdromes[Krasnodar])),
[2] = runway_homer_pair(Airdrome[Maykop] ,nil,localizedAirdromeName(terrainAirdromes[Maykop])),
[3] = runway_homer_pair(Airdrome[Krymsk] ,nil,localizedAirdromeName(terrainAirdromes[Krymsk])),
[4] = runway_homer_pair(Airdrome[Anapa] ,nil,localizedAirdromeName(terrainAirdromes[Anapa])),
[5] = runway_homer_pair(Airdrome[Mozdok] ,nil,localizedAirdromeName(terrainAirdromes[Mozdok])),
[6] = runway_homer_pair(Airdrome[Nalchick] ,nil,localizedAirdromeName(terrainAirdromes[Nalchick])),
[7] = runway_homer_pair(Airdrome[MinVody] ,nil,localizedAirdromeName(terrainAirdromes[MinVody])),
[8] = {
[ADF_HOMER_FAR] = NDB(beacons["NDB_KISLOVODSK"]),
[ADF_HOMER_NEAR] = NDB(beacons["NDB_PEREDOVAIA"])
}
}
elseif theatre == 'Nevada' then
local beacons_by_name = {}
for i,o in pairs(beacons) do
if o.name == '' then
beacons_by_name[o.beaconId] = o
else
beacons_by_name[o.name] = o
end
end
local nevada_pair = function (id_1,id_2) return {
[ADF_HOMER_FAR] = NDB(beacons_by_name[id_1]),
[ADF_HOMER_NEAR] = NDB(beacons_by_name[id_2])
}
end
channels = {
nevada_pair('IndianSprings','Groom_Lake'),
nevada_pair('LasVegas','Nellis'),
nevada_pair("Milford","GOFFS"),
nevada_pair("Tonopah","Mina"),
nevada_pair("WilsonCreek","CedarCity"),
nevada_pair("BryceCanyon","MormonMesa"),
nevada_pair("Beatty","Bishop"),
nevada_pair("Coaldale","PeachSprings"),
nevada_pair("BoulderCity","Mercury"),
}
end

View File

@ -0,0 +1,880 @@
SAT_SYS_GLONASS = 0
SAT_SYS_GPS = 1
almanac = {}
--GPS
almanac[0] = {}
almanac[0]["System"] = SAT_SYS_GPS
almanac[0]["Number"] = 1
almanac[0]["Orbital"] = "F"
almanac[0]["Eccentricity"] = 6.294000e-003
almanac[0]["Time_of_Applicability"] = 5.898240e+005
almanac[0]["Orbital_Inclination"] = 9.885676e-001
almanac[0]["Rate_of_Right_Ascen"] = -7.862702e-009
almanac[0]["SQRT_A"] = 5.153700e+003
almanac[0]["Right_Ascen_at_Week"] = 8.096750e-001
almanac[0]["Argument_of_Perigee"] = -1.777773e+000
almanac[0]["Mean_Anom"] = -5.315745e-001
almanac[0]["week"] = 1390
almanac[1] = {}
almanac[1]["System"] = SAT_SYS_GPS
almanac[1]["Number"] = 2
almanac[1]["Orbital"] = "C"
almanac[1]["Eccentricity"] = 8.794000e-003
almanac[1]["Time_of_Applicability"] = 5.898240e+005
almanac[1]["Orbital_Inclination"] = 9.487811e-001
almanac[1]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[1]["SQRT_A"] = 5.153700e+003
almanac[1]["Right_Ascen_at_Week"] = -1.329172e+000
almanac[1]["Argument_of_Perigee"] = 2.138637e+000
almanac[1]["Mean_Anom"] = 7.311702e-001
almanac[1]["week"] = 1390
almanac[2] = {}
almanac[2]["System"] = SAT_SYS_GPS
almanac[2]["Number"] = 3
almanac[2]["Orbital"] = "F"
almanac[2]["Eccentricity"] = 8.424000e-003
almanac[2]["Time_of_Applicability"] = 5.898240e+005
almanac[2]["Orbital_Inclination"] = 9.262804e-001
almanac[2]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[2]["SQRT_A"] = 5.153600e+003
almanac[2]["Right_Ascen_at_Week"] = -2.341514e+000
almanac[2]["Argument_of_Perigee"] = 6.749357e-001
almanac[2]["Mean_Anom"] = -2.296153e-001
almanac[2]["week"] = 1389
almanac[3] = {}
almanac[3]["System"] = SAT_SYS_GPS
almanac[3]["Number"] = 4
almanac[3]["Orbital"] = "D"
almanac[3]["Eccentricity"] = 7.413000e-003
almanac[3]["Time_of_Applicability"] = 5.898240e+005
almanac[3]["Orbital_Inclination"] = 9.482889e-001
almanac[3]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[3]["SQRT_A"] = 5.153600e+003
almanac[3]["Right_Ascen_at_Week"] = -1.309589e+000
almanac[3]["Argument_of_Perigee"] = 1.623504e-001
almanac[3]["Mean_Anom"] = -3.022943e+000
almanac[3]["week"] = 1390
almanac[4] = {}
almanac[4]["System"] = SAT_SYS_GPS
almanac[4]["Number"] = 5
almanac[4]["Orbital"] = "B"
almanac[4]["Eccentricity"] = 7.432000e-003
almanac[4]["Time_of_Applicability"] = 5.898240e+005
almanac[4]["Orbital_Inclination"] = 9.387437e-001
almanac[4]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[4]["SQRT_A"] = 5.153700e+003
almanac[4]["Right_Ascen_at_Week"] = 2.779487e+000
almanac[4]["Argument_of_Perigee"] = 1.099033e+000
almanac[4]["Mean_Anom"] = 2.970984e+000
almanac[4]["week"] = 1390
almanac[5] = {}
almanac[5]["System"] = SAT_SYS_GPS
almanac[5]["Number"] = 6
almanac[5]["Orbital"] = "C"
almanac[5]["Eccentricity"] = 6.020000e-003
almanac[5]["Time_of_Applicability"] = 5.898240e+005
almanac[5]["Orbital_Inclination"] = 9.337591e-001
almanac[5]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[5]["SQRT_A"] = 5.153600e+003
almanac[5]["Right_Ascen_at_Week"] = -2.407627e+000
almanac[5]["Argument_of_Perigee"] = -1.788263e+000
almanac[5]["Mean_Anom"] = -2.149877e+000
almanac[5]["week"] = 1390
almanac[6] = {}
almanac[6]["System"] = SAT_SYS_GPS
almanac[6]["Number"] = 7
almanac[6]["Orbital"] = "C"
almanac[6]["Eccentricity"] = 1.052400e-002
almanac[6]["Time_of_Applicability"] = 5.898240e+005
almanac[6]["Orbital_Inclination"] = 9.353229e-001
almanac[6]["Rate_of_Right_Ascen"] = -8.080868e-009
almanac[6]["SQRT_A"] = 5.153700e+003
almanac[6]["Right_Ascen_at_Week"] = -2.433580e+000
almanac[6]["Argument_of_Perigee"] = -1.767301e+000
almanac[6]["Mean_Anom"] = -3.141503e+000
almanac[6]["week"] = 1390
almanac[7] = {}
almanac[7]["System"] = SAT_SYS_GPS
almanac[7]["Number"] = 8
almanac[7]["Orbital"] = "A"
almanac[7]["Eccentricity"] = 9.822000e-003
almanac[7]["Time_of_Applicability"] = 5.898240e+005
almanac[7]["Orbital_Inclination"] = 9.741390e-001
almanac[7]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[7]["SQRT_A"] = 5.153600e+003
almanac[7]["Right_Ascen_at_Week"] = 1.857849e+000
almanac[7]["Argument_of_Perigee"] = 2.674034e+000
almanac[7]["Mean_Anom"] = -2.009745e+000
almanac[7]["week"] = 1390
almanac[8] = {}
almanac[8]["System"] = SAT_SYS_GPS
almanac[8]["Number"] = 9
almanac[8]["Orbital"] = "A"
almanac[8]["Eccentricity"] = 1.839300e-002
almanac[8]["Time_of_Applicability"] = 5.898240e+005
almanac[8]["Orbital_Inclination"] = 9.617541e-001
almanac[8]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[8]["SQRT_A"] = 5.153600e+003
almanac[8]["Right_Ascen_at_Week"] = 1.777005e+000
almanac[8]["Argument_of_Perigee"] = 1.274962e+000
almanac[8]["Mean_Anom"] = -2.349578e+000
almanac[8]["week"] = 1390
almanac[9] = {}
almanac[9]["System"] = SAT_SYS_GPS
almanac[9]["Number"] = 10
almanac[9]["Orbital"] = "E"
almanac[9]["Eccentricity"] = 7.061000e-003
almanac[9]["Time_of_Applicability"] = 5.898240e+005
almanac[9]["Orbital_Inclination"] = 9.728876e-001
almanac[9]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[9]["SQRT_A"] = 5.153600e+003
almanac[9]["Right_Ascen_at_Week"] = -2.563014e-001
almanac[9]["Argument_of_Perigee"] = 4.377980e-001
almanac[9]["Mean_Anom"] = 1.210716e+000
almanac[9]["week"] = 1390
almanac[10] = {}
almanac[10]["System"] = SAT_SYS_GPS
almanac[10]["Number"] = 11
almanac[10]["Orbital"] = "D"
almanac[10]["Eccentricity"] = 5.744000e-003
almanac[10]["Time_of_Applicability"] = 5.898240e+005
almanac[10]["Orbital_Inclination"] = 8.959309e-001
almanac[10]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[10]["SQRT_A"] = 5.153600e+003
almanac[10]["Right_Ascen_at_Week"] = -1.478816e+000
almanac[10]["Argument_of_Perigee"] = 3.750011e-001
almanac[10]["Mean_Anom"] = -1.522048e+000
almanac[10]["week"] = 1390
almanac[11] = {}
almanac[11]["System"] = SAT_SYS_GPS
almanac[11]["Number"] = 13
almanac[11]["Orbital"] = "F"
almanac[11]["Eccentricity"] = 3.088000e-003
almanac[11]["Time_of_Applicability"] = 5.898240e+005
almanac[11]["Orbital_Inclination"] = 9.927564e-001
almanac[11]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[11]["SQRT_A"] = 5.153700e+003
almanac[11]["Right_Ascen_at_Week"] = 7.956600e-001
almanac[11]["Argument_of_Perigee"] = 1.279395e+000
almanac[11]["Mean_Anom"] = 1.004349e+000
almanac[11]["week"] = 1390
almanac[12] = {}
almanac[12]["System"] = SAT_SYS_GPS
almanac[12]["Number"] = 14
almanac[12]["Orbital"] = "F"
almanac[12]["Eccentricity"] = 2.591000e-003
almanac[12]["Time_of_Applicability"] = 5.898240e+005
almanac[12]["Orbital_Inclination"] = 9.868729e-001
almanac[12]["Rate_of_Right_Ascen"] = -7.885391e-009
almanac[12]["SQRT_A"] = 5.153600e+003
almanac[12]["Right_Ascen_at_Week"] = 7.819592e-001
almanac[12]["Argument_of_Perigee"] = -2.158621e+000
almanac[12]["Mean_Anom"] = 5.412611e-001
almanac[12]["week"] = 1390
almanac[13] = {}
almanac[13]["System"] = SAT_SYS_GPS
almanac[13]["Number"] = 15
almanac[13]["Orbital"] = "D"
almanac[13]["Eccentricity"] = 9.828000e-003
almanac[13]["Time_of_Applicability"] = 3.194880e+005
almanac[13]["Orbital_Inclination"] = 9.554204e-001
almanac[13]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[13]["SQRT_A"] = 5.153600e+003
almanac[13]["Right_Ascen_at_Week"] = -1.123869e+000
almanac[13]["Argument_of_Perigee"] = 2.690266e+000
almanac[13]["Mean_Anom"] = 2.220476e+000
almanac[13]["week"] = 1389
almanac[14] = {}
almanac[14]["System"] = SAT_SYS_GPS
almanac[14]["Number"] = 16
almanac[14]["Orbital"] = "B"
almanac[14]["Eccentricity"] = 3.494000e-003
almanac[14]["Time_of_Applicability"] = 5.898240e+005
almanac[14]["Orbital_Inclination"] = 9.629340e-001
almanac[14]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[14]["SQRT_A"] = 5.153700e+003
almanac[14]["Right_Ascen_at_Week"] = 2.873124e+000
almanac[14]["Argument_of_Perigee"] = -7.819243e-001
almanac[14]["Mean_Anom"] = 2.623629e+000
almanac[14]["week"] = 1390
almanac[15] = {}
almanac[15]["System"] = SAT_SYS_GPS
almanac[15]["Number"] = 17
almanac[15]["Orbital"] = "C"
almanac[15]["Eccentricity"] = 2.141000e-003
almanac[15]["Time_of_Applicability"] = 5.898240e+005
almanac[15]["Orbital_Inclination"] = 9.601170e-001
almanac[15]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[15]["SQRT_A"] = 5.153700e+003
almanac[15]["Right_Ascen_at_Week"] = -2.371499e+000
almanac[15]["Argument_of_Perigee"] = 3.087694e+000
almanac[15]["Mean_Anom"] = 1.611217e+000
almanac[15]["week"] = 1390
almanac[16] = {}
almanac[16]["System"] = SAT_SYS_GPS
almanac[16]["Number"] = 18
almanac[16]["Orbital"] = "E"
almanac[16]["Eccentricity"] = 7.636000e-003
almanac[16]["Time_of_Applicability"] = 5.898240e+005
almanac[16]["Orbital_Inclination"] = 9.569597e-001
almanac[16]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[16]["SQRT_A"] = 5.153700e+003
almanac[16]["Right_Ascen_at_Week"] = -2.359858e-001
almanac[16]["Argument_of_Perigee"] = -2.649216e+000
almanac[16]["Mean_Anom"] = 2.675029e+000
almanac[16]["week"] = 1390
almanac[17] = {}
almanac[17]["System"] = SAT_SYS_GPS
almanac[17]["Number"] = 19
almanac[17]["Orbital"] = "C"
almanac[17]["Eccentricity"] = 3.602000e-003
almanac[17]["Time_of_Applicability"] = 5.898240e+005
almanac[17]["Orbital_Inclination"] = 9.580209e-001
almanac[17]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[17]["SQRT_A"] = 5.153600e+003
almanac[17]["Right_Ascen_at_Week"] = -2.312385e+000
almanac[17]["Argument_of_Perigee"] = -1.161079e+000
almanac[17]["Mean_Anom"] = 1.310619e+000
almanac[17]["week"] = 1390
almanac[18] = {}
almanac[18]["System"] = SAT_SYS_GPS
almanac[18]["Number"] = 20
almanac[18]["Orbital"] = "E"
almanac[18]["Eccentricity"] = 2.796000e-003
almanac[18]["Time_of_Applicability"] = 5.898240e+005
almanac[18]["Orbital_Inclination"] = 9.564693e-001
almanac[18]["Rate_of_Right_Ascen"] = -7.908080e-009
almanac[18]["SQRT_A"] = 5.153600e+003
almanac[18]["Right_Ascen_at_Week"] = -2.889565e-001
almanac[18]["Argument_of_Perigee"] = 1.379612e+000
almanac[18]["Mean_Anom"] = 2.461750e+000
almanac[18]["week"] = 1390
almanac[19] = {}
almanac[19]["System"] = SAT_SYS_GPS
almanac[19]["Number"] = 21
almanac[19]["Orbital"] = "D"
almanac[19]["Eccentricity"] = 1.162900e-002
almanac[19]["Time_of_Applicability"] = 5.898240e+005
almanac[19]["Orbital_Inclination"] = 9.418592e-001
almanac[19]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[19]["SQRT_A"] = 5.153600e+003
almanac[19]["Right_Ascen_at_Week"] = -1.289972e+000
almanac[19]["Argument_of_Perigee"] = -2.923686e+000
almanac[19]["Mean_Anom"] = -2.349194e+000
almanac[19]["week"] = 1390
almanac[20] = {}
almanac[20]["System"] = SAT_SYS_GPS
almanac[20]["Number"] = 22
almanac[20]["Orbital"] = "E"
almanac[20]["Eccentricity"] = 4.893000e-003
almanac[20]["Time_of_Applicability"] = 5.898240e+005
almanac[20]["Orbital_Inclination"] = 9.545093e-001
almanac[20]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[20]["SQRT_A"] = 5.153600e+003
almanac[20]["Right_Ascen_at_Week"] = -2.280969e-001
almanac[20]["Argument_of_Perigee"] = -1.674502e+000
almanac[20]["Mean_Anom"] = 1.106852e+000
almanac[20]["week"] = 1390
almanac[21] = {}
almanac[21]["System"] = SAT_SYS_GPS
almanac[21]["Number"] = 23
almanac[21]["Orbital"] = "F"
almanac[21]["Eccentricity"] = 4.822000e-003
almanac[21]["Time_of_Applicability"] = 5.898240e+005
almanac[21]["Orbital_Inclination"] = 9.691247e-001
almanac[21]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[21]["SQRT_A"] = 5.153700e+003
almanac[21]["Right_Ascen_at_Week"] = 7.667399e-001
almanac[21]["Argument_of_Perigee"] = 2.497634e+000
almanac[21]["Mean_Anom"] = 3.184700e-001
almanac[21]["week"] = 1390
almanac[22] = {}
almanac[22]["System"] = SAT_SYS_GPS
almanac[22]["Number"] = 24
almanac[22]["Orbital"] = "D"
almanac[22]["Eccentricity"] = 9.277000e-003
almanac[22]["Time_of_Applicability"] = 5.898240e+005
almanac[22]["Orbital_Inclination"] = 9.585183e-001
almanac[22]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[22]["SQRT_A"] = 5.153900e+003
almanac[22]["Right_Ascen_at_Week"] = -1.274840e+000
almanac[22]["Argument_of_Perigee"] = -8.815651e-001
almanac[22]["Mean_Anom"] = -1.695551e+000
almanac[22]["week"] = 1390
almanac[23] = {}
almanac[23]["System"] = SAT_SYS_GPS
almanac[23]["Number"] = 25
almanac[23]["Orbital"] = "A"
almanac[23]["Eccentricity"] = 1.257400e-002
almanac[23]["Time_of_Applicability"] = 5.898240e+005
almanac[23]["Orbital_Inclination"] = 9.551027e-001
almanac[23]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[23]["SQRT_A"] = 5.153600e+003
almanac[23]["Right_Ascen_at_Week"] = 1.721853e+000
almanac[23]["Argument_of_Perigee"] = -1.329870e+000
almanac[23]["Mean_Anom"] = -1.769623e+000
almanac[23]["week"] = 1390
almanac[24] = {}
almanac[24]["System"] = SAT_SYS_GPS
almanac[24]["Number"] = 26
almanac[24]["Orbital"] = "F"
almanac[24]["Eccentricity"] = 1.745700e-002
almanac[24]["Time_of_Applicability"] = 5.898240e+005
almanac[24]["Orbital_Inclination"] = 9.908749e-001
almanac[24]["Rate_of_Right_Ascen"] = -7.840012e-009
almanac[24]["SQRT_A"] = 5.153700e+003
almanac[24]["Right_Ascen_at_Week"] = 7.961836e-001
almanac[24]["Argument_of_Perigee"] = 8.161502e-001
almanac[24]["Mean_Anom"] = -5.841961e-001
almanac[24]["week"] = 1390
almanac[25] = {}
almanac[25]["System"] = SAT_SYS_GPS
almanac[25]["Number"] = 27
almanac[25]["Orbital"] = "A"
almanac[25]["Eccentricity"] = 1.991000e-002
almanac[25]["Time_of_Applicability"] = 5.898240e+005
almanac[25]["Orbital_Inclination"] = 9.596563e-001
almanac[25]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[25]["SQRT_A"] = 5.153600e+003
almanac[25]["Right_Ascen_at_Week"] = 1.754124e+000
almanac[25]["Argument_of_Perigee"] = -1.900854e+000
almanac[25]["Mean_Anom"] = 3.046487e+000
almanac[25]["week"] = 1390
almanac[26] = {}
almanac[26]["System"] = SAT_SYS_GPS
almanac[26]["Number"] = 28
almanac[26]["Orbital"] = "B"
almanac[26]["Eccentricity"] = 1.162800e-002
almanac[26]["Time_of_Applicability"] = 5.898240e+005
almanac[26]["Orbital_Inclination"] = 9.610106e-001
almanac[26]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[26]["SQRT_A"] = 5.153600e+003
almanac[26]["Right_Ascen_at_Week"] = 2.882583e+000
almanac[26]["Argument_of_Perigee"] = -2.242868e+000
almanac[26]["Mean_Anom"] = 1.860642e+000
almanac[26]["week"] = 1390
almanac[27] = {}
almanac[27]["System"] = SAT_SYS_GPS
almanac[27]["Number"] = 29
almanac[27]["Orbital"] = "F"
almanac[27]["Eccentricity"] = 9.462000e-003
almanac[27]["Time_of_Applicability"] = 1.474560e+005
almanac[27]["Orbital_Inclination"] = 9.874838e-001
almanac[27]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[27]["SQRT_A"] = 5.153700e+003
almanac[27]["Right_Ascen_at_Week"] = 7.647503e-001
almanac[27]["Argument_of_Perigee"] = -8.614589e-001
almanac[27]["Mean_Anom"] = -4.488983e-001
almanac[27]["week"] = 1390
almanac[28] = {}
almanac[28]["System"] = SAT_SYS_GPS
almanac[28]["Number"] = 30
almanac[28]["Orbital"] = "B"
almanac[28]["Eccentricity"] = 9.296000e-003
almanac[28]["Time_of_Applicability"] = 5.898240e+005
almanac[28]["Orbital_Inclination"] = 9.452992e-001
almanac[28]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[28]["SQRT_A"] = 5.153600e+003
almanac[28]["Right_Ascen_at_Week"] = 2.826698e+000
almanac[28]["Argument_of_Perigee"] = 1.306413e+000
almanac[28]["Mean_Anom"] = 2.148725e+000
almanac[28]["week"] = 1390
--GLONASS
--1 îðáèòàëüíàÿ ïëîñêîñòü, íîìåðà 1-8
almanac[29] = {}
almanac[29]["System"] = SAT_SYS_GLONASS
almanac[29]["Number"] = 1
almanac[29]["Orbital"] = 1
almanac[29]["GLONASS_Data"] = {}
almanac[29]["GLONASS_Data"]["NKU_Number"] = 796
almanac[29]["GLONASS_Data"]["Cosmos_Number"] = 2411
almanac[29]["Eccentricity"] = 1.184000e-003
almanac[29]["Time_of_Applicability"] = 0.000000e+000
almanac[29]["Orbital_Inclination"] = 1.126443e+000
almanac[29]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[29]["SQRT_A"] = 5.050500e+003
almanac[29]["Right_Ascen_at_Week"] = 5.979807e+000
almanac[29]["Argument_of_Perigee"] = 2.622634e+000
almanac[29]["Mean_Anom"] = -5.519651e+000
almanac[29]["week"] = 1390
almanac[29]["Commit_date"] = "06.02.2005"
almanac[29]["Life_dates"] = {}
almanac[30] = {}
almanac[30]["System"] = SAT_SYS_GLONASS
almanac[30]["Number"] = 2
almanac[30]["Orbital"] = 1
almanac[30]["GLONASS_Data"] = {}
almanac[30]["GLONASS_Data"]["NKU_Number"] = 794
almanac[30]["GLONASS_Data"]["Cosmos_Number"] = 2401
almanac[30]["Eccentricity"] = 4.486000e-003
almanac[30]["Time_of_Applicability"] = 0.000000e+000
almanac[30]["Orbital_Inclination"] = 1.128459e+000
almanac[30]["Rate_of_Right_Ascen"] = -6.759654e-009
almanac[30]["SQRT_A"] = 5.050500e+003
almanac[30]["Right_Ascen_at_Week"] = 5.997871e+000
almanac[30]["Argument_of_Perigee"] = 1.709531e+000
almanac[30]["Mean_Anom"] = -5.367633e+000
almanac[30]["week"] = 1390
almanac[30]["Commit_date"] = "02.02.2004"
almanac[30]["Life_dates"] = {}
almanac[31] = {}
almanac[31]["System"] = SAT_SYS_GLONASS
almanac[31]["Number"] = 3
almanac[31]["Orbital"] = 1
almanac[31]["GLONASS_Data"] = {}
almanac[31]["GLONASS_Data"]["NKU_Number"] = 789
almanac[31]["GLONASS_Data"]["Cosmos_Number"] = 2381
almanac[31]["Eccentricity"] = 2.459000e-003
almanac[31]["Time_of_Applicability"] = 0.000000e+000
almanac[31]["Orbital_Inclination"] = 1.122958e+000
almanac[31]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[31]["SQRT_A"] = 5.050500e+003
almanac[31]["Right_Ascen_at_Week"] = 5.960713e+000
almanac[31]["Argument_of_Perigee"] = -2.683407e+000
almanac[31]["Mean_Anom"] = -1.791788e+000
almanac[31]["week"] = 1390
almanac[31]["Commit_date"] = "04.01.2002"
almanac[31]["Life_dates"] = {}
almanac[32] = {}
almanac[32]["System"] = SAT_SYS_GLONASS
almanac[32]["Number"] = 4
almanac[32]["Orbital"] = 1
almanac[32]["GLONASS_Data"] = {}
almanac[32]["GLONASS_Data"]["NKU_Number"] = 795
almanac[29]["GLONASS_Data"]["Cosmos_Number"] = 2403
almanac[32]["Eccentricity"] = 4.054000e-003
almanac[32]["Time_of_Applicability"] = 0.000000e+000
almanac[32]["Orbital_Inclination"] = 1.128543e+000
almanac[32]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[32]["SQRT_A"] = 5.050500e+003
almanac[32]["Right_Ascen_at_Week"] = 5.998081e+000
almanac[32]["Argument_of_Perigee"] = 1.497160e+000
almanac[32]["Mean_Anom"] = -4.293681e-001
almanac[32]["week"] = 1390
almanac[32]["Commit_date"] = "29.01.2004"
almanac[32]["Life_dates"] = {}
almanac[33] = {}
almanac[33]["System"] = SAT_SYS_GLONASS
almanac[33]["Number"] = 5
almanac[33]["Orbital"] = 1
almanac[33]["GLONASS_Data"] = {}
almanac[33]["GLONASS_Data"]["NKU_Number"] = 711
almanac[33]["GLONASS_Data"]["Cosmos_Number"] = 2382
almanac[33]["Eccentricity"] = 7.040000e-004
almanac[33]["Time_of_Applicability"] = 0.000000e+000
almanac[33]["Orbital_Inclination"] = 1.122886e+000
almanac[33]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[33]["SQRT_A"] = 5.050600e+003
almanac[33]["Right_Ascen_at_Week"] = 5.960713e+000
almanac[33]["Argument_of_Perigee"] = 2.740933e+000
almanac[33]["Mean_Anom"] = -2.523604e+000
almanac[33]["week"] = 1390
almanac[33]["Commit_date"] = "13.02.2003"
almanac[33]["Life_dates"] = {}
almanac[34] = {}
almanac[34]["System"] = SAT_SYS_GLONASS
almanac[34]["Number"] = 6
almanac[34]["Orbital"] = 1
almanac[34]["GLONASS_Data"] = {}
almanac[34]["GLONASS_Data"]["NKU_Number"] = 701
almanac[34]["GLONASS_Data"]["Cosmos_Number"] = 2404
almanac[34]["Eccentricity"] = 4.766000e-003
almanac[34]["Time_of_Applicability"] = 0.000000e+000
almanac[34]["Orbital_Inclination"] = 1.128276e+000
almanac[34]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[34]["SQRT_A"] = 5.050500e+003
almanac[34]["Right_Ascen_at_Week"] = 5.997906e+000
almanac[34]["Argument_of_Perigee"] = 1.802417e+000
almanac[34]["Mean_Anom"] = -2.426512e+000
almanac[34]["week"] = 1390
almanac[34]["Commit_date"] = "08.12.2004"
almanac[34]["Life_dates"] = {}
almanac[35] = {}
almanac[35]["System"] = SAT_SYS_GLONASS
almanac[35]["Number"] = 7
almanac[35]["Orbital"] = 1
almanac[35]["GLONASS_Data"] = {}
almanac[35]["GLONASS_Data"]["NKU_Number"] = 712
almanac[35]["GLONASS_Data"]["Cosmos_Number"] = 2413
almanac[35]["Eccentricity"] = 7.570000e-004
almanac[35]["Time_of_Applicability"] = 0.000000e+000
almanac[35]["Orbital_Inclination"] = 1.126344e+000
almanac[35]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[35]["SQRT_A"] = 5.050500e+003
almanac[35]["Right_Ascen_at_Week"] = 5.979388e+000
almanac[35]["Argument_of_Perigee"] = 2.566068e+000
almanac[35]["Mean_Anom"] = -3.921228e+000
almanac[35]["week"] = 1390
almanac[35]["Commit_date"] = "07.10.2005"
almanac[35]["Life_dates"] = {}
almanac[36] = {}
almanac[36]["System"] = SAT_SYS_GLONASS
almanac[36]["GLONASS_Data"] = {}
almanac[36]["Number"] = 8
almanac[36]["Orbital"] = 1
almanac[36]["GLONASS_Data"] = {}
almanac[36]["GLONASS_Data"]["NKU_Number"] = 797
almanac[36]["GLONASS_Data"]["Cosmos_Number"] = 2412
almanac[36]["Eccentricity"] = 4.060000e-004
almanac[36]["Time_of_Applicability"] = 0.000000e+000
almanac[36]["Orbital_Inclination"] = 1.126564e+000
almanac[36]["Rate_of_Right_Ascen"] = -6.785834e-009
almanac[36]["SQRT_A"] = 5.050600e+003
almanac[36]["Right_Ascen_at_Week"] = 5.980069e+000
almanac[36]["Argument_of_Perigee"] = 2.673633e+000
almanac[36]["Mean_Anom"] = -4.812026e+000
almanac[36]["week"] = 1390
almanac[36]["Commit_date"] = "06.02.2005"
almanac[36]["Life_dates"] = {}
--3 îðáèòàëüíàÿ ïëîñêîñòü, íîìåðà 17-24
almanac[37] = {}
almanac[37]["System"] = SAT_SYS_GLONASS
almanac[37]["Number"] = 17
almanac[37]["Orbital"] = 3
almanac[37]["GLONASS_Data"] = {}
almanac[37]["GLONASS_Data"]["NKU_Number"] = 787
almanac[37]["GLONASS_Data"]["Cosmos_Number"] = 2375
almanac[37]["Eccentricity"] = 5.670000e-004
almanac[37]["Time_of_Applicability"] = 0.000000e+000
almanac[37]["Orbital_Inclination"] = 1.126524e+000
almanac[37]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[37]["SQRT_A"] = 5.050500e+003
almanac[37]["Right_Ascen_at_Week"] = 3.895554e+000
almanac[37]["Argument_of_Perigee"] = 6.085085e-001
almanac[37]["Mean_Anom"] = -2.977407e+000
almanac[37]["week"] = 1390
almanac[37]["Commit_date"] = "04.11.2000"
almanac[37]["Life_dates"] = {}
almanac[38] = {}
almanac[38]["System"] = SAT_SYS_GLONASS
almanac[38]["Number"] = 18
almanac[38]["Orbital"] = 3
almanac[38]["GLONASS_Data"] = {}
almanac[38]["GLONASS_Data"]["NKU_Number"] = 783
almanac[38]["GLONASS_Data"]["Cosmos_Number"] = 2374
almanac[38]["Eccentricity"] = 4.520000e-003
almanac[38]["Time_of_Applicability"] = 0.000000e+000
almanac[38]["Orbital_Inclination"] = 1.126239e+000
almanac[38]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[38]["SQRT_A"] = 5.050600e+003
almanac[38]["Right_Ascen_at_Week"] = 3.894071e+000
almanac[38]["Argument_of_Perigee"] = -2.509589e+000
almanac[38]["Mean_Anom"] = -1.020057e+000
almanac[38]["week"] = 1390
almanac[38]["Commit_date"] = "05.01.2001"
almanac[38]["Life_dates"] = {}
almanac[39] = {}
almanac[39]["System"] = SAT_SYS_GLONASS
almanac[39]["Number"] = 19
almanac[39]["Orbital"] = 3
almanac[39]["GLONASS_Data"] = {}
almanac[39]["GLONASS_Data"]["NKU_Number"] = 798
almanac[39]["GLONASS_Data"]["Cosmos_Number"] = 2417
almanac[39]["Eccentricity"] = 2.023000e-003
almanac[39]["Time_of_Applicability"] = 0.000000e+000
almanac[39]["Orbital_Inclination"] = 1.132205e+000
almanac[39]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[39]["SQRT_A"] = 5.050500e+003
almanac[39]["Right_Ascen_at_Week"] = 3.884018e+000
almanac[39]["Argument_of_Perigee"] = 2.718313e+000
almanac[39]["Mean_Anom"] = -3.933620e-001
almanac[39]["week"] = 1390
almanac[39]["Commit_date"] = "22.01.2006"
almanac[39]["Life_dates"] = {}
almanac[40] = {}
almanac[40]["System"] = SAT_SYS_GLONASS
almanac[40]["Number"] = 20
almanac[40]["Orbital"] = 3
almanac[40]["GLONASS_Data"] = {}
almanac[40]["GLONASS_Data"]["NKU_Number"] = 793
almanac[40]["GLONASS_Data"]["Cosmos_Number"] = 2396
almanac[40]["Eccentricity"] = 1.822000e-003
almanac[40]["Time_of_Applicability"] = 0.000000e+000
almanac[40]["Orbital_Inclination"] = 1.129789e+000
almanac[40]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[40]["SQRT_A"] = 5.050500e+003
almanac[40]["Right_Ascen_at_Week"] = 3.896863e+000
almanac[40]["Argument_of_Perigee"] = 2.723776e+000
almanac[40]["Mean_Anom"] = -1.193647e+000
almanac[40]["week"] = 1390
almanac[40]["Commit_date"] = "31.01.2003"
almanac[40]["Life_dates"] = {}
almanac[41] = {}
almanac[41]["System"] = SAT_SYS_GLONASS
almanac[41]["Number"] = 21
almanac[41]["Orbital"] = 3
almanac[41]["GLONASS_Data"] = {}
almanac[41]["GLONASS_Data"]["NKU_Number"] = 792
almanac[41]["GLONASS_Data"]["Cosmos_Number"] = 2395
almanac[41]["Eccentricity"] = 5.290000e-004
almanac[41]["Time_of_Applicability"] = 0.000000e+000
almanac[41]["Orbital_Inclination"] = 1.129957e+000
almanac[41]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[41]["SQRT_A"] = 5.050500e+003
almanac[41]["Right_Ascen_at_Week"] = 3.897806e+000
almanac[41]["Argument_of_Perigee"] = -9.519367e-001
almanac[41]["Mean_Anom"] = -4.578920e+000
almanac[41]["week"] = 1390
almanac[41]["Commit_date"] = "31.01.2003"
almanac[41]["Life_dates"] = {}
almanac[42] = {}
almanac[42]["System"] = SAT_SYS_GLONASS
almanac[42]["Number"] = 22
almanac[42]["Orbital"] = 3
almanac[42]["GLONASS_Data"] = {}
almanac[42]["GLONASS_Data"]["NKU_Number"] = 791
almanac[42]["GLONASS_Data"]["Cosmos_Number"] = 2394
almanac[42]["Eccentricity"] = 9.200000e-005
almanac[42]["Time_of_Applicability"] = 0.000000e+000
almanac[42]["Orbital_Inclination"] = 1.129742e+000
almanac[42]["Rate_of_Right_Ascen"] = -6.740456e-009
almanac[42]["SQRT_A"] = 5.050500e+003
almanac[42]["Right_Ascen_at_Week"] = 3.897404e+000
almanac[42]["Argument_of_Perigee"] = 2.518211e+000
almanac[42]["Mean_Anom"] = -2.530167e+000
almanac[42]["week"] = 1390
almanac[42]["Commit_date"] = "21.01.2003"
almanac[42]["Life_dates"] = {}
almanac[43] = {}
almanac[43]["System"] = SAT_SYS_GLONASS
almanac[43]["Number"] = 23
almanac[43]["Orbital"] = 3
almanac[43]["GLONASS_Data"] = {}
almanac[43]["GLONASS_Data"]["NKU_Number"] = 714
almanac[43]["GLONASS_Data"]["Cosmos_Number"] = 2419
almanac[43]["Eccentricity"] = 8.730000e-004
almanac[43]["Time_of_Applicability"] = 0.000000e+000
almanac[43]["Orbital_Inclination"] = 1.132105e+000
almanac[43]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[43]["SQRT_A"] = 5.050500e+003
almanac[43]["Right_Ascen_at_Week"] = 3.883808e+000
almanac[43]["Argument_of_Perigee"] = -3.039139e-001
almanac[43]["Mean_Anom"] = -5.228304e-001
almanac[43]["week"] = 1390
almanac[43]["Commit_date"] = "31.08.2006"
almanac[43]["Life_dates"] = {}
almanac[44] = {}
almanac[44]["System"] = SAT_SYS_GLONASS
almanac[44]["Number"] = 24
almanac[44]["Orbital"] = 3
almanac[44]["GLONASS_Data"] = {}
almanac[44]["GLONASS_Data"]["NKU_Number"] = 713
almanac[44]["GLONASS_Data"]["Cosmos_Number"] = 2418
almanac[44]["Eccentricity"] = 2.044000e-003
almanac[44]["Time_of_Applicability"] = 0.000000e+000
almanac[44]["Orbital_Inclination"] = 1.132430e+000
almanac[44]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[44]["SQRT_A"] = 5.050500e+003
almanac[44]["Right_Ascen_at_Week"] = 3.883983e+000
almanac[44]["Argument_of_Perigee"] = -3.722784e-001
almanac[44]["Mean_Anom"] = -1.240457e+000
almanac[44]["week"] = 1390
almanac[44]["Commit_date"] = "31.08.2006"
almanac[44]["Life_dates"] = {}
--2 îðáèòàëüíàÿ ïëîñêîñòü, íîìåðà 9-16
almanac[45] = {}
almanac[45]["System"] = SAT_SYS_GLONASS
almanac[45]["Number"] = 9
almanac[45]["Orbital"] = 2
almanac[45]["GLONASS_Data"] = {}
almanac[45]["GLONASS_Data"]["NKU_Number"] = "N/A"
almanac[45]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
almanac[45]["Eccentricity"] = 1.184000e-003
almanac[45]["Time_of_Applicability"] = 0.000000e+000
almanac[45]["Orbital_Inclination"] = 1.126443e+000
almanac[45]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[45]["SQRT_A"] = 5.050500e+003
almanac[45]["Right_Ascen_at_Week"] = 1.79067e+000
almanac[45]["Argument_of_Perigee"] = 2.88430067
almanac[45]["Mean_Anom"] = -5.519651e+000
almanac[45]["week"] = 1390
almanac[45]["Commit_date"] = "N/A"
almanac[45]["Life_dates"] = {}
almanac[46] = {}
almanac[46]["System"] = SAT_SYS_GLONASS
almanac[46]["Number"] = 10
almanac[46]["Orbital"] = 2
almanac[46]["GLONASS_Data"] = {}
almanac[46]["GLONASS_Data"]["NKU_Number"] = "N/A"
almanac[46]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
almanac[46]["Eccentricity"] = 1.184000e-003
almanac[46]["Time_of_Applicability"] = 0.000000e+000
almanac[46]["Orbital_Inclination"] = 1.126443e+000
almanac[46]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[46]["SQRT_A"] = 5.050500e+003
almanac[46]["Right_Ascen_at_Week"] = 1.79067e+000
almanac[46]["Argument_of_Perigee"] = 3.66930067
almanac[46]["Mean_Anom"] = -5.519651e+000
almanac[46]["week"] = 1390
almanac[46]["Commit_date"] = "N/A"
almanac[46]["Life_dates"] = {}
almanac[47] = {}
almanac[47]["System"] = SAT_SYS_GLONASS
almanac[47]["Number"] = 11
almanac[47]["Orbital"] = 2
almanac[47]["GLONASS_Data"] = {}
almanac[47]["GLONASS_Data"]["NKU_Number"] = "N/A"
almanac[47]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
almanac[47]["Eccentricity"] = 1.184000e-003
almanac[47]["Time_of_Applicability"] = 0.000000e+000
almanac[47]["Orbital_Inclination"] = 1.126443e+000
almanac[47]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[47]["SQRT_A"] = 5.050500e+003
almanac[47]["Right_Ascen_at_Week"] = 1.79067e+000
almanac[47]["Argument_of_Perigee"] = 4.45430067
almanac[47]["Mean_Anom"] = -5.519651e+000
almanac[47]["week"] = 1390
almanac[47]["Commit_date"] = "N/A"
almanac[47]["Life_dates"] = {}
almanac[48] = {}
almanac[48]["System"] = SAT_SYS_GLONASS
almanac[48]["Number"] = 12
almanac[48]["Orbital"] = 2
almanac[48]["GLONASS_Data"] = {}
almanac[48]["GLONASS_Data"]["NKU_Number"] = "N/A"
almanac[48]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
almanac[48]["Eccentricity"] = 1.184000e-003
almanac[48]["Time_of_Applicability"] = 0.000000e+000
almanac[48]["Orbital_Inclination"] = 1.126443e+000
almanac[48]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[48]["SQRT_A"] = 5.050500e+003
almanac[48]["Right_Ascen_at_Week"] = 1.79067e+000
almanac[48]["Argument_of_Perigee"] = 5.23930067
almanac[48]["Mean_Anom"] = -5.519651e+000
almanac[48]["week"] = 1390
almanac[48]["Commit_date"] = "N/A"
almanac[48]["Life_dates"] = {}
almanac[49] = {}
almanac[49]["System"] = SAT_SYS_GLONASS
almanac[49]["Number"] = 13
almanac[49]["Orbital"] = 2
almanac[49]["GLONASS_Data"] = {}
almanac[49]["GLONASS_Data"]["NKU_Number"] = "N/A"
almanac[49]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
almanac[49]["Eccentricity"] = 1.184000e-003
almanac[49]["Time_of_Applicability"] = 0.000000e+000
almanac[49]["Orbital_Inclination"] = 1.126443e+000
almanac[49]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[49]["SQRT_A"] = 5.050500e+003
almanac[49]["Right_Ascen_at_Week"] = 1.79067e+000
almanac[49]["Argument_of_Perigee"] = 6.02430067
almanac[49]["Mean_Anom"] = -5.519651e+000
almanac[49]["week"] = 1390
almanac[49]["Commit_date"] = "N/A"
almanac[49]["Life_dates"] = {}
almanac[50] = {}
almanac[50]["System"] = SAT_SYS_GLONASS
almanac[50]["Number"] = 14
almanac[50]["Orbital"] = 2
almanac[50]["GLONASS_Data"] = {}
almanac[50]["GLONASS_Data"]["NKU_Number"] = "N/A"
almanac[50]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
almanac[50]["Eccentricity"] = 1.184000e-003
almanac[50]["Time_of_Applicability"] = 0.000000e+000
almanac[50]["Orbital_Inclination"] = 1.126443e+000
almanac[50]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[50]["SQRT_A"] = 5.050500e+003
almanac[50]["Right_Ascen_at_Week"] = 1.79067e+000
almanac[50]["Argument_of_Perigee"] = 0.52930067
almanac[50]["Mean_Anom"] = -5.519651e+000
almanac[50]["week"] = 1390
almanac[50]["Commit_date"] = "N/A"
almanac[50]["Life_dates"] = {}
almanac[51] = {}
almanac[51]["System"] = SAT_SYS_GLONASS
almanac[51]["Number"] = 15
almanac[51]["Orbital"] = 2
almanac[51]["GLONASS_Data"] = {}
almanac[51]["GLONASS_Data"]["NKU_Number"] = "N/A"
almanac[51]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
almanac[51]["Eccentricity"] = 1.184000e-003
almanac[51]["Time_of_Applicability"] = 0.000000e+000
almanac[51]["Orbital_Inclination"] = 1.126443e+000
almanac[51]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[51]["SQRT_A"] = 5.050500e+003
almanac[51]["Right_Ascen_at_Week"] = 1.79067e+000
almanac[51]["Argument_of_Perigee"] = 1.31430067
almanac[51]["Mean_Anom"] = -5.519651e+000
almanac[51]["week"] = 1390
almanac[51]["Commit_date"] = "N/A"
almanac[51]["Life_dates"] = {}
almanac[52] = {}
almanac[52]["System"] = SAT_SYS_GLONASS
almanac[52]["Number"] = 16
almanac[52]["Orbital"] = 2
almanac[52]["GLONASS_Data"] = {}
almanac[52]["GLONASS_Data"]["NKU_Number"] = "N/A"
almanac[52]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
almanac[52]["Eccentricity"] = 1.184000e-003
almanac[52]["Time_of_Applicability"] = 0.000000e+000
almanac[52]["Orbital_Inclination"] = 1.126443e+000
almanac[52]["Rate_of_Right_Ascen"] = 0.000000e+000
almanac[52]["SQRT_A"] = 5.050500e+003
almanac[52]["Right_Ascen_at_Week"] = 1.79067e+000
almanac[52]["Argument_of_Perigee"] = 2.09930067
almanac[52]["Mean_Anom"] = -5.519651e+000
almanac[52]["week"] = 1390
almanac[52]["Commit_date"] = "N/A"
almanac[52]["Life_dates"] = {}
SA_mode = false
AS_mode = false

File diff suppressed because it is too large Load Diff

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 )

View File

@ -0,0 +1,245 @@
dictionary =
{
["DictKey_GroupName_63"] = "Target #011",
["DictKey_WptName_201"] = "",
["DictKey_UnitName_52"] = "Target #007",
["DictKey_UnitName_67"] = "Target #012",
["DictKey_WptName_185"] = "",
["DictKey_WptName_86"] = "",
["DictKey_WptName_138"] = "",
["DictKey_GroupName_96"] = "Target #022",
["DictKey_WptName_113"] = "",
["DictKey_WptName_194"] = "",
["DictKey_WptName_41"] = "",
["DictKey_UnitName_73"] = "Target #014",
["DictKey_GroupName_21"] = "FAC Group #004",
["DictKey_WptName_198"] = "",
["DictKey_WptName_31"] = "",
["DictKey_ActionText_30"] = "BASE:TraceClass( \"DETECTION_UNITGROUPS\" )\
BASE:TraceClass( \"SET_UNIT\" )\
BASE:TraceClass( \"FAC_REPORT\" )\
BASE:TraceLevel( 2 )",
["DictKey_WptName_114"] = "",
["DictKey_WptName_112"] = "",
["DictKey_GroupName_102"] = "New Vehicle Group",
["DictKey_WptName_145"] = "",
["DictKey_UnitName_25"] = "Unit #004",
["DictKey_UnitName_197"] = "Target #026",
["DictKey_WptName_123"] = "",
["DictKey_GroupName_51"] = "Target #007",
["DictKey_WptName_215"] = "",
["DictKey_WptName_59"] = "",
["DictKey_WptName_13"] = "",
["DictKey_WptName_124"] = "",
["DictKey_WptName_212"] = "",
["DictKey_WptName_217"] = "",
["DictKey_UnitName_76"] = "Target #015",
["DictKey_WptName_199"] = "",
["DictKey_WptName_134"] = "",
["DictKey_WptName_181"] = "",
["DictKey_WptName_109"] = "",
["DictKey_GroupName_45"] = "Target #005",
["DictKey_WptName_77"] = "",
["DictKey_GroupName_32"] = "Target #001",
["DictKey_UnitName_190"] = "Target #025",
["DictKey_WptName_147"] = "",
["DictKey_WptName_101"] = "",
["DictKey_GroupName_42"] = "Target #004",
["DictKey_GroupName_84"] = "Target #018",
["DictKey_GroupName_189"] = "Target #025",
["DictKey_UnitName_155"] = "Target #017",
["DictKey_WptName_47"] = "",
["DictKey_GroupName_203"] = "Target #027",
["DictKey_UnitName_43"] = "Target #004",
["DictKey_UnitName_61"] = "Target #010",
["DictKey_WptName_56"] = "",
["DictKey_WptName_157"] = "",
["DictKey_WptName_233"] = "",
["DictKey_GroupName_78"] = "Target #016",
["DictKey_WptName_153"] = "",
["DictKey_UnitName_49"] = "Target #006",
["DictKey_WptName_187"] = "",
["DictKey_UnitName_223"] = "Target #011",
["DictKey_WptName_23"] = "",
["DictKey_WptName_172"] = "",
["DictKey_WptName_214"] = "",
["DictKey_WptName_188"] = "",
["DictKey_WptName_151"] = "",
["DictKey_descriptionRedTask_2"] = "",
["DictKey_WptName_38"] = "",
["DictKey_WptName_71"] = "",
["DictKey_UnitName_183"] = "Target #024",
["DictKey_WptName_144"] = "",
["DictKey_WptName_178"] = "",
["DictKey_UnitName_12"] = "Unit #1",
["DictKey_WptName_139"] = "",
["DictKey_WptName_205"] = "",
["DictKey_WptName_17"] = "",
["DictKey_UnitName_211"] = "Target #028",
["DictKey_WptName_104"] = "",
["DictKey_WptName_14"] = "",
["DictKey_UnitName_103"] = "Unit #1",
["DictKey_WptName_158"] = "",
["DictKey_UnitName_227"] = "Target #013",
["DictKey_WptName_216"] = "",
["DictKey_WptName_120"] = "",
["DictKey_WptName_225"] = "",
["DictKey_UnitName_37"] = "Target #002",
["DictKey_WptName_200"] = "",
["DictKey_GroupName_18"] = "FAC Group #003",
["DictKey_GroupName_222"] = "Target #011",
["DictKey_WptName_179"] = "",
["DictKey_UnitName_176"] = "Target #020",
["DictKey_WptName_236"] = "",
["DictKey_GroupName_81"] = "Target #017",
["DictKey_WptName_130"] = "",
["DictKey_UnitName_46"] = "Target #005",
["DictKey_WptName_92"] = "",
["DictKey_GroupName_36"] = "Target #002",
["DictKey_WptName_140"] = "",
["DictKey_UnitName_40"] = "Target #003",
["DictKey_WptName_121"] = "",
["DictKey_WptName_119"] = "",
["DictKey_WptName_174"] = "",
["DictKey_GroupName_72"] = "Target #014",
["DictKey_GroupName_75"] = "Target #015",
["DictKey_GroupName_66"] = "Target #012",
["DictKey_WptName_167"] = "",
["DictKey_WptName_9"] = "",
["DictKey_WptName_116"] = "",
["DictKey_WptName_220"] = "",
["DictKey_UnitName_79"] = "Target #016",
["DictKey_WptName_137"] = "",
["DictKey_GroupName_93"] = "Target #021",
["DictKey_WptName_132"] = "",
["DictKey_GroupName_27"] = "FAC Group #006",
["DictKey_WptName_65"] = "",
["DictKey_UnitName_22"] = "Unit #003",
["DictKey_WptName_152"] = "",
["DictKey_WptName_95"] = "",
["DictKey_WptName_206"] = "",
["DictKey_UnitName_169"] = "Target #019",
["DictKey_WptName_122"] = "",
["DictKey_UnitName_19"] = "Unit #002",
["DictKey_sortie_4"] = "",
["DictKey_GroupName_161"] = "Target #010",
["DictKey_WptName_240"] = "",
["DictKey_GroupName_175"] = "Target #020",
["DictKey_GroupName_99"] = "Target #023",
["DictKey_UnitName_85"] = "Target #018",
["DictKey_WptName_80"] = "",
["DictKey_WptName_133"] = "",
["DictKey_WptName_235"] = "",
["DictKey_WptName_202"] = "",
["DictKey_UnitName_91"] = "Target #020",
["DictKey_GroupName_57"] = "Target #009",
["DictKey_UnitName_94"] = "Target #021",
["DictKey_UnitName_162"] = "Target #010",
["DictKey_WptName_177"] = "",
["DictKey_GroupName_60"] = "Target #010",
["DictKey_WptName_110"] = "",
["DictKey_WptName_207"] = "",
["DictKey_WptName_239"] = "",
["DictKey_WptName_50"] = "",
["DictKey_UnitName_106"] = "FAC Client",
["DictKey_GroupName_105"] = "FAC Client Group",
["DictKey_UnitName_58"] = "Target #009",
["DictKey_GroupName_48"] = "Target #006",
["DictKey_WptName_26"] = "",
["DictKey_WptName_171"] = "",
["DictKey_GroupName_196"] = "Target #026",
["DictKey_GroupName_54"] = "Target #008",
["DictKey_GroupName_39"] = "Target #003",
["DictKey_WptName_89"] = "",
["DictKey_WptName_237"] = "",
["DictKey_GroupName_87"] = "Target #019",
["DictKey_UnitName_97"] = "Target #022",
["DictKey_WptName_128"] = "",
["DictKey_UnitName_82"] = "Target #017",
["DictKey_UnitName_28"] = "Unit #005",
["DictKey_WptName_98"] = "",
["DictKey_WptName_180"] = "",
["DictKey_WptName_159"] = "",
["DictKey_WptName_166"] = "",
["DictKey_WptName_208"] = "",
["DictKey_WptName_193"] = "",
["DictKey_WptName_238"] = "",
["DictKey_WptName_191"] = "",
["DictKey_descriptionText_1"] = "",
["DictKey_UnitName_55"] = "Target #008",
["DictKey_WptName_232"] = "",
["DictKey_WptName_107"] = "",
["DictKey_WptName_115"] = "",
["DictKey_WptName_229"] = "",
["DictKey_WptName_108"] = "",
["DictKey_WptName_149"] = "",
["DictKey_WptName_142"] = "",
["DictKey_UnitName_100"] = "Target #023",
["DictKey_WptName_170"] = "",
["DictKey_WptName_164"] = "",
["DictKey_WptName_74"] = "",
["DictKey_WptName_141"] = "",
["DictKey_WptName_143"] = "",
["DictKey_UnitName_33"] = "Target #001",
["DictKey_GroupName_69"] = "Target #013",
["DictKey_WptName_127"] = "",
["DictKey_WptName_129"] = "",
["DictKey_WptName_213"] = "",
["DictKey_GroupName_24"] = "FAC Group #005",
["DictKey_WptName_186"] = "",
["DictKey_GroupName_7"] = "FAC Group",
["DictKey_WptName_148"] = "",
["DictKey_WptName_146"] = "",
["DictKey_WptName_230"] = "",
["DictKey_WptName_156"] = "",
["DictKey_GroupName_154"] = "Target #017",
["DictKey_UnitName_64"] = "Target #011",
["DictKey_GroupName_218"] = "Target #010",
["DictKey_UnitName_219"] = "Target #010",
["DictKey_WptName_68"] = "",
["DictKey_UnitName_88"] = "Target #019",
["DictKey_WptName_160"] = "",
["DictKey_WptName_10"] = "",
["DictKey_GroupName_210"] = "Target #028",
["DictKey_WptName_163"] = "",
["DictKey_WptName_234"] = "",
["DictKey_WptName_195"] = "",
["DictKey_WptName_221"] = "",
["DictKey_UnitName_204"] = "Target #027",
["DictKey_UnitName_16"] = "Unit #001",
["DictKey_WptName_135"] = "",
["DictKey_WptName_131"] = "",
["DictKey_WptName_228"] = "",
["DictKey_WptName_231"] = "",
["DictKey_WptName_165"] = "",
["DictKey_WptName_224"] = "",
["DictKey_GroupName_11"] = "FAC Group #001",
["DictKey_UnitName_70"] = "Target #013",
["DictKey_GroupName_226"] = "Target #013",
["DictKey_WptName_20"] = "",
["DictKey_GroupName_15"] = "FAC Group #002",
["DictKey_WptName_150"] = "",
["DictKey_WptName_126"] = "",
["DictKey_WptName_29"] = "",
["DictKey_WptName_173"] = "",
["DictKey_WptName_83"] = "",
["DictKey_WptName_241"] = "",
["DictKey_WptName_62"] = "",
["DictKey_GroupName_168"] = "Target #019",
["DictKey_WptName_118"] = "",
["DictKey_WptName_53"] = "",
["DictKey_WptName_136"] = "",
["DictKey_GroupName_182"] = "Target #024",
["DictKey_descriptionBlueTask_3"] = "",
["DictKey_WptName_192"] = "",
["DictKey_WptName_117"] = "",
["DictKey_WptName_125"] = "",
["DictKey_WptName_44"] = "",
["DictKey_GroupName_90"] = "Target #020",
["DictKey_WptName_111"] = "",
["DictKey_WptName_35"] = "",
["DictKey_WptName_184"] = "",
["DictKey_WptName_209"] = "",
["DictKey_WptName_34"] = "",
["DictKey_UnitName_8"] = "FAC Unit",
} -- end of dictionary

View File

@ -0,0 +1,5 @@
mapResource =
{
["ResKey_Action_5"] = "Moose.lua",
["ResKey_Action_6"] = "Moose_Test_FAC.lua",
} -- end of mapResource

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,212 @@
options =
{
["difficulty"] =
{
["fuel"] = false,
["labels"] = false,
["easyRadar"] = false,
["easyCommunication"] = true,
["miniHUD"] = false,
["setGlobal"] = true,
["birds"] = 0,
["optionsView"] = "optview_all",
["permitCrash"] = true,
["immortal"] = false,
["avionicsLanguage"] = "native",
["cockpitVisualRM"] = true,
["padlock"] = true,
["reports"] = true,
["hideStick"] = false,
["radio"] = true,
["map"] = true,
["externalViews"] = true,
["spectatorExternalViews"] = true,
["cockpitLanguage"] = "english",
["tips"] = true,
["userSnapView"] = true,
["units"] = "metric",
["impostors"] = "medium",
["iconsTheme"] = "nato",
["easyFlight"] = false,
["weapons"] = false,
["cockpitStatusBarAllowed"] = false,
["geffect"] = "realistic",
}, -- end of ["difficulty"]
["playerName"] = "Killer",
["graphics"] =
{
["OculusRift"] = false,
["color"] = "32",
["preloadRadius"] = 73885,
["heatBlr"] = 2,
["scenes"] = "high",
["water"] = 2,
["visibRange"] = "High",
["treesVisibility"] = 25000,
["aspect"] = 1.7777777777778,
["lights"] = 2,
["HDR"] = 1,
["MSAA"] = 6,
["civTraffic"] = "high",
["clutterMaxDistance"] = 1500,
["terrainTextures"] = "max",
["multiMonitorSetup"] = "1camera",
["shadowTree"] = true,
["fullScreen"] = false,
["disableAero"] = false,
["DOF"] = 0,
["clouds"] = 1,
["flatTerrainShadows"] = 1,
["cockpitShadows"] = true,
["height"] = 900,
["width"] = 1600,
["shadows"] = 5,
["textures"] = 2,
["sync"] = true,
["LensEffects"] = 3,
["anisotropy"] = 4,
["TranspSSAA"] = false,
["haze"] = 1,
["effects"] = 3,
}, -- end of ["graphics"]
["plugins"] =
{
["CA"] =
{
["kompass_options"] = 1,
["ground_target_info"] = true,
["ground_aim_helper"] = true,
["ground_platform_shake"] = true,
["ground_automatic"] = true,
}, -- end of ["CA"]
["M-2000C"] =
{
["TDC_"] = false,
["CPLocalList"] = "default",
}, -- end of ["M-2000C"]
["A-10C"] =
{
["CPLocalList"] = "default",
}, -- end of ["A-10C"]
["FC3"] =
{
["CPLocalList_F-15C"] = "default",
["CPLocalList_MiG-29S"] = "default",
["CPLocalList_MiG-29A"] = "default",
["CPLocalList_Su-25"] = "default",
["CPLocalList_A-10A"] = "default",
["CPLocalList_Su-27"] = "chinese",
["CPLocalList_MiG-29G"] = "default",
["CPLocalList_Su-33"] = "default",
}, -- end of ["FC3"]
["Hawk"] =
{
["CPLocalList"] = "high",
}, -- end of ["Hawk"]
["P-51D"] =
{
["assistance"] = 100,
["CPLocalList"] = "default",
["autoRudder"] = false,
}, -- end of ["P-51D"]
["TF-51D"] =
{
["assistance"] = 100,
["CPLocalList"] = "default",
["autoRudder"] = false,
}, -- end of ["TF-51D"]
["MiG-21Bis"] =
{
["Engine"] = false,
["Shake"] = 100,
["CustomCockpit"] = false,
["Reticle"] = false,
["Freeze"] = false,
}, -- end of ["MiG-21Bis"]
["F-86F"] =
{
["landSeatAdjustF86"] = true,
["CPLocalList"] = "default",
["NoseWheelSteeringSimpleBehaviourF86"] = true,
["gunCamera"] = 0,
}, -- end of ["F-86F"]
["Su-25T"] =
{
["CPLocalList"] = "default",
}, -- end of ["Su-25T"]
["Mi-8MTV2"] =
{
["altMi8TrimmingMethod"] = false,
["Mi8AutopilotAdjustment"] = false,
["Mi8RudderTrimmer"] = false,
["controlHelperMi8"] = false,
["CPLocalList"] = "default",
["weapTooltipsMi8"] = true,
["Mi8FOV"] = 120,
}, -- end of ["Mi-8MTV2"]
["MiG-15bis"] =
{
["autoLeanToAimMiG15"] = true,
["CPLocalList"] = "chinese",
["gunCamera"] = 0,
["aiHelper"] = false,
}, -- end of ["MiG-15bis"]
["FW-190D9"] =
{
["assistance"] = 100,
["CPLocalList"] = "default",
["autoRudder"] = false,
}, -- end of ["FW-190D9"]
["UH-1H"] =
{
["UHRudderTrimmer"] = false,
["autoPilot"] = true,
["altUHTrimmingMethod"] = false,
["CPLocalList"] = "default",
["weapTooltips"] = true,
["UHTrackIRAiming"] = true,
}, -- end of ["UH-1H"]
["Ka-50"] =
{
["altTrimmingMethod"] = false,
["Ka50RudderTrimmer"] = false,
["CPLocalList"] = "english",
}, -- end of ["Ka-50"]
}, -- end of ["plugins"]
["views"] =
{
["cockpit"] =
{
["mirrors"] = false,
["reflections"] = false,
["avionics"] = 3,
["russianHud"] = false,
}, -- end of ["cockpit"]
}, -- end of ["views"]
["sound"] =
{
["hear_in_helmet"] = true,
["headphones"] = -15,
["cockpit"] = 0,
["GBreathEffect"] = true,
["gui"] = 0,
["volume"] = 0,
["radioSpeech"] = true,
["music"] = -100,
["subtitles"] = true,
["world"] = 0,
}, -- end of ["sound"]
["miscellaneous"] =
{
["headmove"] = true,
["f5_nearest_ac"] = true,
["f11_free_camera"] = true,
["F2_view_effects"] = 2,
["f10_awacs"] = true,
["Coordinate_Display"] = "Lat Long",
["accidental_failures"] = false,
["force_feedback_enabled"] = true,
["synchronize_controls"] = false,
["show_pilot_body"] = true,
}, -- end of ["miscellaneous"]
} -- end of options

View File

@ -0,0 +1,807 @@
warehouses =
{
["airports"] =
{
[12] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [12]
[13] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [13]
[14] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [14]
[15] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [15]
[16] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [16]
[17] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [17]
[18] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [18]
[19] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [19]
[20] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [20]
[21] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [21]
[22] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [22]
[23] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [23]
[24] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [24]
[25] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [25]
[26] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [26]
[27] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [27]
[28] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [28]
[29] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [29]
[30] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [30]
[31] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [31]
[32] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "NEUTRAL",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [32]
}, -- end of ["airports"]
["warehouses"] =
{
}, -- end of ["warehouses"]
} -- end of warehouses

View File

@ -0,0 +1,57 @@
do
-- This demo creates a menu structure for the two clients of planes.
-- Each client will receive a different menu structure.
-- To test, join the planes, then look at the other radio menus (Option F10).
-- Then switch planes and check if the menu is still there.
-- And play with the Add and Remove menu options.
-- Note that in multi player, this will only work after the DCS clients bug is solved.
local function ShowStatus( PlaneClient, StatusText, Coalition )
MESSAGE:New( Coalition, 15 ):ToRed()
PlaneClient:Message( StatusText, 15 )
end
local MenuStatus = {}
local function RemoveStatusMenu( MenuClient )
local MenuClientName = MenuClient:GetName()
MenuStatus[MenuClientName]:Remove()
end
--- @param Client#CLIENT MenuClient
local function AddStatusMenu( MenuClient )
env.info(MenuClient.ClientName)
local MenuClientName = MenuClient:GetName()
-- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
MenuStatus[MenuClientName] = MENU_CLIENT:New( MenuClient, "Status for Planes" )
MENU_CLIENT_COMMAND:New( MenuClient, "Show Status", MenuStatus[MenuClientName], ShowStatus, MenuClient, "Status of planes is ok!", "Message to Red Coalition" )
end
SCHEDULER:New( nil,
function()
local PlaneClient = CLIENT:FindByName( "Plane 1" )
if PlaneClient and PlaneClient:IsAlive() then
local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneClient )
MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneClient )
end
end, {}, 10, 10 )
SCHEDULER:New( nil,
function()
local PlaneClient = CLIENT:FindByName( "Plane 2" )
if PlaneClient and PlaneClient:IsAlive() then
local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneClient )
MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneClient )
end
end, {}, 10, 10 )
end

View File

@ -0,0 +1,43 @@
do
-- This demo creates a menu structure for the planes within the red coalition.
-- To test, join the planes, then look at the other radio menus (Option F10).
-- Then switch planes and check if the menu is still there.
local Plane1 = CLIENT:FindByName( "Plane 1" )
local Plane2 = CLIENT:FindByName( "Plane 2" )
-- This would create a menu for the red coalition under the main DCS "Others" menu.
local MenuCoalitionRed = MENU_COALITION:New( coalition.side.RED, "Manage Menus" )
local function ShowStatus( StatusText, Coalition )
MESSAGE:New( Coalition, 15 ):ToRed()
Plane1:Message( StatusText, 15 )
Plane2:Message( StatusText, 15 )
end
local MenuStatus -- Menu#MENU_COALITION
local MenuStatusShow -- Menu#MENU_COALITION_COMMAND
local function RemoveStatusMenu()
MenuStatus:Remove()
end
local function AddStatusMenu()
-- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
MenuStatus = MENU_COALITION:New( coalition.side.RED, "Status for Planes" )
MenuStatusShow = MENU_COALITION_COMMAND:New( coalition.side.RED, "Show Status", MenuStatus, ShowStatus, "Status of planes is ok!", "Message to Red Coalition" )
end
local MenuAdd = MENU_COALITION_COMMAND:New( coalition.side.RED, "Add Status Menu", MenuCoalitionRed, AddStatusMenu )
local MenuRemove = MENU_COALITION_COMMAND:New( coalition.side.RED, "Remove Status Menu", MenuCoalitionRed, RemoveStatusMenu )
end

View File

@ -0,0 +1,57 @@
do
-- This demo creates a menu structure for the two groups of planes.
-- Each group will receive a different menu structure.
-- To test, join the planes, then look at the other radio menus (Option F10).
-- Then switch planes and check if the menu is still there.
-- And play with the Add and Remove menu options.
-- Note that in multi player, this will only work after the DCS groups bug is solved.
local function ShowStatus( PlaneGroup, StatusText, Coalition )
MESSAGE:New( Coalition, 15 ):ToRed()
PlaneGroup:Message( StatusText, 15 )
end
local MenuStatus = {}
local function RemoveStatusMenu( MenuGroup )
local MenuGroupName = MenuGroup:GetName()
MenuStatus[MenuGroupName]:Remove()
end
--- @param Group#GROUP MenuGroup
local function AddStatusMenu( MenuGroup )
env.info(MenuGroup.GroupName)
local MenuGroupName = MenuGroup:GetName()
-- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
MenuStatus[MenuGroupName] = MENU_GROUP:New( MenuGroup, "Status for Planes" )
MENU_GROUP_COMMAND:New( MenuGroup, "Show Status", MenuStatus[MenuGroupName], ShowStatus, MenuGroup, "Status of planes is ok!", "Message to Red Coalition" )
end
SCHEDULER:New( nil,
function()
local PlaneGroup = GROUP:FindByName( "Plane 1" )
if PlaneGroup and PlaneGroup:IsAlive() then
local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneGroup )
MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneGroup )
end
end, {}, 10, 10 )
SCHEDULER:New( nil,
function()
local PlaneGroup = GROUP:FindByName( "Plane 2" )
if PlaneGroup and PlaneGroup:IsAlive() then
local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneGroup )
MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneGroup )
end
end, {}, 10, 10 )
end

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>
@ -276,6 +277,12 @@ These tracing levels were defined to avoid bulks of tracing to be generated by l
<td class="name" nowrap="nowrap"><a href="##(BASE).GetClassNameAndID">BASE:GetClassNameAndID()</a></td> <td class="name" nowrap="nowrap"><a href="##(BASE).GetClassNameAndID">BASE:GetClassNameAndID()</a></td>
<td class="summary"> <td class="summary">
<p>Get the ClassName + ClassID of the class instance.</p> <p>Get the ClassName + ClassID of the class instance.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).GetParent">BASE:GetParent(Child)</a></td>
<td class="summary">
<p>This is the worker method to retrieve the Parent class.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -291,9 +298,9 @@ These tracing levels were defined to avoid bulks of tracing to be generated by l
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).Inherited">BASE:Inherited(Child)</a></td> <td class="name" nowrap="nowrap"><a href="##(BASE).IsTrace">BASE:IsTrace()</a></td>
<td class="summary"> <td class="summary">
<p>This is the worker method to retrieve the Parent class.</p> <p>Enquires if tracing is on (for the class).</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -357,7 +364,7 @@ These tracing levels were defined to avoid bulks of tracing to be generated by l
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceOnOff">BASE.TraceOnOff(BASE, TraceOnOff, self)</a></td> <td class="name" nowrap="nowrap"><a href="##(BASE).TraceOnOff">BASE:TraceOnOff(TraceOnOff)</a></td>
<td class="summary"> <td class="summary">
<p>Set trace on or off <p>Set trace on or off
Note that when trace is off, no debug statement is performed, increasing performance! Note that when trace is off, no debug statement is performed, increasing performance!
@ -821,6 +828,33 @@ The ClassName of the class instance.</p>
<p><em>#string:</em> <p><em>#string:</em>
The ClassName + ClassID of the class instance.</p> The ClassName + ClassID of the class instance.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).GetParent" >
<strong>BASE:GetParent(Child)</strong>
</a>
</dt>
<dd>
<p>This is the worker method to retrieve the Parent class.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(BASE)">#BASE</a> Child </em></code>:
is the Child class from which the Parent class needs to be retrieved.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -885,26 +919,17 @@ Child</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(BASE).Inherited" > <a id="#(BASE).IsTrace" >
<strong>BASE:Inherited(Child)</strong> <strong>BASE:IsTrace()</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>This is the worker method to retrieve the Parent class.</p> <p>Enquires if tracing is on (for the class).</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(BASE)">#BASE</a> Child </em></code>:
is the Child class from which the Parent class needs to be retrieved.</p>
</li>
</ul>
<h3>Return value</h3> <h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p> <p><em>#boolean:</em></p>
</dd> </dd>
@ -1160,7 +1185,7 @@ true = trace all methods in MOOSE.</p>
<dt> <dt>
<a id="#(BASE).TraceOnOff" > <a id="#(BASE).TraceOnOff" >
<strong>BASE.TraceOnOff(BASE, TraceOnOff, self)</strong> <strong>BASE:TraceOnOff(TraceOnOff)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -1173,24 +1198,13 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau
<p>So tracing must be switched on manually in your mission if you are using Moose statically. <p>So tracing must be switched on manually in your mission if you are using Moose statically.
When moose is loading dynamically (for moose class development), tracing is switched on by default.</p> When moose is loading dynamically (for moose class development), tracing is switched on by default.</p>
<h3>Parameters</h3> <h3>Parameter</h3>
<ul> <ul>
<li> <li>
<p><code><em> BASE </em></code>:
self</p>
</li>
<li>
<p><code><em>#boolean TraceOnOff </em></code>: <p><code><em>#boolean TraceOnOff </em></code>:
Switch the tracing on or off.</p> Switch the tracing on or off.</p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li> </li>
</ul> </ul>
<h3>Usage:</h3> <h3>Usage:</h3>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>
@ -339,6 +340,12 @@ This is different from the EnRoute tasks, where the targets of the task need to
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).GetDetectedTargets">CONTROLLABLE:GetDetectedTargets(DetectVisual, DetectOptical, DetectRadar, DetectIRST, DetectRWR, DetectDLINK)</a></td> <td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).GetDetectedTargets">CONTROLLABLE:GetDetectedTargets(DetectVisual, DetectOptical, DetectRadar, DetectIRST, DetectRWR, DetectDLINK)</a></td>
<td class="summary"> <td class="summary">
<p>Return the detected targets of the controllable.</p> <p>Return the detected targets of the controllable.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).GetMessage">CONTROLLABLE:GetMessage(Message, Duration)</a></td>
<td class="summary">
<p>Returns a message with the callsign embedded (if there is one).</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -357,6 +364,42 @@ This is different from the EnRoute tasks, where the targets of the task need to
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).IsTargetDetected">CONTROLLABLE:IsTargetDetected(DCSObject)</a></td> <td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).IsTargetDetected">CONTROLLABLE:IsTargetDetected(DCSObject)</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).Message">CONTROLLABLE:Message(Message, Duration)</a></td>
<td class="summary">
<p>Send a message to the players in the <a href="Group.html">Group</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).MessageToAll">CONTROLLABLE:MessageToAll(Message, Duration)</a></td>
<td class="summary">
<p>Send a message to all coalitions.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).MessageToBlue">CONTROLLABLE:MessageToBlue(Message, Duration)</a></td>
<td class="summary">
<p>Send a message to the blue coalition.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).MessageToClient">CONTROLLABLE:MessageToClient(Message, Duration, Client)</a></td>
<td class="summary">
<p>Send a message to a client.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).MessageToGroup">CONTROLLABLE:MessageToGroup(Message, Duration, MessageGroup)</a></td>
<td class="summary">
<p>Send a message to a <a href="Group.html">Group</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).MessageToRed">CONTROLLABLE:MessageToRed(Message, Duration)</a></td>
<td class="summary">
<p>Send a message to the red coalition.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -1303,6 +1346,39 @@ If no detection method is given, the detection will use all the available method
<p><em>#table:</em> <p><em>#table:</em>
DetectedTargets</p> DetectedTargets</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CONTROLLABLE).GetMessage" >
<strong>CONTROLLABLE:GetMessage(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Returns a message with the callsign embedded (if there is one).</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Message.html##(MESSAGE)">Message#MESSAGE</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1366,6 +1442,204 @@ The mission route defined by points.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(CONTROLLABLE).Message" >
<strong>CONTROLLABLE:Message(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Send a message to the players in the <a href="Group.html">Group</a>.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CONTROLLABLE).MessageToAll" >
<strong>CONTROLLABLE:MessageToAll(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Send a message to all coalitions.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CONTROLLABLE).MessageToBlue" >
<strong>CONTROLLABLE:MessageToBlue(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Send a message to the blue coalition.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CONTROLLABLE).MessageToClient" >
<strong>CONTROLLABLE:MessageToClient(Message, Duration, Client)</strong>
</a>
</dt>
<dd>
<p>Send a message to a client.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
<li>
<p><code><em><a href="Client.html##(CLIENT)">Client#CLIENT</a> Client </em></code>:
The client object receiving the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CONTROLLABLE).MessageToGroup" >
<strong>CONTROLLABLE:MessageToGroup(Message, Duration, MessageGroup)</strong>
</a>
</dt>
<dd>
<p>Send a message to a <a href="Group.html">Group</a>.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
<li>
<p><code><em><a href="Group.html##(GROUP)">Group#GROUP</a> MessageGroup </em></code>:
The GROUP object receiving the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CONTROLLABLE).MessageToRed" >
<strong>CONTROLLABLE:MessageToRed(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Send a message to the red coalition.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTYpes.html##(Duration)">DCSTYpes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CONTROLLABLE).New" > <a id="#(CONTROLLABLE).New" >
<strong>CONTROLLABLE:New(ControllableName)</strong> <strong>CONTROLLABLE:New(ControllableName)</strong>
</a> </a>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li>DCSWorld</li> <li>DCSWorld</li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li>DCScountry</li> <li>DCScountry</li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li>DCStimer</li> <li>DCStimer</li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -0,0 +1,129 @@
<!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="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li>DCStrigger</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="DetectionManager.html">DetectionManager</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</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="Process.html">Process</a></li>
<li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</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="StateMachine.html">StateMachine</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="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li>
<li><a href="Task_Client_Menu.html">Task_Client_Menu</a></li>
<li><a href="Task_Route.html">Task_Route</a></li>
<li><a href="Task_SEAD.html">Task_SEAD</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>DCStrigger</code></h1>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#trigger">trigger</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(timer)">#timer</a></em>
<a id="trigger" >
<strong>trigger</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(DCStrigger)" >Type <code>DCStrigger</code></a></h2>
<h2><a id="#(timer)" >Type <code>timer</code></a></h2>
</div>
</div>
</body>
</html>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li>DEPLOYTASK</li> <li>DEPLOYTASK</li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li>DESTROYBASETASK</li> <li>DESTROYBASETASK</li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li>DESTROYGROUPSTASK</li> <li>DESTROYGROUPSTASK</li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

File diff suppressed because it is too large Load Diff

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>
@ -118,11 +119,29 @@ If an ad-hoc report is requested, use the method <a href="DetectionManager.html#
<hr/> <hr/>
<h1>2) <a href="DetectionManager.html##(FAC_REPORTING)">DetectionManager#FAC_REPORTING</a> class, extends <a href="DetectionManager.html##(DETECTION_MANAGER)">DetectionManager#DETECTION_MANAGER</a></h1> <h1>2) <a href="DetectionManager.html##(DETECTION_REPORTING)">DetectionManager#DETECTION_REPORTING</a> class, extends <a href="DetectionManager.html##(DETECTION_MANAGER)">DetectionManager#DETECTION_MANAGER</a></h1>
<p>The <a href="DetectionManager.html##(FAC_REPORTING)">DetectionManager#FAC_REPORTING</a> class implements detected units reporting. Reporting can be controlled using the reporting methods available in the <a href="DetectionManager.html##(DETECTION_MANAGER)">DetectionManager#DETECTION_MANAGER</a> class.</p> <p>The <a href="DetectionManager.html##(DETECTION_REPORTING)">DetectionManager#DETECTION_REPORTING</a> class implements detected units reporting. Reporting can be controlled using the reporting methods available in the <a href="DetectionManager.html##(DETECTION_MANAGER)">DetectionManager#DETECTION_MANAGER</a> class.</p>
<h2>2.1) FAC_REPORTING constructor:</h2> <h2>2.1) DETECTION_REPORTING constructor:</h2>
<p>The <a href="DetectionManager.html##(FAC_REPORTING).New">DetectionManager#FAC_REPORTING.New</a>() method creates a new FAC_REPORTING instance.</p> <p>The <a href="DetectionManager.html##(DETECTION_REPORTING).New">DetectionManager#DETECTION_REPORTING.New</a>() method creates a new DETECTION_REPORTING instance.</p>
<hr/>
<h1>3) <a href="##(DETECTION_DISPATCHER)">#DETECTION_DISPATCHER</a> class, extends <a href="##(DETECTION_MANAGER)">#DETECTION_MANAGER</a></h1>
<p>The <a href="##(DETECTION_DISPATCHER)">#DETECTION_DISPATCHER</a> class implements the dynamic dispatching of tasks upon groups of detected units determined a <a href="Set.html">Set</a> of FAC (groups).
The FAC will detect units, will group them, and will dispatch <a href="Task.html">Task</a>s to groups. Depending on the type of target detected, different tasks will be dispatched.
Find a summary below describing for which situation a task type is created:</p>
<ul>
<li><strong>CAS Task</strong>: Is created when there are enemy ground units within range of the FAC, while there are friendly units in the FAC perimeter.</li>
<li><strong>BAI Task</strong>: Is created when there are enemy ground units within range of the FAC, while there are NO other friendly units within the FAC perimeter.</li>
<li><strong>SEAD Task</strong>: Is created when there are enemy ground units wihtin range of the FAC, with air search radars.</li>
</ul>
<p>Other task types will follow...</p>
<h2>3.1) DETECTION_DISPATCHER constructor:</h2>
<p>The <a href="##(DETECTION_DISPATCHER).New">DETECTION_DISPATCHER.New</a>() method creates a new DETECTION_DISPATCHER instance.</p>
<hr/> <hr/>
@ -132,6 +151,12 @@ If an ad-hoc report is requested, use the method <a href="DetectionManager.html#
<h2>Global(s)</h2> <h2>Global(s)</h2>
<table class="function_list"> <table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#DETECTION_DISPATCHER">DETECTION_DISPATCHER</a></td>
<td class="summary">
</td>
</tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="#DETECTION_MANAGER">DETECTION_MANAGER</a></td> <td class="name" nowrap="nowrap"><a href="#DETECTION_MANAGER">DETECTION_MANAGER</a></td>
<td class="summary"> <td class="summary">
@ -139,18 +164,82 @@ If an ad-hoc report is requested, use the method <a href="DetectionManager.html#
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="#FAC_REPORTING">FAC_REPORTING</a></td> <td class="name" nowrap="nowrap"><a href="#DETECTION_REPORTING">DETECTION_REPORTING</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#TASK_DISPATCHER">TASK_DISPATCHER</a></td>
<td class="summary"> <td class="summary">
</td> </td>
</tr> </tr>
</table> </table>
<h2><a id="#(DETECTION_DISPATCHER)">Type <code>DETECTION_DISPATCHER</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).ClassName">DETECTION_DISPATCHER.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).CommandCenter">DETECTION_DISPATCHER.CommandCenter</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).Detection">DETECTION_DISPATCHER.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="##(DETECTION_DISPATCHER).EvaluateBAI">DETECTION_DISPATCHER:EvaluateBAI(DetectedArea, FriendlyCoalition)</a></td>
<td class="summary">
<p>Creates a BAI task when there are targets for it.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).EvaluateCAS">DETECTION_DISPATCHER:EvaluateCAS(DetectedArea)</a></td>
<td class="summary">
<p>Creates a CAS task when there are targets for it.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).EvaluateRemoveTask">DETECTION_DISPATCHER:EvaluateRemoveTask(Mission, Task, DetectedArea)</a></td>
<td class="summary">
<p>Evaluates the removal of the Task from the Mission.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).EvaluateSEAD">DETECTION_DISPATCHER:EvaluateSEAD(DetectedArea)</a></td>
<td class="summary">
<p>Creates a SEAD task when there are targets for it.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).Mission">DETECTION_DISPATCHER.Mission</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).New">DETECTION_DISPATCHER:New(SetGroup, Detection, Mission, CommandCenter)</a></td>
<td class="summary">
<p>DETECTION_DISPATCHER constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).ProcessDetected">DETECTION_DISPATCHER:ProcessDetected(Detection)</a></td>
<td class="summary">
<p>Assigns tasks in relation to the detected items to the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_DISPATCHER).SetGroup">DETECTION_DISPATCHER.SetGroup</a></td>
<td class="summary">
<p>The groups to which the FAC will report to.</p>
</td>
</tr>
</table>
<h2><a id="#(DETECTION_MANAGER)">Type <code>DETECTION_MANAGER</code></a></h2> <h2><a id="#(DETECTION_MANAGER)">Type <code>DETECTION_MANAGER</code></a></h2>
<table class="function_list"> <table class="function_list">
<tr> <tr>
@ -239,104 +328,40 @@ If an ad-hoc report is requested, use the method <a href="DetectionManager.html#
</tr> </tr>
</table> </table>
<h2><a id="#(FAC_REPORTING)">Type <code>FAC_REPORTING</code></a></h2> <h2><a id="#(DETECTION_REPORTING)">Type <code>DETECTION_REPORTING</code></a></h2>
<table class="function_list"> <table class="function_list">
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).ClassName">FAC_REPORTING.ClassName</a></td> <td class="name" nowrap="nowrap"><a href="##(DETECTION_REPORTING).ClassName">DETECTION_REPORTING.ClassName</a></td>
<td class="summary"> <td class="summary">
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).Detection">FAC_REPORTING.Detection</a></td> <td class="name" nowrap="nowrap"><a href="##(DETECTION_REPORTING).Detection">DETECTION_REPORTING.Detection</a></td>
<td class="summary"> <td class="summary">
<p>The DETECTION_BASE object that is used to report the detected objects.</p> <p>The DETECTION_BASE object that is used to report the detected objects.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).GetDetectedItemsText">FAC_REPORTING:GetDetectedItemsText(DetectedSet)</a></td> <td class="name" nowrap="nowrap"><a href="##(DETECTION_REPORTING).GetDetectedItemsText">DETECTION_REPORTING:GetDetectedItemsText(DetectedSet)</a></td>
<td class="summary"> <td class="summary">
<p>Creates a string of the detected items in a <a href="Detection.html">Detection</a>.</p> <p>Creates a string of the detected items in a <a href="Detection.html">Detection</a>.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).New">FAC_REPORTING:New(SetGroup, Detection)</a></td> <td class="name" nowrap="nowrap"><a href="##(DETECTION_REPORTING).New">DETECTION_REPORTING:New(SetGroup, Detection)</a></td>
<td class="summary"> <td class="summary">
<p>FAC_REPORTING constructor.</p> <p>DETECTION_REPORTING constructor.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).ProcessDetected">FAC_REPORTING:ProcessDetected(Group, Detection)</a></td> <td class="name" nowrap="nowrap"><a href="##(DETECTION_REPORTING).ProcessDetected">DETECTION_REPORTING:ProcessDetected(Group, Detection)</a></td>
<td class="summary"> <td class="summary">
<p>Reports the detected items to the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a>.</p> <p>Reports the detected items to the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a>.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(FAC_REPORTING).SetGroup">FAC_REPORTING.SetGroup</a></td> <td class="name" nowrap="nowrap"><a href="##(DETECTION_REPORTING).SetGroup">DETECTION_REPORTING.SetGroup</a></td>
<td class="summary">
<p>The groups to which the FAC will report to.</p>
</td>
</tr>
</table>
<h2><a id="#(TASK_DISPATCHER)">Type <code>TASK_DISPATCHER</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_DISPATCHER).ClassName">TASK_DISPATCHER.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_DISPATCHER).CommandCenter">TASK_DISPATCHER.CommandCenter</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_DISPATCHER).Detection">TASK_DISPATCHER.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="##(TASK_DISPATCHER).EvaluateTaskCAS">TASK_DISPATCHER:EvaluateTaskCAS(Mission, DetectedArea)</a></td>
<td class="summary">
<p>Creates a CAS task when there are targets for it.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_DISPATCHER).EvaluateTaskSEAD">TASK_DISPATCHER:EvaluateTaskSEAD(Mission, DetectedArea)</a></td>
<td class="summary">
<p>Creates a SEAD task when there are targets for it.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_DISPATCHER).GetDetectedItemsText">TASK_DISPATCHER:GetDetectedItemsText(DetectedSet)</a></td>
<td class="summary">
<p>Creates a string of the detected items in a <a href="Detection.html">Detection</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_DISPATCHER).Mission">TASK_DISPATCHER.Mission</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_DISPATCHER).New">TASK_DISPATCHER:New(SetGroup, Detection, Mission, CommandCenter)</a></td>
<td class="summary">
<p>TASK_DISPATCHER constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_DISPATCHER).ProcessDetected">TASK_DISPATCHER:ProcessDetected(Group, Detection, TaskGroup)</a></td>
<td class="summary">
<p>Assigns tasks in relation to the detected items to the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_DISPATCHER).SetGroup">TASK_DISPATCHER.SetGroup</a></td>
<td class="summary"> <td class="summary">
<p>The groups to which the FAC will report to.</p> <p>The groups to which the FAC will report to.</p>
</td> </td>
@ -347,6 +372,20 @@ If an ad-hoc report is requested, use the method <a href="DetectionManager.html#
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="##(DETECTION_DISPATCHER)">#DETECTION_DISPATCHER</a></em>
<a id="DETECTION_DISPATCHER" >
<strong>DETECTION_DISPATCHER</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(DETECTION_MANAGER)">#DETECTION_MANAGER</a></em> <em><a href="##(DETECTION_MANAGER)">#DETECTION_MANAGER</a></em>
<a id="DETECTION_MANAGER" > <a id="DETECTION_MANAGER" >
<strong>DETECTION_MANAGER</strong> <strong>DETECTION_MANAGER</strong>
@ -361,9 +400,30 @@ If an ad-hoc report is requested, use the method <a href="DetectionManager.html#
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="##(FAC_REPORTING)">#FAC_REPORTING</a></em> <em><a href="##(DETECTION_REPORTING)">#DETECTION_REPORTING</a></em>
<a id="FAC_REPORTING" > <a id="DETECTION_REPORTING" >
<strong>FAC_REPORTING</strong> <strong>DETECTION_REPORTING</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(DetectionManager)" >Type <code>DetectionManager</code></a></h2>
<h2><a id="#(DETECTION_DISPATCHER)" >Type <code>DETECTION_DISPATCHER</code></a></h2>
<p>DETECTION_DISPATCHER class.</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(DETECTION_DISPATCHER).ClassName" >
<strong>DETECTION_DISPATCHER.ClassName</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -375,9 +435,9 @@ If an ad-hoc report is requested, use the method <a href="DetectionManager.html#
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="##(TASK_DISPATCHER)">#TASK_DISPATCHER</a></em> <em><a href="Group.html##(GROUP)">Group#GROUP</a></em>
<a id="TASK_DISPATCHER" > <a id="#(DETECTION_DISPATCHER).CommandCenter" >
<strong>TASK_DISPATCHER</strong> <strong>DETECTION_DISPATCHER.CommandCenter</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -386,7 +446,248 @@ If an ad-hoc report is requested, use the method <a href="DetectionManager.html#
</dd> </dd>
</dl> </dl>
<h2><a id="#(DetectionManager)" >Type <code>DetectionManager</code></a></h2> <dl class="function">
<dt>
<em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a></em>
<a id="#(DETECTION_DISPATCHER).Detection" >
<strong>DETECTION_DISPATCHER.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="#(DETECTION_DISPATCHER).EvaluateBAI" >
<strong>DETECTION_DISPATCHER:EvaluateBAI(DetectedArea, FriendlyCoalition)</strong>
</a>
</dt>
<dd>
<p>Creates a BAI task when there are targets for it.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Detection.html##(DETECTION_AREAS.DetectedArea)">Detection#DETECTION_AREAS.DetectedArea</a> DetectedArea </em></code>: </p>
</li>
<li>
<p><code><em> FriendlyCoalition </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DETECTION_DISPATCHER).EvaluateCAS" >
<strong>DETECTION_DISPATCHER:EvaluateCAS(DetectedArea)</strong>
</a>
</dt>
<dd>
<p>Creates a CAS task when there are targets for it.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Detection.html##(DETECTION_AREAS.DetectedArea)">Detection#DETECTION_AREAS.DetectedArea</a> DetectedArea </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DETECTION_DISPATCHER).EvaluateRemoveTask" >
<strong>DETECTION_DISPATCHER:EvaluateRemoveTask(Mission, Task, DetectedArea)</strong>
</a>
</dt>
<dd>
<p>Evaluates the removal of the Task from the Mission.</p>
<p>Can only occur when the DetectedArea is Changed AND the state of the Task is "Planned".</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Mission.html##(MISSION)">Mission#MISSION</a> Mission </em></code>: </p>
</li>
<li>
<p><code><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a> Task </em></code>: </p>
</li>
<li>
<p><code><em><a href="Detection.html##(DETECTION_AREAS.DetectedArea)">Detection#DETECTION_AREAS.DetectedArea</a> DetectedArea </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DETECTION_DISPATCHER).EvaluateSEAD" >
<strong>DETECTION_DISPATCHER:EvaluateSEAD(DetectedArea)</strong>
</a>
</dt>
<dd>
<p>Creates a SEAD task when there are targets for it.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Detection.html##(DETECTION_AREAS.DetectedArea)">Detection#DETECTION_AREAS.DetectedArea</a> DetectedArea </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="Set.html##(SET_UNIT)">Set#SET_UNIT</a>:</em>
TargetSetUnit: The target set of units.</p>
</li>
<li>
<p><em>#nil:</em>
If there are no targets to be set.</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Mission.html##(MISSION)">Mission#MISSION</a></em>
<a id="#(DETECTION_DISPATCHER).Mission" >
<strong>DETECTION_DISPATCHER.Mission</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DETECTION_DISPATCHER).New" >
<strong>DETECTION_DISPATCHER:New(SetGroup, Detection, Mission, CommandCenter)</strong>
</a>
</dt>
<dd>
<p>DETECTION_DISPATCHER constructor.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a> SetGroup </em></code>: </p>
</li>
<li>
<p><code><em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a> Detection </em></code>: </p>
</li>
<li>
<p><code><em> Mission </em></code>: </p>
</li>
<li>
<p><code><em> CommandCenter </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(DETECTION_DISPATCHER)">#DETECTION_DISPATCHER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DETECTION_DISPATCHER).ProcessDetected" >
<strong>DETECTION_DISPATCHER:ProcessDetected(Detection)</strong>
</a>
</dt>
<dd>
<p>Assigns tasks in relation to the detected items to the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Detection.html##(DETECTION_AREAS)">Detection#DETECTION_AREAS</a> Detection </em></code>:
The detection created by the <a href="Detection.html##(DETECTION_AREAS)">Detection#DETECTION_AREAS</a> object.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Return true if you want the task assigning to continue... false will cancel the loop.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a></em>
<a id="#(DETECTION_DISPATCHER).SetGroup" >
<strong>DETECTION_DISPATCHER.SetGroup</strong>
</a>
</dt>
<dd>
<p>The groups to which the FAC will report to.</p>
</dd>
</dl>
<h2><a id="#(DETECTION_MANAGER)" >Type <code>DETECTION_MANAGER</code></a></h2> <h2><a id="#(DETECTION_MANAGER)" >Type <code>DETECTION_MANAGER</code></a></h2>
@ -675,17 +976,17 @@ self</p>
</dd> </dd>
</dl> </dl>
<h2><a id="#(FAC_REPORTING)" >Type <code>FAC_REPORTING</code></a></h2> <h2><a id="#(DETECTION_REPORTING)" >Type <code>DETECTION_REPORTING</code></a></h2>
<p>FAC_REPORTING class.</p> <p>DETECTION_REPORTING class.</p>
<h3>Field(s)</h3> <h3>Field(s)</h3>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#string</em> <em>#string</em>
<a id="#(FAC_REPORTING).ClassName" > <a id="#(DETECTION_REPORTING).ClassName" >
<strong>FAC_REPORTING.ClassName</strong> <strong>DETECTION_REPORTING.ClassName</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -698,8 +999,8 @@ self</p>
<dt> <dt>
<em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a></em> <em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a></em>
<a id="#(FAC_REPORTING).Detection" > <a id="#(DETECTION_REPORTING).Detection" >
<strong>FAC_REPORTING.Detection</strong> <strong>DETECTION_REPORTING.Detection</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -711,8 +1012,8 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(FAC_REPORTING).GetDetectedItemsText" > <a id="#(DETECTION_REPORTING).GetDetectedItemsText" >
<strong>FAC_REPORTING:GetDetectedItemsText(DetectedSet)</strong> <strong>DETECTION_REPORTING:GetDetectedItemsText(DetectedSet)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -738,13 +1039,13 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(FAC_REPORTING).New" > <a id="#(DETECTION_REPORTING).New" >
<strong>FAC_REPORTING:New(SetGroup, Detection)</strong> <strong>DETECTION_REPORTING:New(SetGroup, Detection)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>FAC_REPORTING constructor.</p> <p>DETECTION_REPORTING constructor.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
@ -755,13 +1056,13 @@ self</p>
</li> </li>
<li> <li>
<p><code><em><a href="Detection.html##(DETECTION_UNITGROUPS)">Detection#DETECTION_UNITGROUPS</a> Detection </em></code>: </p> <p><code><em><a href="Detection.html##(DETECTION_AREAS)">Detection#DETECTION_AREAS</a> Detection </em></code>: </p>
</li> </li>
</ul> </ul>
<h3>Return value</h3> <h3>Return value</h3>
<p><em><a href="##(FAC_REPORTING)">#FAC_REPORTING</a>:</em> <p><em><a href="##(DETECTION_REPORTING)">#DETECTION_REPORTING</a>:</em>
self</p> self</p>
</dd> </dd>
@ -769,8 +1070,8 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(FAC_REPORTING).ProcessDetected" > <a id="#(DETECTION_REPORTING).ProcessDetected" >
<strong>FAC_REPORTING:ProcessDetected(Group, Detection)</strong> <strong>DETECTION_REPORTING:ProcessDetected(Group, Detection)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -787,7 +1088,7 @@ The <a href="Group.html">Group</a> object to where the report needs to go.</p>
</li> </li>
<li> <li>
<p><code><em><a href="Detection.html##(DETECTION_UNITGROUPS)">Detection#DETECTION_UNITGROUPS</a> Detection </em></code>: <p><code><em><a href="Detection.html##(DETECTION_AREAS)">Detection#DETECTION_AREAS</a> Detection </em></code>:
The detection created by the <a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a> object.</p> The detection created by the <a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a> object.</p>
</li> </li>
@ -803,252 +1104,8 @@ Return true if you want the reporting to continue... false will cancel the repor
<dt> <dt>
<em><a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a></em> <em><a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a></em>
<a id="#(FAC_REPORTING).SetGroup" > <a id="#(DETECTION_REPORTING).SetGroup" >
<strong>FAC_REPORTING.SetGroup</strong> <strong>DETECTION_REPORTING.SetGroup</strong>
</a>
</dt>
<dd>
<p>The groups to which the FAC will report to.</p>
</dd>
</dl>
<h2><a id="#(TASK_DISPATCHER)" >Type <code>TASK_DISPATCHER</code></a></h2>
<p>TASK_DISPATCHER class.</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(TASK_DISPATCHER).ClassName" >
<strong>TASK_DISPATCHER.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Group.html##(GROUP)">Group#GROUP</a></em>
<a id="#(TASK_DISPATCHER).CommandCenter" >
<strong>TASK_DISPATCHER.CommandCenter</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a></em>
<a id="#(TASK_DISPATCHER).Detection" >
<strong>TASK_DISPATCHER.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="#(TASK_DISPATCHER).EvaluateTaskCAS" >
<strong>TASK_DISPATCHER:EvaluateTaskCAS(Mission, DetectedArea)</strong>
</a>
</dt>
<dd>
<p>Creates a CAS task when there are targets for it.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Mission.html##(MISSION)">Mission#MISSION</a> Mission </em></code>: </p>
</li>
<li>
<p><code><em><a href="Detection.html##(DETECTION_UNITGROUPS.DetectedArea)">Detection#DETECTION_UNITGROUPS.DetectedArea</a> DetectedArea </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#string:</em>
Message explaining which task was added.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_DISPATCHER).EvaluateTaskSEAD" >
<strong>TASK_DISPATCHER:EvaluateTaskSEAD(Mission, DetectedArea)</strong>
</a>
</dt>
<dd>
<p>Creates a SEAD task when there are targets for it.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Mission.html##(MISSION)">Mission#MISSION</a> Mission </em></code>: </p>
</li>
<li>
<p><code><em><a href="Detection.html##(DETECTION_UNITGROUPS.DetectedArea)">Detection#DETECTION_UNITGROUPS.DetectedArea</a> DetectedArea </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#string:</em>
Message explaining which task was added.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_DISPATCHER).GetDetectedItemsText" >
<strong>TASK_DISPATCHER:GetDetectedItemsText(DetectedSet)</strong>
</a>
</dt>
<dd>
<p>Creates a string of the detected items in a <a href="Detection.html">Detection</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Set.html##(SET_UNIT)">Set#SET_UNIT</a> DetectedSet </em></code>:
The detected Set created by the <a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a> object.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#string:</em>
The text</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Mission.html##(MISSION)">Mission#MISSION</a></em>
<a id="#(TASK_DISPATCHER).Mission" >
<strong>TASK_DISPATCHER.Mission</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_DISPATCHER).New" >
<strong>TASK_DISPATCHER:New(SetGroup, Detection, Mission, CommandCenter)</strong>
</a>
</dt>
<dd>
<p>TASK_DISPATCHER constructor.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a> SetGroup </em></code>: </p>
</li>
<li>
<p><code><em><a href="Detection.html##(DETECTION_BASE)">Detection#DETECTION_BASE</a> Detection </em></code>: </p>
</li>
<li>
<p><code><em> Mission </em></code>: </p>
</li>
<li>
<p><code><em> CommandCenter </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_DISPATCHER)">#TASK_DISPATCHER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_DISPATCHER).ProcessDetected" >
<strong>TASK_DISPATCHER:ProcessDetected(Group, Detection, TaskGroup)</strong>
</a>
</dt>
<dd>
<p>Assigns tasks in relation to the detected items to the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a>.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Group.html##(GROUP)">Group#GROUP</a> Group </em></code>:
The <a href="Group.html">Group</a> object to where the report needs to go.</p>
</li>
<li>
<p><code><em><a href="Detection.html##(DETECTION_UNITGROUPS)">Detection#DETECTION_UNITGROUPS</a> Detection </em></code>:
The detection created by the <a href="Detection.html##(DETECTION_UNITGROUPS)">Detection#DETECTION_UNITGROUPS</a> object.</p>
</li>
<li>
<p><code><em> TaskGroup </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Return true if you want the task assigning to continue... false will cancel the loop.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a></em>
<a id="#(TASK_DISPATCHER).SetGroup" >
<strong>TASK_DISPATCHER.SetGroup</strong>
</a> </a>
</dt> </dt>
<dd> <dd>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>
@ -156,6 +157,12 @@
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnBirthForUnit">EVENT:OnBirthForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnBirthForUnit">EVENT:OnBirthForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>BIRTH event.</p> <p>Set a new listener for an S<em>EVENT</em>BIRTH event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnBirthRemove">EVENT:OnBirthRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>BIRTH event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -174,6 +181,12 @@
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnCrashForUnit">EVENT:OnCrashForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnCrashForUnit">EVENT:OnCrashForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>CRASH event.</p> <p>Set a new listener for an S<em>EVENT</em>CRASH event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnCrashRemove">EVENT:OnCrashRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>CRASH event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -192,6 +205,12 @@
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnDeadForUnit">EVENT:OnDeadForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnDeadForUnit">EVENT:OnDeadForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>DEAD event.</p> <p>Set a new listener for an S<em>EVENT</em>DEAD event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnDeadRemove">EVENT:OnDeadRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>DEAD event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -204,12 +223,24 @@
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnEngineShutDownForUnit">EVENT:OnEngineShutDownForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnEngineShutDownForUnit">EVENT:OnEngineShutDownForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>ENGINE_SHUTDOWN event.</p> <p>Set a new listener for an S<em>EVENT</em>ENGINE_SHUTDOWN event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnEngineShutDownRemove">EVENT:OnEngineShutDownRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>ENGINE_SHUTDOWN event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnEngineStartUpForUnit">EVENT:OnEngineStartUpForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnEngineStartUpForUnit">EVENT:OnEngineStartUpForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>ENGINE_STARTUP event.</p> <p>Set a new listener for an S<em>EVENT</em>ENGINE_STARTUP event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnEngineStartUpRemove">EVENT:OnEngineStartUpRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>ENGINE_STARTUP event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -240,18 +271,30 @@
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnHitForUnit">EVENT:OnHitForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnHitForUnit">EVENT:OnHitForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>HIT event.</p> <p>Set a new listener for an S<em>EVENT</em>HIT event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnHitRemove">EVENT:OnHitRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>HIT event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnLandForTemplate">EVENT:OnLandForTemplate(EventTemplate, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnLandForTemplate">EVENT:OnLandForTemplate(EventTemplate, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Create an OnDead event handler for a group</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnLandForUnit">EVENT:OnLandForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnLandForUnit">EVENT:OnLandForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>LAND event.</p> <p>Set a new listener for an S<em>EVENT</em>LAND event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnLandRemove">EVENT:OnLandRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>LAND event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -264,42 +307,78 @@
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnPilotDeadForUnit">EVENT:OnPilotDeadForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnPilotDeadForUnit">EVENT:OnPilotDeadForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>PILOT_DEAD event.</p> <p>Set a new listener for an S<em>EVENT</em>PILOT_DEAD event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnPilotDeadRemove">EVENT:OnPilotDeadRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>PILOT_DEAD event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnPlayerEnterRemove">EVENT:OnPlayerEnterRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>PLAYER<em>ENTER</em>UNIT event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnPlayerEnterUnit">EVENT:OnPlayerEnterUnit(EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnPlayerEnterUnit">EVENT:OnPlayerEnterUnit(EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>PLAYER<em>ENTER</em>UNIT event.</p> <p>Set a new listener for an S<em>EVENT</em>PLAYER<em>ENTER</em>UNIT event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnPlayerLeaveRemove">EVENT:OnPlayerLeaveRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>PLAYER<em>LEAVE</em>UNIT event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnPlayerLeaveUnit">EVENT:OnPlayerLeaveUnit(EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnPlayerLeaveUnit">EVENT:OnPlayerLeaveUnit(EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>PLAYER<em>LEAVE</em>UNIT event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnShot">EVENT:OnShot(EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnShot">EVENT:OnShot(EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>SHOT event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnShotForUnit">EVENT:OnShotForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnShotForUnit">EVENT:OnShotForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>SHOT event for a unit.</p> <p>Set a new listener for an S<em>EVENT</em>SHOT event for a unit.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnShotRemove">EVENT:OnShotRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>SHOT event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnTakeOffForTemplate">EVENT:OnTakeOffForTemplate(EventTemplate, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnTakeOffForTemplate">EVENT:OnTakeOffForTemplate(EventTemplate, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Create an OnDead event handler for a group</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnTakeOffForUnit">EVENT:OnTakeOffForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENT).OnTakeOffForUnit">EVENT:OnTakeOffForUnit(EventDCSUnitName, EventFunction, EventSelf)</a></td>
<td class="summary"> <td class="summary">
<p>Set a new listener for an S<em>EVENT</em>TAKEOFF event.</p> <p>Set a new listener for an S<em>EVENT</em>TAKEOFF event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).OnTakeOffRemove">EVENT:OnTakeOffRemove(EventSelf)</a></td>
<td class="summary">
<p>Stop listening to S<em>EVENT</em>TAKEOFF event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).Remove">EVENT:Remove(EventSelf, EventID)</a></td>
<td class="summary">
<p>Removes an Events entry</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -678,6 +757,32 @@ The function to be called when the event occurs for the unit.</p>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p> <p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnBirthRemove" >
<strong>EVENT:OnBirthRemove(EventSelf)</strong>
</a>
</dt>
<dd>
<p>Stop listening to S<em>EVENT</em>BIRTH event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -791,6 +896,32 @@ The self instance of the class for which the event is.</p>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p> <p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnCrashRemove" >
<strong>EVENT:OnCrashRemove(EventSelf)</strong>
</a>
</dt>
<dd>
<p>Stop listening to S<em>EVENT</em>CRASH event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -904,6 +1035,32 @@ The self instance of the class for which the event is.</p>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p> <p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnDeadRemove" >
<strong>EVENT:OnDeadRemove(EventSelf)</strong>
</a>
</dt>
<dd>
<p>Stop listening to S<em>EVENT</em>DEAD event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -980,6 +1137,32 @@ The self instance of the class for which the event is.</p>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p> <p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnEngineShutDownRemove" >
<strong>EVENT:OnEngineShutDownRemove(EventSelf)</strong>
</a>
</dt>
<dd>
<p>Stop listening to S<em>EVENT</em>ENGINE_SHUTDOWN event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1018,6 +1201,32 @@ The self instance of the class for which the event is.</p>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p> <p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnEngineStartUpRemove" >
<strong>EVENT:OnEngineStartUpRemove(EventSelf)</strong>
</a>
</dt>
<dd>
<p>Stop listening to S<em>EVENT</em>ENGINE_STARTUP event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1218,31 +1427,19 @@ The self instance of the class for which the event is.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(EVENT).OnLandForTemplate" > <a id="#(EVENT).OnHitRemove" >
<strong>EVENT:OnLandForTemplate(EventTemplate, EventFunction, EventSelf)</strong> <strong>EVENT:OnHitRemove(EventSelf)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Create an OnDead event handler for a group</p> <p>Stop listening to S<em>EVENT</em>HIT event.</p>
<h3>Parameters</h3> <h3>Parameter</h3>
<ul> <ul>
<li> <li>
<p><code><em>#table EventTemplate </em></code>: </p> <p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
<li>
<p><code><em> EventSelf </em></code>:
The self instance of the class for which the event is.</p>
</li> </li>
</ul> </ul>
@ -1256,6 +1453,37 @@ The self instance of the class for which the event is.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(EVENT).OnLandForTemplate" >
<strong>EVENT:OnLandForTemplate(EventTemplate, EventFunction, EventSelf)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> EventTemplate </em></code>: </p>
</li>
<li>
<p><code><em> EventFunction </em></code>: </p>
</li>
<li>
<p><code><em> EventSelf </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnLandForUnit" > <a id="#(EVENT).OnLandForUnit" >
<strong>EVENT:OnLandForUnit(EventDCSUnitName, EventFunction, EventSelf)</strong> <strong>EVENT:OnLandForUnit(EventDCSUnitName, EventFunction, EventSelf)</strong>
</a> </a>
@ -1289,6 +1517,32 @@ The self instance of the class for which the event is.</p>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p> <p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnLandRemove" >
<strong>EVENT:OnLandRemove(EventSelf)</strong>
</a>
</dt>
<dd>
<p>Stop listening to S<em>EVENT</em>LAND event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1359,6 +1613,58 @@ The self instance of the class for which the event is.</p>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p> <p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnPilotDeadRemove" >
<strong>EVENT:OnPilotDeadRemove(EventSelf)</strong>
</a>
</dt>
<dd>
<p>Stop listening to S<em>EVENT</em>PILOT_DEAD event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnPlayerEnterRemove" >
<strong>EVENT:OnPlayerEnterRemove(EventSelf)</strong>
</a>
</dt>
<dd>
<p>Stop listening to S<em>EVENT</em>PLAYER<em>ENTER</em>UNIT event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1397,26 +1703,19 @@ The self instance of the class for which the event is.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(EVENT).OnPlayerLeaveUnit" > <a id="#(EVENT).OnPlayerLeaveRemove" >
<strong>EVENT:OnPlayerLeaveUnit(EventFunction, EventSelf)</strong> <strong>EVENT:OnPlayerLeaveRemove(EventSelf)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Set a new listener for an S<em>EVENT</em>PLAYER<em>LEAVE</em>UNIT event.</p> <p>Stop listening to S<em>EVENT</em>PLAYER<em>LEAVE</em>UNIT event.</p>
<h3>Parameters</h3> <h3>Parameter</h3>
<ul> <ul>
<li> <li>
<p><code><em>#function EventFunction </em></code>: <p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
The function to be called when the event occurs for the unit.</p>
</li>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>:
The self instance of the class for which the event is.</p>
</li> </li>
</ul> </ul>
@ -1430,34 +1729,53 @@ The self instance of the class for which the event is.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(EVENT).OnPlayerLeaveUnit" >
<strong>EVENT:OnPlayerLeaveUnit(EventFunction, EventSelf)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> EventFunction </em></code>: </p>
</li>
<li>
<p><code><em> EventSelf </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnShot" > <a id="#(EVENT).OnShot" >
<strong>EVENT:OnShot(EventFunction, EventSelf)</strong> <strong>EVENT:OnShot(EventFunction, EventSelf)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Set a new listener for an S<em>EVENT</em>SHOT event.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
<li> <li>
<p><code><em>#function EventFunction </em></code>: <p><code><em> EventFunction </em></code>: </p>
The function to be called when the event occurs for the unit.</p>
</li> </li>
<li> <li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: <p><code><em> EventSelf </em></code>: </p>
The self instance of the class for which the event is.</p>
</li> </li>
</ul> </ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1501,31 +1819,19 @@ The self instance of the class for which the event is.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(EVENT).OnTakeOffForTemplate" > <a id="#(EVENT).OnShotRemove" >
<strong>EVENT:OnTakeOffForTemplate(EventTemplate, EventFunction, EventSelf)</strong> <strong>EVENT:OnShotRemove(EventSelf)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Create an OnDead event handler for a group</p> <p>Stop listening to S<em>EVENT</em>SHOT event.</p>
<h3>Parameters</h3> <h3>Parameter</h3>
<ul> <ul>
<li> <li>
<p><code><em>#table EventTemplate </em></code>: </p> <p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
<li>
<p><code><em> EventSelf </em></code>:
The self instance of the class for which the event is.</p>
</li> </li>
</ul> </ul>
@ -1539,6 +1845,37 @@ The self instance of the class for which the event is.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(EVENT).OnTakeOffForTemplate" >
<strong>EVENT:OnTakeOffForTemplate(EventTemplate, EventFunction, EventSelf)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> EventTemplate </em></code>: </p>
</li>
<li>
<p><code><em> EventFunction </em></code>: </p>
</li>
<li>
<p><code><em> EventSelf </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnTakeOffForUnit" > <a id="#(EVENT).OnTakeOffForUnit" >
<strong>EVENT:OnTakeOffForUnit(EventDCSUnitName, EventFunction, EventSelf)</strong> <strong>EVENT:OnTakeOffForUnit(EventDCSUnitName, EventFunction, EventSelf)</strong>
</a> </a>
@ -1572,6 +1909,64 @@ The self instance of the class for which the event is.</p>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p> <p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).OnTakeOffRemove" >
<strong>EVENT:OnTakeOffRemove(EventSelf)</strong>
</a>
</dt>
<dd>
<p>Stop listening to S<em>EVENT</em>TAKEOFF event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT)">#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).Remove" >
<strong>EVENT:Remove(EventSelf, EventID)</strong>
</a>
</dt>
<dd>
<p>Removes an Events entry</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Base.html##(BASE)">Base#BASE</a> EventSelf </em></code>:
The self instance of the class for which the event is.</p>
</li>
<li>
<p><code><em><a href="DCSWorld.html##(world.event)">DCSWorld#world.event</a> EventID </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(EVENT.Events)">#EVENT.Events</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>
@ -377,12 +378,6 @@ Use the following Zone validation methods on the group:</p>
<td class="name" nowrap="nowrap"><a href="##(GROUP).GetMaxVelocity">GROUP:GetMaxVelocity()</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).GetMaxVelocity">GROUP:GetMaxVelocity()</a></td>
<td class="summary"> <td class="summary">
<p>Returns the current maximum velocity of the group.</p> <p>Returns the current maximum velocity of the group.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).GetMessage">GROUP:GetMessage(Message, Duration)</a></td>
<td class="summary">
<p>Returns a message for a coalition or a client.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -503,42 +498,6 @@ Use the following Zone validation methods on the group:</p>
<td class="name" nowrap="nowrap"><a href="##(GROUP).IsShip">GROUP:IsShip()</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).IsShip">GROUP:IsShip()</a></td>
<td class="summary"> <td class="summary">
<p>Returns if the DCS Group contains Ships.</p> <p>Returns if the DCS Group contains Ships.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).Message">GROUP:Message(Message, Duration)</a></td>
<td class="summary">
<p>Send a message to the players in the <a href="Group.html">Group</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).MessageToAll">GROUP:MessageToAll(Message, Duration)</a></td>
<td class="summary">
<p>Send a message to all coalitions.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).MessageToBlue">GROUP:MessageToBlue(Message, Duration)</a></td>
<td class="summary">
<p>Send a message to the blue coalition.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).MessageToClient">GROUP:MessageToClient(Message, Duration, Client)</a></td>
<td class="summary">
<p>Send a message to a client.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).MessageToGroup">GROUP:MessageToGroup(Message, Duration, MessageGroup, MsgGroup)</a></td>
<td class="summary">
<p>Send a message to a <a href="Group.html">Group</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).MessageToRed">GROUP:MessageToRed(Message, Duration)</a></td>
<td class="summary">
<p>Send a message to the red coalition.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -983,39 +942,6 @@ Maximum height found.</p>
<p><em>#number:</em> <p><em>#number:</em>
Maximum velocity found.</p> Maximum velocity found.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).GetMessage" >
<strong>GROUP:GetMessage(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Returns a message for a coalition or a client.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Message.html##(MESSAGE)">Message#MESSAGE</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1428,209 +1354,6 @@ true if DCS Group contains Ships.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(GROUP).Message" >
<strong>GROUP:Message(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Send a message to the players in the <a href="Group.html">Group</a>.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).MessageToAll" >
<strong>GROUP:MessageToAll(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Send a message to all coalitions.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).MessageToBlue" >
<strong>GROUP:MessageToBlue(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Send a message to the blue coalition.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).MessageToClient" >
<strong>GROUP:MessageToClient(Message, Duration, Client)</strong>
</a>
</dt>
<dd>
<p>Send a message to a client.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
<li>
<p><code><em><a href="Client.html##(CLIENT)">Client#CLIENT</a> Client </em></code>:
The client object receiving the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).MessageToGroup" >
<strong>GROUP:MessageToGroup(Message, Duration, MessageGroup, MsgGroup)</strong>
</a>
</dt>
<dd>
<p>Send a message to a <a href="Group.html">Group</a>.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
<li>
<p><code><em><a href="Group.html##(GROUP)">Group#GROUP</a> MessageGroup </em></code>:
The GROUP object receiving the message.</p>
</li>
<li>
<p><code><em> MsgGroup </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).MessageToRed" >
<strong>GROUP:MessageToRed(Message, Duration)</strong>
</a>
</dt>
<dd>
<p>Send a message to the red coalition.</p>
<p>The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
The message text</p>
</li>
<li>
<p><code><em><a href="DCSTYpes.html##(Duration)">DCSTYpes#Duration</a> Duration </em></code>:
The duration of the message.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).Register" > <a id="#(GROUP).Register" >
<strong>GROUP:Register(GroupName)</strong> <strong>GROUP:Register(GroupName)</strong>
</a> </a>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>
@ -142,12 +143,6 @@ A <a href="CLIENT.html">CLIENT</a> needs to be registered within the <a href="MI
<td class="name" nowrap="nowrap"><a href="##(MISSION).AddTask">MISSION:AddTask(Task)</a></td> <td class="name" nowrap="nowrap"><a href="##(MISSION).AddTask">MISSION:AddTask(Task)</a></td>
<td class="summary"> <td class="summary">
<p>Register a <a href="Task.html">Task</a> to be completed within the <a href="Mission.html">Mission</a>.</p> <p>Register a <a href="Task.html">Task</a> to be completed within the <a href="Mission.html">Mission</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).AssignTaskToGroup">MISSION.AssignTaskToGroup(MenuParam)</a></td>
<td class="summary">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -166,12 +161,6 @@ A <a href="CLIENT.html">CLIENT</a> needs to be registered within the <a href="MI
<td class="name" nowrap="nowrap"><a href="##(MISSION).Completed">MISSION:Completed()</a></td> <td class="name" nowrap="nowrap"><a href="##(MISSION).Completed">MISSION:Completed()</a></td>
<td class="summary"> <td class="summary">
<p>Set a Mission to completed.</p> <p>Set a Mission to completed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).CreateTaskMenus">MISSION:CreateTaskMenus(TaskGroup)</a></td>
<td class="summary">
<p>Fill mission menu for the Group.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -193,7 +182,7 @@ A <a href="CLIENT.html">CLIENT</a> needs to be registered within the <a href="MI
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).GetMissionMenu">MISSION:GetMissionMenu()</a></td> <td class="name" nowrap="nowrap"><a href="##(MISSION).GetMissionMenu">MISSION:GetMissionMenu(TaskGroup)</a></td>
<td class="summary"> <td class="summary">
<p>Gets the mission menu for the coalition.</p> <p>Gets the mission menu for the coalition.</p>
</td> </td>
@ -202,6 +191,12 @@ A <a href="CLIENT.html">CLIENT</a> needs to be registered within the <a href="MI
<td class="name" nowrap="nowrap"><a href="##(MISSION).GetName">MISSION:GetName()</a></td> <td class="name" nowrap="nowrap"><a href="##(MISSION).GetName">MISSION:GetName()</a></td>
<td class="summary"> <td class="summary">
<p>Gets the mission name.</p> <p>Gets the mission name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).GetNextTaskID">MISSION:GetNextTaskID(Task)</a></td>
<td class="summary">
<p>Return the next <a href="Task.html">Task</a> ID to be completed within the <a href="Mission.html">Mission</a>. </p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -211,9 +206,9 @@ A <a href="CLIENT.html">CLIENT</a> needs to be registered within the <a href="MI
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).GetTask">MISSION:GetTask(TaskNumber)</a></td> <td class="name" nowrap="nowrap"><a href="##(MISSION).GetTask">MISSION.GetTask(TaskIndex, TaskID, self, TaskName)</a></td>
<td class="summary"> <td class="summary">
<p>Get the TASK identified by the TaskNumber from the Mission.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -346,6 +341,18 @@ A <a href="CLIENT.html">CLIENT</a> needs to be registered within the <a href="MI
<td class="name" nowrap="nowrap"><a href="##(MISSION).REPEAT">MISSION.REPEAT</a></td> <td class="name" nowrap="nowrap"><a href="##(MISSION).REPEAT">MISSION.REPEAT</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).RemoveTask">MISSION:RemoveTask(Task)</a></td>
<td class="summary">
<p>Removes a <a href="Task.html">Task</a> to be completed within the <a href="Mission.html">Mission</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).RemoveTaskMenu">MISSION:RemoveTaskMenu(Task)</a></td>
<td class="summary">
<p>Removes a Task menu.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -373,9 +380,15 @@ A <a href="CLIENT.html">CLIENT</a> needs to be registered within the <a href="MI
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).SetMissionMenu">MISSION:SetMissionMenu()</a></td> <td class="name" nowrap="nowrap"><a href="##(MISSION).SetAssignedMenu">MISSION:SetAssignedMenu(Task, MenuText)</a></td>
<td class="summary"> <td class="summary">
<p>Sets the mission menu for the coalition.</p> <p>Sets the Assigned Task menu.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).SetPlannedMenu">MISSION:SetPlannedMenu()</a></td>
<td class="summary">
<p>Sets the Planned Task menu.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -776,27 +789,6 @@ is the <a href="Task.html">Task</a> object.</p>
<p><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a>:</em> <p><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a>:</em>
The task added.</p> The task added.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MISSION).AssignTaskToGroup" >
<strong>MISSION.AssignTaskToGroup(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> MenuParam </em></code>: </p>
</li>
</ul>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -842,32 +834,6 @@ self</p>
<p>Set a Mission to completed.</p> <p>Set a Mission to completed.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MISSION).CreateTaskMenus" >
<strong>MISSION:CreateTaskMenus(TaskGroup)</strong>
</a>
</dt>
<dd>
<p>Fill mission menu for the Group.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> TaskGroup </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(MISSION)">#MISSION</a>:</em>
self</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -942,13 +908,21 @@ local BomberClient = Mission:FindClient( "Bomber" )</code></pre>
<dt> <dt>
<a id="#(MISSION).GetMissionMenu" > <a id="#(MISSION).GetMissionMenu" >
<strong>MISSION:GetMissionMenu()</strong> <strong>MISSION:GetMissionMenu(TaskGroup)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Gets the mission menu for the coalition.</p> <p>Gets the mission menu for the coalition.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Group.html##(GROUP)">Group#GROUP</a> TaskGroup </em></code>: </p>
</li>
</ul>
<h3>Return value</h3> <h3>Return value</h3>
<p><em><a href="Menu.html##(MENU_COALITION)">Menu#MENU_COALITION</a>:</em> <p><em><a href="Menu.html##(MENU_COALITION)">Menu#MENU_COALITION</a>:</em>
@ -977,6 +951,33 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(MISSION).GetNextTaskID" >
<strong>MISSION:GetNextTaskID(Task)</strong>
</a>
</dt>
<dd>
<p>Return the next <a href="Task.html">Task</a> ID to be completed within the <a href="Mission.html">Mission</a>. </p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a> Task </em></code>:
is the <a href="Task.html">Task</a> object.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a>:</em>
The task added.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MISSION).GetScoring" > <a id="#(MISSION).GetScoring" >
<strong>MISSION:GetScoring()</strong> <strong>MISSION:GetScoring()</strong>
</a> </a>
@ -996,21 +997,56 @@ Scoring</p>
<dt> <dt>
<a id="#(MISSION).GetTask" > <a id="#(MISSION).GetTask" >
<strong>MISSION:GetTask(TaskNumber)</strong> <strong>MISSION.GetTask(TaskIndex, TaskID, self, TaskName)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Get the TASK identified by the TaskNumber from the Mission.</p>
<h3>Parameter</h3> <p>This function is useful in GoalFunctions.</p>
<h3>Parameters</h3>
<ul> <ul>
<li> <li>
<p><code><em> TaskNumber </em></code>: </p> <p><code><em>#string TaskIndex </em></code>:
is the Index of the <a href="Task.html">Task</a> within the <a href="Mission.html">Mission</a>.</p>
</li>
<li>
<p><code><em>#number TaskID </em></code>:
is the ID of the <a href="Task.html">Task</a> within the <a href="Mission.html">Mission</a>.</p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> TaskName </em></code>: </p>
</li> </li>
</ul> </ul>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a>:</em>
The Task</p>
</li>
<li>
<p><em>#nil:</em>
Returns nil if no task was found.</p>
</li>
</ol>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1371,6 +1407,63 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MISSION).RemoveTask" >
<strong>MISSION:RemoveTask(Task)</strong>
</a>
</dt>
<dd>
<p>Removes a <a href="Task.html">Task</a> to be completed within the <a href="Mission.html">Mission</a>.</p>
<p>Note that there can be multiple <a href="Task.html">Task</a>s registered to be completed.
Each Task can be set a certain Goals. The Mission will not be completed until all Goals are reached.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a> Task </em></code>:
is the <a href="Task.html">Task</a> object.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#nil:</em>
The cleaned Task reference.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MISSION).RemoveTaskMenu" >
<strong>MISSION:RemoveTaskMenu(Task)</strong>
</a>
</dt>
<dd>
<p>Removes a Task menu.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a> Task </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(MISSION)">#MISSION</a>:</em>
self</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1433,14 +1526,28 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(MISSION).SetMissionMenu" > <a id="#(MISSION).SetAssignedMenu" >
<strong>MISSION:SetMissionMenu()</strong> <strong>MISSION:SetAssignedMenu(Task, MenuText)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Sets the mission menu for the coalition.</p> <p>Sets the Assigned Task menu.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Task.html##(TASK_BASE)">Task#TASK_BASE</a> Task </em></code>: </p>
</li>
<li>
<p><code><em>#string MenuText </em></code>:
The menu text.</p>
</li>
</ul>
<h3>Return value</h3> <h3>Return value</h3>
<p><em><a href="##(MISSION)">#MISSION</a>:</em> <p><em><a href="##(MISSION)">#MISSION</a>:</em>
@ -1451,6 +1558,19 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(MISSION).SetPlannedMenu" >
<strong>MISSION:SetPlannedMenu()</strong>
</a>
</dt>
<dd>
<p>Sets the Planned Task menu.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MISSION).StatusToClients" > <a id="#(MISSION).StatusToClients" >
<strong>MISSION:StatusToClients()</strong> <strong>MISSION:StatusToClients()</strong>
</a> </a>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

File diff suppressed because it is too large Load Diff

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

View File

@ -37,6 +37,7 @@
<li><a href="DCSWorld.html">DCSWorld</a></li> <li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li> <li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li> <li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li> <li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li> <li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li> <li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
@ -62,8 +63,9 @@
<li><a href="Point.html">Point</a></li> <li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li> <li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process.html">Process</a></li> <li><a href="Process.html">Process</a></li>
<li><a href="Process_CAS.html">Process_CAS</a></li> <li><a href="Process_Destroy.html">Process_Destroy</a></li>
<li><a href="Process_SEAD.html">Process_SEAD</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Smoke.html">Process_Smoke</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -74,7 +76,6 @@
<li><a href="StateMachine.html">StateMachine</a></li> <li><a href="StateMachine.html">StateMachine</a></li>
<li><a href="Static.html">Static</a></li> <li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Task.html">Task</a></li> <li><a href="Task.html">Task</a></li>
<li><a href="Task_Assign.html">Task_Assign</a></li> <li><a href="Task_Assign.html">Task_Assign</a></li>
<li><a href="Task_CAS.html">Task_CAS</a></li> <li><a href="Task_CAS.html">Task_CAS</a></li>

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