Added MENU_MISSION classes and fixed bug in SCORING

-- Added class MENU_MISSION
-- Added class MENU_MISSION_COMMAND
-- Revised documentation of Menu
-- Fixed bug in SCORING class to set the scoring menu
This commit is contained in:
FlightControl 2016-07-23 10:57:10 +02:00
parent 2befd34681
commit e55a7716fb
13 changed files with 766 additions and 58561 deletions

View File

@ -15,23 +15,26 @@
--
-- ### 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_MISSION}: Manages main menus for whole mission file.
-- * @{Menu#MENU_COALITION}: Manages main menus for whole coalition.
-- * @{Menu#MENU_GROUP}: Manages main menus for GROUPs.
-- * @{Menu#MENU_COALITION}: Manages main menus for whole COALITIONs.
-- * @{Menu#MENU_CLIENT}: Manages main menus for CLIENTs. This manages menus for units with the skill level "Client".
--
-- ### 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_MISSION_COMMAND}: Manages command menus for whole mission file.
-- * @{Menu#MENU_COALITION_COMMAND}: Manages command menus for whole coalition.
-- * @{Menu#MENU_GROUP_COMMAND}: Manages command menus for GROUPs.
-- * @{Menu#MENU_COALITION_COMMAND}: Manages command menus for whole COALITIONs.
-- * @{Menu#MENU_CLIENT_COMMAND}: Manages command menus for CLIENTs. This manages menus for units with the skill level "Client".
--
-- ===
--
-- 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
-- 1) MENU_ BASE abstract base classes (don't use them)
-- ====================================================
-- The underlying base menu classes are **NOT** to be used within your missions.
-- These are simply abstract base 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}
@ -44,45 +47,41 @@
--
-- ===
--
-- The next menus define the MENU classes that you can use within your missions:
-- **The next menus define the MENU classes that you can use within your missions.**
--
-- 2) MENU MISSION classes
-- ======================
-- The underlying classes manage the menus for a complete mission file.
--
-- 2) MENU COALITION classes
-- 2.1) @{Menu#MENU_MISSION} class, extends @{Menu#MENU_BASE}
-- ---------------------------------------------------------
-- The @{Menu#MENU_MISSION} class manages the main menus for a complete mission.
-- You can add menus with the @{#MENU_MISSION.New} method, which constructs a MENU_MISSION object and returns you the object reference.
-- Using this object reference, you can then remove ALL the menus and submenus underlying automatically with @{#MENU_MISSION.Remove}.
--
-- 2.2) @{Menu#MENU_MISSION_COMMAND} class, extends @{Menu#MENU_COMMAND_BASE}
-- -------------------------------------------------------------------------
-- The @{Menu#MENU_MISSION_COMMAND} class manages the command menus for a complete mission, which allow players to execute functions during mission execution.
-- You can add menus with the @{#MENU_MISSION_COMMAND.New} method, which constructs a MENU_MISSION_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_MISSION_COMMAND.Remove}.
--
-- ===
--
-- 3) MENU COALITION classes
-- =========================
-- The underlying classes manage the menus for whole coalitions.
--
-- 2.1) @{Menu#MENU_COALITION} class, extends @{Menu#MENU_BASE}
-- 3.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}
-- 3.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.
--
-- ===
--
@ -95,17 +94,33 @@
-- 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.
--
-- ===
--
--
-- 5) MENU CLIENT classes
-- ======================
-- The underlying classes manage the menus for units with skill level client or player.
--
-- 5.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}.
--
-- 5.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}.
--
-- ===
--
-- ### Contributions: -
-- ### Authors: FlightControl : Design & Programming
--
@ -171,6 +186,124 @@ do -- MENU_COMMAND_BASE
end
do -- MENU_MISSION
--- The MENU_MISSION class
-- @type MENU_MISSION
-- @extends Menu#MENU_BASE
MENU_MISSION = {
ClassName = "MENU_MISSION"
}
--- MENU_MISSION constructor. Creates a new MENU_MISSION object and creates the menu for a complete mission file.
-- @param #MENU_MISSION self
-- @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_MISSION self
function MENU_MISSION:New( MenuText, ParentMenu )
local self = BASE:Inherit( self, MENU_BASE:New( MenuText, ParentMenu ) )
self:F( { MenuText, ParentMenu } )
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self.Menus = {}
self:T( { MenuText } )
self.MenuPath = missionCommands.addSubMenu( 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_MISSION. Note that the main menu is kept!
-- @param #MENU_MISSION self
-- @return #MENU_MISSION self
function MENU_MISSION: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_MISSION.
-- @param #MENU_MISSION self
-- @return #nil
function MENU_MISSION:Remove()
self:F( self.MenuPath )
self:RemoveSubMenus()
missionCommands.removeItem( self.MenuPath )
if self.ParentMenu then
self.ParentMenu.Menus[self.MenuPath] = nil
end
return nil
end
end
do -- MENU_MISSION_COMMAND
--- The MENU_MISSION_COMMAND class
-- @type MENU_MISSION_COMMAND
-- @extends Menu#MENU_COMMAND_BASE
MENU_MISSION_COMMAND = {
ClassName = "MENU_MISSION_COMMAND"
}
--- MENU_MISSION constructor. Creates a new radio command item for a complete mission file, which can invoke a function with parameters.
-- @param #MENU_MISSION_COMMAND self
-- @param #string MenuText The text for the menu.
-- @param Menu#MENU_MISSION 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_MISSION_COMMAND self
function MENU_MISSION_COMMAND:New( MenuText, ParentMenu, CommandMenuFunction, ... )
local self = BASE:Inherit( self, MENU_COMMAND_BASE:New( MenuText, ParentMenu, CommandMenuFunction, arg ) )
self.MenuText = MenuText
self.ParentMenu = ParentMenu
self:T( { MenuText, CommandMenuFunction, arg } )
self.MenuPath = missionCommands.addCommand( MenuText, self.MenuParentPath, self.MenuCallHandler, arg )
ParentMenu.Menus[self.MenuPath] = self
return self
end
--- Removes a radio command item for a coalition
-- @param #MENU_MISSION_COMMAND self
-- @return #nil
function MENU_MISSION_COMMAND:Remove()
self:F( self.MenuPath )
missionCommands.removeItem( self.MenuPath )
if self.ParentMenu then
self.ParentMenu.Menus[self.MenuPath] = nil
end
return nil
end
end
do -- MENU_COALITION
--- The MENU_COALITION class

View File

@ -70,8 +70,8 @@ end
-- @param #SCORING self
-- @return #SCORING self
function SCORING:ScoreMenu()
self.Menu = SUBMENU:New( 'Scoring' )
self.AllScoresMenu = COMMANDMENU:New( 'Score All Active Players', self.Menu, SCORING.ReportScoreAll, self )
self.Menu = MENU_MISSION:New( 'Scoring' )
self.AllScoresMenu = MENU_MISSION_COMMAND:New( 'Score All Active Players', self.Menu, SCORING.ReportScoreAll, self )
--- = COMMANDMENU:New('Your Current Score', ReportScore, SCORING.ReportScorePlayer, self )
return self
end

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -120,17 +120,24 @@ There will be as many AI GROUPS spawned as there at CLIENTS in SET</em>CLIENT no
<h2>1.3) AIBALANCER allows AI to patrol specific zones:</h2>
<p>Use <a href="AIBalancer.html##(AIBALANCER).SetPatrolZone">AIBalancer#AIBALANCER.SetPatrolZone</a>() to specify a zone where the AI needs to patrol.</p>
<hr/>
<h1>CREDITS</h1>
<p><strong>Dutch_Baron (James)</strong> Who you can search on the Eagle Dynamics Forums.
Working together with James has resulted in the creation of the AIBALANCER class.
James has shared his ideas on balancing AI with air units, and together we made a first design which you can use now :-)</p>
<h3>Contributions:</h3>
<p><strong>SNAFU</strong>
Had a couple of mails with the guys to validate, if the same concept in the GCI/CAP script could be reworked within MOOSE.
None of the script code has been used however within the new AIBALANCER moose class.</p>
<ul>
<li><p><strong>Dutch_Baron (James)</strong> Who you can search on the Eagle Dynamics Forums. <br/>
Working together with James has resulted in the creation of the AIBALANCER class. <br/>
James has shared his ideas on balancing AI with air units, and together we made a first design which you can use now :-)</p></li>
<li><p><strong>SNAFU</strong>
Had a couple of mails with the guys to validate, if the same concept in the GCI/CAP script could be reworked within MOOSE.
None of the script code has been used however within the new AIBALANCER moose class.</p></li>
</ul>
<h3>Authors:</h3>
<ul>
<li>FlightControl - Framework Design &amp; Programming</li>
</ul>
<h2>Global(s)</h2>

View File

@ -144,6 +144,9 @@ The following names can be given:
* Creech
* Groom Lake</p>
<h3>Contributions: Dutch Baron - Concept &amp; Testing</h3>
<h3>Author: FlightControl - Framework Design &amp; Programming</h3>
<h2>Global(s)</h2>
<table class="function_list">

View File

@ -152,9 +152,18 @@
<hr/>
<p> ### Contributions: Mechanic - Concept &amp; Testing
### Authors: FlightControl : Design &amp; Programming
</p>
<p> ### Contributions: </p>
<ul>
<li>Mechanist : Concept &amp; Testing</li>
</ul>
<p> ### Authors: </p>
<ul>
<li>FlightControl : Design &amp; Programming
</li>
</ul>
<h2>Global(s)</h2>
<table class="function_list">

View File

@ -145,7 +145,7 @@ Find a summary below describing for which situation a task type is created:</p>
<hr/>
<h3>Contributions: Mechanic, Prof_Hilactic, FlightControl - Concept &amp; Testing</h3>
<h3>Contributions: Mechanist, Prof_Hilactic, FlightControl - Concept &amp; Testing</h3>
<h3>Author: FlightControl - Framework Design &amp; Programming</h3>

View File

@ -112,25 +112,28 @@ On top, MOOSE implements <strong>variable parameter</strong> passing for command
<h3>To manage <strong>main menus</strong>, the classes begin with <strong>MENU_</strong>:</h3>
<ul>
<li><a href="Menu.html##(MENU_CLIENT)">Menu#MENU_CLIENT</a>: Manages main menus for CLIENTs. This manages menus for units with the skill level "Client".</li>
<li><a href="Menu.html##(MENU_MISSION)">Menu#MENU_MISSION</a>: Manages main menus for whole mission file.</li>
<li><a href="Menu.html##(MENU_COALITION)">Menu#MENU_COALITION</a>: Manages main menus for whole coalition.</li>
<li><a href="Menu.html##(MENU_GROUP)">Menu#MENU_GROUP</a>: Manages main menus for GROUPs.</li>
<li><a href="Menu.html##(MENU_COALITION)">Menu#MENU_COALITION</a>: Manages main menus for whole COALITIONs.</li>
<li><a href="Menu.html##(MENU_CLIENT)">Menu#MENU_CLIENT</a>: Manages main menus for CLIENTs. This manages menus for units with the skill level "Client".</li>
</ul>
<h3>To manage <strong>command menus</strong>, which are menus that allow the player to issue <strong>functions</strong>, the classes begin with <strong>MENU<em>COMMAND</em></strong>:</h3>
<ul>
<li><a href="Menu.html##(MENU_CLIENT_COMMAND)">Menu#MENU<em>CLIENT</em>COMMAND</a>: Manages command menus for CLIENTs. This manages menus for units with the skill level "Client".</li>
<li><a href="Menu.html##(MENU_MISSION_COMMAND)">Menu#MENU<em>MISSION</em>COMMAND</a>: Manages command menus for whole mission file.</li>
<li><a href="Menu.html##(MENU_COALITION_COMMAND)">Menu#MENU<em>COALITION</em>COMMAND</a>: Manages command menus for whole coalition.</li>
<li><a href="Menu.html##(MENU_GROUP_COMMAND)">Menu#MENU<em>GROUP</em>COMMAND</a>: Manages command menus for GROUPs.</li>
<li><a href="Menu.html##(MENU_COALITION_COMMAND)">Menu#MENU<em>COALITION</em>COMMAND</a>: Manages command menus for whole COALITIONs.</li>
<li><a href="Menu.html##(MENU_CLIENT_COMMAND)">Menu#MENU<em>CLIENT</em>COMMAND</a>: Manages command menus for CLIENTs. This manages menus for units with the skill level "Client".</li>
</ul>
<hr/>
<p>The above menus classes <strong>are derived</strong> from 2 main <strong>abstract</strong> classes defined within the MOOSE framework (so don't use these):</p>
<h1>1) MENU_ BASE classes (don't use them)</h1>
<p>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
<h1>1) MENU_ BASE abstract base classes (don't use them)</h1>
<p>The underlying base menu classes are <strong>NOT</strong> to be used within your missions.
These are simply abstract base classes defining a couple of fields that are used by the
derived MENU_ classes to manage menus.</p>
<h2>1.1) <a href="Menu.html##(MENU_BASE)">Menu#MENU_BASE</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h2>
@ -141,39 +144,35 @@ derived MENU_ classes to manage menus.</p>
<hr/>
<p>The next menus define the MENU classes that you can use within your missions:</p>
<p><strong>The next menus define the MENU classes that you can use within your missions.</strong></p>
<h1>2) MENU COALITION classes</h1>
<p>The underlying classes manage the menus for whole coalitions.</p>
<h1>2) MENU MISSION classes</h1>
<p>The underlying classes manage the menus for a complete mission file.</p>
<h2>2.1) <a href="Menu.html##(MENU_COALITION)">Menu#MENU_COALITION</a> class, extends <a href="Menu.html##(MENU_BASE)">Menu#MENU_BASE</a></h2>
<p>The <a href="Menu.html##(MENU_COALITION)">Menu#MENU_COALITION</a> class manages the main menus for coalitions. <br/>
You can add menus with the <a href="##(MENU_COALITION).New">MENU_COALITION.New</a> 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 <a href="##(MENU_COALITION).Remove">MENU_COALITION.Remove</a>.
Refer to the respective methods documentation for usage examples.</p>
<h2>2.1) <a href="Menu.html##(MENU_MISSION)">Menu#MENU_MISSION</a> class, extends <a href="Menu.html##(MENU_BASE)">Menu#MENU_BASE</a></h2>
<p>The <a href="Menu.html##(MENU_MISSION)">Menu#MENU_MISSION</a> class manages the main menus for a complete mission. <br/>
You can add menus with the <a href="##(MENU_MISSION).New">MENU_MISSION.New</a> method, which constructs a MENU_MISSION object and returns you the object reference.
Using this object reference, you can then remove ALL the menus and submenus underlying automatically with <a href="##(MENU_MISSION).Remove">MENU_MISSION.Remove</a>.</p>
<h2>2.2) <a href="Menu.html##(MENU_COALITION_COMMAND)">Menu#MENU<em>COALITION</em>COMMAND</a> class, extends <a href="Menu.html##(MENU_COMMAND_BASE)">Menu#MENU<em>COMMAND</em>BASE</a></h2>
<p>The <a href="Menu.html##(MENU_COALITION_COMMAND)">Menu#MENU<em>COALITION</em>COMMAND</a> class manages the command menus for coalitions, which allow players to execute functions during mission execution. <br/>
You can add menus with the <a href="##(MENU_COALITION_COMMAND).New">MENU<em>COALITION</em>COMMAND.New</a> method, which constructs a MENU<em>COALITION</em>COMMAND object and returns you the object reference.
Using this object reference, you can then remove ALL the menus and submenus underlying automatically with <a href="##(MENU_COALITION_COMMAND).Remove">MENU<em>COALITION</em>COMMAND.Remove</a>.
Refer to the respective methods documentation for usage examples.</p>
<h2>2.2) <a href="Menu.html##(MENU_MISSION_COMMAND)">Menu#MENU<em>MISSION</em>COMMAND</a> class, extends <a href="Menu.html##(MENU_COMMAND_BASE)">Menu#MENU<em>COMMAND</em>BASE</a></h2>
<p>The <a href="Menu.html##(MENU_MISSION_COMMAND)">Menu#MENU<em>MISSION</em>COMMAND</a> class manages the command menus for a complete mission, which allow players to execute functions during mission execution. <br/>
You can add menus with the <a href="##(MENU_MISSION_COMMAND).New">MENU<em>MISSION</em>COMMAND.New</a> method, which constructs a MENU<em>MISSION</em>COMMAND object and returns you the object reference.
Using this object reference, you can then remove ALL the menus and submenus underlying automatically with <a href="##(MENU_MISSION_COMMAND).Remove">MENU<em>MISSION</em>COMMAND.Remove</a>.</p>
<hr/>
<h1>3) MENU CLIENT classes</h1>
<p>The underlying classes manage the menus for units with skill level client or player.</p>
<h1>3) MENU COALITION classes</h1>
<p>The underlying classes manage the menus for whole coalitions.</p>
<h2>3.1) <a href="Menu.html##(MENU_CLIENT)">Menu#MENU_CLIENT</a> class, extends <a href="Menu.html##(MENU_BASE)">Menu#MENU_BASE</a></h2>
<p>The <a href="Menu.html##(MENU_CLIENT)">Menu#MENU_CLIENT</a> class manages the main menus for coalitions. <br/>
You can add menus with the <a href="##(MENU_CLIENT).New">MENU_CLIENT.New</a> 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 <a href="##(MENU_CLIENT).Remove">MENU_CLIENT.Remove</a>.
Refer to the respective methods documentation for usage examples.</p>
<h2>3.1) <a href="Menu.html##(MENU_COALITION)">Menu#MENU_COALITION</a> class, extends <a href="Menu.html##(MENU_BASE)">Menu#MENU_BASE</a></h2>
<p>The <a href="Menu.html##(MENU_COALITION)">Menu#MENU_COALITION</a> class manages the main menus for coalitions. <br/>
You can add menus with the <a href="##(MENU_COALITION).New">MENU_COALITION.New</a> 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 <a href="##(MENU_COALITION).Remove">MENU_COALITION.Remove</a>.</p>
<h2>3.2) <a href="Menu.html##(MENU_CLIENT_COMMAND)">Menu#MENU<em>CLIENT</em>COMMAND</a> class, extends <a href="Menu.html##(MENU_COMMAND_BASE)">Menu#MENU<em>COMMAND</em>BASE</a></h2>
<p>The <a href="Menu.html##(MENU_CLIENT_COMMAND)">Menu#MENU<em>CLIENT</em>COMMAND</a> class manages the command menus for coalitions, which allow players to execute functions during mission execution. <br/>
You can add menus with the <a href="##(MENU_CLIENT_COMMAND).New">MENU<em>CLIENT</em>COMMAND.New</a> method, which constructs a MENU<em>CLIENT</em>COMMAND object and returns you the object reference.
Using this object reference, you can then remove ALL the menus and submenus underlying automatically with <a href="##(MENU_CLIENT_COMMAND).Remove">MENU<em>CLIENT</em>COMMAND.Remove</a>.
Refer to the respective methods documentation for usage examples.</p>
<h2>3.2) <a href="Menu.html##(MENU_COALITION_COMMAND)">Menu#MENU<em>COALITION</em>COMMAND</a> class, extends <a href="Menu.html##(MENU_COMMAND_BASE)">Menu#MENU<em>COMMAND</em>BASE</a></h2>
<p>The <a href="Menu.html##(MENU_COALITION_COMMAND)">Menu#MENU<em>COALITION</em>COMMAND</a> class manages the command menus for coalitions, which allow players to execute functions during mission execution. <br/>
You can add menus with the <a href="##(MENU_COALITION_COMMAND).New">MENU<em>COALITION</em>COMMAND.New</a> method, which constructs a MENU<em>COALITION</em>COMMAND object and returns you the object reference.
Using this object reference, you can then remove ALL the menus and submenus underlying automatically with <a href="##(MENU_COALITION_COMMAND).Remove">MENU<em>COALITION</em>COMMAND.Remove</a>.</p>
<hr/>
@ -183,14 +182,27 @@ Refer to the respective methods documentation for usage examples.</p>
<h2>4.1) <a href="Menu.html##(MENU_GROUP)">Menu#MENU_GROUP</a> class, extends <a href="Menu.html##(MENU_BASE)">Menu#MENU_BASE</a></h2>
<p>The <a href="Menu.html##(MENU_GROUP)">Menu#MENU_GROUP</a> class manages the main menus for coalitions. <br/>
You can add menus with the <a href="##(MENU_GROUP).New">MENU_GROUP.New</a> 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 <a href="##(MENU_GROUP).Remove">MENU_GROUP.Remove</a>.
Refer to the respective methods documentation for usage examples.</p>
Using this object reference, you can then remove ALL the menus and submenus underlying automatically with <a href="##(MENU_GROUP).Remove">MENU_GROUP.Remove</a>.</p>
<h2>4.2) <a href="Menu.html##(MENU_GROUP_COMMAND)">Menu#MENU<em>GROUP</em>COMMAND</a> class, extends <a href="Menu.html##(MENU_COMMAND_BASE)">Menu#MENU<em>COMMAND</em>BASE</a></h2>
<p>The <a href="Menu.html##(MENU_GROUP_COMMAND)">Menu#MENU<em>GROUP</em>COMMAND</a> class manages the command menus for coalitions, which allow players to execute functions during mission execution. <br/>
You can add menus with the <a href="##(MENU_GROUP_COMMAND).New">MENU<em>GROUP</em>COMMAND.New</a> method, which constructs a MENU<em>GROUP</em>COMMAND object and returns you the object reference.
Using this object reference, you can then remove ALL the menus and submenus underlying automatically with <a href="##(MENU_GROUP_COMMAND).Remove">MENU<em>GROUP</em>COMMAND.Remove</a>.
Refer to the respective methods documentation for usage examples.</p>
Using this object reference, you can then remove ALL the menus and submenus underlying automatically with <a href="##(MENU_GROUP_COMMAND).Remove">MENU<em>GROUP</em>COMMAND.Remove</a>.</p>
<hr/>
<h1>5) MENU CLIENT classes</h1>
<p>The underlying classes manage the menus for units with skill level client or player.</p>
<h2>5.1) <a href="Menu.html##(MENU_CLIENT)">Menu#MENU_CLIENT</a> class, extends <a href="Menu.html##(MENU_BASE)">Menu#MENU_BASE</a></h2>
<p>The <a href="Menu.html##(MENU_CLIENT)">Menu#MENU_CLIENT</a> class manages the main menus for coalitions. <br/>
You can add menus with the <a href="##(MENU_CLIENT).New">MENU_CLIENT.New</a> 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 <a href="##(MENU_CLIENT).Remove">MENU_CLIENT.Remove</a>.</p>
<h2>5.2) <a href="Menu.html##(MENU_CLIENT_COMMAND)">Menu#MENU<em>CLIENT</em>COMMAND</a> class, extends <a href="Menu.html##(MENU_COMMAND_BASE)">Menu#MENU<em>COMMAND</em>BASE</a></h2>
<p>The <a href="Menu.html##(MENU_CLIENT_COMMAND)">Menu#MENU<em>CLIENT</em>COMMAND</a> class manages the command menus for coalitions, which allow players to execute functions during mission execution. <br/>
You can add menus with the <a href="##(MENU_CLIENT_COMMAND).New">MENU<em>CLIENT</em>COMMAND.New</a> method, which constructs a MENU<em>CLIENT</em>COMMAND object and returns you the object reference.
Using this object reference, you can then remove ALL the menus and submenus underlying automatically with <a href="##(MENU_CLIENT_COMMAND).Remove">MENU<em>CLIENT</em>COMMAND.Remove</a>.</p>
<hr/>
@ -246,6 +258,18 @@ Refer to the respective methods documentation for usage examples.</p>
<td class="name" nowrap="nowrap"><a href="#MENU_GROUP_COMMAND">MENU_GROUP_COMMAND</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#MENU_MISSION">MENU_MISSION</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#MENU_MISSION_COMMAND">MENU_MISSION_COMMAND</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -463,6 +487,56 @@ Refer to the respective methods documentation for usage examples.</p>
<td class="name" nowrap="nowrap"><a href="##(MENU_GROUP_COMMAND).Remove">MENU_GROUP_COMMAND:Remove()</a></td>
<td class="summary">
<p>Removes a menu structure for a group.</p>
</td>
</tr>
</table>
<h2><a id="#(MENU_MISSION)">Type <code>MENU_MISSION</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_MISSION).ClassName">MENU_MISSION.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_MISSION).New">MENU_MISSION:New(MenuText, ParentMenu)</a></td>
<td class="summary">
<p>MENU_MISSION constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_MISSION).Remove">MENU_MISSION:Remove()</a></td>
<td class="summary">
<p>Removes the main menu and the sub menus recursively of this MENU_MISSION.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_MISSION).RemoveSubMenus">MENU_MISSION:RemoveSubMenus()</a></td>
<td class="summary">
<p>Removes the sub menus recursively of this MENU_MISSION.</p>
</td>
</tr>
</table>
<h2><a id="#(MENU_MISSION_COMMAND)">Type <code>MENU_MISSION_COMMAND</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_MISSION_COMMAND).ClassName">MENU_MISSION_COMMAND.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_MISSION_COMMAND).New">MENU_MISSION_COMMAND:New(MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, ...)</a></td>
<td class="summary">
<p>MENU_MISSION constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_MISSION_COMMAND).Remove">MENU_MISSION_COMMAND:Remove()</a></td>
<td class="summary">
<p>Removes a radio command item for a coalition</p>
</td>
</tr>
</table>
@ -578,6 +652,34 @@ Refer to the respective methods documentation for usage examples.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(MENU_MISSION)">#MENU_MISSION</a></em>
<a id="MENU_MISSION" >
<strong>MENU_MISSION</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(MENU_MISSION_COMMAND)">#MENU_MISSION_COMMAND</a></em>
<a id="MENU_MISSION_COMMAND" >
<strong>MENU_MISSION_COMMAND</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Menu)" >Type <code>Menu</code></a></h2>
@ -1494,6 +1596,192 @@ self</p>
<p><em>#nil:</em></p>
</dd>
</dl>
<h2><a id="#(MENU_MISSION)" >Type <code>MENU_MISSION</code></a></h2>
<p>The MENU_MISSION class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(MENU_MISSION).ClassName" >
<strong>MENU_MISSION.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MENU_MISSION).New" >
<strong>MENU_MISSION:New(MenuText, ParentMenu)</strong>
</a>
</dt>
<dd>
<p>MENU_MISSION constructor.</p>
<p>Creates a new MENU_MISSION object and creates the menu for a complete mission file.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string MenuText </em></code>:
The text for the menu.</p>
</li>
<li>
<p><code><em>#table ParentMenu </em></code>:
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).</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(MENU_MISSION)">#MENU_MISSION</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MENU_MISSION).Remove" >
<strong>MENU_MISSION:Remove()</strong>
</a>
</dt>
<dd>
<p>Removes the main menu and the sub menus recursively of this MENU_MISSION.</p>
<h3>Return value</h3>
<p><em>#nil:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MENU_MISSION).RemoveSubMenus" >
<strong>MENU_MISSION:RemoveSubMenus()</strong>
</a>
</dt>
<dd>
<p>Removes the sub menus recursively of this MENU_MISSION.</p>
<p>Note that the main menu is kept!</p>
<h3>Return value</h3>
<p><em><a href="##(MENU_MISSION)">#MENU_MISSION</a>:</em>
self</p>
</dd>
</dl>
<h2><a id="#(MENU_MISSION_COMMAND)" >Type <code>MENU_MISSION_COMMAND</code></a></h2>
<p>The MENU<em>MISSION</em>COMMAND class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(MENU_MISSION_COMMAND).ClassName" >
<strong>MENU_MISSION_COMMAND.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MENU_MISSION_COMMAND).New" >
<strong>MENU_MISSION_COMMAND:New(MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, ...)</strong>
</a>
</dt>
<dd>
<p>MENU_MISSION constructor.</p>
<p>Creates a new radio command item for a complete mission file, which can invoke a function with parameters.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string MenuText </em></code>:
The text for the menu.</p>
</li>
<li>
<p><code><em><a href="Menu.html##(MENU_MISSION)">Menu#MENU_MISSION</a> ParentMenu </em></code>:
The parent menu.</p>
</li>
<li>
<p><code><em> CommandMenuFunction </em></code>:
A function that is called when the menu key is pressed.</p>
</li>
<li>
<p><code><em> CommandMenuArgument </em></code>:
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.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(MENU_MISSION_COMMAND)">#MENU<em>MISSION</em>COMMAND</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MENU_MISSION_COMMAND).Remove" >
<strong>MENU_MISSION_COMMAND:Remove()</strong>
</a>
</dt>
<dd>
<p>Removes a radio command item for a coalition</p>
<h3>Return value</h3>
<p><em>#nil:</em></p>
</dd>
</dl>

