MOOSE_DOCS/Documentation/Utilities.Utils.html
2025-07-25 13:01:18 +00:00

13845 lines
465 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-97385487-1"></script>
<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'UA-97385487-1');</script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
<link rel="stylesheet" href="https://www.w3schools.com/lib/w3-theme-indigo.css">
<link rel="stylesheet" href="../Highlight/styles/github.css">
<script src="../Highlight/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<link rel="stylesheet" href="w3.css" type="text/css"/>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style>
.picturebox {
height:100px;
}
</style>
</head>
<body onload="myLoadFunction()" >
<div id="myHeader" class="w3-container sticky w3-border-white w3-bottombar" style="background-image:url('../Images/MOOSE.JPG');">
<h1>
<i class="fa fa-bars w3-text-white fa-2x" onclick="w3_open()"></i>
</h1>
</div>
<div id="main">
<nav class="w3-sidenav w3-theme-l5 w3-animate-left" style="display:none">
<a href="javascript:void(0)"
onclick="w3_close()"
class="w3-closenav w3-large">Close &times;</a>
<div class="w3-row">
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Combat_Air_Patrol.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_A2A_Cap.html">AI.AI_A2A_Cap</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the process of Combat Air Patrol (CAP) for airplanes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_To_Air_Dispatching.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_A2A_Dispatcher.html">AI.AI_A2A_Dispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Manages the process of an automatic A2A defense system based on an EWR network targets and coordinating CAP and GCI.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Ground_Control_Intercept.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_A2A_Gci.html">AI.AI_A2A_Gci</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the process of Ground Controlled Interception (GCI) for airplanes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_Patrolling.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_A2A_Patrol.html">AI.AI_A2A_Patrol</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the process of air patrol of airplanes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_To_Ground_Engage.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_A2G_BAI.html">AI.AI_A2G_BAI</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the process of air to ground BAI engagement for airplanes and helicopters.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_To_Ground_Engage.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_A2G_CAS.html">AI.AI_A2G_CAS</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the process of air to ground engagement for airplanes and helicopters.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_To_Ground_Dispatching.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_A2G_Dispatcher.html">AI.AI_A2G_Dispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Create an automated A2G defense system with reconnaissance units, coordinating SEAD, BAI and CAS operations.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_To_Ground_Engage.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_A2G_SEAD.html">AI.AI_A2G_SEAD</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the process of air to ground SEAD engagement for airplanes and helicopters.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Air.html">AI.AI_Air</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the process of AI air operations.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_To_Ground_Dispatching.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Air_Dispatcher.html">AI.AI_Air_Dispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Create an automated AIR defense system with reconnaissance units, coordinating SEAD, BAI and CAP operations.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_To_Ground_Engage.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Air_Engage.html">AI.AI_Air_Engage</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the process of air to ground engagement for airplanes and helicopters.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_To_Ground_Patrol.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Air_Patrol.html">AI.AI_Air_Patrol</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the process of A2G patrolling and engaging ground targets for airplanes and helicopters.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Air_Squadron.html">AI.AI_Air_Squadron</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models squadrons for airplanes and helicopters.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Battlefield_Air_Interdiction.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_BAI.html">AI.AI_BAI</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Peform Battlefield Area Interdiction (BAI) within an engagement zone.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Balancing.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Balancer.html">AI.AI_Balancer</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Balance player slots with AI to create an engaging simulation environment, independent of the amount of players.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Combat_Air_Patrol.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_CAP.html">AI.AI_CAP</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Perform Combat Air Patrolling (CAP) for airplanes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Close_Air_Support.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_CAS.html">AI.AI_CAS</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Perform Close Air Support (CAS) near friendlies.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Cargo.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo.html">AI.AI_Cargo</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of infantry and other cargo.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Cargo_Dispatching_For_APC.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo_APC.html">AI.AI_Cargo_APC</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of cargo using ground vehicles.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Cargo_Dispatching_For_Airplanes.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo_Airplane.html">AI.AI_Cargo_Airplane</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of cargo using airplanes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Cargo_Dispatcher.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo_Dispatcher.html">AI.AI_Cargo_Dispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of infantry and other cargo.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Cargo_Dispatching_For_APC.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo_Dispatcher_APC.html">AI.AI_Cargo_Dispatcher_APC</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of infantry and other cargo using APCs.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Cargo_Dispatching_For_Airplanes.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo_Dispatcher_Airplane.html">AI.AI_Cargo_Dispatcher_Airplane</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of infantry and other cargo using Planes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Cargo_Dispatching_For_Helicopters.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo_Dispatcher_Helicopter.html">AI.AI_Cargo_Dispatcher_Helicopter</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of infantry and other cargo using Helicopters.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Cargo_Dispatcher.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo_Dispatcher_Ship.html">AI.AI_Cargo_Dispatcher_Ship</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of infantry and other cargo using Ships.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Cargo_Dispatching_For_Helicopters.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo_Helicopter.html">AI.AI_Cargo_Helicopter</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of cargo using helicopters.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Cargo_Dispatcher.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Cargo_Ship.html">AI.AI_Cargo_Ship</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the intelligent transportation of infantry and other cargo.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Escorting.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Escort.html">AI.AI_Escort</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Taking the lead of AI escorting your flight or of other AI.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Escort_Dispatcher.html">AI.AI_Escort_Dispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the automatic assignment of AI escorts to player flights.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Escort_Dispatcher_Request.html">AI.AI_Escort_Dispatcher_Request</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Models the assignment of AI escorts to player flights upon request using the radio menu.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Escorting.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Escort_Request.html">AI.AI_Escort_Request</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Taking the lead of AI escorting your flight or of other AI, upon request using the menu.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Large_Formations.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Formation.html">AI.AI_Formation</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Build large airborne formations of aircraft.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/AI_Air_Patrolling.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="AI.AI_Patrol.html">AI.AI_Patrol</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>AI</strong> - Perform Air Patrolling for airplanes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Actions.Act_Account.html">Actions.Act_Account</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Actions</strong> - ACT_ACCOUNT_ classes <strong>account for</strong> (detect, count &amp; report) various DCS events occurring on UNITs.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Actions.Act_Assign.html">Actions.Act_Assign</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p>(SP) (MP) (FSM) Accept or reject process for player (task) assignments.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Actions.Act_Assist.html">Actions.Act_Assist</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p>(SP) (MP) (FSM) Route AI or players through waypoints or to zones.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Actions.Act_Route.html">Actions.Act_Route</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p>(SP) (MP) (FSM) Route AI or players through waypoints or to zones.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Cargo.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Cargo.Cargo.html">Cargo.Cargo</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Cargo</strong> - Management of CARGO logistics, that can be transported from and to transportation carriers.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Cargo_Crates.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Cargo.CargoCrate.html">Cargo.CargoCrate</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Cargo</strong> - Management of single cargo crates, which are based on a STATIC object.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Cargo_Groups.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Cargo.CargoGroup.html">Cargo.CargoGroup</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Cargo</strong> - Management of grouped cargo logistics, which are based on a GROUP object.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Cargo_Slingload.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Cargo.CargoSlingload.html">Cargo.CargoSlingload</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Cargo</strong> - Management of single cargo crates, which are based on a STATIC object.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Cargo_Units.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Cargo.CargoUnit.html">Cargo.CargoUnit</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Cargo</strong> - Management of single cargo logistics, which are based on a UNIT object.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/CORE_Astar.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Astar.html">Core.Astar</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - A* Pathfinding.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Base.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Base.html">Core.Base</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - The base class within the framework.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Radio.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Beacon.html">Core.Beacon</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - TACAN and other beacons.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Condition.html">Core.Condition</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Define any or all conditions to be evaluated.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Database.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Database.html">Core.Database</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Manages several databases containing templates, mission objects, and mission information.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Event.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Event.html">Core.Event</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Models DCS event dispatching using a publish-subscribe model.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Finite_State_Machine.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Fsm.html">Core.Fsm</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - FSM (Finite State Machine) are objects that model and control long lasting business processes and workflow.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Goal.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Goal.html">Core.Goal</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Models the process to achieve goal(s).</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE_Core.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.MarkerOps_Base.html">Core.MarkerOps_Base</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Tap into markers added to the F10 map by users.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Menu.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Menu.html">Core.Menu</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Manage hierarchical menu structures and commands for players within a mission.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Message.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Message.html">Core.Message</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Informs the players using messages during a simulation.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/CORE_Pathline.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Pathline.html">Core.Pathline</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Path from A to B.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Coordinate.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Point.html">Core.Point</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Defines an extensive API to manage 3D points in the DCS World 3D simulation space.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Report.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Report.html">Core.Report</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Provides a handy means to create messages and reports.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Schedule_Dispatcher.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.ScheduleDispatcher.html">Core.ScheduleDispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - SCHEDULEDISPATCHER dispatches the different schedules.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Scheduler.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Scheduler.html">Core.Scheduler</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Prepares and handles the execution of functions over scheduled time (intervals).</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Sets.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Set.html">Core.Set</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Define collections of objects to perform bulk actions and logically group objects.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Settings.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Settings.html">Core.Settings</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Manages various settings for missions, providing a menu for players to tweak settings in running missions.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Spawn.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Spawn.html">Core.Spawn</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Spawn dynamically new groups of units in running missions.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Spawnstatic.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.SpawnStatic.html">Core.SpawnStatic</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Spawn statics.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Spot.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Spot.html">Core.Spot</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Management of spotting logistics, that can be activated and deactivated upon command.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.TextAndSound.html">Core.TextAndSound</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - A Moose GetText system.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Scheduler.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Timer.html">Core.Timer</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Timer scheduler.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Userflag.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.UserFlag.html">Core.UserFlag</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Manage user flags to interact with the mission editor trigger system and server side scripts.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Velocity.html">Core.Velocity</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Models a velocity or speed, which can be expressed in various formats according the settings.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Zones.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Zone.html">Core.Zone</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Define zones within your mission of various forms, with various capabilities.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Core.Zone_Detection.html">Core.Zone_Detection</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - The ZONE_DETECTION class, defined by a zone name, a detection object and a radius.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="DCS.html">DCS</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>DCS API</strong> Prototypes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Air_Traffic_Control_Ground_Operations.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.ATC_Ground.html">Functional.ATC_Ground</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Monitor airbase traffic and regulate speed while taxiing.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Artillery.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Artillery.html">Functional.Artillery</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Control artillery units.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/CleanUp_Airbases.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.CleanUp.html">Functional.CleanUp</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Keep airbases clean of crashing or colliding airplanes, and kill missiles when being fired at airbases.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/clientwatch.jpg" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.ClientWatch.html">Functional.ClientWatch</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Manage and track client slots easily to add your own client-based menus and modules to.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Designation.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Designate.html">Functional.Designate</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Management of target <strong>Designation</strong>.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Detection.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Detection.html">Functional.Detection</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Models the detection of enemy units by FACs or RECCEs and group them according various methods.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.DetectionZones.html">Functional.DetectionZones</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Captures the class DETECTION_ZONES.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Escorting.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Escort.html">Functional.Escort</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Taking the lead of AI escorting your flight.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Functional_FOX.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Fox.html">Functional.Fox</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Yet Another Missile Trainer.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Functional.Mantis.jpg" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Mantis.html">Functional.Mantis</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Modular, Automatic and Network capable Targeting and Interception System for Air Defenses.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Missile_Trainer.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.MissileTrainer.html">Functional.MissileTrainer</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Train missile defence and deflection.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Movement.html">Functional.Movement</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Limit the movement of simulaneous moving ground vehicles.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Pseudo_ATC.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.PseudoATC.html">Functional.PseudoATC</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Basic ATC.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/RAT.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.RAT.html">Functional.RAT</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Create random airtraffic in your missions.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Range.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Range.html">Functional.Range</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Range Practice.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Scoring.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Scoring.html">Functional.Scoring</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Administer the scoring of player achievements, file and log the scoring events for use at websites.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/SEAD.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Sead.html">Functional.Sead</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Make SAM sites evasive and execute defensive behaviour when being fired upon.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Functional.Shorad.jpg" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Shorad.html">Functional.Shorad</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Short Range Air Defense System.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Suppression.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Suppression.html">Functional.Suppression</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Suppress fire of ground units when they get hit.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Warehouse.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.Warehouse.html">Functional.Warehouse</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Simulation of logistic operations.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Capture_Zones.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.ZoneCaptureCoalition.html">Functional.ZoneCaptureCoalition</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Models the process to zone guarding and capturing.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.ZoneGoal.html">Functional.ZoneGoal</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Base class that models processes to achieve goals involving a Zone.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.ZoneGoalCargo.html">Functional.ZoneGoalCargo</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Base class that models processes to achieve goals involving a Zone and Cargo.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Functional.ZoneGoalCoalition.html">Functional.ZoneGoalCoalition</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Functional</strong> - Base class that models processes to achieve goals involving a Zone for a Coalition.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/OPS_ATIS.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Ops.ATIS.html">Ops.ATIS</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Ops_Airboss.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Ops.Airboss.html">Ops.Airboss</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Ops</strong> - Manages aircraft CASE X recoveries for carrier operations (X=I, II, III).</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/OPS_CSAR.jpg" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Ops.CSAR.html">Ops.CSAR</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Ops</strong> - Combat Search and Rescue.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/OPS_CTLD.jpg" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Ops.CTLD.html">Ops.CTLD</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Ops</strong> - Combat Troops &amp; Logistics Department.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Ops_RecoveryTanker.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Ops.RecoveryTanker.html">Ops.RecoveryTanker</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Ops</strong> - Recovery tanker for carrier operations.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Ops_RescueHelo.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Ops.RescueHelo.html">Ops.RescueHelo</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Ops</strong> - Rescue helicopter for carrier operations.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Shapes.CUBE.html">Shapes.CUBE</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<h3>Author: <strong>nielsvaes/coconutcockpit</strong></h3>
<hr/>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Shapes.LINE.html">Shapes.LINE</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<h3>Author: <strong>nielsvaes/coconutcockpit</strong></h3>
<hr/>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Shapes.OVAL.html">Shapes.OVAL</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<h3>Author: <strong>nielsvaes/coconutcockpit</strong></h3>
<hr/>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Shapes.POLYGON.html">Shapes.POLYGON</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<h3>Author: <strong>nielsvaes/coconutcockpit</strong></h3>
<hr/>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/CORE_Pathline.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Shapes.SHAPE_BASE.html">Shapes.SHAPE_BASE</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Shapes</strong> - Class that serves as the base shapes drawn in the Mission Editor</p>
<h3>Author: <strong>nielsvaes/coconutcockpit</strong></h3>
<hr/>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Shapes.TRIANGLE.html">Shapes.TRIANGLE</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p>TRIANGLE class with properties and methods for handling triangles.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Radio.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Sound.Radio.html">Sound.Radio</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Sound</strong> - Radio transmissions.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Radio.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Sound.RadioQueue.html">Sound.RadioQueue</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Sound</strong> - Queues Radio Transmissions.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Radio.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Sound.RadioSpeech.html">Sound.RadioSpeech</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Core</strong> - Makes the radio talk.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Sound_MSRS.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Sound.SRS.html">Sound.SRS</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Sound</strong> - Simple Radio Standalone (SRS) Integration and Text-to-Speech.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Sound_SoundOutput.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Sound.SoundOutput.html">Sound.SoundOutput</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Sound</strong> - Sound output classes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Core_Usersound.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Sound.UserSound.html">Sound.UserSound</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Sound</strong> - Manage user sound.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Task_Command_Center.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.CommandCenter.html">Tasking.CommandCenter</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - A command center governs multiple missions, and takes care of the reporting and communications.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Task_Detection_Manager.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.DetectionManager.html">Tasking.DetectionManager</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - This module contains the DETECTION_MANAGER class and derived classes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Task_Mission.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Mission.html">Tasking.Mission</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - A mission models a goal to be achieved through the execution and completion of tasks by human players.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task.html">Tasking.Task</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - A task object governs the main engine to administer human taskings.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.TaskInfo.html">Tasking.TaskInfo</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - Controls the information of a Task.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_A2A.html">Tasking.Task_A2A</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - The TASK_A2A models tasks for players in Air to Air engagements.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Task_A2A_Dispatcher.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_A2A_Dispatcher.html">Tasking.Task_A2A_Dispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - Dynamically allocates A2A tasks to human players, based on detected airborne targets through an EWR network.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_A2G.html">Tasking.Task_A2G</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - The TASK_A2G models tasks for players in Air to Ground engagements.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Task_A2G_Dispatcher.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_A2G_Dispatcher.html">Tasking.Task_A2G_Dispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - Dynamically allocates A2G tasks to human players, based on detected ground targets through reconnaissance.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_CARGO.html">Tasking.Task_CARGO</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - Base class to model tasks for players to transport cargo.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_Capture_Dispatcher.html">Tasking.Task_Capture_Dispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - Creates and manages player TASK_ZONE_CAPTURE tasks.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_Capture_Zone.html">Tasking.Task_Capture_Zone</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - The TASK_Protect models tasks for players to protect or capture specific zones.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Task_Cargo_CSAR.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_Cargo_CSAR.html">Tasking.Task_Cargo_CSAR</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - Orchestrates the task for players to execute CSAR for downed pilots.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Task_Cargo_Dispatcher.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_Cargo_Dispatcher.html">Tasking.Task_Cargo_Dispatcher</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - Creates and manages player TASK_CARGO tasks.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Task_Cargo_Transport.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_Cargo_Transport.html">Tasking.Task_Cargo_Transport</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - Models tasks for players to transport cargo.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Tasking.Task_Manager.html">Tasking.Task_Manager</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Tasking</strong> - This module contains the TASK_MANAGER class and derived classes.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Utilities.Enums.html">Utilities.Enums</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Utilities</strong> Enumerators.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Utilities.FiFo.html">Utilities.FiFo</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p> <strong>UTILS</strong> - Classic FiFo Stack.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Utils_Profiler.jpg" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Utilities.Profiler.html">Utilities.Profiler</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Utils</strong> - Lua Profiler.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Utilities.Socket.html">Utilities.Socket</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Utilities</strong> - Socket.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Utilities.Utils.html">Utilities.Utils</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Utilities</strong> - Derived utilities taken from the MIST framework, added helpers from the MOOSE community.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Airbase.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Airbase.html">Wrapper.Airbase</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - AIRBASE is a wrapper class to handle the DCS Airbase objects.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Client.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Client.html">Wrapper.Client</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - CLIENT wraps DCS Unit objects acting as a <strong>Client</strong> or <strong>Player</strong> within a mission.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Controllable.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Controllable.html">Wrapper.Controllable</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - CONTROLLABLE is an intermediate class wrapping Group and Unit classes "controllers".</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Storage.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.DynamicCargo.html">Wrapper.DynamicCargo</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - Dynamic Cargo create from the F8 menu.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Group.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Group.html">Wrapper.Group</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - GROUP wraps the DCS Class Group objects.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Identifiable.html">Wrapper.Identifiable</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - IDENTIFIABLE is an intermediate class wrapping DCS Object class derived Objects.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE_Core.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Marker.html">Wrapper.Marker</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - Markers On the F10 map.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Utils_Profiler.jpg" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Net.html">Wrapper.Net</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - DCS net functions.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/MOOSE.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Object.html">Wrapper.Object</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - OBJECT wraps the DCS Object derived objects.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Positionable.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Positionable.html">Wrapper.Positionable</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - POSITIONABLE wraps DCS classes that are "positionable".</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Scenery.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Scenery.html">Wrapper.Scenery</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - SCENERY models scenery within the DCS simulator.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Static.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Static.html">Wrapper.Static</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - STATIC wraps the DCS StaticObject class.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Storage.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Storage.html">Wrapper.Storage</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - Warehouse storage of DCS airbases.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Unit.JPG" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Unit.html">Wrapper.Unit</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - UNIT is a wrapper class for the DCS Class Unit.</p>
</p></div>
</div>
</div>
<div class="w3-col s12 m6 l4">
<div class="w3-card-4 w3-white w3-margin-16">
<div class="w3-display-container w3-text-white w3-text-shadow">
<img src= "../Images/Wrapper_Weapon.png" alt="Image">
<div class="w3-display-bottommiddle" style="word-break:break-word;"><h2><strong><a href="Wrapper.Weapon.html">Wrapper.Weapon</a></strong></h2></div>
</div>
<div class="w3-container w3-padding w3-white picturebox" style="word-break:break-word;"><p>
<p><strong>Wrapper</strong> - Weapon functions.</p>
</p></div>
</div>
</div>
</div>
</nav>
<img src="..\Images\MOOSE.JPG" alt="Banner Image"/>
<div id="content">
<div class="w3-container w3-theme-d5" id="module_title">
<h1>Module <strong>Utilities.Utils</strong></h1>
</div>
<div class="w3-container w3-white" id="module_description">
<p><strong>Utilities</strong> - Derived utilities taken from the MIST framework, added helpers from the MOOSE community.</p>
<h3>Authors:</h3>
<ul>
<li>Grimes : Design &amp; Programming of the MIST framework.</li>
</ul>
<h3>Contributions:</h3>
<ul>
<li>FlightControl : Rework to OO framework.</li>
<li>And many more</li>
</ul>
</div>
<div class="w3-container w3-theme-d2"><h2><strong>Global(s)</strong></h2></div>
<div class="w3-theme-d2 w3-margin-top ">
<table class="w3-table w3-left-align w3-theme-d2" onclick="myFunction('#Globals##BIGSMOKEPRESET')">
<tr>
<td class="style="width:40%;"><p><h2>Global <strong>BIGSMOKEPRESET</strong></h2></p></td>
<td class="style="width:60%;">
</td>
</tr>
</table>
</div>
<div id= "#Globals##BIGSMOKEPRESET" class="w3-container w3-white w3-padding-small">
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="##(BIGSMOKEPRESET)">#BIGSMOKEPRESET</a>
<a id="BIGSMOKEPRESET" ><strong>BIGSMOKEPRESET</strong></a>
</div>
</div>
<div class="w3-theme-d2 w3-margin-top ">
<table class="w3-table w3-left-align w3-theme-d2" onclick="myFunction('#Globals##CALLSIGN')">
<tr>
<td class="style="width:40%;"><p><h2>Global <strong>CALLSIGN</strong></h2></p></td>
<td class="style="width:60%;">
</td>
</tr>
</table>
</div>
<div id= "#Globals##CALLSIGN" class="w3-container w3-white w3-padding-small">
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="##(CALLSIGN)">#CALLSIGN</a>
<a id="CALLSIGN" ><strong>CALLSIGN</strong></a>
</div>
</div>
<div class="w3-theme-d2 w3-margin-top ">
<table class="w3-table w3-left-align w3-theme-d2" onclick="myFunction('#Globals##DCSMAP')">
<tr>
<td class="style="width:40%;"><p><h2>Global <strong>DCSMAP</strong></h2></p></td>
<td class="style="width:60%;">
</td>
</tr>
</table>
</div>
<div id= "#Globals##DCSMAP" class="w3-container w3-white w3-padding-small">
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="##(DCSMAP)">#DCSMAP</a>
<a id="DCSMAP" ><strong>DCSMAP</strong></a>
</div>
</div>
<div class="w3-theme-d2 w3-margin-top ">
<table class="w3-table w3-left-align w3-theme-d2" onclick="myFunction('#Globals##FLARECOLOR')">
<tr>
<td class="style="width:40%;"><p><h2>Global <strong>FLARECOLOR</strong></h2></p></td>
<td class="style="width:60%;">
</td>
</tr>
</table>
</div>
<div id= "#Globals##FLARECOLOR" class="w3-container w3-white w3-padding-small">
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="##(FLARECOLOR)">#FLARECOLOR</a>
<a id="FLARECOLOR" ><strong>FLARECOLOR</strong></a>
</div>
</div>
<div class="w3-theme-d2 w3-margin-top ">
<table class="w3-table w3-left-align w3-theme-d2" onclick="myFunction('#Globals##SMOKECOLOR')">
<tr>
<td class="style="width:40%;"><p><h2>Global <strong>SMOKECOLOR</strong></h2></p></td>
<td class="style="width:60%;">
</td>
</tr>
</table>
</div>
<div id= "#Globals##SMOKECOLOR" class="w3-container w3-white w3-padding-small">
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="##(SMOKECOLOR)">#SMOKECOLOR</a>
<a id="SMOKECOLOR" ><strong>SMOKECOLOR</strong></a>
</div>
</div>
<div class="w3-theme-d2 w3-margin-top ">
<table class="w3-table w3-left-align w3-theme-d2" onclick="myFunction('#Globals##UTILS')">
<tr>
<td class="style="width:40%;"><p><h2>Global <strong>UTILS</strong></h2></p></td>
<td class="style="width:60%;">
</td>
</tr>
</table>
</div>
<div id= "#Globals##UTILS" class="w3-container w3-white w3-padding-small">
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="##(UTILS)">#UTILS</a>
<a id="UTILS" ><strong>UTILS</strong></a>
</div>
</div>
<div class="w3-container w3-theme-l2 w3-margin-top"><h2><strong>Type(s)</strong></h2></div>
<div class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(BIGSMOKEPRESET)">Type <strong>BIGSMOKEPRESET</strong></a></h2></div>
<div class="w3-card-4 w3-padding w3-margin w3-theme-l1">
<strong><a href="##(BIGSMOKEPRESET)">BIGSMOKEPRESET</a></strong>
</div>
<div class="w3-card w3-margin">
<table class="w3-table w3-border-bottom w3-border-theme-l2">
<tr class="w3-theme-l1">
<th class="w3-half w3-left-align w3-container w3-padding-16"word-wrap: break-word">Fields and Methods inherited from BIGSMOKEPRESET</th>
<th class="w3-half w3-left-align w3-container w3-padding-16">Description</th>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(BIGSMOKEPRESET).HugeSmoke">BIGSMOKEPRESET.HugeSmoke</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Huge smoke (8)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(BIGSMOKEPRESET).HugeSmokeAndFire">BIGSMOKEPRESET.HugeSmokeAndFire</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Huge smoke and fire (4)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(BIGSMOKEPRESET).LargeSmoke">BIGSMOKEPRESET.LargeSmoke</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Large smoke (7)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(BIGSMOKEPRESET).LargeSmokeAndFire">BIGSMOKEPRESET.LargeSmokeAndFire</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Large smoke and fire (3)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(BIGSMOKEPRESET).MediumSmoke">BIGSMOKEPRESET.MediumSmoke</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Medium smoke (6)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(BIGSMOKEPRESET).MediumSmokeAndFire">BIGSMOKEPRESET.MediumSmokeAndFire</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Medium smoke and fire (2)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(BIGSMOKEPRESET).SmallSmoke">BIGSMOKEPRESET.SmallSmoke</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Small smoke (5)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(BIGSMOKEPRESET).SmallSmokeAndFire">BIGSMOKEPRESET.SmallSmokeAndFire</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Small moke and fire (1)</p>
</td>
</tr>
</table>
</div>
<div class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(CALLSIGN)">Type <strong>CALLSIGN</strong></a></h2></div>
<div class="w3-card-4 w3-padding w3-margin w3-theme-l1">
<strong><a href="##(CALLSIGN)">CALLSIGN</a></strong>
</div>
<div class="w3-card w3-margin">
<table class="w3-table w3-border-bottom w3-border-theme-l2">
<tr class="w3-theme-l1">
<th class="w3-half w3-left-align w3-container w3-padding-16"word-wrap: break-word">Fields and Methods inherited from CALLSIGN</th>
<th class="w3-half w3-left-align w3-container w3-padding-16">Description</th>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).AH64">CALLSIGN.AH64</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).AWACS">CALLSIGN.AWACS</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).Aircraft">CALLSIGN.Aircraft</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).B1B">CALLSIGN.B1B</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).B52">CALLSIGN.B52</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).F15E">CALLSIGN.F15E</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).F16">CALLSIGN.F16</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).F18">CALLSIGN.F18</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).FARP">CALLSIGN.FARP</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).JTAC">CALLSIGN.JTAC</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).Kiowa">CALLSIGN.Kiowa</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).Tanker">CALLSIGN.Tanker</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(CALLSIGN).TransportAircraft">CALLSIGN.TransportAircraft</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
</table>
</div>
<div class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(DCSMAP)">Type <strong>DCSMAP</strong></a></h2></div>
<div class="w3-card-4 w3-padding w3-margin w3-theme-l1">
<strong><a href="##(DCSMAP)">DCSMAP</a></strong>
</div>
<div class="w3-card w3-margin">
<table class="w3-table w3-border-bottom w3-border-theme-l2">
<tr class="w3-theme-l1">
<th class="w3-half w3-left-align w3-container w3-padding-16"word-wrap: break-word">Fields and Methods inherited from DCSMAP</th>
<th class="w3-half w3-left-align w3-container w3-padding-16">Description</th>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).Afghanistan">DCSMAP.Afghanistan</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Afghanistan map</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).Caucasus">DCSMAP.Caucasus</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Caucasus map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).Falklands">DCSMAP.Falklands</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>South Atlantic map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).GermanyCW">DCSMAP.GermanyCW</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Germany Cold War map</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).Iraq">DCSMAP.Iraq</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Iraq map</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).Kola">DCSMAP.Kola</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Kola map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).MarianaIslands">DCSMAP.MarianaIslands</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Mariana Islands map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).NTTR">DCSMAP.NTTR</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Nevada Test and Training Range map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).Normandy">DCSMAP.Normandy</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Normandy map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).PersianGulf">DCSMAP.PersianGulf</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Persian Gulf map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).Sinai">DCSMAP.Sinai</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Sinai map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).Syria">DCSMAP.Syria</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Syria map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(DCSMAP).TheChannel">DCSMAP.TheChannel</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>The Channel map.</p>
</td>
</tr>
</table>
</div>
<div class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(FLARECOLOR)">Type <strong>FLARECOLOR</strong></a></h2></div>
<div class="w3-card-4 w3-padding w3-margin w3-theme-l1">
<strong><a href="##(FLARECOLOR)">FLARECOLOR</a></strong>
</div>
<div class="w3-card w3-margin">
<table class="w3-table w3-border-bottom w3-border-theme-l2">
<tr class="w3-theme-l1">
<th class="w3-half w3-left-align w3-container w3-padding-16"word-wrap: break-word">Fields and Methods inherited from FLARECOLOR</th>
<th class="w3-half w3-left-align w3-container w3-padding-16">Description</th>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(FLARECOLOR).Green">FLARECOLOR.Green</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>(0)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(FLARECOLOR).Red">FLARECOLOR.Red</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Red flare (1)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(FLARECOLOR).White">FLARECOLOR.White</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>White flare (2)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(FLARECOLOR).Yellow">FLARECOLOR.Yellow</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Yellow flare (3)</p>
</td>
</tr>
</table>
</div>
<div class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(SMOKECOLOR)">Type <strong>SMOKECOLOR</strong></a></h2></div>
<div class="w3-card-4 w3-padding w3-margin w3-theme-l1">
<strong><a href="##(SMOKECOLOR)">SMOKECOLOR</a></strong>
</div>
<div class="w3-card w3-margin">
<table class="w3-table w3-border-bottom w3-border-theme-l2">
<tr class="w3-theme-l1">
<th class="w3-half w3-left-align w3-container w3-padding-16"word-wrap: break-word">Fields and Methods inherited from SMOKECOLOR</th>
<th class="w3-half w3-left-align w3-container w3-padding-16">Description</th>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(SMOKECOLOR).Blue">SMOKECOLOR.Blue</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Blue smoke (4)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(SMOKECOLOR).Green">SMOKECOLOR.Green</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Green smoke (0)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(SMOKECOLOR).Orange">SMOKECOLOR.Orange</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Orange smoke (3)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(SMOKECOLOR).Red">SMOKECOLOR.Red</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Red smoke (1)</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(SMOKECOLOR).White">SMOKECOLOR.White</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>White smoke (2)</p>
</td>
</tr>
</table>
</div>
<div class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(UTILS)">Type <strong>UTILS</strong></a></h2></div>
<div class="w3-card-4 w3-padding w3-margin w3-theme-l1">
<strong><a href="##(UTILS)">UTILS</a></strong>
</div>
<div class="w3-card w3-margin">
<table class="w3-table w3-border-bottom w3-border-theme-l2">
<tr class="w3-theme-l1">
<th class="w3-half w3-left-align w3-container w3-padding-16"word-wrap: break-word">Fields and Methods inherited from UTILS</th>
<th class="w3-half w3-left-align w3-container w3-padding-16">Description</th>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).AngleBetween">UTILS.AngleBetween(angle, min, max)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Checks if a given angle (heading) is between 2 other angles.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).BasicSerialize">UTILS.BasicSerialize(s)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Basic serialize (porting in Slmod's "safestring" basic serialize).</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).BearingToCardinal">UTILS.BearingToCardinal(Heading)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Heading Degrees (0-360) to Cardinal</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).BeaufortScale">UTILS.BeaufortScale(speed)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Beaufort scale: returns Beaufort number and wind description as a function of wind speed in m/s.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).CelsiusToFahrenheit">UTILS.CelsiusToFahrenheit(Celcius)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert temperature from Celsius to Fahrenheit.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).CheckFileExists">UTILS.CheckFileExists(Path, Filename)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to check if a file exists.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).CheckMemory">UTILS.CheckMemory(output)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Checks the current memory usage collectgarbage("count").</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Clamp">UTILS.Clamp(value, min, max)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Easy to read one liner to clamp a value</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ClampAngle">UTILS.ClampAngle(value)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Clamp an angle so that it's always between 0 and 360 while still being correct</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ClockHeadingString">UTILS.ClockHeadingString(refHdg, tgtHdg)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the clock position from a relative heading</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ClockToSeconds">UTILS.ClockToSeconds(clock)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert clock time from hours, minutes and seconds to seconds.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).CombineTimeStrings">UTILS.CombineTimeStrings(time_string_01, time_string_02)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Combines two time strings to give you a new time.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).DecimalToOctal">UTILS.DecimalToOctal(Number)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert a decimal to octal</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).DeepCopy">UTILS.DeepCopy(object)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Deep copy a table.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).DestroyScenery">UTILS.DestroyScenery(name, level)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Remove scenery objects from a zone, zone must ME created</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).DisplayMissionTime">UTILS.DisplayMissionTime(duration)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Display clock and mission time on screen as a message to all.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).DoString">UTILS.DoString(s)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Executes the given string.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).EnsureTable">UTILS.EnsureTable(Object, ReturnNil)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Ensure the passed object is a table.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).FeetToMeters">UTILS.FeetToMeters(feet)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).FileExists">UTILS.FileExists(file)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Checks if a file exists or not.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).FindNearestPointOnCircle">UTILS.FindNearestPointOnCircle(Vec1, Radius, Vec2)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Find the point on the radius of a circle closest to a point outside of the radius.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GMTToLocalTimeDifference">UTILS.GMTToLocalTimeDifference()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the time difference between GMT and local time.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Gdump">UTILS.Gdump(fname)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Dumps the global table _G.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GenerateFMFrequencies">UTILS.GenerateFMFrequencies()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to generate valid FM frequencies in mHz for radio beacons (FM).</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GenerateLaserCodes">UTILS.GenerateLaserCodes()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to generate valid laser codes for JTAC.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GenerateUHFrequencies">UTILS.GenerateUHFrequencies(Start, End)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to generate valid UHF Frequencies in mHz (AM).</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GenerateVHFrequencies">UTILS.GenerateVHFrequencies()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to generate valid VHF frequencies in kHz for radio beacons (FM).</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetCallsignName">UTILS.GetCallsignName(Callsign)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the callsign name from its enumerator value</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetCharacters">UTILS.GetCharacters(str)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get a table of all characters in a string.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetClearZonePositions">UTILS.GetClearZonePositions(Zone, (, (, PosRadius, NumPositions)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Search for clear ground spawn zones within this zone.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetCoalitionEnemy">UTILS.GetCoalitionEnemy(Coalition, Neutral)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the enemy coalition for a given coalition.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetCoalitionName">UTILS.GetCoalitionName(Coalition)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the coalition name from its numerical ID, e.g.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetCountPerTypeName">UTILS.GetCountPerTypeName(Group)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to obtain a table of typenames from the group given with the number of units of the same type in the group.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetDCSMap">UTILS.GetDCSMap()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Returns the DCS map/theatre as optained by <code>env.mission.theatre</code>.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetDCSMissionDate">UTILS.GetDCSMissionDate()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Returns the mission date.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetDHMS">UTILS.GetDHMS(timeInSec)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert time in seconds to a DHMS table <code>{d = days, h = hours, m = minutes, s = seconds}</code></p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetDayOfYear">UTILS.GetDayOfYear(Year, Month, Day)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the day of the year.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetDirectionRadians">UTILS.GetDirectionRadians(vec, point)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Returns heading-error corrected direction in radians.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetEnvZone">UTILS.GetEnvZone(name)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Find a ME created zone by its name</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetMagneticDeclination">UTILS.GetMagneticDeclination(map)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Returns the magnetic declination of the map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetMarkID">UTILS.GetMarkID()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetMissionDay">UTILS.GetMissionDay(Time)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Returns the day of the mission.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetMissionDayOfYear">UTILS.GetMissionDayOfYear(Time)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Returns the current day of the year of the mission.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetModulationName">UTILS.GetModulationName(Modulation)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the modulation name from its numerical value.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetNorthCorrection">UTILS.GetNorthCorrection(gPoint)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the correction needed for true north in radians</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetOSTime">UTILS.GetOSTime()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get OS time.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetRandomClearZoneCoordinate">UTILS.GetRandomClearZoneCoordinate(Zone, PosRadius, NumPositions)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Search for a random clear ground spawn coordinate within this zone.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetRandomTableElement">UTILS.GetRandomTableElement(t, replace)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p> Get a random element of a table.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetReportingName">UTILS.GetReportingName(Typename)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the NATO reporting name of a unit type name</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetSimpleZones">UTILS.GetSimpleZones(Vec3, SearchRadius, PosRadius, NumPositions)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Search for clear zones in a given area.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetSunRiseAndSet">UTILS.GetSunRiseAndSet(DayOfYear, Latitude, Longitude, Rising, Tlocal)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get sunrise or sun set of a specific day of the year at a specific location.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetSunrise">UTILS.GetSunrise(Day, Month, Year, Latitude, Longitude, Rising, Tlocal)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get sun rise of a specific day of the year at a specific location.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetSunset">UTILS.GetSunset(Day, Month, Year, Latitude, Longitude, Rising, Tlocal)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get sun set of a specific day of the year at a specific location.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).GetZoneProperties">UTILS.GetZoneProperties(zone_name)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the properties names and values of properties set up on a Zone in the Mission Editor.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).HdgDiff">UTILS.HdgDiff(h1, h2)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the difference between two "heading", i.e.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).HdgTo">UTILS.HdgTo(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Returns the heading from one vec3 to another vec3.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).HexToRGBA">UTILS.HexToRGBA(hex_string)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>HexToRGBA</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).IasToTas">UTILS.IasToTas(ias, altitude, oatcorr)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert indicated airspeed (IAS) to true airspeed (TAS) for a given altitude above main sea level.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).IsAnyInTable">UTILS.IsAnyInTable(Table, Objects, Key)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Check if any object of multiple given objects is contained in a table.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).IsInRadius">UTILS.IsInRadius(InVec2, Vec2, Radius)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).IsInSphere">UTILS.IsInSphere(InVec3, Vec3, Radius)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).IsInTable">UTILS.IsInTable(Table, Object, Key)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Check if an object is contained in a table.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).IsInstanceOf">UTILS.IsInstanceOf(object, className)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to infer instance of an object</p>
<h3>Examples:</h3>
<ul>
<li><p>UTILS.IsInstanceOf( 'some text', 'string' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( some_function, 'function' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( 10, 'number' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( false, 'boolean' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( nil, 'nil' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', ZONE ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', 'ZONE' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', 'zone' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', 'BASE' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', 'GROUP' ) will return false</p></li>
</ul>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).IsLoadingDoorOpen">UTILS.IsLoadingDoorOpen(unit_name)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p> (Helicopter) Check if one loading door is open.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).IsPointInPolygon">UTILS.IsPointInPolygon(point, poly, maxalt, outcome)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Raycasting a point in polygon.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).KiloMetersToFeet">UTILS.KiloMetersToFeet(kilometers)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).KiloMetersToNM">UTILS.KiloMetersToNM(kilometers)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).KiloMetersToSM">UTILS.KiloMetersToSM(kilometers)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).KmphToKnots">UTILS.KmphToKnots(knots)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).KmphToMps">UTILS.KmphToMps(kmph)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).KnotsToAltKIAS">UTILS.KnotsToAltKIAS(knots, altitude)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert knots to altitude corrected KIAS, e.g.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).KnotsToKmph">UTILS.KnotsToKmph(knots)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).KnotsToMps">UTILS.KnotsToMps(knots)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert knots to meters per second.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).LCGRandom">UTILS.LCGRandom()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Return a pseudo-random number using the LCG algorithm.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).LCGRandomSeed">UTILS.LCGRandomSeed(seed)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Seed the LCG random number generator.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).LoadFromFile">UTILS.LoadFromFile(Path, Filename)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to load an object from a file.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).LoadSetOfGroups">UTILS.LoadSetOfGroups(Path, Filename, Spawn, Structured, Cinematic, Effect, Density)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Load back a SET of groups from file.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).LoadSetOfOpsGroups">UTILS.LoadSetOfOpsGroups(Path, Filename)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Load back a #OPSGROUP (ARMYGROUP) data from file for use with <a href="Ops.Brigade.html##(BRIGADE).LoadBackAssetInPosition">Ops.Brigade#BRIGADE.LoadBackAssetInPosition</a>()</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).LoadSetOfStatics">UTILS.LoadSetOfStatics(Path, Filename)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Load back a SET of statics from file.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).LoadStationaryListOfGroups">UTILS.LoadStationaryListOfGroups(Path, Filename, Reduce, Structured, Cinematic, Effect, Density)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Load back a stationary list of groups from file.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).LoadStationaryListOfStatics">UTILS.LoadStationaryListOfStatics(Path, Filename, Reduce, Dead, Cinematic, Effect, Density)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Load back a stationary list of statics from file.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).MGRSStringToSRSFriendly">UTILS.MGRSStringToSRSFriendly(Text, Slow)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get a NATO abbreviated MGRS text for SRS use, optionally with prosody slow tag</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).MetersToFeet">UTILS.MetersToFeet(meters)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).MetersToNM">UTILS.MetersToNM(meters)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).MetersToSM">UTILS.MetersToSM(meters)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).MiphToMps">UTILS.MiphToMps(miph)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).MpsToKmph">UTILS.MpsToKmph(mps)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).MpsToKnots">UTILS.MpsToKnots(mps)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert meters per second to knots.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).MpsToMiph">UTILS.MpsToMiph(mps)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert meters per second to miles per hour.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).NMToKiloMeters">UTILS.NMToKiloMeters(NM)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).NMToMeters">UTILS.NMToMeters(NM)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).OctalToDecimal">UTILS.OctalToDecimal(Number)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert an octal to decimal</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).OneLineSerialize">UTILS.OneLineSerialize(tbl)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Serialize a given table.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).PercentageChance">UTILS.PercentageChance(chance)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Easy to read one line to roll the dice on something.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).PlotRacetrack">UTILS.PlotRacetrack(Coordinate, Altitude, Speed, Heading, Leg, Coalition, Color, Alpha, LineType, ReadOnly)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Helper function to plot a racetrack on the F10 Map - curtesy of Buur.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).PrintTableToLog">UTILS.PrintTableToLog(table, indent, noprint)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Print a table to log in a nice format</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).RandomGaussian">UTILS.RandomGaussian(x0, sigma, xmin, xmax, imax)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Generate a Gaussian pseudo-random number.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).RandomPointInTriangle">UTILS.RandomPointInTriangle(pt1, pt2, pt3)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Given a triangle made out of 3 vector 2s, return a vec2 that is a random number in this triangle</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Randomize">UTILS.Randomize(value, fac, lower, upper)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Randomize a value by a certain amount.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ReadCSV">UTILS.ReadCSV(filename)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Read csv file and convert it to a lua table.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ReadJSON">UTILS.ReadJSON(file_path)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Easy to read one liner to read a JSON file.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).RemapValue">UTILS.RemapValue(value, old_min, old_max, new_min, new_max)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Remap an input to a new value in a given range.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).RemoveMark">UTILS.RemoveMark(MarkID, Delay)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Remove an object (marker, circle, arrow, text, quad, ...) on the F10 map.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).RemoveObjects">UTILS.RemoveObjects(name, type)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Remove objects from a zone, zone must ME created</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ReplaceIllegalCharacters">UTILS.ReplaceIllegalCharacters(Text, ReplaceBy)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Replace illegal characters [&lt;>|/?*:\] in a string.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Rotate2D">UTILS.Rotate2D(a, angle)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Rotate 3D vector in the 2D (x,z) plane.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).RotatePointAroundPivot">UTILS.RotatePointAroundPivot(point, pivot, angle)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Rotates a point around another point with a given angle.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Round">UTILS.Round(num, idp)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>From http://lua-users.org/wiki/SimpleRound
use negative idp for rounding ahead of decimal place, positive for rounding after decimal place</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SaveSetOfGroups">UTILS.SaveSetOfGroups(Set, Path, Filename, Structured)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to save the state of a set of Wrapper.Group#GROUP objects.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SaveSetOfOpsGroups">UTILS.SaveSetOfOpsGroups(Set, Path, Filename, Structured)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to save the position of a set of #OPSGROUP (ARMYGROUP) objects.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SaveSetOfStatics">UTILS.SaveSetOfStatics(Set, Path, Filename)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to save the state of a set of Wrapper.Static#STATIC objects.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SaveStationaryListOfGroups">UTILS.SaveStationaryListOfGroups(List, Path, Filename, Structured)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to save the state of a list of groups found by name</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SaveStationaryListOfStatics">UTILS.SaveStationaryListOfStatics(List, Path, Filename)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to save the state of a list of statics found by name</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SaveToFile">UTILS.SaveToFile(Path, Filename, Data)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Function to save an object to a file</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ScalarMult">UTILS.ScalarMult(vec, mult)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Vector scalar multiplication.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SecondsOfToday">UTILS.SecondsOfToday()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Seconds of today.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SecondsToClock">UTILS.SecondsToClock(seconds, short)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert time in seconds to hours, minutes and seconds.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SecondsToMidnight">UTILS.SecondsToMidnight()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Cound seconds until next midnight.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ShellZone">UTILS.ShellZone(name, power, Number, count)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Shell a zone, zone must ME created</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ShowHelperGate">UTILS.ShowHelperGate(pos, number, heading)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Show a helper gate at a DCS#Vec3 position</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ShuffleTable">UTILS.ShuffleTable(t)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p> Shuffle a table accoring to Fisher Yeates algorithm</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SpawnFARPAndFunctionalStatics">UTILS.SpawnFARPAndFunctionalStatics(Name, Coordinate, FARPType, Coalition, Country, CallSign, Frequency, Modulation, ADF, SpawnRadius, VehicleTemplate, Liquids, Equipment, Airframes, F10Text, DynamicSpawns, HotStart)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Spawns a new FARP of a defined type and coalition and functional statics (fuel depot, ammo storage, tent, windsock) around that FARP to make it operational.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SpawnMASHStatics">UTILS.SpawnMASHStatics(Name, Coordinate, Country, ADF, Livery, DeployHelo, MASHRadio, MASHRadioModulation, MASHCallsign, Templates)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Spawn a MASH at a given coordinate, optionally, add an ADF Beacon.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Split">UTILS.Split(str, sep)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Split string at separators.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).SubtractTimeStrings">UTILS.SubtractTimeStrings(time_string_01, time_string_02)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Subtracts two time string to give you a new time.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).TACANToFrequency">UTILS.TACANToFrequency(TACANChannel, TACANMode)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Converts a TACAN Channel/Mode couple into a frequency in Hz.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).TableLength">UTILS.TableLength(T)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Counts the number of elements in a table.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).TableShow">UTILS.TableShow(tbl, loc, indent, tableshow_tbls)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Returns table in a easy readable string representation.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).TasToIas">UTILS.TasToIas(tas, altitude, oatcorr)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert true airspeed (TAS) to indicated airspeed (IAS) for a given altitude above main sea level.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).TimeBefore">UTILS.TimeBefore(start_time, time_string)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Check if the current time is before time_string.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).TimeBetween">UTILS.TimeBetween(time_string_01, time_string_02, start_time, end_time)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Checks if the current time is in between start_time and end_time</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).TimeDifferenceInSeconds">UTILS.TimeDifferenceInSeconds(start_time, end_time)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Given 2 "nice" time string, returns the difference between the two in seconds</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).TimeLaterThan">UTILS.TimeLaterThan(start_time, time_string)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Check if the current time is later than time_string.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).TimeNow">UTILS.TimeNow()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Get the current time in a "nice" format like 21:01:15</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ToDegree">UTILS.ToDegree(angle)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ToRadian">UTILS.ToRadian(angle)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).ToStringBRAANATO">UTILS.ToStringBRAANATO(FromGrp, ToGrp)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Create a BRAA NATO call string BRAA between two GROUP objects</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).UniqueName">UTILS.UniqueName(base)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Makes a string semi-unique by attaching a random number between 0 and 1 million to it</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Vec2Add">UTILS.Vec2Add(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the total vector of two 2D vectors by adding the x,y components of each other.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Vec2Dot">UTILS.Vec2Dot(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Dot_product">dot product</a> of two 2D vectors.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Vec2Hdg">UTILS.Vec2Hdg(a)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate "heading" of a 2D vector in the X-Y plane.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Vec2Norm">UTILS.Vec2Norm(a)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Euclidean_distance">euclidean norm</a> (length) of a 2D vector.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Vec2Rotate2D">UTILS.Vec2Rotate2D(a, angle)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Rotate 2D vector in the 2D (x,z) plane.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Vec2Substract">UTILS.Vec2Substract(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the difference between two 2D vectors by substracting the x,y components from each other.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Vec2Subtract">UTILS.Vec2Subtract(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Substract is not a word, don't want to rename the original function because it's been around since forever</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Vec2Translate">UTILS.Vec2Translate(a, distance, angle)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Translate 2D vector in the 2D (x,z) plane.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Vec2toVec3">UTILS.Vec2toVec3(vec, y)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Converts a Vec2 to a Vec3.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecAdd">UTILS.VecAdd(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the total vector of two 3D vectors by adding the x,y,z components of each other.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecAngle">UTILS.VecAngle(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the angle between two 3D vectors.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecCross">UTILS.VecCross(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Cross_product">cross product</a> of two 3D vectors.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecDist2D">UTILS.VecDist2D(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the distance between two 2D vectors.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecDist3D">UTILS.VecDist3D(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the distance between two 3D vectors.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecDot">UTILS.VecDot(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Dot_product">dot product</a> of two vectors.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecHdg">UTILS.VecHdg(a)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate "heading" of a 3D vector in the X-Z plane.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecNorm">UTILS.VecNorm(a)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Euclidean_distance">euclidean norm</a> (length) of a 3D vector.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecSubstract">UTILS.VecSubstract(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Calculate the difference between two 3D vectors by substracting the x,y,z components from each other.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecSubtract">UTILS.VecSubtract(a, b)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Substract is not a word, don't want to rename the original function because it's been around since forever</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).VecTranslate">UTILS.VecTranslate(a, distance, angle)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Translate 3D vector in the 2D (x,z) plane.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).Weather">UTILS.Weather</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).WriteJSON">UTILS.WriteJSON(data, file_path)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Easy to read one liner to write a JSON file.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS)._MarkID">UTILS._MarkID</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Marker index counter. Running number when marker is added.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS)._OneLineSerialize">UTILS._OneLineSerialize(tbl)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Serialize a table to a single line string.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).hPa2inHg">UTILS.hPa2inHg(hPa)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert pressure from hecto Pascal (hPa) to inches of mercury (inHg).</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).hPa2mmHg">UTILS.hPa2mmHg(hPa)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert pressure from hecto Pascal (hPa) to millimeters of mercury (mmHg).</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).kg2lbs">UTILS.kg2lbs(kg)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Convert kilo gramms (kg) to pounds (lbs).</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).kpairs">UTILS.kpairs(t, getkey, order)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Here is a customized version of pairs, which I called kpairs because it iterates over the table in a sorted order, based on a function that will determine the keys as reference first.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).lcg">UTILS.lcg</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).rpairs">UTILS.rpairs(t)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Here is a customized version of pairs, which I called rpairs because it iterates over the table in a random order.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).spairs">UTILS.spairs(t, order)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Here is a customized version of pairs, which I called spairs because it iterates over the table in a sorted order.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).tostringLL">UTILS.tostringLL(lat, lon, acc, DMS)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).tostringLLM2KData">UTILS.tostringLLM2KData(lat, lon, acc)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS).tostringMGRS">UTILS.tostringMGRS(MGRS, acc)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
</td>
</tr>
</table>
</div>
<div class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(UTILS.Weather)">Type <strong>UTILS.Weather</strong></a></h2></div>
<div class="w3-card-4 w3-padding w3-margin w3-theme-l1">
<strong><a href="##(UTILS.Weather)">UTILS.Weather</a></strong>
</div>
<div class="w3-card w3-margin">
<table class="w3-table w3-border-bottom w3-border-theme-l2">
<tr class="w3-theme-l1">
<th class="w3-half w3-left-align w3-container w3-padding-16"word-wrap: break-word">Fields and Methods inherited from UTILS.Weather</th>
<th class="w3-half w3-left-align w3-container w3-padding-16">Description</th>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS.Weather).GetFogThickness">UTILS.Weather.GetFogThickness()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Returns the current fog thickness in meters.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS.Weather).GetFogVisibilityDistanceMax">UTILS.Weather.GetFogVisibilityDistanceMax()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Gets the maximum visibility distance of the current fog setting.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS.Weather).RemoveFog">UTILS.Weather.RemoveFog()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Removes the fog.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS.Weather).SetFogAnimation">UTILS.Weather.SetFogAnimation(AnimationKeys)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p> Uses data from the passed table to change the fog visibility and thickness over a desired timeframe.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS.Weather).SetFogThickness">UTILS.Weather.SetFogThickness(Thickness)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Sets the fog to the desired thickness in meters at sea level. </p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS.Weather).SetFogVisibilityDistance">UTILS.Weather.SetFogVisibilityDistance(Thickness)</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>Sets the maximum visibility at sea level in meters.</p>
</td>
</tr>
<tr class="w3-border">
<td class="name w3-half w3-container" style="word-wrap: break-word"><p><a href="##(UTILS.Weather).StopFogAnimation">UTILS.Weather.StopFogAnimation()</a></p></td>
<td class="summary w3-half w3-container" style="word-wrap: break-word">
<p>The fog animation will be discarded and whatever the current thickness and visibility are set to will remain</p>
</td>
</tr>
</table>
</div>
<div class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(Utilities.Utils)" >Type <strong>Utilities.Utils</strong></a></h2></div>
<div class="w3-container w3-white w3-padding-16" id="module_current_type">
<div class="w3-white" id="record_type">
</div>
</div>
<div onclick="myFunction('#Types##BIGSMOKEPRESET')" class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(BIGSMOKEPRESET)">Type <strong>BIGSMOKEPRESET</strong></a></h2></div>
<div id= "#Types##BIGSMOKEPRESET" class="w3-container w3-white w3-padding-16" id="module_other_types">
<div class="w3-white" id="record_type">
<p>Big smoke preset enum.</p>
<div class="fields w3-container w3-theme-l2">
<h2>Field(s)</h2>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(BIGSMOKEPRESET).HugeSmoke" ><strong>BIGSMOKEPRESET.HugeSmoke</strong></a>
<p>Huge smoke (8)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(BIGSMOKEPRESET).HugeSmokeAndFire" ><strong>BIGSMOKEPRESET.HugeSmokeAndFire</strong></a>
<p>Huge smoke and fire (4)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(BIGSMOKEPRESET).LargeSmoke" ><strong>BIGSMOKEPRESET.LargeSmoke</strong></a>
<p>Large smoke (7)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(BIGSMOKEPRESET).LargeSmokeAndFire" ><strong>BIGSMOKEPRESET.LargeSmokeAndFire</strong></a>
<p>Large smoke and fire (3)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(BIGSMOKEPRESET).MediumSmoke" ><strong>BIGSMOKEPRESET.MediumSmoke</strong></a>
<p>Medium smoke (6)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(BIGSMOKEPRESET).MediumSmokeAndFire" ><strong>BIGSMOKEPRESET.MediumSmokeAndFire</strong></a>
<p>Medium smoke and fire (2)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(BIGSMOKEPRESET).SmallSmoke" ><strong>BIGSMOKEPRESET.SmallSmoke</strong></a>
<p>Small smoke (5)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(BIGSMOKEPRESET).SmallSmokeAndFire" ><strong>BIGSMOKEPRESET.SmallSmokeAndFire</strong></a>
<p>Small moke and fire (1)</p>
</div>
</div>
<div class="functions w3-container w3-theme-l2">
<h2>Function(s)</h2>
</div>
</div>
</div>
<div onclick="myFunction('#Types##CALLSIGN')" class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(CALLSIGN)">Type <strong>CALLSIGN</strong></a></h2></div>
<div id= "#Types##CALLSIGN" class="w3-container w3-white w3-padding-16" id="module_other_types">
<div class="w3-white" id="record_type">
<p>See <a href="https://wiki.hoggitworld.com/view/DCS_enum_callsigns">DCS_enum_callsigns</a></p>
<div class="fields w3-container w3-theme-l2">
<h2>Field(s)</h2>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).AH64" ><strong>CALLSIGN.AH64</strong></a>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).AWACS" ><strong>CALLSIGN.AWACS</strong></a>
<p> AWACS</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).Aircraft" ><strong>CALLSIGN.Aircraft</strong></a>
<p> Aircraft</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).B1B" ><strong>CALLSIGN.B1B</strong></a>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).B52" ><strong>CALLSIGN.B52</strong></a>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).F15E" ><strong>CALLSIGN.F15E</strong></a>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).F16" ><strong>CALLSIGN.F16</strong></a>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).F18" ><strong>CALLSIGN.F18</strong></a>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).FARP" ><strong>CALLSIGN.FARP</strong></a>
<p> FARP</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).JTAC" ><strong>CALLSIGN.JTAC</strong></a>
<p> JTAC</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).Kiowa" ><strong>CALLSIGN.Kiowa</strong></a>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).Tanker" ><strong>CALLSIGN.Tanker</strong></a>
<p> Tanker</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(CALLSIGN).TransportAircraft" ><strong>CALLSIGN.TransportAircraft</strong></a>
</div>
</div>
<div class="functions w3-container w3-theme-l2">
<h2>Function(s)</h2>
</div>
</div>
</div>
<div onclick="myFunction('#Types##DCSMAP')" class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(DCSMAP)">Type <strong>DCSMAP</strong></a></h2></div>
<div id= "#Types##DCSMAP" class="w3-container w3-white w3-padding-16" id="module_other_types">
<div class="w3-white" id="record_type">
<p>DCS map as returned by <code>env.mission.theatre</code>.</p>
<div class="fields w3-container w3-theme-l2">
<h2>Field(s)</h2>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).Afghanistan" ><strong>DCSMAP.Afghanistan</strong></a>
<p>Afghanistan map</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).Caucasus" ><strong>DCSMAP.Caucasus</strong></a>
<p>Caucasus map.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).Falklands" ><strong>DCSMAP.Falklands</strong></a>
<p>South Atlantic map.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).GermanyCW" ><strong>DCSMAP.GermanyCW</strong></a>
<p>Germany Cold War map</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).Iraq" ><strong>DCSMAP.Iraq</strong></a>
<p>Iraq map</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).Kola" ><strong>DCSMAP.Kola</strong></a>
<p>Kola map.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).MarianaIslands" ><strong>DCSMAP.MarianaIslands</strong></a>
<p>Mariana Islands map.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).NTTR" ><strong>DCSMAP.NTTR</strong></a>
<p>Nevada Test and Training Range map.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).Normandy" ><strong>DCSMAP.Normandy</strong></a>
<p>Normandy map.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).PersianGulf" ><strong>DCSMAP.PersianGulf</strong></a>
<p>Persian Gulf map.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).Sinai" ><strong>DCSMAP.Sinai</strong></a>
<p>Sinai map.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).Syria" ><strong>DCSMAP.Syria</strong></a>
<p>Syria map.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#string
<a id="#(DCSMAP).TheChannel" ><strong>DCSMAP.TheChannel</strong></a>
<p>The Channel map.</p>
</div>
</div>
<div class="functions w3-container w3-theme-l2">
<h2>Function(s)</h2>
</div>
</div>
</div>
<div onclick="myFunction('#Types##FLARECOLOR')" class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(FLARECOLOR)">Type <strong>FLARECOLOR</strong></a></h2></div>
<div id= "#Types##FLARECOLOR" class="w3-container w3-white w3-padding-16" id="module_other_types">
<div class="w3-white" id="record_type">
<p>Flare colur enum <code>trigger.flareColor</code>.</p>
<div class="fields w3-container w3-theme-l2">
<h2>Field(s)</h2>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(FLARECOLOR).Green" ><strong>FLARECOLOR.Green</strong></a>
<p>(0)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(FLARECOLOR).Red" ><strong>FLARECOLOR.Red</strong></a>
<p>Red flare (1)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(FLARECOLOR).White" ><strong>FLARECOLOR.White</strong></a>
<p>White flare (2)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(FLARECOLOR).Yellow" ><strong>FLARECOLOR.Yellow</strong></a>
<p>Yellow flare (3)</p>
</div>
</div>
<div class="functions w3-container w3-theme-l2">
<h2>Function(s)</h2>
</div>
</div>
</div>
<div onclick="myFunction('#Types##SMOKECOLOR')" class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(SMOKECOLOR)">Type <strong>SMOKECOLOR</strong></a></h2></div>
<div id= "#Types##SMOKECOLOR" class="w3-container w3-white w3-padding-16" id="module_other_types">
<div class="w3-white" id="record_type">
<p>Smoke color enum <code>trigger.smokeColor</code>.</p>
<div class="fields w3-container w3-theme-l2">
<h2>Field(s)</h2>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(SMOKECOLOR).Blue" ><strong>SMOKECOLOR.Blue</strong></a>
<p>Blue smoke (4)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(SMOKECOLOR).Green" ><strong>SMOKECOLOR.Green</strong></a>
<p>Green smoke (0)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(SMOKECOLOR).Orange" ><strong>SMOKECOLOR.Orange</strong></a>
<p>Orange smoke (3)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(SMOKECOLOR).Red" ><strong>SMOKECOLOR.Red</strong></a>
<p>Red smoke (1)</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(SMOKECOLOR).White" ><strong>SMOKECOLOR.White</strong></a>
<p>White smoke (2)</p>
</div>
</div>
<div class="functions w3-container w3-theme-l2">
<h2>Function(s)</h2>
</div>
</div>
</div>
<div onclick="myFunction('#Types##UTILS')" class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(UTILS)">Type <strong>UTILS</strong></a></h2></div>
<div id= "#Types##UTILS" class="w3-container w3-white w3-padding-16" id="module_other_types">
<div class="w3-white" id="record_type">
<p>Utilities static class.</p>
<div class="fields w3-container w3-theme-l2">
<h2>Field(s)</h2>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<a href="##(UTILS.Weather)">#UTILS.Weather</a>
<a id="#(UTILS).Weather" ><strong>UTILS.Weather</strong></a>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#number
<a id="#(UTILS)._MarkID" ><strong>UTILS._MarkID</strong></a>
<p>Marker index counter. Running number when marker is added.</p>
</div>
</div>
<div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
#table
<a id="#(UTILS).lcg" ><strong>UTILS.lcg</strong></a>
</div>
</div>
<div class="functions w3-container w3-theme-l2">
<h2>Function(s)</h2>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).AngleBetween" ><strong>UTILS.AngleBetween(angle, min, max)</strong></a></h2>
</div>
<p>Checks if a given angle (heading) is between 2 other angles.</p>
<p>Min and max have to be given in clockwise order For example:
- UTILS.AngleBetween(350, 270, 15) would return True
- UTILS.AngleBetween(22, 95, 20) would return False</p>
<div id= "#Functions##AngleBetween" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>angle</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Min value to remap from</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>min</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Max value to remap from</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>max</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Max value to remap from</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).BasicSerialize" ><strong>UTILS.BasicSerialize(s)</strong></a></h2>
</div>
<p>Basic serialize (porting in Slmod's "safestring" basic serialize).</p>
<div id= "#Functions##BasicSerialize" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>s</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Table to serialize.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).BearingToCardinal" ><strong>UTILS.BearingToCardinal(Heading)</strong></a></h2>
</div>
<p>Heading Degrees (0-360) to Cardinal</p>
<div id= "#Functions##BearingToCardinal" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Heading</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The heading</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Cardinal, e.g. "NORTH"</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).BeaufortScale" ><strong>UTILS.BeaufortScale(speed)</strong></a></h2>
</div>
<p>Beaufort scale: returns Beaufort number and wind description as a function of wind speed in m/s.</p>
<div id= "#Functions##BeaufortScale" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>speed</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Wind speed in m/s.</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Beaufort number.</p>
</div>
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Beauford wind description.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).CelsiusToFahrenheit" ><strong>UTILS.CelsiusToFahrenheit(Celcius)</strong></a></h2>
</div>
<p>Convert temperature from Celsius to Fahrenheit.</p>
<div id= "#Functions##CelsiusToFahrenheit" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Celcius</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Temperature in degrees Celsius.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Temperature in degrees Fahrenheit.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).CheckFileExists" ><strong>UTILS.CheckFileExists(Path, Filename)</strong></a></h2>
</div>
<p>Function to check if a file exists.</p>
<div id= "#Functions##CheckFileExists" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>outcome True if reading is possible, else false.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).CheckMemory" ><strong>UTILS.CheckMemory(output)</strong></a></h2>
</div>
<p>Checks the current memory usage collectgarbage("count").</p>
<p>Info is printed to the DCS log file. Time stamp is the current mission runtime.</p>
<div id= "#Functions##CheckMemory" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>output</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If true, print to DCS log file.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Memory usage in kByte.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Clamp" ><strong>UTILS.Clamp(value, min, max)</strong></a></h2>
</div>
<p>Easy to read one liner to clamp a value</p>
<div id= "#Functions##Clamp" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>value</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Input value</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>min</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Minimal value that should be respected</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>max</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Maximal value that should be respected</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Clamped value</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ClampAngle" ><strong>UTILS.ClampAngle(value)</strong></a></h2>
</div>
<p>Clamp an angle so that it's always between 0 and 360 while still being correct</p>
<div id= "#Functions##ClampAngle" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>value</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Input value</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Clamped value</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ClockHeadingString" ><strong>UTILS.ClockHeadingString(refHdg, tgtHdg)</strong></a></h2>
</div>
<p>Get the clock position from a relative heading</p>
<div id= "#Functions##ClockHeadingString" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>refHdg</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The heading of the reference object (such as a Wrapper.UNIT) in 0-360</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>tgtHdg</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The absolute heading from the reference object to the target object/point in 0-360</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>text Text in clock heading such as "4 O'CLOCK"</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code>Display the range and clock distance of a BTR in relation to REAPER 1-1's heading:
myUnit = UNIT:FindByName( "REAPER 1-1" )
myTarget = GROUP:FindByName( "BTR-1" )
coordUnit = myUnit:GetCoordinate()
coordTarget = myTarget:GetCoordinate()
hdgUnit = myUnit:GetHeading()
hdgTarget = coordUnit:HeadingTo( coordTarget )
distTarget = coordUnit:Get3DDistance( coordTarget )
clockString = UTILS.ClockHeadingString( hdgUnit, hdgTarget )
-- Will show this message to REAPER 1-1 in-game: Contact BTR at 3 o'clock for 1134m!
MESSAGE:New("Contact BTR at " .. clockString .. " for " .. distTarget .. "m!):ToUnit( myUnit )</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ClockToSeconds" ><strong>UTILS.ClockToSeconds(clock)</strong></a></h2>
</div>
<p>Convert clock time from hours, minutes and seconds to seconds.</p>
<div id= "#Functions##ClockToSeconds" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>clock</strong></strong>
</p>
</div>
<div class="w3-half">
<p>String of clock time. E.g., "06:12:35" or "5:1:30+1". Format is (H)H:(M)M:((S)S)(+D) H=Hours, M=Minutes, S=Seconds, D=Days.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Seconds. Corresponds to what you cet from timer.getAbsTime() function.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).CombineTimeStrings" ><strong>UTILS.CombineTimeStrings(time_string_01, time_string_02)</strong></a></h2>
</div>
<p>Combines two time strings to give you a new time.</p>
<p>For example "15:16:32" and "02:06:24" would return "17:22:56"</p>
<div id= "#Functions##CombineTimeStrings" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>time_string_01</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "07:15:22"</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>time_string_02</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "08:11:27"</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Result of the two time string combined</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).DecimalToOctal" ><strong>UTILS.DecimalToOctal(Number)</strong></a></h2>
</div>
<p>Convert a decimal to octal</p>
<div id= "#Functions##DecimalToOctal" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Number</strong></strong>
</p>
</div>
<div class="w3-half">
<p>the number to convert</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Octal</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).DeepCopy" ><strong>UTILS.DeepCopy(object)</strong></a></h2>
</div>
<p>Deep copy a table.</p>
<p>See http://lua-users.org/wiki/CopyTable</p>
<div id= "#Functions##DeepCopy" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>object</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The input table.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Copy of the input table.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).DestroyScenery" ><strong>UTILS.DestroyScenery(name, level)</strong></a></h2>
</div>
<p>Remove scenery objects from a zone, zone must ME created</p>
<div id= "#Functions##DestroyScenery" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>name</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the ME created zone</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>level</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Level of removal</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).DisplayMissionTime" ><strong>UTILS.DisplayMissionTime(duration)</strong></a></h2>
</div>
<p>Display clock and mission time on screen as a message to all.</p>
<div id= "#Functions##DisplayMissionTime" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>duration</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Duration in seconds how long the time is displayed. Default is 5 seconds.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).DoString" ><strong>UTILS.DoString(s)</strong></a></h2>
</div>
<p>Executes the given string.</p>
<p>borrowed from Slmod</p>
<div id= "#Functions##DoString" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>s</strong></strong>
</p>
</div>
<div class="w3-half">
<p>string containing LUA code.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p><code>true</code> if successfully executed, <code>false</code> otherwise.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).EnsureTable" ><strong>UTILS.EnsureTable(Object, ReturnNil)</strong></a></h2>
</div>
<p>Ensure the passed object is a table.</p>
<div id= "#Functions##EnsureTable" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>Object</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The object that should be a table.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>ReturnNil</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If <code>true</code>, return <code>#nil</code> if <code>Object</code> is nil. Otherwise an empty table <code>{}</code> is returned.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>The object that now certainly <em>is</em> a table.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).FeetToMeters" ><strong>UTILS.FeetToMeters(feet)</strong></a></h2>
</div>
<div id= "#Functions##FeetToMeters" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>feet</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).FileExists" ><strong>UTILS.FileExists(file)</strong></a></h2>
</div>
<p>Checks if a file exists or not.</p>
<p>This requires <strong>io</strong> to be desanitized.</p>
<div id= "#Functions##FileExists" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>file</strong></strong>
</p>
</div>
<div class="w3-half">
<p>File that should be checked.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>True if the file exists, false if the file does not exist or nil if the io module is not available and the check could not be performed.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).FindNearestPointOnCircle" ><strong>UTILS.FindNearestPointOnCircle(Vec1, Radius, Vec2)</strong></a></h2>
</div>
<p>Find the point on the radius of a circle closest to a point outside of the radius.</p>
<div id= "#Functions##FindNearestPointOnCircle" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>Vec1</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Simple Vec2 marking the middle of the circle.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Radius</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The radius of the circle.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>Vec2</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Simple Vec2 marking the point outside of the circle.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec2)">DCS#Vec2</a>:</p>
</div>
<div class="w3-half">
<p>Vec2 point on the radius.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GMTToLocalTimeDifference" ><strong>UTILS.GMTToLocalTimeDifference()</strong></a></h2>
</div>
<p>Get the time difference between GMT and local time.</p>
<div id= "#Functions##GMTToLocalTimeDifference" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Local time difference in hours compared to GMT. E.g. Dubai is GMT+4 ==> +4 is returned.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Gdump" ><strong>UTILS.Gdump(fname)</strong></a></h2>
</div>
<p>Dumps the global table _G.</p>
<p>This dumps the global table <em>G to a file in the DCS\Logs directory.
This function requires you to disable script sanitization in $DCS</em>ROOT\Scripts\MissionScripting.lua to access lfs and io libraries.</p>
<div id= "#Functions##Gdump" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>fname</strong></strong>
</p>
</div>
<div class="w3-half">
<p>File name.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GenerateFMFrequencies" ><strong>UTILS.GenerateFMFrequencies()</strong></a></h2>
</div>
<p>Function to generate valid FM frequencies in mHz for radio beacons (FM).</p>
<div id= "#Functions##GenerateFMFrequencies" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Table of frequencies.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GenerateLaserCodes" ><strong>UTILS.GenerateLaserCodes()</strong></a></h2>
</div>
<p>Function to generate valid laser codes for JTAC.</p>
<div id= "#Functions##GenerateLaserCodes" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Laser Codes.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GenerateUHFrequencies" ><strong>UTILS.GenerateUHFrequencies(Start, End)</strong></a></h2>
</div>
<p>Function to generate valid UHF Frequencies in mHz (AM).</p>
<p>Can be between 220 and 399 mHz. 243 is auto-excluded.</p>
<div id= "#Functions##GenerateUHFrequencies" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>Start</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Avoid frequencies between Start and End in mHz, e.g. 244</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>End</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Avoid frequencies between Start and End in mHz, e.g. 320</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>UHF Frequencies</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GenerateVHFrequencies" ><strong>UTILS.GenerateVHFrequencies()</strong></a></h2>
</div>
<p>Function to generate valid VHF frequencies in kHz for radio beacons (FM).</p>
<div id= "#Functions##GenerateVHFrequencies" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>VHFrequencies</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetCallsignName" ><strong>UTILS.GetCallsignName(Callsign)</strong></a></h2>
</div>
<p>Get the callsign name from its enumerator value</p>
<div id= "#Functions##GetCallsignName" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Callsign</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The enumerator callsign.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>The callsign name or "Ghostrider".</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetCharacters" ><strong>UTILS.GetCharacters(str)</strong></a></h2>
</div>
<p>Get a table of all characters in a string.</p>
<div id= "#Functions##GetCharacters" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>str</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Sting.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Individual characters.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetClearZonePositions" ><strong>UTILS.GetClearZonePositions(Zone, (, (, PosRadius, NumPositions)</strong></a></h2>
</div>
<p>Search for clear ground spawn zones within this zone.</p>
<p>A powerful and efficient function using Disposition to find clear areas for spawning ground units avoiding trees, water and map scenery.</p>
<div id= "#Functions##GetClearZonePositions" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a>
<strong><strong>Zone</strong></strong>
</p>
</div>
<div class="w3-half">
<p>to search.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>(</strong></strong>
</p>
</div>
<div class="w3-half">
<p>ptional) PosRadius Required clear radius around each position. (Default is math.min(Radius/10, 200))</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>(</strong></strong>
</p>
</div>
<div class="w3-half">
<p>ptional) NumPositions Number of positions to find. (Default 50)</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>PosRadius</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>NumPositions</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>A table of DCS#Vec2 positions that are clear of map objects within the given PosRadius. nil if no clear positions are found.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetCoalitionEnemy" ><strong>UTILS.GetCoalitionEnemy(Coalition, Neutral)</strong></a></h2>
</div>
<p>Get the enemy coalition for a given coalition.</p>
<div id= "#Functions##GetCoalitionEnemy" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Coalition</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The coalition ID.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Neutral</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Include neutral as enemy.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Enemy coalition table.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetCoalitionName" ><strong>UTILS.GetCoalitionName(Coalition)</strong></a></h2>
</div>
<p>Get the coalition name from its numerical ID, e.g.</p>
<p>coalition.side.RED.</p>
<div id= "#Functions##GetCoalitionName" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Coalition</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The coalition ID.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>The coalition name, i.e. "Neutral", "Red" or "Blue" (or "Unknown").</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetCountPerTypeName" ><strong>UTILS.GetCountPerTypeName(Group)</strong></a></h2>
</div>
<p>Function to obtain a table of typenames from the group given with the number of units of the same type in the group.</p>
<div id= "#Functions##GetCountPerTypeName" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a>
<strong><strong>Group</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The group to list</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Table of typnames and typename counts, e.g. <code>{["KAMAZ Truck"]=3,["ATZ-5"]=1}</code></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetDCSMap" ><strong>UTILS.GetDCSMap()</strong></a></h2>
</div>
<p>Returns the DCS map/theatre as optained by <code>env.mission.theatre</code>.</p>
<div id= "#Functions##GetDCSMap" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>DCS map name.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetDCSMissionDate" ><strong>UTILS.GetDCSMissionDate()</strong></a></h2>
</div>
<p>Returns the mission date.</p>
<p>This is the date the mission <strong>started</strong>.</p>
<div id= "#Functions##GetDCSMissionDate" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Mission date in yyyy/mm/dd format.</p>
</div>
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>The year anno domini.</p>
</div>
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>The month.</p>
</div>
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>The day.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetDHMS" ><strong>UTILS.GetDHMS(timeInSec)</strong></a></h2>
</div>
<p>Convert time in seconds to a DHMS table <code>{d = days, h = hours, m = minutes, s = seconds}</code></p>
<div id= "#Functions##GetDHMS" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>timeInSec</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time in Seconds</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Table with DHMS data</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetDayOfYear" ><strong>UTILS.GetDayOfYear(Year, Month, Day)</strong></a></h2>
</div>
<p>Get the day of the year.</p>
<p>Counting starts on 1st of January.</p>
<div id= "#Functions##GetDayOfYear" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Year</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The year.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Month</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The month.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Day</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The day.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>The day of the year.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetDirectionRadians" ><strong>UTILS.GetDirectionRadians(vec, point)</strong></a></h2>
</div>
<p>Returns heading-error corrected direction in radians.</p>
<p>True-north corrected direction from point along vector vec.</p>
<div id= "#Functions##GetDirectionRadians" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>vec</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vec3 Starting point</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>point</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vec2 Direction</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
</div>
<div class="w3-half">
<p>direction corrected direction from point.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetEnvZone" ><strong>UTILS.GetEnvZone(name)</strong></a></h2>
</div>
<p>Find a ME created zone by its name</p>
<div id= "#Functions##GetEnvZone" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>name</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetMagneticDeclination" ><strong>UTILS.GetMagneticDeclination(map)</strong></a></h2>
</div>
<p>Returns the magnetic declination of the map.</p>
<p>Returned values for the current maps are:</p>
<ul>
<li>Caucasus +6 (East), year ~ 2011</li>
<li>NTTR +12 (East), year ~ 2011</li>
<li>Normandy -10 (West), year ~ 1944</li>
<li>Persian Gulf +2 (East), year ~ 2011</li>
<li>The Cannel Map -10 (West)</li>
<li>Syria +5 (East)</li>
<li>Mariana Islands +2 (East)</li>
<li>Falklands +12 (East) - note there's a LOT of deviation across the map, as we're closer to the South Pole</li>
<li>Sinai +4.8 (East)</li>
<li>Kola +15 (East) - note there is a lot of deviation across the map (-1° to +24°), as we are close to the North pole</li>
<li>Afghanistan +3 (East) - actually +3.6 (NW) to +2.3 (SE)</li>
<li>Iraq +4.4 (East)</li>
<li>Germany Cold War +0.1 (East) - near Fulda</li>
</ul>
<div id= "#Functions##GetMagneticDeclination" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>map</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Map for which the declination is returned. Default is from <code>env.mission.theatre</code>.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Declination in degrees.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetMarkID" ><strong>UTILS.GetMarkID()</strong></a></h2>
</div>
<p> get a new mark ID for markings</p>
<div id= "#Functions##GetMarkID" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetMissionDay" ><strong>UTILS.GetMissionDay(Time)</strong></a></h2>
</div>
<p>Returns the day of the mission.</p>
<div id= "#Functions##GetMissionDay" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Time</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Abs. time in seconds. Default now, i.e. the value return from timer.getAbsTime().</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Day of the mission. Mission starts on day 0.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetMissionDayOfYear" ><strong>UTILS.GetMissionDayOfYear(Time)</strong></a></h2>
</div>
<p>Returns the current day of the year of the mission.</p>
<div id= "#Functions##GetMissionDayOfYear" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Time</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Abs. time in seconds. Default now, i.e. the value return from timer.getAbsTime().</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Current day of year of the mission. For example, January 1st returns 0, January 2nd returns 1 etc.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetModulationName" ><strong>UTILS.GetModulationName(Modulation)</strong></a></h2>
</div>
<p>Get the modulation name from its numerical value.</p>
<div id= "#Functions##GetModulationName" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Modulation</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The modulation enumerator number. Can be either 0 or 1.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>The modulation name, i.e. "AM"=0 or "FM"=1. Anything else will return "Unknown".</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetNorthCorrection" ><strong>UTILS.GetNorthCorrection(gPoint)</strong></a></h2>
</div>
<p>Get the correction needed for true north in radians</p>
<div id= "#Functions##GetNorthCorrection" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>gPoint</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The map point vec2 or vec3</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
</div>
<div class="w3-half">
<p>number correction</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetOSTime" ><strong>UTILS.GetOSTime()</strong></a></h2>
</div>
<p>Get OS time.</p>
<p>Needs os to be desanitized!</p>
<div id= "#Functions##GetOSTime" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Os time in seconds.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetRandomClearZoneCoordinate" ><strong>UTILS.GetRandomClearZoneCoordinate(Zone, PosRadius, NumPositions)</strong></a></h2>
</div>
<p>Search for a random clear ground spawn coordinate within this zone.</p>
<p>A powerful and efficient function using Disposition to find clear areas for spawning ground units avoiding trees, water and map scenery.</p>
<div id= "#Functions##GetRandomClearZoneCoordinate" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a>
<strong><strong>Zone</strong></strong>
</p>
</div>
<div class="w3-half">
<p>to search.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>PosRadius</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Required clear radius around each position. (Default is math.min(Radius/10, 200))</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>NumPositions</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Number of positions to find. (Default 50)</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>:</p>
</div>
<div class="w3-half">
<p>A random coordinate for a clear zone. nil if no clear positions are found.</p>
</div>
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Assigned radius for the found zones. nil if no clear positions are found.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetRandomTableElement" ><strong>UTILS.GetRandomTableElement(t, replace)</strong></a></h2>
</div>
<p> Get a random element of a table.</p>
<div id= "#Functions##GetRandomTableElement" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>t</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Table.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>replace</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If <code>true</code>, the drawn element is replaced, i.e. not deleted.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Table element.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetReportingName" ><strong>UTILS.GetReportingName(Typename)</strong></a></h2>
</div>
<p>Get the NATO reporting name of a unit type name</p>
<div id= "#Functions##GetReportingName" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Typename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The type name.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>The Reporting name or "Bogey".</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetSimpleZones" ><strong>UTILS.GetSimpleZones(Vec3, SearchRadius, PosRadius, NumPositions)</strong></a></h2>
</div>
<p>Search for clear zones in a given area.</p>
<p>A powerful and efficient function using Disposition to find clear areas for spawning ground units avoiding trees, water and map scenery.</p>
<div id= "#Functions##GetSimpleZones" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(#)">DCS##</a>
<strong><strong>Vec3</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Center position vector for the search area.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>SearchRadius</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Radius of the search area.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>PosRadius</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Required clear radius around each position.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>NumPositions</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Number of positions to find.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>A table of DCS#Vec2 positions that are clear of map objects within the given PosRadius.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetSunRiseAndSet" ><strong>UTILS.GetSunRiseAndSet(DayOfYear, Latitude, Longitude, Rising, Tlocal)</strong></a></h2>
</div>
<p>Get sunrise or sun set of a specific day of the year at a specific location.</p>
<div id= "#Functions##GetSunRiseAndSet" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>DayOfYear</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The day of the year.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Latitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Latitude.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Longitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Longitude.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Rising</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If true, calc sun rise, or sun set otherwise.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Tlocal</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Local time offset in hours. E.g. +4 for a location which has GMT+4.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Sun rise/set in seconds of the day.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetSunrise" ><strong>UTILS.GetSunrise(Day, Month, Year, Latitude, Longitude, Rising, Tlocal)</strong></a></h2>
</div>
<p>Get sun rise of a specific day of the year at a specific location.</p>
<div id= "#Functions##GetSunrise" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Day</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Day of the year.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Month</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Month of the year.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Year</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Year.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Latitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Latitude.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Longitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Longitude.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Rising</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If true, calc sun rise, or sun set otherwise.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Tlocal</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Local time offset in hours. E.g. +4 for a location which has GMT+4. Default 0.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Sun rise in seconds of the day.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetSunset" ><strong>UTILS.GetSunset(Day, Month, Year, Latitude, Longitude, Rising, Tlocal)</strong></a></h2>
</div>
<p>Get sun set of a specific day of the year at a specific location.</p>
<div id= "#Functions##GetSunset" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Day</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Day of the year.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Month</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Month of the year.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Year</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Year.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Latitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Latitude.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Longitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Longitude.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Rising</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If true, calc sun rise, or sun set otherwise.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Tlocal</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Local time offset in hours. E.g. +4 for a location which has GMT+4. Default 0.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Sun rise in seconds of the day.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).GetZoneProperties" ><strong>UTILS.GetZoneProperties(zone_name)</strong></a></h2>
</div>
<p>Get the properties names and values of properties set up on a Zone in the Mission Editor.</p>
<ul>
<li>This doesn't work for any zones created in MOOSE</li>
</ul>
<div id= "#Functions##GetZoneProperties" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>zone_name</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Name of the zone as set up in the Mission Editor</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>with all the properties on a zone</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).HdgDiff" ><strong>UTILS.HdgDiff(h1, h2)</strong></a></h2>
</div>
<p>Calculate the difference between two "heading", i.e.</p>
<p>angles in [0,360) deg.</p>
<div id= "#Functions##HdgDiff" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>h1</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Heading one.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>h2</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Heading two.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Heading difference in degrees.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).HdgTo" ><strong>UTILS.HdgTo(a, b)</strong></a></h2>
</div>
<p>Returns the heading from one vec3 to another vec3.</p>
<div id= "#Functions##HdgTo" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>From vec3.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>To vec3.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Heading in degrees.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).HexToRGBA" ><strong>UTILS.HexToRGBA(hex_string)</strong></a></h2>
</div>
<p>HexToRGBA</p>
<div id= "#Functions##HexToRGBA" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>hex_string</strong></strong>
</p>
</div>
<div class="w3-half">
<p>table</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>R, G, B, A</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).IasToTas" ><strong>UTILS.IasToTas(ias, altitude, oatcorr)</strong></a></h2>
</div>
<p>Convert indicated airspeed (IAS) to true airspeed (TAS) for a given altitude above main sea level.</p>
<p>The conversion is based on the approximation that TAS is ~2% higher than IAS with every 1000 ft altitude above sea level.</p>
<div id= "#Functions##IasToTas" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>ias</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Indicated air speed in any unit (m/s, km/h, knots, ...)</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>altitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Altitude above main sea level in meters.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>oatcorr</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Outside air temperature correction factor. Default 0.017.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>True airspeed in the same unit the IAS has been given.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).IsAnyInTable" ><strong>UTILS.IsAnyInTable(Table, Objects, Key)</strong></a></h2>
</div>
<p>Check if any object of multiple given objects is contained in a table.</p>
<div id= "#Functions##IsAnyInTable" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>Table</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The table.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>Objects</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The objects to check.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Key</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Key to check.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>Returns <code>true</code> if object is in table.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).IsInRadius" ><strong>UTILS.IsInRadius(InVec2, Vec2, Radius)</strong></a></h2>
</div>
<p> Test if a Vec2 is in a radius of another Vec2</p>
<div id= "#Functions##IsInRadius" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>InVec2</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>Vec2</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>Radius</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).IsInSphere" ><strong>UTILS.IsInSphere(InVec3, Vec3, Radius)</strong></a></h2>
</div>
<p> Test if a Vec3 is in the sphere of another Vec3</p>
<div id= "#Functions##IsInSphere" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>InVec3</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>Vec3</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>Radius</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).IsInTable" ><strong>UTILS.IsInTable(Table, Object, Key)</strong></a></h2>
</div>
<p>Check if an object is contained in a table.</p>
<div id= "#Functions##IsInTable" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>Table</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The table.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>Object</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The object to check.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Key</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Key to check. By default, the object itself is checked.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>Returns <code>true</code> if object is in table.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).IsInstanceOf" ><strong>UTILS.IsInstanceOf(object, className)</strong></a></h2>
</div>
<p>Function to infer instance of an object</p>
<h3>Examples:</h3>
<ul>
<li><p>UTILS.IsInstanceOf( 'some text', 'string' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( some_function, 'function' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( 10, 'number' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( false, 'boolean' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( nil, 'nil' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', ZONE ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', 'ZONE' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', 'zone' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', 'BASE' ) will return true</p></li>
<li><p>UTILS.IsInstanceOf( ZONE:New( 'some zone', 'GROUP' ) will return false</p></li>
</ul>
<div id= "#Functions##IsInstanceOf" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>object</strong></strong>
</p>
</div>
<div class="w3-half">
<p>is the object to be evaluated</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>className</strong></strong>
</p>
</div>
<div class="w3-half">
<p>is the name of the class to evaluate (can be either a string or a Moose class)</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).IsLoadingDoorOpen" ><strong>UTILS.IsLoadingDoorOpen(unit_name)</strong></a></h2>
</div>
<p> (Helicopter) Check if one loading door is open.</p>
<div id= "#Functions##IsLoadingDoorOpen" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>unit_name</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Unit name to be checked</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>Outcome - true if a (loading door) is open, false if not, nil if none exists.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).IsPointInPolygon" ><strong>UTILS.IsPointInPolygon(point, poly, maxalt, outcome)</strong></a></h2>
</div>
<p>Raycasting a point in polygon.</p>
<p>Code from http://softsurfer.com/Archive/algorithm_0103/algorithm_0103.htm</p>
<div id= "#Functions##IsPointInPolygon" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>point</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vec2 or Vec3 to test</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>poly</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Polygon Table of Vec2/3 point forming the Polygon</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>maxalt</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Altitude limit (optional)</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>outcome</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).KiloMetersToFeet" ><strong>UTILS.KiloMetersToFeet(kilometers)</strong></a></h2>
</div>
<div id= "#Functions##KiloMetersToFeet" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>kilometers</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).KiloMetersToNM" ><strong>UTILS.KiloMetersToNM(kilometers)</strong></a></h2>
</div>
<div id= "#Functions##KiloMetersToNM" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>kilometers</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).KiloMetersToSM" ><strong>UTILS.KiloMetersToSM(kilometers)</strong></a></h2>
</div>
<div id= "#Functions##KiloMetersToSM" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>kilometers</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).KmphToKnots" ><strong>UTILS.KmphToKnots(knots)</strong></a></h2>
</div>
<div id= "#Functions##KmphToKnots" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>knots</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).KmphToMps" ><strong>UTILS.KmphToMps(kmph)</strong></a></h2>
</div>
<div id= "#Functions##KmphToMps" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>kmph</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).KnotsToAltKIAS" ><strong>UTILS.KnotsToAltKIAS(knots, altitude)</strong></a></h2>
</div>
<p>Convert knots to altitude corrected KIAS, e.g.</p>
<p>for tankers.</p>
<div id= "#Functions##KnotsToAltKIAS" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>knots</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Speed in knots.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>altitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Altitude in feet</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Corrected KIAS</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).KnotsToKmph" ><strong>UTILS.KnotsToKmph(knots)</strong></a></h2>
</div>
<div id= "#Functions##KnotsToKmph" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>knots</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).KnotsToMps" ><strong>UTILS.KnotsToMps(knots)</strong></a></h2>
</div>
<p>Convert knots to meters per second.</p>
<div id= "#Functions##KnotsToMps" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>knots</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Speed in knots.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Speed in m/s.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).LCGRandom" ><strong>UTILS.LCGRandom()</strong></a></h2>
</div>
<p>Return a pseudo-random number using the LCG algorithm.</p>
<div id= "#Functions##LCGRandom" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Random number between 0 and 1.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).LCGRandomSeed" ><strong>UTILS.LCGRandomSeed(seed)</strong></a></h2>
</div>
<p>Seed the LCG random number generator.</p>
<div id= "#Functions##LCGRandomSeed" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>seed</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Seed value. Default is a random number using math.random()</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).LoadFromFile" ><strong>UTILS.LoadFromFile(Path, Filename)</strong></a></h2>
</div>
<p>Function to load an object from a file.</p>
<div id= "#Functions##LoadFromFile" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>outcome True if reading is possible and successful, else false.</p>
</div>
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>data The data read from the filesystem (table of lines of text). Each line is one single #string!</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).LoadSetOfGroups" ><strong>UTILS.LoadSetOfGroups(Path, Filename, Spawn, Structured, Cinematic, Effect, Density)</strong></a></h2>
</div>
<p>Load back a SET of groups from file.</p>
<div id= "#Functions##LoadSetOfGroups" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Spawn</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If set to false, do not re-spawn the groups loaded in location and reduce to size.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Structured</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional, needs Spawn=true)If true, and the data has been saved as structure before, remove the correct unit types as per the saved list.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Cinematic</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional, needs Structured=true) If true, place a fire/smoke effect on the dead static position.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Effect</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional for Cinematic) What effect to use. Defaults to a random effect. Smoke presets are: 1=small smoke and fire, 2=medium smoke and fire, 3=large smoke and fire, 4=huge smoke and fire, 5=small smoke, 6=medium smoke, 7=large smoke, 8=huge smoke.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Density</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional for Cinematic) What smoke density to use, can be 0 to 1. Defaults to 0.5.</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a>:</p>
</div>
<div class="w3-half">
<p>Set of GROUP objects.
Returns nil when file cannot be read. Returns a table of data entries if Spawn is false: <code>{ groupname=groupname, size=size, coordinate=coordinate, template=template }</code></p>
</div>
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>When using Cinematic: table of names of smoke and fire objects, so they can be extinguished with <code>COORDINATE.StopBigSmokeAndFire( name )</code></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).LoadSetOfOpsGroups" ><strong>UTILS.LoadSetOfOpsGroups(Path, Filename)</strong></a></h2>
</div>
<p>Load back a #OPSGROUP (ARMYGROUP) data from file for use with <a href="Ops.Brigade.html##(BRIGADE).LoadBackAssetInPosition">Ops.Brigade#BRIGADE.LoadBackAssetInPosition</a>()</p>
<div id= "#Functions##LoadSetOfOpsGroups" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Returns a table of data entries: <code>{ groupname=groupname, size=size, coordinate=coordinate, template=template, structure=structure, legion=legion, alttemplate=alttemplate }</code>
Returns nil when the file cannot be read.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).LoadSetOfStatics" ><strong>UTILS.LoadSetOfStatics(Path, Filename)</strong></a></h2>
</div>
<p>Load back a SET of statics from file.</p>
<div id= "#Functions##LoadSetOfStatics" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="Core.Set.html##(SET_STATIC)">Core.Set#SET_STATIC</a>:</p>
</div>
<div class="w3-half">
<p>Set SET_STATIC containing the static objects.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).LoadStationaryListOfGroups" ><strong>UTILS.LoadStationaryListOfGroups(Path, Filename, Reduce, Structured, Cinematic, Effect, Density)</strong></a></h2>
</div>
<p>Load back a stationary list of groups from file.</p>
<div id= "#Functions##LoadStationaryListOfGroups" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Reduce</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If false, existing loaded groups will not be reduced to fit the saved number.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Structured</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional, needs Reduce = true) If true, and the data has been saved as structure before, remove the correct unit types as per the saved list.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Cinematic</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional, needs Structured = true) If true, place a fire/smoke effect on the dead static position.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Effect</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional for Cinematic) What effect to use. Defaults to a random effect. Smoke presets are: 1=small smoke and fire, 2=medium smoke and fire, 3=large smoke and fire, 4=huge smoke and fire, 5=small smoke, 6=medium smoke, 7=large smoke, 8=huge smoke.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Density</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional for Cinematic) What smoke density to use, can be 0 to 1. Defaults to 0.5.</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Table of data objects (tables) containing groupname, coordinate and group object. Returns nil when file cannot be read.</p>
</div>
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>When using Cinematic: table of names of smoke and fire objects, so they can be extinguished with <code>COORDINATE.StopBigSmokeAndFire( name )</code></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).LoadStationaryListOfStatics" ><strong>UTILS.LoadStationaryListOfStatics(Path, Filename, Reduce, Dead, Cinematic, Effect, Density)</strong></a></h2>
</div>
<p>Load back a stationary list of statics from file.</p>
<div id= "#Functions##LoadStationaryListOfStatics" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Reduce</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If false, do not destroy the units with size=0.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Dead</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional, needs Reduce = true) If Dead is true, re-spawn the dead object as dead and do not just delete it.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Cinematic</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional, needs Dead = true) If true, place a fire/smoke effect on the dead static position.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Effect</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional for Cinematic) What effect to use. Defaults to a random effect. Smoke presets are: 1=small smoke and fire, 2=medium smoke and fire, 3=large smoke and fire, 4=huge smoke and fire, 5=small smoke, 6=medium smoke, 7=large smoke, 8=huge smoke.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Density</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional for Cinematic) What smoke density to use, can be 0 to 1. Defaults to 0.5.</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Table of data objects (tables) containing staticname, size (0=dead else 1), coordinate and the static object. Dead objects will have coordinate points <code>{x=0,y=0,z=0}</code></p>
</div>
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>When using Cinematic: table of names of smoke and fire objects, so they can be extinguished with <code>COORDINATE.StopBigSmokeAndFire( name )</code>
Returns nil when file cannot be read.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).MGRSStringToSRSFriendly" ><strong>UTILS.MGRSStringToSRSFriendly(Text, Slow)</strong></a></h2>
</div>
<p>Get a NATO abbreviated MGRS text for SRS use, optionally with prosody slow tag</p>
<div id= "#Functions##MGRSStringToSRSFriendly" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Text</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The input string, e.g. "MGRS 4Q FJ 12345 67890"</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Slow</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Optional - add slow tags</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Output for (Slow) spelling in SRS TTS e.g. "MGRS;<prosody rate="slow">4;Quebec;Foxtrot;Juliett;1;2;3;4;5;6;7;8;niner;zero;</prosody>"</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).MetersToFeet" ><strong>UTILS.MetersToFeet(meters)</strong></a></h2>
</div>
<div id= "#Functions##MetersToFeet" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>meters</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).MetersToNM" ><strong>UTILS.MetersToNM(meters)</strong></a></h2>
</div>
<div id= "#Functions##MetersToNM" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>meters</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).MetersToSM" ><strong>UTILS.MetersToSM(meters)</strong></a></h2>
</div>
<div id= "#Functions##MetersToSM" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>meters</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).MiphToMps" ><strong>UTILS.MiphToMps(miph)</strong></a></h2>
</div>
<div id= "#Functions##MiphToMps" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>miph</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).MpsToKmph" ><strong>UTILS.MpsToKmph(mps)</strong></a></h2>
</div>
<div id= "#Functions##MpsToKmph" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>mps</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).MpsToKnots" ><strong>UTILS.MpsToKnots(mps)</strong></a></h2>
</div>
<p>Convert meters per second to knots.</p>
<div id= "#Functions##MpsToKnots" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>mps</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Speed in m/s.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Speed in knots.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).MpsToMiph" ><strong>UTILS.MpsToMiph(mps)</strong></a></h2>
</div>
<p>Convert meters per second to miles per hour.</p>
<div id= "#Functions##MpsToMiph" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>mps</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Speed in m/s.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Speed in miles per hour.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).NMToKiloMeters" ><strong>UTILS.NMToKiloMeters(NM)</strong></a></h2>
</div>
<div id= "#Functions##NMToKiloMeters" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>NM</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).NMToMeters" ><strong>UTILS.NMToMeters(NM)</strong></a></h2>
</div>
<div id= "#Functions##NMToMeters" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>NM</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).OctalToDecimal" ><strong>UTILS.OctalToDecimal(Number)</strong></a></h2>
</div>
<p>Convert an octal to decimal</p>
<div id= "#Functions##OctalToDecimal" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Number</strong></strong>
</p>
</div>
<div class="w3-half">
<p>the number to convert</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Decimal</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).OneLineSerialize" ><strong>UTILS.OneLineSerialize(tbl)</strong></a></h2>
</div>
<p>Serialize a given table.</p>
<div id= "#Functions##OneLineSerialize" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>tbl</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Input table.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Table as a string.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).PercentageChance" ><strong>UTILS.PercentageChance(chance)</strong></a></h2>
</div>
<p>Easy to read one line to roll the dice on something.</p>
<p>1% is very unlikely to happen, 99% is very likely to happen</p>
<div id= "#Functions##PercentageChance" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>chance</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(optional) Percentage chance you want something to happen. Defaults to a random number if not given</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>True if the dice roll was within the given percentage chance of happening</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).PlotRacetrack" ><strong>UTILS.PlotRacetrack(Coordinate, Altitude, Speed, Heading, Leg, Coalition, Color, Alpha, LineType, ReadOnly)</strong></a></h2>
</div>
<p>Helper function to plot a racetrack on the F10 Map - curtesy of Buur.</p>
<div id= "#Functions##PlotRacetrack" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>
<strong><strong>Coordinate</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Altitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Altitude in feet</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Speed</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Speed in knots</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Heading</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Heading in degrees</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Leg</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Leg in NM</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Coalition</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Coalition side, e.g. coaltion.side.RED or coaltion.side.BLUE</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>Color</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Color of the line in RGB, e.g. {1,0,0} for red</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Alpha</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Transparency factor, between 0.1 and 1</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>LineType</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Line type to be used, line type: 0=No line, 1=Solid, 2=Dashed, 3=Dotted, 4=Dot dash, 5=Long dash, 6=Two dash. Default 1=Solid.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>ReadOnly</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).PrintTableToLog" ><strong>UTILS.PrintTableToLog(table, indent, noprint)</strong></a></h2>
</div>
<p>Print a table to log in a nice format</p>
<div id= "#Functions##PrintTableToLog" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>table</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The table to print</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>indent</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Number of indents</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>noprint</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Don't log but return text</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>text Text created on the fly of the log output</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).RandomGaussian" ><strong>UTILS.RandomGaussian(x0, sigma, xmin, xmax, imax)</strong></a></h2>
</div>
<p>Generate a Gaussian pseudo-random number.</p>
<div id= "#Functions##RandomGaussian" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>x0</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Expectation value of distribution.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>sigma</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Standard deviation. Default 10.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>xmin</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Lower cut-off value.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>xmax</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Upper cut-off value.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>imax</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Max number of tries to get a value between xmin and xmax (if specified). Default 100.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Gaussian random number.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).RandomPointInTriangle" ><strong>UTILS.RandomPointInTriangle(pt1, pt2, pt3)</strong></a></h2>
</div>
<p>Given a triangle made out of 3 vector 2s, return a vec2 that is a random number in this triangle</p>
<div id= "#Functions##RandomPointInTriangle" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>pt1</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Min value to remap from</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>pt2</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Max value to remap from</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>pt3</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Max value to remap from</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec2)">DCS#Vec2</a>:</p>
</div>
<div class="w3-half">
<p>Random point in triangle</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Randomize" ><strong>UTILS.Randomize(value, fac, lower, upper)</strong></a></h2>
</div>
<p>Randomize a value by a certain amount.</p>
<div id= "#Functions##Randomize" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>value</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The value which should be randomized</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>fac</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Randomization factor.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>lower</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Lower limit of the returned value.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>upper</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Upper limit of the returned value.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Randomized value.</p>
</div>
</div>
<h2><strong>Usages:</strong></h2>
<ul>
<li><pre class="example"><code>UTILS.Randomize(100, 0.1) returns a value between 90 and 110, i.e. a plus/minus ten percent variation.</code></pre></li>
<li><pre class="example"><code>UTILS.Randomize(100, 0.5, nil, 120) returns a value between 50 and 120, i.e. a plus/minus fivty percent variation with upper bound 120.</code></pre></li>
</ul>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ReadCSV" ><strong>UTILS.ReadCSV(filename)</strong></a></h2>
</div>
<p>Read csv file and convert it to a lua table.</p>
<p>The csv must have a header specifing the names of the columns. The column names are used as table keys.</p>
<div id= "#Functions##ReadCSV" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>File name including full path on local disk.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>The table filled with data from the csv file.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ReadJSON" ><strong>UTILS.ReadJSON(file_path)</strong></a></h2>
</div>
<p>Easy to read one liner to read a JSON file.</p>
<ul>
<li>json.lua exists in the DCS install Scripts folder</li>
</ul>
<div id= "#Functions##ReadJSON" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>file_path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>File path</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).RemapValue" ><strong>UTILS.RemapValue(value, old_min, old_max, new_min, new_max)</strong></a></h2>
</div>
<p>Remap an input to a new value in a given range.</p>
<p>For example:
- UTILS.RemapValue(20, 10, 30, 0, 200) would return 100
- 20 is 50% between 10 and 30
- 50% between 0 and 200 is 100</p>
<div id= "#Functions##RemapValue" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>value</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Input value</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>old_min</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Min value to remap from</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>old_max</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Max value to remap from</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>new_min</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Min value to remap to</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>new_max</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Max value to remap to</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Remapped value</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).RemoveMark" ><strong>UTILS.RemoveMark(MarkID, Delay)</strong></a></h2>
</div>
<p>Remove an object (marker, circle, arrow, text, quad, ...) on the F10 map.</p>
<div id= "#Functions##RemoveMark" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>MarkID</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Unique ID of the object.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Delay</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Delay in seconds before the mark is removed.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).RemoveObjects" ><strong>UTILS.RemoveObjects(name, type)</strong></a></h2>
</div>
<p>Remove objects from a zone, zone must ME created</p>
<div id= "#Functions##RemoveObjects" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>name</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the ME created zone</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>type</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Type of objects to remove can be 0:all, 1: trees, 2:objects</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ReplaceIllegalCharacters" ><strong>UTILS.ReplaceIllegalCharacters(Text, ReplaceBy)</strong></a></h2>
</div>
<p>Replace illegal characters [&lt;>|/?*:\] in a string.</p>
<div id= "#Functions##ReplaceIllegalCharacters" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Text</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Input text.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>ReplaceBy</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Replace illegal characters by this character or string. Default underscore "_".</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>The input text with illegal chars replaced.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Rotate2D" ><strong>UTILS.Rotate2D(a, angle)</strong></a></h2>
</div>
<p>Rotate 3D vector in the 2D (x,z) plane.</p>
<p>y-component (usually altitude) unchanged.</p>
<div id= "#Functions##Rotate2D" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>angle</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Rotation angle in degrees.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec3)">DCS#Vec3</a>:</p>
</div>
<div class="w3-half">
<p>Vector rotated in the (x,z) plane.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).RotatePointAroundPivot" ><strong>UTILS.RotatePointAroundPivot(point, pivot, angle)</strong></a></h2>
</div>
<p>Rotates a point around another point with a given angle.</p>
<p>Useful if you're loading in groups or
- statics but you want to rotate them all as a collection. You can get the center point of everything
- and then rotate all the positions of every object around this center point.</p>
<div id= "#Functions##RotatePointAroundPivot" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>point</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Point that you want to rotate</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>pivot</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Pivot point of the rotation</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>angle</strong></strong>
</p>
</div>
<div class="w3-half">
<p>How many degrees the point should be rotated</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec2)">DCS#Vec2</a>:</p>
</div>
<div class="w3-half">
<p>Rotated point</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Round" ><strong>UTILS.Round(num, idp)</strong></a></h2>
</div>
<p>From http://lua-users.org/wiki/SimpleRound
use negative idp for rounding ahead of decimal place, positive for rounding after decimal place</p>
<div id= "#Functions##Round" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>num</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>idp</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SaveSetOfGroups" ><strong>UTILS.SaveSetOfGroups(Set, Path, Filename, Structured)</strong></a></h2>
</div>
<p>Function to save the state of a set of Wrapper.Group#GROUP objects.</p>
<div id= "#Functions##SaveSetOfGroups" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a>
<strong><strong>Set</strong></strong>
</p>
</div>
<div class="w3-half">
<p>of objects to save</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Structured</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Append the data with a list of typenames in the group plus their count.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>outcome True if saving is successful, else false.</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code>We will go through the set and find the corresponding group and save the current group size and current position.
The idea is to respawn the groups **spawned during an earlier run of the mission** at the given location and reduce
the number of units in the group when reloading the data again to restart the saved mission. Note that *dead* groups
cannot be covered with this.
**Note** Do NOT use dashes or hashes in group template names (-,#)!
The data will be a simple comma separated list of groupname and size, with one header line.
The current task/waypoint/etc cannot be restored.</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SaveSetOfOpsGroups" ><strong>UTILS.SaveSetOfOpsGroups(Set, Path, Filename, Structured)</strong></a></h2>
</div>
<p>Function to save the position of a set of #OPSGROUP (ARMYGROUP) objects.</p>
<div id= "#Functions##SaveSetOfOpsGroups" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Core.Set.html##(SET_OPSGROUP)">Core.Set#SET_OPSGROUP</a>
<strong><strong>Set</strong></strong>
</p>
</div>
<div class="w3-half">
<p>of ops objects to save</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Structured</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Append the data with a list of typenames in the group plus their count.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>outcome True if saving is successful, else false.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SaveSetOfStatics" ><strong>UTILS.SaveSetOfStatics(Set, Path, Filename)</strong></a></h2>
</div>
<p>Function to save the state of a set of Wrapper.Static#STATIC objects.</p>
<div id= "#Functions##SaveSetOfStatics" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a>
<strong><strong>Set</strong></strong>
</p>
</div>
<div class="w3-half">
<p>of objects to save</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>outcome True if saving is successful, else false.</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code>We will go through the set and find the corresponding static and save the current name and postion when alive.
The data will be a simple comma separated list of name and state etc, with one header line.</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SaveStationaryListOfGroups" ><strong>UTILS.SaveStationaryListOfGroups(List, Path, Filename, Structured)</strong></a></h2>
</div>
<p>Function to save the state of a list of groups found by name</p>
<div id= "#Functions##SaveStationaryListOfGroups" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>List</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Table of strings with groupnames</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>Structured</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Append the data with a list of typenames in the group plus their count.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>outcome True if saving is successful, else false.</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code>We will go through the list and find the corresponding group and save the current group size (0 when dead).
These groups are supposed to be put on the map in the ME and have *not* moved (e.g. stationary SAM sites).
Position is still saved for your usage.
The idea is to reduce the number of units when reloading the data again to restart the saved mission.
The data will be a simple comma separated list of groupname and size, with one header line.</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SaveStationaryListOfStatics" ><strong>UTILS.SaveStationaryListOfStatics(List, Path, Filename)</strong></a></h2>
</div>
<p>Function to save the state of a list of statics found by name</p>
<div id= "#Functions##SaveStationaryListOfStatics" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>List</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Table of strings with statics names</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>outcome True if saving is successful, else false.</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code>We will go through the list and find the corresponding static and save the current alive state as 1 (0 when dead).
Position is saved for your usage. **Note** this works on UNIT-name level.
The idea is to reduce the number of units when reloading the data again to restart the saved mission.
The data will be a simple comma separated list of name and state etc, with one header line.</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SaveToFile" ><strong>UTILS.SaveToFile(Path, Filename, Data)</strong></a></h2>
</div>
<p>Function to save an object to a file</p>
<div id= "#Functions##SaveToFile" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The path to use. Use double backslashes \\ on Windows filesystems.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Filename</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the file. Existing file will be overwritten.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Data</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The data structure to save. This will be e.g. a string of text lines with an \n at the end of each line.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>outcome True if saving is possible, else false.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ScalarMult" ><strong>UTILS.ScalarMult(vec, mult)</strong></a></h2>
</div>
<p>Vector scalar multiplication.</p>
<div id= "#Functions##ScalarMult" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>vec</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vec3 vector to multiply</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>mult</strong></strong>
</p>
</div>
<div class="w3-half">
<p>scalar multiplicator</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
</div>
<div class="w3-half">
<p>Vec3 new vector multiplied with the given scalar</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SecondsOfToday" ><strong>UTILS.SecondsOfToday()</strong></a></h2>
</div>
<p>Seconds of today.</p>
<div id= "#Functions##SecondsOfToday" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Seconds passed since last midnight.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SecondsToClock" ><strong>UTILS.SecondsToClock(seconds, short)</strong></a></h2>
</div>
<p>Convert time in seconds to hours, minutes and seconds.</p>
<div id= "#Functions##SecondsToClock" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>seconds</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time in seconds, e.g. from timer.getAbsTime() function.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>short</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) If true, use short output, i.e. (HH:)MM:SS without day.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Time in format Hours:Minutes:Seconds+Days (HH:MM:SS+D).</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SecondsToMidnight" ><strong>UTILS.SecondsToMidnight()</strong></a></h2>
</div>
<p>Cound seconds until next midnight.</p>
<div id= "#Functions##SecondsToMidnight" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Seconds to midnight.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ShellZone" ><strong>UTILS.ShellZone(name, power, Number, count)</strong></a></h2>
</div>
<p>Shell a zone, zone must ME created</p>
<div id= "#Functions##ShellZone" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>name</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The name of the ME created zone</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>power</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Equals kg of TNT, e.g. 75</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="##(count)">#count</a>
<strong><strong>Number</strong></strong>
</p>
</div>
<div class="w3-half">
<p>of shells simulated</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>count</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ShowHelperGate" ><strong>UTILS.ShowHelperGate(pos, number, heading)</strong></a></h2>
</div>
<p>Show a helper gate at a DCS#Vec3 position</p>
<div id= "#Functions##ShowHelperGate" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>pos</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The position</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>number</strong></strong>
</p>
</div>
<div class="w3-half">
<p>heading Heading in degrees, can be 0..359 degrees</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>heading</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ShuffleTable" ><strong>UTILS.ShuffleTable(t)</strong></a></h2>
</div>
<p> Shuffle a table accoring to Fisher Yeates algorithm</p>
<div id= "#Functions##ShuffleTable" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>t</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Table to be shuffled.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Shuffled table.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SpawnFARPAndFunctionalStatics" ><strong>UTILS.SpawnFARPAndFunctionalStatics(Name, Coordinate, FARPType, Coalition, Country, CallSign, Frequency, Modulation, ADF, SpawnRadius, VehicleTemplate, Liquids, Equipment, Airframes, F10Text, DynamicSpawns, HotStart)</strong></a></h2>
</div>
<p>Spawns a new FARP of a defined type and coalition and functional statics (fuel depot, ammo storage, tent, windsock) around that FARP to make it operational.</p>
<p>Adds vehicles from template if given. Fills the FARP warehouse with liquids and known materiels.
References: <a href="https://forum.dcs.world/topic/282989-farp-equipment-to-run-it">DCS Forum Topic</a></p>
<div id= "#Functions##SpawnFARPAndFunctionalStatics" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Name</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Name of this FARP installation. Must be unique. </p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>
<strong><strong>Coordinate</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Where to spawn the FARP.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>FARPType</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Type of FARP, can be one of the known types ENUMS.FARPType.FARP, ENUMS.FARPType.INVISIBLE, ENUMS.FARPType.HELIPADSINGLE, ENUMS.FARPType.PADSINGLE. Defaults to ENUMS.FARPType.FARP.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Coalition</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Coalition of this FARP, i.e. coalition.side.BLUE or coalition.side.RED, defaults to coalition.side.BLUE.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Country</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Country of this FARP, defaults to country.id.USA (blue) or country.id.RUSSIA (red).</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>CallSign</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Callsign of the FARP ATC, defaults to CALLSIGN.FARP.Berlin.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Frequency</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Frequency of the FARP ATC Radio, defaults to 127.5 (MHz).</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Modulation</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Modulation of the FARP ATC Radio, defaults to radio.modulation.AM.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>ADF</strong></strong>
</p>
</div>
<div class="w3-half">
<p>ADF Beacon (FM) Frequency in KHz, e.g. 428. If not nil, creates an VHF/FM ADF Beacon for this FARP. Requires a sound called "beacon.ogg" to be in the mission (trigger "sound to" ...)</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>SpawnRadius</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Radius of the FARP, i.e. where the FARP objects will be placed in meters, not more than 150m away. Defaults to 100.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>VehicleTemplate</strong></strong>
</p>
</div>
<div class="w3-half">
<p> template name for additional vehicles. Can be nil for no additional vehicles.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Liquids</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Tons of fuel to be added initially to the FARP. Defaults to 10 (tons). Set to 0 for no fill.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Equipment</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Number of equipment items per known item to be added initially to the FARP. Defaults to 10 (items). Set to 0 for no fill.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Airframes</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Number of helicopter airframes per known type in Ops.CSAR#CSAR.AircraftType to be added initially to the FARP. Set to 0 for no airframes.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>F10Text</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Text to display on F10 map if given. Handy to post things like the ADF beacon Frequency, Callsign and ATC Frequency.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>DynamicSpawns</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If true, allow Dynamic Spawns from this FARP.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>HotStart</strong></strong>
</p>
</div>
<div class="w3-half">
<p>If true and DynamicSpawns is true, allow hot starts for Dynamic Spawns from this FARP.</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#list&lt;Wrapper.Static#STATIC&gt;:</p>
</div>
<div class="w3-half">
<p>Table of spawned objects and vehicle object (if given).</p>
</div>
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>ADFBeaconName Name of the ADF beacon, to be able to remove/stop it later.</p>
</div>
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>MarkerID ID of the F10 Text, to be able to remove it later.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SpawnMASHStatics" ><strong>UTILS.SpawnMASHStatics(Name, Coordinate, Country, ADF, Livery, DeployHelo, MASHRadio, MASHRadioModulation, MASHCallsign, Templates)</strong></a></h2>
</div>
<p>Spawn a MASH at a given coordinate, optionally, add an ADF Beacon.</p>
<div id= "#Functions##SpawnMASHStatics" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Name</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Unique Name of the Mash.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>
<strong><strong>Coordinate</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Coordinate where to spawn the MASH. Can be given as a Core.Zone#ZONE object, in this case we take the center coordinate.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Country</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Country ID the MASH belongs to, e.g. country.id.USA or country.id.RUSSIA.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>ADF</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) ADF Frequency in kHz (Kilohertz), if given activate an ADF Beacon at the location of the MASH.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>Livery</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) The livery of the static CH-47, defaults to dark green.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#boolean
<strong><strong>DeployHelo</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) If true, deploy the helicopter static.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>MASHRadio</strong></strong>
</p>
</div>
<div class="w3-half">
<p>MASH Radio Frequency, defaults to 127.5.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>MASHRadioModulation</strong></strong>
</p>
</div>
<div class="w3-half">
<p>MASH Radio Modulation, defaults to radio.modulation.AM.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>MASHCallsign</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Defaults to CALLSIGN.FARP.Berlin.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>Templates</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) You can hand in your own template table of numbered(!) entries. Each entry consist of a relative(!) x,y position and data of a
static, shape_name is optional. Also, livery_id is optional, but is applied to the helicopter static only.</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Table of Wrapper.Static#STATIC objects that were spawned.</p>
</div>
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>ADFName Name of the ADF Beacon to remove it later.</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code> -- MASH Template example, this one is the built in one used in the function:
MASHTemplates = {
[1]={category='Infantry',type='Soldier M4',shape_name='none',heading=0,x=0.000000,y=0.000000,},
[2]={category='Infantry',type='Soldier M4',shape_name='none',heading=0,x=0.313533,y=8.778935,},
[3]={category='Infantry',type='Soldier M4',shape_name='none',heading=0,x=16.303737,y=20.379671,},
[4]={category='Helicopters',type='CH-47Fbl1',shape_name='none',heading=0,x=-20.047735,y=-63.166179,livery_id = "us army dark green",},
[5]={category='Infantry',type='Soldier M4',shape_name='none',heading=0,x=26.650339,y=20.066138,},
[6]={category='Heliports',type='FARP_SINGLE_01',shape_name='FARP_SINGLE_01',heading=0,x=-25.432292,y=9.077099,},
[7]={category='Heliports',type='FARP_SINGLE_01',shape_name='FARP_SINGLE_01',heading=0,x=-12.717421,y=-3.216114,},
[8]={category='Heliports',type='FARP_SINGLE_01',shape_name='FARP_SINGLE_01',heading=0,x=-25.439281,y=-3.216114,},
[9]={category='Heliports',type='FARP_SINGLE_01',shape_name='FARP_SINGLE_01',heading=0,x=-12.717421,y=9.155603,},
[10]={category='Fortifications',type='TACAN_beacon',shape_name='none',heading=0,x=-2.329847,y=-16.579903,},
[11]={category='Fortifications',type='FARP Fuel Depot',shape_name='GSM Rus',heading=0,x=2.222011,y=4.487030,},
[12]={category='Fortifications',type='APFC fuel',shape_name='M92_APFCfuel',heading=0,x=3.614927,y=0.367838,},
[13]={category='Fortifications',type='Camouflage03',shape_name='M92_Camouflage03',heading=0,x=21.544148,y=21.998879,},
[14]={category='Fortifications',type='Container_generator',shape_name='M92_Container_generator',heading=0,x=20.989192,y=37.314334,},
[15]={category='Fortifications',type='FireExtinguisher02',shape_name='M92_FireExtinguisher02',heading=0,x=3.988003,y=8.362333,},
[16]={category='Fortifications',type='FireExtinguisher02',shape_name='M92_FireExtinguisher02',heading=0,x=-3.953195,y=12.945844,},
[17]={category='Fortifications',type='Windsock',shape_name='H-Windsock_RW',heading=0,x=-18.944173,y=-33.042196,},
[18]={category='Fortifications',type='Tent04',shape_name='M92_Tent04',heading=0,x=21.220671,y=30.247529,},
}
</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Split" ><strong>UTILS.Split(str, sep)</strong></a></h2>
</div>
<p>Split string at separators.</p>
<p>C.f. <a href="http://stackoverflow.com/questions/1426954/split-string-in-lua">split-string-in-lua</a>.</p>
<div id= "#Functions##Split" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>str</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Sting to split.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>sep</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Separator for split.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#table:</p>
</div>
<div class="w3-half">
<p>Split text.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).SubtractTimeStrings" ><strong>UTILS.SubtractTimeStrings(time_string_01, time_string_02)</strong></a></h2>
</div>
<p>Subtracts two time string to give you a new time.</p>
<p>For example "15:16:32" and "02:06:24" would return "13:10:08"</p>
<div id= "#Functions##SubtractTimeStrings" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>time_string_01</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "07:15:22"</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>time_string_02</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "08:11:27"</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Result of the two time string subtracted</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).TACANToFrequency" ><strong>UTILS.TACANToFrequency(TACANChannel, TACANMode)</strong></a></h2>
</div>
<p>Converts a TACAN Channel/Mode couple into a frequency in Hz.</p>
<div id= "#Functions##TACANToFrequency" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>TACANChannel</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The TACAN channel, i.e. the 10 in "10X".</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>TACANMode</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The TACAN mode, i.e. the "X" in "10X".</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Frequency in Hz or #nil if parameters are invalid.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).TableLength" ><strong>UTILS.TableLength(T)</strong></a></h2>
</div>
<p>Counts the number of elements in a table.</p>
<div id= "#Functions##TableLength" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>T</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Table to count</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Number of elements in the table</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).TableShow" ><strong>UTILS.TableShow(tbl, loc, indent, tableshow_tbls)</strong></a></h2>
</div>
<p>Returns table in a easy readable string representation.</p>
<div id= "#Functions##TableShow" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>tbl</strong></strong>
</p>
</div>
<div class="w3-half">
<p>table to show</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>loc</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>indent</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>tableshow_tbls</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
</div>
<div class="w3-half">
<p>Human readable string representation of given table.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).TasToIas" ><strong>UTILS.TasToIas(tas, altitude, oatcorr)</strong></a></h2>
</div>
<p>Convert true airspeed (TAS) to indicated airspeed (IAS) for a given altitude above main sea level.</p>
<p>The conversion is based on the approximation that TAS is ~2% higher than IAS with every 1000 ft altitude above sea level.</p>
<div id= "#Functions##TasToIas" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>tas</strong></strong>
</p>
</div>
<div class="w3-half">
<p>True air speed in any unit (m/s, km/h, knots, ...)</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>altitude</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Altitude above main sea level in meters.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>oatcorr</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) Outside air temperature correction factor. Default 0.017.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Indicated airspeed in the same unit the TAS has been given.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).TimeBefore" ><strong>UTILS.TimeBefore(start_time, time_string)</strong></a></h2>
</div>
<p>Check if the current time is before time_string.</p>
<div id= "#Functions##TimeBefore" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>start_time</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "07:15:22"</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>time_string</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>False if later, True if before</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).TimeBetween" ><strong>UTILS.TimeBetween(time_string_01, time_string_02, start_time, end_time)</strong></a></h2>
</div>
<p>Checks if the current time is in between start_time and end_time</p>
<div id= "#Functions##TimeBetween" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>time_string_01</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "07:15:22"</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>time_string_02</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "08:11:27"</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>start_time</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>end_time</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>True if it is, False if it's not</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).TimeDifferenceInSeconds" ><strong>UTILS.TimeDifferenceInSeconds(start_time, end_time)</strong></a></h2>
</div>
<p>Given 2 "nice" time string, returns the difference between the two in seconds</p>
<div id= "#Functions##TimeDifferenceInSeconds" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>start_time</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "07:15:22"</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>end_time</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "08:11:27"</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Seconds between start_time and end_time</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).TimeLaterThan" ><strong>UTILS.TimeLaterThan(start_time, time_string)</strong></a></h2>
</div>
<p>Check if the current time is later than time_string.</p>
<div id= "#Functions##TimeLaterThan" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>start_time</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Time string like "07:15:22"</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>time_string</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#boolean:</p>
</div>
<div class="w3-half">
<p>True if later, False if before</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).TimeNow" ><strong>UTILS.TimeNow()</strong></a></h2>
</div>
<p>Get the current time in a "nice" format like 21:01:15</p>
<div id= "#Functions##TimeNow" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Returns string with the current time</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ToDegree" ><strong>UTILS.ToDegree(angle)</strong></a></h2>
</div>
<div id= "#Functions##ToDegree" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>angle</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ToRadian" ><strong>UTILS.ToRadian(angle)</strong></a></h2>
</div>
<div id= "#Functions##ToRadian" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>angle</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).ToStringBRAANATO" ><strong>UTILS.ToStringBRAANATO(FromGrp, ToGrp)</strong></a></h2>
</div>
<p>Create a BRAA NATO call string BRAA between two GROUP objects</p>
<div id= "#Functions##ToStringBRAANATO" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a>
<strong><strong>FromGrp</strong></strong>
</p>
</div>
<div class="w3-half">
<p>GROUP object</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a>
<strong><strong>ToGrp</strong></strong>
</p>
</div>
<div class="w3-half">
<p>GROUP object</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Formatted BRAA NATO call</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).UniqueName" ><strong>UTILS.UniqueName(base)</strong></a></h2>
</div>
<p>Makes a string semi-unique by attaching a random number between 0 and 1 million to it</p>
<div id= "#Functions##UniqueName" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>base</strong></strong>
</p>
</div>
<div class="w3-half">
<p>String you want to unique-fy</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>Unique string</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Vec2Add" ><strong>UTILS.Vec2Add(a, b)</strong></a></h2>
</div>
<p>Calculate the total vector of two 2D vectors by adding the x,y components of each other.</p>
<div id= "#Functions##Vec2Add" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec2)">DCS#Vec2</a>:</p>
</div>
<div class="w3-half">
<p>Vector c=a+b with c(i)=a(i)+b(i), i=x,y.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Vec2Dot" ><strong>UTILS.Vec2Dot(a, b)</strong></a></h2>
</div>
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Dot_product">dot product</a> of two 2D vectors.</p>
<p>The result is a number.</p>
<div id= "#Functions##Vec2Dot" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Scalar product of the two vectors a*b.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Vec2Hdg" ><strong>UTILS.Vec2Hdg(a)</strong></a></h2>
</div>
<p>Calculate "heading" of a 2D vector in the X-Y plane.</p>
<div id= "#Functions##Vec2Hdg" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Heading in degrees in [0,360).</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Vec2Norm" ><strong>UTILS.Vec2Norm(a)</strong></a></h2>
</div>
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Euclidean_distance">euclidean norm</a> (length) of a 2D vector.</p>
<div id= "#Functions##Vec2Norm" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Norm of the vector.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Vec2Rotate2D" ><strong>UTILS.Vec2Rotate2D(a, angle)</strong></a></h2>
</div>
<p>Rotate 2D vector in the 2D (x,z) plane.</p>
<div id= "#Functions##Vec2Rotate2D" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>angle</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Rotation angle in degrees.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec2)">DCS#Vec2</a>:</p>
</div>
<div class="w3-half">
<p>Vector rotated in the (x,y) plane.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Vec2Substract" ><strong>UTILS.Vec2Substract(a, b)</strong></a></h2>
</div>
<p>Calculate the difference between two 2D vectors by substracting the x,y components from each other.</p>
<div id= "#Functions##Vec2Substract" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec2)">DCS#Vec2</a>:</p>
</div>
<div class="w3-half">
<p>Vector c=a-b with c(i)=a(i)-b(i), i=x,y.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Vec2Subtract" ><strong>UTILS.Vec2Subtract(a, b)</strong></a></h2>
</div>
<p>Substract is not a word, don't want to rename the original function because it's been around since forever</p>
<div id= "#Functions##Vec2Subtract" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Vec2Translate" ><strong>UTILS.Vec2Translate(a, distance, angle)</strong></a></h2>
</div>
<p>Translate 2D vector in the 2D (x,z) plane.</p>
<div id= "#Functions##Vec2Translate" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>distance</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The distance to translate.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>angle</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Rotation angle in degrees.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec2)">DCS#Vec2</a>:</p>
</div>
<div class="w3-half">
<p>Translated vector.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).Vec2toVec3" ><strong>UTILS.Vec2toVec3(vec, y)</strong></a></h2>
</div>
<p>Converts a Vec2 to a Vec3.</p>
<div id= "#Functions##Vec2toVec3" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>vec</strong></strong>
</p>
</div>
<div class="w3-half">
<p>the 2D vector</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>y</strong></strong>
</p>
</div>
<div class="w3-half">
<p>optional new y axis (altitude) value. If omitted it's 0.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecAdd" ><strong>UTILS.VecAdd(a, b)</strong></a></h2>
</div>
<p>Calculate the total vector of two 3D vectors by adding the x,y,z components of each other.</p>
<div id= "#Functions##VecAdd" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec3)">DCS#Vec3</a>:</p>
</div>
<div class="w3-half">
<p>Vector c=a+b with c(i)=a(i)+b(i), i=x,y,z.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecAngle" ><strong>UTILS.VecAngle(a, b)</strong></a></h2>
</div>
<p>Calculate the angle between two 3D vectors.</p>
<div id= "#Functions##VecAngle" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Angle alpha between and b in degrees. alpha=acos(a<em>b)/(|a||b|), (</em> denotes the dot product).</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecCross" ><strong>UTILS.VecCross(a, b)</strong></a></h2>
</div>
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Cross_product">cross product</a> of two 3D vectors.</p>
<p>The result is a 3D vector.</p>
<div id= "#Functions##VecCross" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec3)">DCS#Vec3</a>:</p>
</div>
<div class="w3-half">
<p>Vector</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecDist2D" ><strong>UTILS.VecDist2D(a, b)</strong></a></h2>
</div>
<p>Calculate the distance between two 2D vectors.</p>
<div id= "#Functions##VecDist2D" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec2)">DCS#Vec2</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 2D with x, y components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Distance between the vectors.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecDist3D" ><strong>UTILS.VecDist3D(a, b)</strong></a></h2>
</div>
<p>Calculate the distance between two 3D vectors.</p>
<div id= "#Functions##VecDist3D" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Distance between the vectors.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecDot" ><strong>UTILS.VecDot(a, b)</strong></a></h2>
</div>
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Dot_product">dot product</a> of two vectors.</p>
<p>The result is a number.</p>
<div id= "#Functions##VecDot" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Scalar product of the two vectors a*b.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecHdg" ><strong>UTILS.VecHdg(a)</strong></a></h2>
</div>
<p>Calculate "heading" of a 3D vector in the X-Z plane.</p>
<div id= "#Functions##VecHdg" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Heading in degrees in [0,360).</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecNorm" ><strong>UTILS.VecNorm(a)</strong></a></h2>
</div>
<p>Calculate the <a href="https://en.wikipedia.org/wiki/Euclidean_distance">euclidean norm</a> (length) of a 3D vector.</p>
<div id= "#Functions##VecNorm" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Norm of the vector.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecSubstract" ><strong>UTILS.VecSubstract(a, b)</strong></a></h2>
</div>
<p>Calculate the difference between two 3D vectors by substracting the x,y,z components from each other.</p>
<div id= "#Functions##VecSubstract" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec3)">DCS#Vec3</a>:</p>
</div>
<div class="w3-half">
<p>Vector c=a-b with c(i)=a(i)-b(i), i=x,y,z.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecSubtract" ><strong>UTILS.VecSubtract(a, b)</strong></a></h2>
</div>
<p>Substract is not a word, don't want to rename the original function because it's been around since forever</p>
<div id= "#Functions##VecSubtract" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>b</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).VecTranslate" ><strong>UTILS.VecTranslate(a, distance, angle)</strong></a></h2>
</div>
<p>Translate 3D vector in the 2D (x,z) plane.</p>
<p>y-component (usually altitude) unchanged.</p>
<div id= "#Functions##VecTranslate" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<a href="DCS.html##(Vec3)">DCS#Vec3</a>
<strong><strong>a</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Vector in 3D with x, y, z components.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>distance</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The distance to translate.</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>angle</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Rotation angle in degrees.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p><a href="DCS.html##(Vec3)">DCS#Vec3</a>:</p>
</div>
<div class="w3-half">
<p>Vector rotated in the (x,z) plane.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).WriteJSON" ><strong>UTILS.WriteJSON(data, file_path)</strong></a></h2>
</div>
<p>Easy to read one liner to write a JSON file.</p>
<p>Everything in @data should be serializable
- json.lua exists in the DCS install Scripts folder</p>
<div id= "#Functions##WriteJSON" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>data</strong></strong>
</p>
</div>
<div class="w3-half">
<p>table to write</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>file_path</strong></strong>
</p>
</div>
<div class="w3-half">
<p>File path</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS)._OneLineSerialize" ><strong>UTILS._OneLineSerialize(tbl)</strong></a></h2>
</div>
<p>Serialize a table to a single line string.</p>
<div id= "#Functions##_OneLineSerialize" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>tbl</strong></strong>
</p>
</div>
<div class="w3-half">
<p>table to serialize.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>string containing serialized table.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).hPa2inHg" ><strong>UTILS.hPa2inHg(hPa)</strong></a></h2>
</div>
<p>Convert pressure from hecto Pascal (hPa) to inches of mercury (inHg).</p>
<div id= "#Functions##hPa2inHg" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>hPa</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Pressure in hPa.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Pressure in inHg.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).hPa2mmHg" ><strong>UTILS.hPa2mmHg(hPa)</strong></a></h2>
</div>
<p>Convert pressure from hecto Pascal (hPa) to millimeters of mercury (mmHg).</p>
<div id= "#Functions##hPa2mmHg" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>hPa</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Pressure in hPa.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Pressure in mmHg.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).kg2lbs" ><strong>UTILS.kg2lbs(kg)</strong></a></h2>
</div>
<p>Convert kilo gramms (kg) to pounds (lbs).</p>
<div id= "#Functions##kg2lbs" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>kg</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Mass in kg.</p>
</div>
</div>
<h2><strong>Return value:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#number:</p>
</div>
<div class="w3-half">
<p>Mass in lbs.</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).kpairs" ><strong>UTILS.kpairs(t, getkey, order)</strong></a></h2>
</div>
<p>Here is a customized version of pairs, which I called kpairs because it iterates over the table in a sorted order, based on a function that will determine the keys as reference first.</p>
<div id= "#Functions##kpairs" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>t</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The table</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>getkey</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The function to determine the keys for sorting</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>order</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) The sorting function itself</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>key The index key</p>
</div>
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>value The value at the indexed key</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code> for key,value in UTILS.kpairs(mytable, getkeyfunc) do
-- your code here
end</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).rpairs" ><strong>UTILS.rpairs(t)</strong></a></h2>
</div>
<p>Here is a customized version of pairs, which I called rpairs because it iterates over the table in a random order.</p>
<div id= "#Functions##rpairs" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>t</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The table</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>key The index key</p>
</div>
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>value The value at the indexed key</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code> for key,value in UTILS.rpairs(mytable) do
-- your code here
end</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).spairs" ><strong>UTILS.spairs(t, order)</strong></a></h2>
</div>
<p>Here is a customized version of pairs, which I called spairs because it iterates over the table in a sorted order.</p>
<div id= "#Functions##spairs" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>t</strong></strong>
</p>
</div>
<div class="w3-half">
<p>The table</p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#string
<strong><strong>order</strong></strong>
</p>
</div>
<div class="w3-half">
<p>(Optional) The sorting function</p>
</div>
</div>
<h2><strong>Return values:</strong></h2>
<div class="w3-row w3-border-bottom w3-margin-left">
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>key The index key</p>
</div>
<div class="w3-half">
<p>#string:</p>
</div>
<div class="w3-half">
<p>value The value at the indexed key</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code> for key,value in UTILS.spairs(mytable) do
-- your code here
end</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).tostringLL" ><strong>UTILS.tostringLL(lat, lon, acc, DMS)</strong></a></h2>
</div>
<p>acc:
in DM: decimal point of minutes.
In DMS: decimal point of seconds.
position after the decimal of the least significant digit:
So:
42.32 - acc of 2.</p>
<div id= "#Functions##tostringLL" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>lat</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>lon</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>acc</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>DMS</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).tostringLLM2KData" ><strong>UTILS.tostringLLM2KData(lat, lon, acc)</strong></a></h2>
</div>
<p>acc:
in DM: decimal point of minutes.
In DMS: decimal point of seconds.
position after the decimal of the least significant digit:
So:
42.32 - acc of 2.</p>
<div id= "#Functions##tostringLLM2KData" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>lat</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>lon</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>acc</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS).tostringMGRS" ><strong>UTILS.tostringMGRS(MGRS, acc)</strong></a></h2>
</div>
<p> acc- the accuracy of each easting/northing. 0, 1, 2, 3, 4, or 5.</p>
<div id= "#Functions##tostringMGRS" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS</p>
</div>
<h2><strong>Parameters:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>MGRS</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
<strong><strong>acc</strong></strong>
</p>
</div>
<div class="w3-half">
<p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div onclick="myFunction('#Types##UTILS.Weather')" class="w3-container w3-theme-l2 w3-margin-top"><h2><a id="#(UTILS.Weather)">Type <strong>UTILS.Weather</strong></a></h2></div>
<div id= "#Types##UTILS.Weather" class="w3-container w3-white w3-padding-16" id="module_other_types">
<div class="w3-white" id="record_type">
<p>Utilities weather class for fog mainly.</p>
<div class="fields w3-container w3-theme-l2">
<h2>Field(s)</h2>
</div>
<div class="functions w3-container w3-theme-l2">
<h2>Function(s)</h2>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS.Weather).GetFogThickness" ><strong>UTILS.Weather.GetFogThickness()</strong></a></h2>
</div>
<p>Returns the current fog thickness in meters.</p>
<p>Returns zero if fog is not present. </p>
<div id= "#Functions##GetFogThickness" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS.Weather</p>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS.Weather).GetFogVisibilityDistanceMax" ><strong>UTILS.Weather.GetFogVisibilityDistanceMax()</strong></a></h2>
</div>
<p>Gets the maximum visibility distance of the current fog setting.</p>
<p>Returns 0 if no fog is present. </p>
<div id= "#Functions##GetFogVisibilityDistanceMax" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS.Weather</p>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS.Weather).RemoveFog" ><strong>UTILS.Weather.RemoveFog()</strong></a></h2>
</div>
<p>Removes the fog.</p>
<div id= "#Functions##RemoveFog" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS.Weather</p>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS.Weather).SetFogAnimation" ><strong>UTILS.Weather.SetFogAnimation(AnimationKeys)</strong></a></h2>
</div>
<p> Uses data from the passed table to change the fog visibility and thickness over a desired timeframe.</p>
<p>This allows for a gradual increase/decrease of fog values rather than abruptly applying the values.
Animation Key Format: {time, visibility, thickness}</p>
<div id= "#Functions##SetFogAnimation" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS.Weather</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#table
<strong><strong>AnimationKeys</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Table of AnimationKey tables</p>
</div>
</div>
<h2><strong>Usage:</strong></h2>
<pre class="example"><code>Time: in seconds 0 to infinity
Time is relative to when the function was called. Time value for each key must be larger than the previous key. If time is set to 0 then the fog will be applied to the corresponding visibility and thickness values at that key. Any time value greater than 0 will result in the current fog being inherited and changed to the first key.
Visibility: in meters 100 to 100000
Thickness: in meters 100 to 5000
The speed at which the visibility and thickness changes is based on the time between keys and the values that visibility and thickness are being set to.
When the function is passed an empty table {} or nil the fog animation will be discarded and whatever the current thickness and visibility are set to will remain.
The following will set the fog in the mission to disappear in 1 minute.
UTILS.Weather.SetFogAnimation({ {60, 0, 0} })
The following will take 1 hour to get to the first fog setting, it will maintain that fog setting for another hour, then lightly removes the fog over the 2nd and 3rd hour, the completely removes the fog after 3 hours and 3 minutes from when the function was called.
UTILS.Weather.SetFogAnimation({
{3600, 10000, 3000}, -- one hour to get to that fog setting
{7200, 10000, 3000}, -- will maintain for 2 hours
{10800, 20000, 2000}, -- at 3 hours visibility will have been increased while thickness decreases slightly
{12600, 0, 0}, -- at 3:30 after the function was called the fog will be completely removed.
})
</code></pre>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS.Weather).SetFogThickness" ><strong>UTILS.Weather.SetFogThickness(Thickness)</strong></a></h2>
</div>
<p>Sets the fog to the desired thickness in meters at sea level. </p>
<div id= "#Functions##SetFogThickness" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS.Weather</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Thickness</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Thickness in meters.
Any fog animation will be discarded.
Valid range : 100 to 5000 meters</p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS.Weather).SetFogVisibilityDistance" ><strong>UTILS.Weather.SetFogVisibilityDistance(Thickness)</strong></a></h2>
</div>
<p>Sets the maximum visibility at sea level in meters.</p>
<div id= "#Functions##SetFogVisibilityDistance" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS.Weather</p>
</div>
<h2><strong>Parameter:</strong></h2>
<div class="w3-row w3-margin-left w3-border-bottom w3-border-l2">
<div class="w3-half">
<p>
#number
<strong><strong>Thickness</strong></strong>
</p>
</div>
<div class="w3-half">
<p>Thickness in meters.
Limit: 100 to 100000 </p>
</div>
</div>
</div>
</div>
</div>
<div class="w3-card-2 w3-padding-small w3-margin-top">
<div class="w3-theme-l2">
<h2><a id="#(UTILS.Weather).StopFogAnimation" ><strong>UTILS.Weather.StopFogAnimation()</strong></a></h2>
</div>
<p>The fog animation will be discarded and whatever the current thickness and visibility are set to will remain</p>
<div id= "#Functions##StopFogAnimation" class="w3-show w3-white">
<div class="w3-container w3-white" id="functiontype">
<h2><strong>Defined in:</strong></h2>
<div class="w3-margin-left">
<p>UTILS.Weather</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function myLoadFunction() {
document.getElementById("myHeader").style.backgroundImage = "url('../Images/MOOSE.JPG')";
}
</script>
</div>
<script>
function w3_open() {
document.getElementsByClassName("w3-sidenav")[0].style.width = "95vw";
document.getElementsByClassName("w3-sidenav")[0].style.maxWidth = "1400px";
document.getElementsByClassName("w3-sidenav")[0].style.display = "block";
}
function w3_close() {
document.getElementsByClassName("w3-sidenav")[0].style.display = "none";
}
function myFunction(id) {
var x = document.getElementById(id);
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
} else {
x.className = x.className.replace(" w3-show", "");
}
}
</script>
</body>
</html>