mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
UTILS - Corrected Big Smoke and Fire presets. Issue #1313 CONTROLLABLE - Fixed callsign number in :CommandSetCallsign function. #1314 ENUMS - Added formations (old and new)
246 lines
11 KiB
Lua
246 lines
11 KiB
Lua
--- **Utilities** Enumerators.
|
|
--
|
|
-- An enumerator is a variable that holds a constant value. Enumerators are very useful because they make the code easier to read and to change in general.
|
|
--
|
|
-- For example, instead of using the same value at multiple different places in your code, you should use a variable set to that value.
|
|
-- If, for whatever reason, the value needs to be changed, you only have to change the variable once and do not have to search through you code and reset
|
|
-- every value by hand.
|
|
--
|
|
-- Another big advantage is that the LDT intellisense "knows" the enumerators. So you can use the autocompletion feature and do not have to keep all the
|
|
-- values in your head or look them up in the docs.
|
|
--
|
|
-- DCS itself provides a lot of enumerators for various things. See [Enumerators](https://wiki.hoggitworld.com/view/Category:Enumerators) on Hoggit.
|
|
--
|
|
-- Other Moose classe also have enumerators. For example, the AIRBASE class has enumerators for airbase names.
|
|
--
|
|
-- @module ENUMS
|
|
-- @image MOOSE.JPG
|
|
|
|
--- [DCS Enum world](https://wiki.hoggitworld.com/view/DCS_enum_world)
|
|
-- @type ENUMS
|
|
|
|
--- Because ENUMS are just better practice.
|
|
--
|
|
-- The ENUMS class adds some handy variables, which help you to make your code better and more general.
|
|
--
|
|
-- @field #ENUMS
|
|
ENUMS = {}
|
|
|
|
--- Rules of Engagement.
|
|
-- @type ENUMS.ROE
|
|
-- @field #number WeaponFree AI will engage any enemy group it detects. Target prioritization is based based on the threat of the target.
|
|
-- @field #number OpenFireWeaponFree AI will engage any enemy group it detects, but will prioritize targets specified in the groups tasking.
|
|
-- @field #number OpenFire AI will engage only targets specified in its taskings.
|
|
-- @field #number ReturnFire AI will only engage threats that shoot first.
|
|
-- @field #number WeaponHold AI will hold fire under all circumstances.
|
|
ENUMS.ROE = {
|
|
WeaponFree=0,
|
|
OpenFireWeaponFree=1,
|
|
OpenFire=2,
|
|
ReturnFire=3,
|
|
WeaponHold=4,
|
|
}
|
|
|
|
--- Reaction On Threat.
|
|
-- @type ENUMS.ROT
|
|
-- @field #number NoReaction No defensive actions will take place to counter threats.
|
|
-- @field #number PassiveDefense AI will use jammers and other countermeasures in an attempt to defeat the threat. AI will not attempt a maneuver to defeat a threat.
|
|
-- @field #number EvadeFire AI will react by performing defensive maneuvers against incoming threats. AI will also use passive defense.
|
|
-- @field #number BypassAndEscape AI will attempt to avoid enemy threat zones all together. This includes attempting to fly above or around threats.
|
|
-- @field #number AllowAbortMission If a threat is deemed severe enough the AI will abort its mission and return to base.
|
|
ENUMS.ROT = {
|
|
NoReaction=0,
|
|
PassiveDefense=1,
|
|
EvadeFire=2,
|
|
BypassAndEscape=3,
|
|
AllowAbortMission=4,
|
|
}
|
|
|
|
--- Weapon types. See the [Weapon Flag](https://wiki.hoggitworld.com/view/DCS_enum_weapon_flag) enumerotor on hoggit wiki.
|
|
-- @type ENUMS.WeaponFlag
|
|
ENUMS.WeaponFlag={
|
|
-- Bombs
|
|
LGB = 2,
|
|
TvGB = 4,
|
|
SNSGB = 8,
|
|
HEBomb = 16,
|
|
Penetrator = 32,
|
|
NapalmBomb = 64,
|
|
FAEBomb = 128,
|
|
ClusterBomb = 256,
|
|
Dispencer = 512,
|
|
CandleBomb = 1024,
|
|
ParachuteBomb = 2147483648,
|
|
-- Rockets
|
|
LightRocket = 2048,
|
|
MarkerRocket = 4096,
|
|
CandleRocket = 8192,
|
|
HeavyRocket = 16384,
|
|
-- Air-To-Surface Missiles
|
|
AntiRadarMissile = 32768,
|
|
AntiShipMissile = 65536,
|
|
AntiTankMissile = 131072,
|
|
FireAndForgetASM = 262144,
|
|
LaserASM = 524288,
|
|
TeleASM = 1048576,
|
|
CruiseMissile = 2097152,
|
|
AntiRadarMissile2 = 1073741824,
|
|
-- Air-To-Air Missiles
|
|
SRAM = 4194304,
|
|
MRAAM = 8388608,
|
|
LRAAM = 16777216,
|
|
IR_AAM = 33554432,
|
|
SAR_AAM = 67108864,
|
|
AR_AAM = 134217728,
|
|
--- Guns
|
|
GunPod = 268435456,
|
|
BuiltInCannon = 536870912,
|
|
---
|
|
-- Combinations
|
|
--
|
|
-- Bombs
|
|
GuidedBomb = 14, -- (LGB + TvGB + SNSGB)
|
|
AnyUnguidedBomb = 2147485680, -- (HeBomb + Penetrator + NapalmBomb + FAEBomb + ClusterBomb + Dispencer + CandleBomb + ParachuteBomb)
|
|
AnyBomb = 2147485694, -- (GuidedBomb + AnyUnguidedBomb)
|
|
--- Rockets
|
|
AnyRocket = 30720, -- LightRocket + MarkerRocket + CandleRocket + HeavyRocket
|
|
--- Air-To-Surface Missiles
|
|
GuidedASM = 1572864, -- (LaserASM + TeleASM)
|
|
TacticalASM = 1835008, -- (GuidedASM + FireAndForgetASM)
|
|
AnyASM = 4161536, -- (AntiRadarMissile + AntiShipMissile + AntiTankMissile + FireAndForgetASM + GuidedASM + CruiseMissile)
|
|
AnyASM2 = 1077903360, -- 4161536+1073741824,
|
|
--- Air-To-Air Missiles
|
|
AnyAAM = 264241152, -- IR_AAM + SAR_AAM + AR_AAM + SRAAM + MRAAM + LRAAM
|
|
AnyAutonomousMissile = 36012032, -- IR_AAM + AntiRadarMissile + AntiShipMissile + FireAndForgetASM + CruiseMissile
|
|
AnyMissile = 268402688, -- AnyASM + AnyAAM
|
|
--- Guns
|
|
Cannons = 805306368, -- GUN_POD + BuiltInCannon
|
|
---
|
|
-- Even More Genral
|
|
Auto = 3221225470, -- Any Weapon (AnyBomb + AnyRocket + AnyMissile + Cannons)
|
|
AutoDCS = 1073741822, -- Something if often see
|
|
AnyAG = 2956984318, -- Any Air-To-Ground Weapon
|
|
AnyAA = 264241152, -- Any Air-To-Air Weapon
|
|
AnyUnguided = 2952822768, -- Any Unguided Weapon
|
|
AnyGuided = 268402702, -- Any Guided Weapon
|
|
}
|
|
|
|
--- Mission tasks.
|
|
-- @type ENUMS.MissionTask
|
|
-- @field #string NOTHING No special task. Group can perform the minimal tasks: Orbit, Refuelling, Follow and Aerobatics.
|
|
-- @field #string AFAC Forward Air Controller Air. Can perform the tasks: Attack Group, Attack Unit, FAC assign group, Bombing, Attack Map Object.
|
|
-- @field #string ANTISHIPSTRIKE Naval ops. Can perform the tasks: Attack Group, Attack Unit.
|
|
-- @field #string AWACS AWACS.
|
|
-- @field #string CAP Combat Air Patrol.
|
|
-- @field #string CAS Close Air Support.
|
|
-- @field #string ESCORT Escort another group.
|
|
-- @field #string FIGHTERSWEEP Fighter sweep.
|
|
-- @field #string GROUNDATTACK Ground attack.
|
|
-- @field #string INTERCEPT Intercept.
|
|
-- @field #string PINPOINTSTRIKE Pinpoint strike.
|
|
-- @field #string RECONNAISSANCE Reconnaissance mission.
|
|
-- @field #string REFUELING Refueling mission.
|
|
-- @field #string RUNWAYATTACK Attack the runway of an airdrome.
|
|
-- @field #string SEAD Suppression of Enemy Air Defenses.
|
|
-- @field #string TRANSPORT Troop transport.
|
|
ENUMS.MissionTask={
|
|
NOTHING="Nothing",
|
|
AFAC="AFAC",
|
|
ANTISHIPSTRIKE="Antiship Strike",
|
|
AWACS="AWACS",
|
|
CAP="CAP",
|
|
CAS="CAS",
|
|
ESCORT="Escort",
|
|
FIGHTERSWEEP="Fighter Sweep",
|
|
GROUNDATTACK="Ground Attack",
|
|
INTERCEPT="Intercept",
|
|
PINPOINTSTRIKE="Pinpoint Strike",
|
|
RECONNAISSANCE="Reconnaissance",
|
|
REFUELING="Refueling",
|
|
RUNWAYATTACK="Runway Attack",
|
|
SEAD="SEAD",
|
|
TRANSPORT="Transport",
|
|
}
|
|
|
|
--- Formations (new). See the [Formations](https://wiki.hoggitworld.com/view/DCS_enum_formation) on hoggit wiki.
|
|
-- @type ENUMS.Formation
|
|
ENUMS.Formation={}
|
|
ENUMS.Formation.FixedWing={}
|
|
ENUMS.Formation.FixedWing.LineAbreast={}
|
|
ENUMS.Formation.FixedWing.LineAbreast.Close = 65537
|
|
ENUMS.Formation.FixedWing.LineAbreast.Open = 65538
|
|
ENUMS.Formation.FixedWing.LineAbreast.Group = 65539
|
|
ENUMS.Formation.FixedWing.Trail={}
|
|
ENUMS.Formation.FixedWing.Trail.Close = 131073
|
|
ENUMS.Formation.FixedWing.Trail.Open = 131074
|
|
ENUMS.Formation.FixedWing.Trail.Group = 131075
|
|
ENUMS.Formation.FixedWing.Wedge={}
|
|
ENUMS.Formation.FixedWing.Wedge.Close = 196609
|
|
ENUMS.Formation.FixedWing.Wedge.Open = 196610
|
|
ENUMS.Formation.FixedWing.Wedge.Group = 196611
|
|
ENUMS.Formation.FixedWing.EchelonRight={}
|
|
ENUMS.Formation.FixedWing.EchelonRight.Close = 262145
|
|
ENUMS.Formation.FixedWing.EchelonRight.Open = 262146
|
|
ENUMS.Formation.FixedWing.EchelonRight.Group = 262147
|
|
ENUMS.Formation.FixedWing.EchelonLeft={}
|
|
ENUMS.Formation.FixedWing.EchelonLeft.Close = 327681
|
|
ENUMS.Formation.FixedWing.EchelonLeft.Open = 327682
|
|
ENUMS.Formation.FixedWing.EchelonLeft.Group = 327683
|
|
ENUMS.Formation.FixedWing.FingerFour={}
|
|
ENUMS.Formation.FixedWing.FingerFour.Close = 393217
|
|
ENUMS.Formation.FixedWing.FingerFour.Open = 393218
|
|
ENUMS.Formation.FixedWing.FingerFour.Group = 393219
|
|
ENUMS.Formation.FixedWing.Spread={}
|
|
ENUMS.Formation.FixedWing.Spread.Close = 458753
|
|
ENUMS.Formation.FixedWing.Spread.Open = 458754
|
|
ENUMS.Formation.FixedWing.Spread.Group = 458755
|
|
ENUMS.Formation.FixedWing.BomberElement={}
|
|
ENUMS.Formation.FixedWing.BomberElement.Close = 786433
|
|
ENUMS.Formation.FixedWing.BomberElement.Open = 786434
|
|
ENUMS.Formation.FixedWing.BomberElement.Group = 786435
|
|
ENUMS.Formation.FixedWing.BomberElementHeight={}
|
|
ENUMS.Formation.FixedWing.BomberElementHeight.Close = 851968
|
|
ENUMS.Formation.FixedWing.FighterVic={}
|
|
ENUMS.Formation.FixedWing.FighterVic.Close = 917505
|
|
ENUMS.Formation.FixedWing.FighterVic.Open = 917506
|
|
ENUMS.Formation.RotaryWing={}
|
|
ENUMS.Formation.RotaryWing.Column={}
|
|
ENUMS.Formation.RotaryWing.Column.D70=720896
|
|
ENUMS.Formation.RotaryWing.Wedge={}
|
|
ENUMS.Formation.RotaryWing.Wedge.D70=8
|
|
ENUMS.Formation.RotaryWing.FrontRight={}
|
|
ENUMS.Formation.RotaryWing.FrontRight.D300=655361
|
|
ENUMS.Formation.RotaryWing.FrontRight.D600=655362
|
|
ENUMS.Formation.RotaryWing.FrontLeft={}
|
|
ENUMS.Formation.RotaryWing.FrontLeft.D300=655617
|
|
ENUMS.Formation.RotaryWing.FrontLeft.D600=655618
|
|
ENUMS.Formation.RotaryWing.EchelonRight={}
|
|
ENUMS.Formation.RotaryWing.EchelonRight.D70 =589825
|
|
ENUMS.Formation.RotaryWing.EchelonRight.D300=589826
|
|
ENUMS.Formation.RotaryWing.EchelonRight.D600=589827
|
|
ENUMS.Formation.RotaryWing.EchelonLeft={}
|
|
ENUMS.Formation.RotaryWing.EchelonLeft.D70 =590081
|
|
ENUMS.Formation.RotaryWing.EchelonLeft.D300=590082
|
|
ENUMS.Formation.RotaryWing.EchelonLeft.D600=590083
|
|
|
|
--- Formations (old). The old format is a simplified version of the new formation enums, which allow more sophisticated settings.
|
|
-- See the [Formations](https://wiki.hoggitworld.com/view/DCS_enum_formation) on hoggit wiki.
|
|
-- @type ENUMS.FormationOld
|
|
ENUMS.FormationOld={}
|
|
ENUMS.FormationOld.FixedWing={}
|
|
ENUMS.FormationOld.FixedWing.LineAbreast=1
|
|
ENUMS.FormationOld.FixedWing.Trail=2
|
|
ENUMS.FormationOld.FixedWing.Wedge=3
|
|
ENUMS.FormationOld.FixedWing.EchelonRight=4
|
|
ENUMS.FormationOld.FixedWing.EchelonLeft=5
|
|
ENUMS.FormationOld.FixedWing.FingerFour=6
|
|
ENUMS.FormationOld.FixedWing.SpreadFour=7
|
|
ENUMS.FormationOld.FixedWing.BomberElement=12
|
|
ENUMS.FormationOld.FixedWing.BomberElementHeight=13
|
|
ENUMS.FormationOld.FixedWing.FighterVic=14
|
|
ENUMS.FormationOld={}
|
|
ENUMS.FormationOld.RotaryWing={}
|
|
ENUMS.FormationOld.RotaryWing.Wedge=8
|
|
ENUMS.FormationOld.RotaryWing.Echelon=9
|
|
ENUMS.FormationOld.RotaryWing.Front=10
|
|
ENUMS.FormationOld.RotaryWing.Column=11 |