View File

@ -109,12 +109,6 @@
<td class="name" nowrap="nowrap"><a href="##(PROCESS).AddScore">PROCESS:AddScore(ProcessStatus, ScoreText, Score)</a></td>
<td class="summary">
<p>Adds a score for the PROCESS to be achieved.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(PROCESS).AllowEvents">PROCESS.AllowEvents</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -256,20 +250,6 @@ is a number providing the score of the status.</p>
<p><em><a href="##(PROCESS)">#PROCESS</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(PROCESS).AllowEvents" >
<strong>PROCESS.AllowEvents</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -114,6 +114,25 @@
<li><a href="Scheduler.html##(SCHEDULER).Stop">Scheduler#SCHEDULER.Stop</a>: Stop the scheduler.</li>
</ul>
<h2>1.3) Reschedule new time event</h2>
<p>With <a href="Scheduler.html##(SCHEDULER).Schedule">Scheduler#SCHEDULER.Schedule</a> a new time event can be scheduled.</p>
<hr/>
<h3>Contributions:</h3>
<ul>
<li>Mechanist : Concept &amp; Testing</li>
</ul>
<h3>Authors:</h3>
<ul>
<li>FlightControl : Design &amp; Programming</li>
</ul>
<hr/>
<h2>Global(s)</h2>
<table class="function_list">
@ -136,12 +155,30 @@
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).New">SCHEDULER:New(TimeEventObject, TimeEventFunction, TimeEventFunctionArguments, StartSeconds, RepeatSecondsInterval, RandomizationFactor, StopSeconds)</a></td>
<td class="summary">
<p>SCHEDULER constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).RandomizationFactor">SCHEDULER.RandomizationFactor</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).Repeat">SCHEDULER.Repeat</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).RepeatSecondsInterval">SCHEDULER.RepeatSecondsInterval</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).Schedule">SCHEDULER:Schedule(TimeEventFunctionArguments, StartSeconds, RepeatSecondsInterval, RandomizationFactor, StopSeconds)</a></td>
<td class="summary">
<p>Schedule a new time event.</p>
</td>
</tr>
<tr>
@ -154,12 +191,36 @@
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).Start">SCHEDULER:Start()</a></td>
<td class="summary">
<p>(Re-)Starts the scheduler.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).StartSeconds">SCHEDULER.StartSeconds</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).StartTime">SCHEDULER.StartTime</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).Stop">SCHEDULER:Stop()</a></td>
<td class="summary">
<p>Stops the scheduler.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).StopSeconds">SCHEDULER.StopSeconds</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).TimeEventFunctionArguments">SCHEDULER.TimeEventFunctionArguments</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -267,6 +328,19 @@ Specifies the amount of seconds when the scheduler will be stopped.</p>
<p><em><a href="##(SCHEDULER)">#SCHEDULER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SCHEDULER).RandomizationFactor" >
<strong>SCHEDULER.RandomizationFactor</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -281,6 +355,73 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SCHEDULER).RepeatSecondsInterval" >
<strong>SCHEDULER.RepeatSecondsInterval</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SCHEDULER).Schedule" >
<strong>SCHEDULER:Schedule(TimeEventFunctionArguments, StartSeconds, RepeatSecondsInterval, RandomizationFactor, StopSeconds)</strong>
</a>
</dt>
<dd>
<p>Schedule a new time event.</p>
<p>Note that the schedule will only take place if the scheduler is <em>started</em>. Even for a single schedule event, the scheduler needs to be started also.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#table TimeEventFunctionArguments </em></code>:
Optional arguments that can be given as part of scheduler. The arguments need to be given as a table { param1, param 2, ... }.</p>
</li>
<li>
<p><code><em>#number StartSeconds </em></code>:
Specifies the amount of seconds that will be waited before the scheduling is started, and the event function is called.</p>
</li>
<li>
<p><code><em>#number RepeatSecondsInterval </em></code>:
Specifies the interval in seconds when the scheduler will call the event function.</p>
</li>
<li>
<p><code><em>#number RandomizationFactor </em></code>:
Specifies a randomization factor between 0 and 1 to randomize the RepeatSecondsInterval.</p>
</li>
<li>
<p><code><em>#number StopSeconds </em></code>:
Specifies the amount of seconds when the scheduler will be stopped.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SCHEDULER)">#SCHEDULER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
@ -313,6 +454,34 @@ self</p>
<p><em><a href="##(SCHEDULER)">#SCHEDULER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SCHEDULER).StartSeconds" >
<strong>SCHEDULER.StartSeconds</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SCHEDULER).StartTime" >
<strong>SCHEDULER.StartTime</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -331,6 +500,34 @@ self</p>
<p><em><a href="##(SCHEDULER)">#SCHEDULER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SCHEDULER).StopSeconds" >
<strong>SCHEDULER.StopSeconds</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SCHEDULER).TimeEventFunctionArguments" >
<strong>SCHEDULER.TimeEventFunctionArguments</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -339,6 +339,18 @@ The following iterator methods are currently available within the SET</em>AIRBAS
<hr/>
<h3>Contributions:</h3>
<ul>
<li>Mechanist : Concept &amp; Testing</li>
</ul>
<h3>Authors:</h3>
<ul>
<li>FlightControl : Design &amp; Programming</li>
</ul>
<h2>Global(s)</h2>
<table class="function_list">