From dc214da0d6f94c015d05ebd2bc146a0b106c4145 Mon Sep 17 00:00:00 2001 From: Ciaran Fisher Date: Wed, 7 Dec 2016 22:20:41 +0000 Subject: [PATCH] Added New Cargos Added new cargos Fixed bug where units / groups would disappear Updating MIST Updated all missions --- CTLD.lua | 90 +- Cargo Spawn Test.miz | Bin 88034 -> 93539 bytes Pickup-Dropoff-Demo.miz | Bin 488749 -> 494386 bytes mist.lua | 10296 +++++++++++++++------------- test-fob.miz | Bin 488628 -> 485865 bytes test-mission - real slingload.miz | Bin 502703 -> 508356 bytes test-mission.miz | Bin 502704 -> 508355 bytes 7 files changed, 5555 insertions(+), 4831 deletions(-) diff --git a/CTLD.lua b/CTLD.lua index a98faca..b670ae7 100644 --- a/CTLD.lua +++ b/CTLD.lua @@ -474,6 +474,22 @@ ctld.jtacUnitTypes = { "SKP", "Hummer" -- there are some wierd encoding issues so if you write SKP-11 it wont match as the - sign is encoded differently... } + +ctld.nextUnitId = 1; +ctld.getNextUnitId = function() + ctld.nextUnitId = ctld.nextUnitId + 1 + + return ctld.nextUnitId +end + +ctld.nextGroupId = 1; + +ctld.getNextGroupId = function() + ctld.nextGroupId = ctld.nextGroupId + 1 + + return ctld.nextGroupId +end + -- *************************************************************** -- **************** Mission Editor Functions ********************* -- *************************************************************** @@ -1171,7 +1187,7 @@ function ctld.spawnCrateAtZone(_side, _weight,_zone) local _alt = land.getHeight(_pos2) local _point = { x = _pos2.x, y = _alt, z = _pos2.y } - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() local _name = string.format("%s #%i", _crateType.desc, _unitId) @@ -1206,7 +1222,7 @@ function ctld.spawnCrateAtPoint(_side, _weight,_point) _country = 2 end - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() local _name = string.format("%s #%i", _crateType.desc, _unitId) @@ -1278,12 +1294,12 @@ function ctld.spawnCrateStatic(_country, _unitId, _point, _name, _weight,_side) local _spawnedCrate if ctld.staticBugWorkaround and ctld.slingLoad == false then - local _groupId = mist.getNextGroupId() + local _groupId = ctld.getNextGroupId() local _groupName = "Crate Group #".._groupId local _group = { ["visible"] = false, - ["groupId"] = _groupId, + -- ["groupId"] = _groupId, ["hidden"] = false, ["units"] = {}, -- ["y"] = _positions[1].z, @@ -1309,9 +1325,9 @@ function ctld.spawnCrateStatic(_country, _unitId, _point, _name, _weight,_side) if ctld.slingLoad then _crate = { ["category"] = "Cargos", --now plurar - ["shape_name"] = "iso_container_small_cargo", --new slingloadable container - ["type"] = "iso_container_small", --new type - ["unitId"] = _unitId, + ["shape_name"] = "bw_container_cargo", --new slingloadable container + ["type"] = "container_cargo", --new type + -- ["unitId"] = _unitId, ["y"] = _point.z, ["x"] = _point.x, ["mass"] = _weight, @@ -1371,7 +1387,7 @@ function ctld.spawnCrateStatic(_country, _unitId, _point, _name, _weight,_side) _crate = { ["shape_name"] = "GeneratorF", ["type"] = "GeneratorF", - ["unitId"] = _unitId, + -- ["unitId"] = _unitId, ["y"] = _point.z, ["x"] = _point.x, ["name"] = _name, @@ -1405,7 +1421,7 @@ function ctld.spawnFOBCrateStatic(_country, _unitId, _point, _name) ["category"] = "Fortifications", ["shape_name"] = "konteiner_red1", ["type"] = "Container red 1", - ["unitId"] = _unitId, + -- ["unitId"] = _unitId, ["y"] = _point.z, ["x"] = _point.x, ["name"] = _name, @@ -1429,7 +1445,7 @@ function ctld.spawnFOB(_country, _unitId, _point, _name) local _crate = { ["category"] = "Fortifications", ["type"] = "outpost", - ["unitId"] = _unitId, + -- ["unitId"] = _unitId, ["y"] = _point.z, ["x"] = _point.x, ["name"] = _name, @@ -1442,10 +1458,10 @@ function ctld.spawnFOB(_country, _unitId, _point, _name) local _spawnedCrate = StaticObject.getByName(_crate["name"]) --local _spawnedCrate = coalition.addStaticObject(_country, _crate) - local _id = mist.getNextUnitId() + local _id = ctld.getNextUnitId() local _tower = { ["type"] = "house2arm", - ["unitId"] = _id, + -- ["unitId"] = _id, ["rate"] = 100, ["y"] = _point.z + -36.57142857, ["x"] = _point.x + 14.85714286, @@ -1515,7 +1531,7 @@ function ctld.spawnCrate(_arguments) local _point = ctld.getPointAt12Oclock(_heli, 30) - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() local _side = _heli:getCoalition() @@ -1719,7 +1735,7 @@ end function ctld.insertIntoTroopsArray(_troopType,_count,_troopArray) for _i = 1, _count do - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() table.insert(_troopArray, { type = _troopType, unitId = _unitId, name = string.format("Dropped %s #%i", _troopType, _unitId) }) end @@ -1792,13 +1808,13 @@ function ctld.generateTroopTypes(_side, _countOrTemplate, _country) end end - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() _troops[_i] = { type = _unitType, unitId = _unitId, name = string.format("Dropped %s #%i", _unitType, _unitId) } end end - local _groupId = mist.getNextGroupId() + local _groupId = ctld.getNextGroupId() local _details = { units = _troops, groupId = _groupId, groupName = string.format("Dropped Group %i", _groupId), side = _side, country = _country } return _details @@ -1892,13 +1908,13 @@ function ctld.generateVehiclesForTransport(_side, _country) for _i, _type in ipairs(_list) do - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() _vehicles[_i] = { type = _type, unitId = _unitId, name = string.format("Dropped %s #%i", _type, _unitId) } end - local _groupId = mist.getNextGroupId() + local _groupId = ctld.getNextGroupId() local _details = { units = _vehicles, groupId = _groupId, groupName = string.format("Dropped Group %i", _groupId), side = _side, country = _country } return _details @@ -1938,11 +1954,11 @@ function ctld.loadUnloadFOBCrate(_args) local _side = _heli:getCoalition() - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() local _name = string.format("FOB Crate #%i", _unitId) - local _spawnedCrate = ctld.spawnFOBCrateStatic(_heli:getCountry(), mist.getNextUnitId(), { x = _point.x + _xOffset, z = _point.z + _yOffset }, _name) + local _spawnedCrate = ctld.spawnFOBCrateStatic(_heli:getCountry(), ctld.getNextUnitId(), { x = _point.x + _xOffset, z = _point.z + _yOffset }, _name) if _side == 1 then ctld.droppedFOBCratesRED[_name] = _name @@ -2823,7 +2839,7 @@ function ctld.unpackCrates(_arguments) local _cratePoint = _crate.crateUnit:getPoint() local _crateName = _crate.crateUnit:getName() - -- ctld.spawnCrateStatic( _heli:getCoalition(),mist.getNextUnitId(),{x=100,z=100},_crateName,100) + -- ctld.spawnCrateStatic( _heli:getCoalition(),ctld.getNextUnitId(),{x=100,z=100},_crateName,100) --remove crate -- if ctld.slingLoad == false then @@ -2941,7 +2957,7 @@ function ctld.unpackFOBCrates(_crates, _heli) timer.scheduleFunction(function(_args) - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() local _name = "Deployed FOB #" .. _unitId local _fob = ctld.spawnFOB(_args[2], _unitId, _args[1], _name) @@ -3001,7 +3017,7 @@ function ctld.dropSlingCrate(_args) local _point = _heli:getPoint() - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() local _side = _heli:getCoalition() @@ -3150,20 +3166,20 @@ end function ctld.spawnRadioBeaconUnit(_point, _country, _type) - local _groupId = mist.getNextGroupId() + local _groupId = ctld.getNextGroupId() - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() local _radioGroup = { ["visible"] = false, - ["groupId"] = _groupId, + -- ["groupId"] = _groupId, ["hidden"] = false, ["units"] = { [1] = { ["y"] = _point.z, ["type"] = "2B11 mortar", ["name"] = _type .. " Radio Beacon Unit #" .. _unitId, - ["unitId"] = _unitId, + -- ["unitId"] = _unitId, ["heading"] = 0, ["playerCanDrive"] = true, ["skill"] = "Excellent", @@ -3797,7 +3813,7 @@ end function ctld.spawnCrateGroup(_heli, _positions, _types) - local _id = mist.getNextGroupId() + local _id = ctld.getNextGroupId() local _groupName = _types[1] .. " #" .. _id @@ -3805,7 +3821,7 @@ function ctld.spawnCrateGroup(_heli, _positions, _types) local _group = { ["visible"] = false, - ["groupId"] = _id, + -- ["groupId"] = _id, ["hidden"] = false, ["units"] = {}, -- ["y"] = _positions[1].z, @@ -3816,7 +3832,7 @@ function ctld.spawnCrateGroup(_heli, _positions, _types) if #_positions == 1 then - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() local _details = { type = _types[1], unitId = _unitId, name = string.format("Unpacked %s #%i", _types[1], _unitId) } _group.units[1] = ctld.createUnit(_positions[1].x + 5, _positions[1].z + 5, 120, _details) @@ -3825,7 +3841,7 @@ function ctld.spawnCrateGroup(_heli, _positions, _types) for _i, _pos in ipairs(_positions) do - local _unitId = mist.getNextUnitId() + local _unitId = ctld.getNextUnitId() local _details = { type = _types[_i], unitId = _unitId, name = string.format("Unpacked %s #%i", _types[_i], _unitId) } _group.units[_i] = ctld.createUnit(_pos.x + 5, _pos.z + 5, 120, _details) @@ -3859,7 +3875,7 @@ function ctld.spawnDroppedGroup(_point, _details, _spawnBehind, _maxSearch) local _group = { ["visible"] = false, - ["groupId"] = _details.groupId, + -- ["groupId"] = _details.groupId, ["hidden"] = false, ["units"] = {}, -- ["y"] = _positions[1].z, @@ -4056,7 +4072,7 @@ function ctld.createUnit(_x, _y, _angle, _details) ["y"] = _y, ["type"] = _details.type, ["name"] = _details.name, - ["unitId"] = _details.unitId, + -- ["unitId"] = _details.unitId, ["heading"] = _angle, ["playerCanDrive"] = true, ["skill"] = "Excellent", @@ -4574,8 +4590,10 @@ function ctld.addF10MenuOptions() if ctld.enabledFOBBuilding or ctld.enableCrates then local _crateCommands = missionCommands.addSubMenuForGroup(_groupId, "CTLD Commands", _rootPath) - if ctld.hoverPickup == false or ctld.slingLoad == true then - missionCommands.addCommandForGroup(_groupId, "Load Nearby Crate", _crateCommands, ctld.loadNearbyCrate, _unitName ) + if ctld.hoverPickup == false then + if ctld.slingLoad == false then + missionCommands.addCommandForGroup(_groupId, "Load Nearby Crate", _crateCommands, ctld.loadNearbyCrate, _unitName ) + end end missionCommands.addCommandForGroup(_groupId, "Unpack Any Crate", _crateCommands, ctld.unpackCrates, { _unitName }) @@ -5827,7 +5845,7 @@ for _coalitionName, _coalitionData in pairs(env.mission.coalition) do for _groupId, _group in pairs(_objectTypeData.group) do if _group and _group.units and type(_group.units) == 'table' then for _unitNum, _unit in pairs(_group.units) do - if _unit.type == "Cargo1" and _unit.canCargo == true then + if _unit.canCargo == true then ctld.missionEditorCargoCrates[_unit.name] = _unit.name env.info("Crate Found: " .. _unit.name) end diff --git a/Cargo Spawn Test.miz b/Cargo Spawn Test.miz index a88486503be671f50fc627ac644e065f566bcc33..8d293fa20b1bb0ad13b384a796bf69b283f99226 100644 GIT binary patch delta 93189 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%0D2P%4^B0EmWOzIK?V*MEi|9Ttw4xEY1xHDy=? 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 H-<|&poqdBn delta 87660 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 z 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 z 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⁡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

  • )+F3 zzg|P%587Aw_KK|%!1sF5pndITTw}(Eo;V~l9oyQNE`R1=aAO=as6h<+-1KAmzJI@_ z@B8;Zc*AKd6gO+Qi(|dAdK&trTU*l1%d_p$a>kc1Bwr5H_faw#JGNnSxDf0`itCw% z^7^oKO0VO}YDNSGXdGW8EbY;Cl|TDN=0HWh1h}`m+XFLEV9%z67GGw02HJpP;eZoUIKi)^3`nmgyU{D2VBrT3D-| zblsZ~i-)x&eOqxYhH6dJ138fTjrs1e^E|2C!!~YUon@w{6ux&v(@E$)V8TLo*;0#n zB)h;_tf$aLOF)sZ!jiMSZL`p&oMuB!Z!?Vlz<)Fj%|sNZtjPr?T3WnK@;pvwzs8f) ziM~6e)n8IJ9Ay+;I0~n|1P)okud2|i7Z7{_uLALl%aMsxi>%B*s+p4``h*q58P4q- zhF;2MYQJ43BdNoX0`4@*pOAcD4-V|HegZu$qfv%BPg;-#I6qN0%w|P-2)DrS{1-6(HK^V#&?8>4u}T-x-@g^AbQ=D&KnS#+p!suu@lke35GRD$K$}_Clg!< z^I!yQ5l`n7kH9M11ZFmD_lfJ8vWE4#U=~1x=y1F3%bB6vFI2c7l{4Hs0L%e%_6=xj zi~BRUqdUerksc4Ck13#IVJL;+-UIlvOLKKiG^k7vGSvO-K7+;BsFQZP-$+VzyMLs2 zbTq@%rC=-3Q0fDph&oh_BFoiuoy7TB0!H5#3Gh(tQ*<6r#+UIj zI!(&UL}7q{Nnrm0c1jEQm5k2tK=O8p(UCoXozmI_sh0fUz81`~=0&X5YWX6a(ZGTx zhC*njN1KJf8~Gi6jA2LGO_wcywW7hEpl%BB)4*g-74 zXun&r=uvt=zYVH(IMA!Y4OAU7>^YW@NOX{s%1&8AAdd?>>Zoa zD-2nseIp6Xnx02TKfn6r`GMjc(OH(M`32r0&=qSgce;Qufv9R^qeOLF(IwfL=UFx` zB91}TH$HVB!j(LpnX`U;IGEKFwP?v#-Y!^*CS(;jr?nVKhY$1NH8_i0czD|SQZ_&p zzNeu;SiW`uQl6*>H8qoK8hxny2$ zKFiQwTCpRH1x*grOo9kmsNivIONZmJ8ke5q4FAuN>jmuXxMFRd7k^9GCM3 zGIs#Er0WSsppGfINFqaW>DSRjq5;z2c%U1rej%#ks+W`<81bC@*4AmB#22lKqlWqA zzfUesCjSF)O;MSsxOQA4{{rD=w12yeaRG=3mTv)>?WA^p^saWK#aj3yj8>Nz5=y?=?J+sWBh29rBr;o~S(e!CnJnOe)Q{f0?J`9MusUiXzF=c#>Wx zz4z^D0pagOYv5u`eD)`cxGmyFDtLU^69OO^k3u)=$bSX~VAm^{DVl$eOl{s=v31IW zIsx0~jwhoZ6}}%rSzaV40r4j$IreFGVwIRr{+cJkXCLLvyE$`|I8&s>BVmkflb}im z%Gf-Otp_BCd`1JJ^3AgYlKCR-$@5>HkqxTDQGXfa*gjjH45I|NaUo`aY*Gp1Vw|+q zN6Yg_mQ1FKf2icK>H=LRBB!Czowj=$~fO zQzf29(c^qtL@$U`TI-LT*k6v9Y6Jc|4V}~X^WKoG!Yg^~qgw8}Q@gxd(ii?ss=|$XUcY+;=V+t`^;%MEyCq|p;Qsbk`Bjxw-7Nt&W6wQL zOkj0=WPN32WoBh%b`69M%R;?u+>58JiWU$%+nuV$_1a0)7|*R-sn19|KCROLVt-+; zsg3Gxb6!Qi%PZLM88ibZ;0F|B&0M2^jFrmoWr$m_US0MvYspL?LbSLS;kYgRXxkp% zY;=N~@vNVU?C9^85W&hF#Bxg!tO}~Ke5hzR#F9I-OjuG0w;il;u+Fga%Zu#u-=A}p zWhmYU(NoM}-G53w-inCcfxZI9^DHhB3M032(%ef||GIaKmX25a z@sADg{>i`PCq`()@-J35)}N(?t#V<$b?*A(GcR}jvE=^tW_A6iwVj_hlRhQ$+4<`F z+E4$v`XlGkw+jph`UCP`nM}90a2gFE^=;#ae8Dctt3Y)nm=>riO~FcIjeiw)pW{rq zQ4xXt5S1>@BoIVk$;zhsB^Rd#*N!If=(lueSe>AXyF| z85)8Z2D;hn4*LX2$$+N$`W=|yU@XNKNtR!vag&{Vqx}??*)o{9-MqfGdz4Y3Yo^57 z^{uS1KBDk00M79p;?NAeA6a5X!nNsS^oo8Mfg4Da>70x?_+a>2FP| zgC{@%(lRS$1s{)urk;MuPXfW$?rVVL3U3BQ8y;gGmL&{OTTWUhg^xtEgyRXlI9lxi zS;-YJk*plTbF`Qj(_{oe*)p6D*B1GjYy^rn`!+|qYCGUH*?(}VB>Sp}^F6BM4e#Wk z_xU}FVOLW^+O_UFAN`xulZuJ(>-)Mqq{*GgcjV)hcZ9jGb#ZcnRI;CTbM9Fhbq&)! zM8o)V+~(xY(jsGDXbbPCbMmplN-gutXJQov6az=9Gfc@nb7=p`5d15!J6~8(eNhL7 z4rnmF?R05)dVfooDvg^+aVwn;AljN$YQ~o92fA~K=|ZdJfCbRh?S^vH#4~4=C1!=1 zZF2Y>G{9#IHB%3nJz9ZXsU3I;8XC+jhU9L4JW#xW8&-MiP|asYY)&UC-}a!fxuLye zlGM+}Q*bzolocJ&T1t7D_E7EA%fKY>LzK_Jd#r+7{DZ?R&(dlGch=SF1;C7M75)0M9l@ zSf)i=wG0C_3yhE!8EgD!76c2<9-f-eb!JXC;*;aEp>H7#QiEv1QO6iZ|C*(}cWi}@ z-hmUgAAbYGJb2GDCr7L!!+pbL!YCnsJ?Q2yW5k&xz4ScokuPGtd_X&~%RJ+-Xr60N zCUN9m*!B?mTXN!Qr;%oP4<@t4Q@{|~6%H0x+$`nxtf_UY7<>nxpt}-i-c_mgw4g^w zIOtvAfAWqseF8Vk=Y|~umI!XVojBqaj;iBTIDbnCaMO{zm#aRAYybs>+x0ql^SxX# zP2QLHftw!ZL|qG$%j*G{y+Eh|G?O_?A|Mi%c$+`XvR@T=&jMnh#<5NTXjsaK{rQoh zuKBUs_k0s7wS;dCQhnUH^Cx^B5fq6_wj%Xs74@$Ac=D0$X86SLZect^QnO~IxEYU) zLVu1)ns;S@YmbUc5ES5mf!i#@ah~I4vkfR@?*e?$Jcv4^nOf^wl+^;9R6~GuXiaTs zpyX|pe3G6Ld^Ni@B{sE)q8CF8)g&A6Er=D(R|0sU>{L^1p(IjKUN~)79>49y482z9c{?bO=F<<$v39#1*{N#&YgA2eHNORTXI5)qKQ21hWy^ z1#B@AbOi_FAtT=|nM%G4F~Zx|=~`u>7UL^3)A?r`dYS`E! zN0skHDer5g$V68krX;X_vtG}XKA#OM@LtnWGDDzB=x@qaq?5Mj<>_Q<${Ku*;;A`l z&Xa$06K$s%=0Hz%+NX&=Mypm~KYz^c{expOD+Su`g$s~Q#R)yHotf{n@0%HY(j4pE zya}NHL~{)RR5+?o^qgK3hzLd+nQ!Lcf09=O-=^kI(wXR4a*>YFOIyb8=hHDTBVt+H zz}t(Rq)0EuPaBObmZU%qe#)+9$|m-+0lzJG?!1LJkX&co-c&;QTX-tPYM==IUoi|5h7Z_z)t46gik za2Or!?!9{XJo@eR{`T?i!TwRV(b^gtnJj;br|^&+CE15+5xWwDhjAHdt1;e_J;IBh z`QhAIGR2228NhgtsvGE6gKh{SaY$eWkc@ltZWQfdHN(iJ@6-N_Zhrz1q}3Tw5G#8A zVop{GX7z?fuzjCEC(E6x_4y{xL0z94_Mt&f z(&48W>tmbs{^FJAs()t-6Zi!txoo8(70&TAIpGK1FJDeG{dq9WUcPJ*2zU#Qn^Qk_ ztXcut<$u8R8z~EoGXO6AG6dut(6MhYX#}2(;I@xy8bTW3LwsQBI`EDj@Y$d%hq#5{ zZR6P#eiVs8*?wV=^#GJ=mua!ELbuV-t1T1oS=RcIWI^{i%YXd5GY0UJUOr>2OBjEt zYcRzWs5+b+LeL@UhV}WD-Oz2bc;FG|5zugXP*2t1G8h8sA{t_>JNC=@E91;?YAUn2 zNGBpMZGGOWeYn9GPSdIR1&doK^$*2cXkuc}s|6l?!M5 z`a~=tH%nVyS-FHW6vD*O84)Q_ABZolm7#oV70)0LexZ<&VhXm6{M#k5p( zV+Z`AF_PN~>?vC`A?yvCduCrcRqcmohb`nDD)>9^MSu7qhiZg_7MI8ImxWx7n4>cX z0dKTlRTw_mfKc~vpD&i;nO~H{*azBs$wDFHEQBxyCzQ_s^(d-SmQszbDW^7 ziFO~!47i6IWjX($?&Bp+mm-Rur#X5SOz8mXBDSwnCPTSqw;O$IJ@lNWq!NibKm31V zWq-+P*bCo~l)J8UB7fS;{=tE^o8Ay{2Pa5g1&QAXU8N%PQjxhW!pGFdQjw3WV3a}f z558pxG=}zAy^5q;KTrjGJkD)`G|36q%AVN5sap&tN^*$F3j2Ip?RjwCrWoc?s7NsWlDMw9~2~m^JB|(+YT^ZCj!Q zc{*@!4+pF+HtcVKC%_lhNUHY$Xxc7(xx5D`oBq?aZSny^%f{0zpEvZ>ne1LRahgsZ zPHlj?9=&+{ zE&!^)j}9AiP9_PtdVsPC$!e-$974An6+u`m)ist3!+i(O%$&gx6b35+e}8H8Q^p29 z=(UzR&c4*`K6dOnQScJ)!ADyI>#QgoiZv zq(-7q^)sAtb~ZURhyQQ_cSvzRK1;!}rn`8nS8KQbC;}ktV(s?ta0kubZry&WU zfs5Gz#o6q*9@CF+H09oD%Kcgooyi+ho|s~Gwu*0<(00%6!7j{247>k48@{6pAq*X8 zN*NrQI_GN=L-gLMAqVZqftG;>%l{qJZZ8m4EAbzeH`JF6ZyDABp9U-*4{ANl8atXV+dc38%uH;wj^+#qIyJQ#tQt9^rRP99Xi zQd~YUnvQn+MKl7m#b;<7>nQ`E(`1y4ao_2%j&R^^qcfy1MxYlDJuMF21p$(5A@Kxe z_c4_vC5;$ftAEm_Cl^^=aoRh6b7dGr#uxxl14!8AV153B`k;~uMXmqwYQLxp04Z&|qTEmP*vOya@bW@J?MOO1eL{0$;(y&*(ikWQcXwLtwkmG1XEV~p zwmG@g4ngmG?MD2c6d9!begYPZG`ak3qxO_r-HbLYGF0@b`92w>yavtgY(Nf9}_udel6zvfgu8#dae-5Y3SUEUlOm1Ki>t)4K9Q|*bhBKzb4ZNvws zdOf9Gy?>r{0Gi0xHsw7B#fCxE`+_dqI}{kUkbKpGx|)xmNOH^!o2 zJ}BN9W)bVkZie|kf>dw52vXa*8O8?>?-R5B;L^p#$XK)>0HoB<<$YvE&+FyylxF+L zUfeml2eJ7(&x%DeZWzPGb3XSr1|KdZw_%u!WPjyEL)xZ{R{L}znt`AK?hZ;l+2)K^ z+wDLm-wexMejS-ZHSHao{nH4fHRN`2k!4i3klLn?iy;Bmc%}xre%d9krCh0UPlPq* z3u}C=s6m{5eVutlo#5e_!YK>Kh6ZqRPf+MURnh15DY)S14BTW^9aQoP2W}?GZ!OL6 z34ejIPK;eGWjEYUlF4>9nYR{#AcCx&B?2#iJG;0d}*T2ZWkYXy>S zeX3hW$~QgKZAGhIz40mjfV}^2$K#zmeINA0&#Qu}{B3@wt-YY9w7Id1LI7;`qJNsr zq3L}-f13t4V3QYC&c2cSqqr#i%8;_8;b zT6SgcIW7e=Nw&tRJ)Lm2sZSS^n!3Avu6Zh|1kq2)NV#FfPW7@F*A=}5zkl@uBj}*k z%6YzJrdm?j3zh99qUBrLdGD1*N>RPV@h^Ivr!t;0%}`Dk={d4F06+yefW)^DbccTV z!wKQ~(G8;P?4NiF@^skG0Eh(~gn9LuF?h*sn zv}t2-{hQZW$M3@d!Tf%(9+f@mXBvvtmr_-`<5iViD`QF>!VL1ku3Ig?+HhH}}w98M1M)mu0Qub$_0(Lm~|U0-8Yc z16tXxiptff2h2tmSf%b@`Po&`7(Bv^RupylhT-tI$74HPXxWV-=Sod)54|!5d;>)pe zYYMWVbLc>Apos|UZQMD4jK6ac#tD|5@2lu^a%0CzZ%VVmLv)_|4D<8HFl!CX3{EOB>T9dEr^o;5Wn_)0*H>{C@#_^jm`(`fPYl5u^+c z*j3qBTeHKg1Ed6*D$^zC(3-t!ACHs#&?}{q+~~|4P3_R|qjXVhuj~CwT+*cD(Yr5U zM(jA9ez|0pLpLup%S>E(G0OpA!ct9rx_@jJ;lOQgmiLqV$&+SXXVB${;5p6Z9j8%I$TGkHo{tNB?_&4WIaqaF ziMn^K6Nw&oP1|{GgB_CLTk`Y*f3g=D*!8|EO~c6PAZC8Xagu|Rk_t@p=abb-%)Y`E zx_Ua~;Gj>Fqu;k)zC3vI_RZGu^TTG;iJJ85x&{Fjw0|TQ{`HN$+}hs(4=aZUTRTnd z+H7%2^RM4c+e;|%djHMVe-ShaU*tReTVGp?+|2>bzCw~iv*VHa?vA(9-1NT1&&9>& zPZ6B9zC=n3?(RRJ>n*p&dMGM9nO*vtYa{{C=4dQFUfFDP2IQ@QyX9;<*5cumZp++dtP5es zw|_*7=SRt`H)`pghKvq(a|1gYwH~b*KINyiwKa}{Y?W0LG_#YQ>j-~aX9WjRTlGV$t+m(z zpH%v#uIVa<+#B#(9kp3JE9{Ai+gDeBM1LZ|k1z^iRr4((8cSzb^LF9(0=}Z@BNfNs za}81?zFRTM{?)GbW7waMxB7j$uJu5O6kaYI7E{^}7SeXd|Ci*Rz*LKlppHFO)#0X; z)XrE*G_|NZ!(?aESW-%a1*|e-IaI?lE&!}I??WqTF_zg<;tW7UJj4 zQ1KhKRACFLTE0eHk^I}E3n+P&`F|x86Gf+e{E9Fk)kxy+jHvuumXGL`iJy?(7e)Nv zj)p6D#Y9$;eSL_?1XbSVl+bV*7w_7iPOV|B3?wJmB3xkitW@jy{9(Sw(}o^GqU~4{ zAT)jYpdJ}57<^r4Hp`u{U=MH6p_Td|z}<@sD|I5v{dX+*%Ba9R|C(Krnt$QZb3bb+ zH1yjF-s=j=K<{S}?KR7Nuj9)9_X~*>?+_0VBZ2kH>*>yJdueOk8-Pq#{Q}e8F;_pr zwAssE1YIn+Xi{$$RxT#qlR-KwWK>w^0Ir={x*U(l)n0@=ZW`Qb$%3&gc;N|)4IOs6 zK}mkM_Gcq}j$G?`0-nfo0e{#!lAL@%FB-cXJ^t$2U9|#azY5=A<1*k5;o1&`b!rtW zkGCvjTj3ji_!a5$MfdFlil2J!>qL)W$1;SFMuW5y6=p(If4lH4J;2|aE?u)`{@_sj zf0>Rrtd<*}%c$9{m;Q|nhEyt5wOk{WU$5`TY%;0th|8$#$RMrlhkvSR`+>#Xl*p|1 z23gumgyhn51lX{$_Cp8+0sZRb33yGwZ^MXRg4u;BXHnD(a)!$w*8#w=w$kXAO;|#N zl|q!JLCU;$2^rGU(2*fS2}_A$i{iSIFN+qBh-12=+Y0eY0mTSIYV$U4ITzv!Q~=YJ~0|d|K0jDI$?4ner@(JFxTI{Dz5E@wEE={p31t2j^NRC5Yr)cGtokmlc5<8zziJ*Dez1qREqD?L03`P0kM?rt7$%`QGhaj z*I7yM;hA2rQnvtq-=;Kr^2!hQ@D^2vi+tx<-m8)?gMHau4byJuYVg?8i*8#2RP17K~ z7(8`v2)$#wv8-eI&TOSoCE;9Yqa~q=)x2rz%25H=Du43=f_c~N#x1ccAokP;Yt=3( zc&e-E_6!GbFm&!$S=!i0t9%+4)|^y=nfB4n%LhizZ|WgBv?bX7c&@=tj$&AdNM7^$m$56AG9{RfJ7-Jdes>a2^K2+0 za46+CDeFLeojL3flD6#nC%L z2VTApK8U1e=hcEZS$D2g2tm$f>9GIiRZGBhB7aquH9~$GK1fH)^yu}*r%IR=}X=uA3UBb<-8Y7RB-XD25P{qj-Kv_($d;k+eo!<&E^}st8 zxjGJgED;mWW)my_cr!S0!cRY&8HVR9?ti^&1~IaGv)m(|;n~U^ZtKw352aEk+UP{9 z>ms+`Zkz%Hhp9d+Wz=bwGKO#W%On+e#ZpIXCcevgmw?CGg1mrYH2CPvD=+{-H^PuO zj4>@ZH+#o%@$ON`Wxhg2fK%4(0%r8Z6;a$7us%^J?5)vT+bR(~@a zCoj`+awN7$E!&a$_SzOO&=^!#^|Em=DNe8wh?o1|jD;CV3&bfQumCj4Es@HD($*VR0e@@LR5@4K z!u6QiX*P|A1O`pWr-N>MR8^?2=v#Z9y=x%&|HvI#^A&Xa%5(wt;(@Mv{r4ljhSM&Ya26$3)q$TYxS!1l-pZ%sPS47JsZw06^jZV>~fYuW%O(S>nEYk7Vfs`yYyuxHpIrdIymi zX-=MMJA+!5GN$mnCA99ddU68|9et0pOXyXsi@`|ZsaXX$3d~AzrH21Bht9s`&B$ou z=o|!3m?6aDi}d1Rm=yk9ri`Azo=Q0NQ1zp?O#zn}<}?PYqIQK+wSW2DD!euNu7!Ww z`1dXTJ;A@H__vFHAL8E#|6bwWYyA7~`1d>f`z!wa9{>J#^V*TJV!iBifHF2JMOT{5 z4zMnj+AzR|V%@onyeMX8G}>uy8mFf>#YR|Q!zn)`Xx}OpWL@$87-R%@ENv+Ymj8nb07bILVX3Y=3j$1>q?q)*#1AL;hWG zYe}E02ptk5JeWTzY9`O{>QnURZ|DX?aUmea-5N0{90mRU-s{p| z{`%xcdIe#3p?~gSMPq|IH#YdoqbId(jjGxj-MOvNU!K&pR8+N8+^!{6Q5x|N30qj3 zE&&c3ZgA)Ky`vC)v25F7E4AbGlSXnE^Ts@jISg)ZpM1d~;F_;|?EPy1tt`O-@h!yqy`sI#TQyWL(owC9S$JRYRJ|cA zr!ciX6G*J@dkoh^knjQzWBp`fxXN>UCY0Ym_J7z&smXb23WF`tRAK}hffrusO+AS;gOmXAB$_924)@X*gDy(HX1wWWV$KjU69Deoma~pMVtcs= zKY#I1UE|+yzC7XIb98&NzHV(R3chYxtD-eGAPcm|d49BSHkzgqyGqCp1Q9ZMV7#Q6{7Bq94K9V~s8PZ1@jY1aAtv(ayFx0kfnqM_@n0 z3|az+b+#MDBYesuLC||yA1;IpE{~^HQhy?c;fShl-fR%MlCwK(0`j43HUbUGFnJ%7 zFK++!zg;Z;!Q6mePb}_xxsY0$(YlLGVnI0wa{)YOzy!fU=O2_OSV8}OFN~LFNTGbl zi<+@v2vBq4FaVDyZ9BaIepVreVs|TF6qooA*sA4oG@p)1DLb0Mrtd@<9)6J`QGd8) z&f)?tP^m%L0+-}};i~!fcsw(bE2uqwOU`CF|K0;Xz3^jelBYvT!HmC~ElvLp@q24_ zF)OC%4j$0c1FSG z%N5zl6{5!~XBqXi{+D5ekaQ?Sl0IgBFyvn0CJ&*AQ;(dM}new1+ zfM0`LlpL%qT0U5!DRsiT#`h3i2eX=x7)WnwP8%e*)^KQEH0 z6>nU%K&9Z7En$wW_Jh?z;R$K$Xd}%wQ1=(VPThogE2|IEGWA?kchyZw z=)}R5(rz2Tw~|?;VoH1=#q3=lXMca|_&^OHpBVwhewze*U4@p-nEI1kQJbu-H(T3By6l13KSOhD z*~Ngwz4(H|FKlqioAhJMg&uLzZ&`1K&92~TK+;Z}zXJrJ)W@pbVaL@~g`|B!hx6ez(di2f>#q+=Hi=O-zbgri~BOXb&XlE4i>^I^L%`sCPN>$jwV2&UAheE z^~cm(nC*mu=DtYBDg$&V+KVVV@j znXb0d+*(~<+h%(e{@jvJGD#^}rT{HM(n#^TpEg#m)FYXzZnt~giNuti!lpxz;$9ZJ zYWom${ zb^aL-hkyL*aApW41zqc0gVhaKr{b_8Lr_3NQ9Nxlt|I$v=qkc>Twe#8j=wgHY}1LT zZ{*MYI=Y5B-k_Q-0ssgA001BWpc>Oc_>htgGyE-p#7>%?)nM&wYMnB*ukL(8;F`Ry;d8^GW? z98$D5$=R)Bmzu#e8bG7F(df(O=KJ^m_x~{d&u%)oj0$#v405)Y zr8ocg|4_63c%0tm?A0uPp10U>viTI-?sm62tVmgrMbrEy%?kdD!^v4PE#hn%jmL9r z_bMJIgYMjG@A~JB;|i6 z#hm4{!8MC=)<0y?43UMIfsSz~vnl<|*=@`L^8a3C>FkE(H_`1Buz*H4Sq!b@QTmH?6N&bCl3dF zE-ur{hkLu{o4Xf(M|*6PW-MZ}JkHo8n$Gy30Yd;cj*2)h*k`^feDnbK|JzNc1^=G+ zpXJZ_-_X$}J1^p^t8tw3pPn9Hq?b>w;}^4JJd87m-CF|soORoed;Ggj_hIMh!(ONR znBD`}-Ro$26%ScnM4SX(%&y+0*{6ulCg7K{Q8dnDm|(zv^>TK_lAO=Lmv~r0I0vGj zwHahE8cr2_QKsoFyNvmy=6vesyocNCcq-?>S`NgiE}W6p=pC+VkH$0LC)Hj7)h!*hJg z0Spsp&yg$GO)~g2BknfjJdJO$5&N1>Ik{xRJb9u!tHh2eF|chYO>Y6mgGNlHdEC`r)sbjIgmYEf-*jbwh%?J&*-W}I2% zMa&y;tPn2muib95(<$eu9O5)B_?CuA&SJi!3Csh9N<4+J?-KA57ycpQ&_af+HcJ7U z1wH_OB$1DC09rt$zXr)U)lD?`Br(iWYRy|t(`+JGr=%0uhDR_Sb5%rV0t5`2f6l33 z$le`ZygGezL0nz1$`-qvtHE-7_%ECj{G3xpGMRCXg@mPj#YwNgF+kJXIJvqm_(b7; zxIlu8`2X{CLM#L)`do<;_`bO26au&rfg*Xvc?+qEfB)dZVlbFxxQ698d;PPgZAlnt)6u|4Ye zdgYMH0p<7&K8&aFWNtz{=7g!i>n(;i0aC_+;R4*GTos^QOz?qSO?jV}bG0nf+2k_L zPDd96gf9tpGK@#jY|IHBUu((*&J^&ADW9HFf4>5vfLYoFk}!zrAj*p~K4*tht{K3z zX+#x~vIm?>5{>AF@6Zwdknu;c05=kVj%jvY;T8mhpSF8XkwmAkAwc!J<*RxPgMHj# zqXK74L1P<0s~Jdx@wmzIXvEbUgr(+0P(^-_W*2gVXZw2~tXbp5+1~MHuhHVaF3vvg ze>E7&Z~2KfKm6C>c=O3)t_JkSs4y1EXWrsliGEGTXu2!4)B0STjEilvrN$LD$yFiwso*N?soY+a@^*h_=+FD zJm;8k(9fQ*{^ywMPZ?k+aEzj(h%2+#e=ylQYzw*?fJT>&xuE4chbw?{uJ*|$u%m`U zsa<}WT|T^=eIjKEba32SG4L^xZ_({19sKrk;Nf#0Y$-$F!P)DV?>L9vO+ghmXcAv@ z_QtnS5>JO*3i7t7O%qQqKjB+%5a&A7a}XMQ?lj?~z~$oILzY~P`Jd@{nD9Rlf2QPU ze3w0jO*BbSlwb=-*bWa)U!V>QyvX3sq?;IGKO&*V4o@yl`5(ADK@d%8f=KknpdQ31 zIwQuZ?v`sR?3B11@8dCrwC!cBH zZX|i|2qjb_{w+uPTumS0a)zfkK8tC_-%8@;5}ZX7u6N?GNMN0bridTRIG}j?0+gdc zj86(F4FM6F1o3Sov`c<)O7fhm5Rp zFtD@|3TJ6I{P*QtG>?*ue=*{i;q1bOpjC&~9Myt))H#jfGW$eeq)tpg$%QF0wJH!X z*xj`{YPS(vXo{+Um^K!kbi_1QQ^gU>u{ZgEf82ez1uGGWQH|0|dP|cd*P{^qa)!sj z^T~m8I_TFrIM@)Rqr^bze?hGN$hH)%AR!SQ^$VgCXQK&8rD%{(4(R{94SAm}IY?~^NXE62^jsX18kcdzKWnE~R}DZA zKAdtPAZ-viwi_j+=71uogGW$|K;-3VDarX(;7m1EY;}_4aL{HifA;(QzDjLj9Hb6*w@SQn-tn|h*cq7Na2d4_m;jzF(%t!-0whV%Y{*3bCp*p<`bS4}SjQf? zdXwaF4#$?~&GH;4_SXw+^CBuZrOsi$cjP2pif5^IWEVIS!Hhv?pveNoiBzFUGMxcg zUB)9|(?C?H-QzN4fAOXSWwY%w7#<L>{%kiNlfV1+IB|+PbrW=lRD#D zDV_9_i#VDP@#eZL5~ej6djAm5nbk6WaWTouldEJzh$h#FNmj{*pco85hQ?^N>=PV8-J==UXiEzyvi<9b ztfegqOa8Ij4Iax4x-xEdP{r)+A za0DIG;Q?7aI|I&^3}Zsc-(INu^udcUXA|ZZo16P5d;aD18|cWoyTH(=aDm1jj}DIy zFFq3HU3Ks*$%G)5vjj5_t;>R4Y|e}GSME_Ox6bEO=3nE~krEz~B!L=CL?Hky;Ui0su~<^a6@bCisc ze^0^+!G_>Ran51kRt(e(Jajas97cl)OL|UA+I-F$SFn~~vfx@b{O1;y5q_k&i16!@ zFCqLFL9|4#Z@{3>kNiS!yy2h6BfbZRs7~VGL3^45$)sRaE_D)hOdJj+&jFzWQh}dx z`S}G_53D07AWTUp59u7dG!)`N-IR#pe>8^dCc^0>u?Sk;4H}L?ILI?T9t^NE{tYxH z83gFTA9(Z^8n?#oNiJe@u9^Q_u>S7F;oE&u6UB-DXQh)NDu^O}!3AV8Mu-9ciFni? zxFSjVqj*B3@mJmsyCu^fAo*{ z^-BjaDp*IQMRG2%$#$i|hl~!$8>C(1p|~6sv>z2}bOOe~IJ#mdw2+(Z^hW3$q|n3V zCZ2TY4v2%DWf`16%9R((oW+wUL8Gr&>-4gSknY43bM6W~eU3QQQr9m~_IQ0G*fYE`vXbe+)M^yKw(YRMLd!V!b!!asF_c;v<}q4Pa<5(t;)^ zXAe0$-9bM2koDjda71X1c!~jTq+&vvOd1_6wCU!PV-L?^Uc1`f+~f?n!4csMG$8DOD+%Y6So0yw7&g4xDKe@1P;~ zz9A}+GC*=DD?eHu<)v^bV6k=1h0Xu{KX_?_LJ`!x)6qyV`NkAwP(#zQ4ULUg~lu7iXogE7r;fEpcTc zI(nUq)8Yi1E1GHGe{B&zAgA3%%YM{zA8omh9=VUU-A9kzM^D^GPu)k)+()n;l5uNK zJtOFPhS2qlq3an$*E5Q)XBb`2IJ%yJbUh>Kc}LRot%YYKJe?w#Lh6ddYjk+5eb~iNcZfM}$(8znCk?T}I;v4T}ZGpWpOh%)a&KM+w z;n>K9e+-T}Tq&3q$tV$aXt=2$OI?!*u`a-`YC}cD6;kD5sYgBc(U$w@k^5-dee~FU z^u&Gi)P3~KePoF5@~LM8UC$7@o-uSigXnrj(e(_Yf9n}X*E5i=XCyuENP51t@QkGA z8A;DG5)$8cer2+>p$aEnJlMWGJAL!|oUK=zlx`DcKQHM(U22o!T{!{bLC=1$Wj}ai zKiIY(JhmS^u^&9OA3U=k7^EkkIoNg`bh{3|T?gT=gK^hEx$EHEb&&2lSob_w_uM&l zuY9+Wg7+h9TtbAThr+m_Lo@_Z!9yw38ohOf-Cr_LwPn{>voF_!P zft8~5>AyJIXBVgJ;;esi{`&Ong1y~;b+~)9e}B#b5kvhUIqOZ*VLUc`z;N2}t_o*6 znkskDOX>bEeauU*No7N&ODde};iYmXksffk`qEM+2$3(j5RmOj@|E1;F6V3#;RSjE z@4qG#!ZS`&c!+%@9}pXQ)*Q3%67&w|Q^JO64E}Z$ zf43yUUN-rG|7r?OaM*4#WVhh|Hi?SCHMqJx;Qw$2d?rAnlV`=s9iANYPcF{>NAhgg zW3LZ)e|_^hv}SlsbuqsYvz$yv7(PJQNe?l6HNlX%LmLVTNMpIpyi z{BBxWa|g@UH5qz0Z_DD`<;)=x5p3?LDqXLM76Ek$L?jMD&MW_NS}6?yBtLNNmn;P$7D8M>`wrcg ziBdR%!t+E0WWMUZ`&D?sm0x|6Q_ktW(`n({!cL)BpG^?}gmbmy3k{;3qS?P4pxZ9c z<8V|@O^P{f3~@&L8Ztk1*RLsudCsw0S>guG1QkgijhLt9(8{t{+ZEJweU%z6#^X@Ztf1DSQKEVDP`KTPC zwaGyi1xTc~txe+bX1DW9r(W@QxuOBU0noh?^qVXiZ*D!=X8p+|Wf$3O@JZ`PzO5ca zFFc4XeGpH(PyO8-v!{3~UNN4EE%{VmSBU)}Z&?xRqjkgIZJryDZm~axBWefvp$jecJ+I9v1>97&@XQW$kw5h^6-?l-7WEM#yRae&fk(A_4V zW_aj;vl$7v1_OI04{d)(k8}nDjb#L*&S4-jaXi)V4x#;M+k!^X#q5l0HV(u*t2Glg zg8ZB^_~eIJ)PvZyAimyxZ9}>l+%%X0i+tcG6m$=fMk8QWf8BO3&`Hng?l0<_lvpmoom zby==2L|95bu@H2o$av_(uACp<)S8|bZ(PcUd=nl#bZPy@y9Hp^bvZxz#Ewqbv;J1M zbKGrMn0O#Rf9;r%1KXj5etyQDop+zs18$+cyITR6zkGK7=t(`apIK--3!^=>m*Zp) zmV-A4sWi_twD+TIJZJBs47Gk6`|eS9i|xNVGieExX|T7*Tp9ehgc__mDF%9eq-%{< zEW5_4&F8Dg_D8zFGDFb~4b^yFQ`X;UrjkTEbAV#6e`1F60;7#&LXt@YnmQa4bP;C#9w^4>Eg>r&RpMzI?1Lz$*Q7KYr#-}?HzE$|-&3PZc_$Yi4cU-4L zWw$;(BNLQ0z8 ze>24uVngW@PR|rl;qeG3%5Rgaoo*{Cc6zNS+SzI))6veO7M4RgX)27QKc{-{X2 zC5e~+&=CUDnwt6`5S;JK$QgBf98ZbXkWzzxG!$#z?#T>MSBqvA3?AOvPw>% zlDMR-;0)O6gzqd0snKjxvR}$c)J|u`1!ol-4M>jH9?v4Se|C0y_MGj4%pD~_3<4Y< z1>6%fSi5bFy4z`%9b|Da%S4CqRGr?%EMOok8000!YEA)NVjCvHdJERoo(oVAe{?5$ z!wgj3?|RsmiJ+D5rW3r42V3kl#!0TM7U1VzrJ#iV zTPg&5mO`M7d587cXZVvsMKRd(+ZQfo=3L5r-PyWp19x)+gjh|bL>SZY@2N?MA=T6)>=A!YZ6d5m5YB!MdP6(P)*$}3O3&X` z8qrex?-NJtHKl6KjkJk${ih=M4Y!so#{6nIx;M#WQxt4A#-v4;Dc>vhrnt#s$n2?{ zP&PgSj}$tzrdk6ydliLAe??G4p4q8n^)7K}in0Ngk9zB`P(pk>YmRVBLF6^ z{0IQ=8vS2nTak`J<*h24CUErO99krP`)_b?0Q{uSlZwwrpn4pnkmr<80Wt+}skU)) zdZEo#lL_^^9E-}F4GudfwJgICbaPH=8`X_Cr0Zy3we`!U!zrHZ8o*)xD#FpWoA!P% z+J1zwZ~}lqoajU#e>Q-aEDWp*9V7w7N+(DI_<9bIxHQJ;kp{TLu@OFaodVD1!z|jf zf^+0HJiJIj@e|`M{m7H6DQ2fcxsZ%x60Hab3o=R~Sr>T6EOSArTnPgrYF+H2(4j0L zaJVYvMm(gYNAB%DCLSzOi6Qk6@$7=LjqsSUk73x^F48=Te@A)=1o*Kf-XhV1Ii7P3 z4Ywv6raEWCZ}7cftl--Lo~YK>&WALID!-KZLPt|$!#JAL%fH8iVx#P|>4F8ulVl=c z=H=|_iWEOBvo_@7qDJ6&gINr(L=Fs*7mc!!i7YZQe?M12!Q(Ny;(T;Aw6F%!CX|I3 zfUoEY2*smhf5e3%`$g&__CL^?WNb3+Cz%*w6Ltuy1x-h+SkndP0d2NqUZ;%`1#zfo zDPnK>z`-~W)?apvz1pUen6+2+e@w#C|N4`z7&;=x`@j@Ha@WB@6FF~Q%tj-6YOxF6 zgi~M!nNKz}2G`ON()KZj|CvwuDBWlr9Q9waM!T(jf7Na`B-y|VF9gn41PA0awOyvF zL)?-H2aFxJVs?C#yL-m!}WR6fJeKrb@mjbGstx0k;9$d> zMwvRTe}O}@%%&OfGv0JcNh6DBY~+WaA{uJBNzkf{u$<|lE3Hxl@cs#Ntw(dnIH4+l z=qgBgks&k&Ev=7b%@<8`{gi2>xKRgLmERSnQ^bUzXj9@BGGpc{@h!@z6l7yE)h}15 z?T{b7(df{Y7jiH}^q51JaExwmky^6ZRb@&a?DtW?M?BtZ4AD{jTdB`@qYIwS; zVU2G?Ml{F>_#PyuXwtepqRdXMlHyKRf@x`X-~3QRb6r``fu+IJGC+|X`xLK?0^fv% ze~-H2J4X0uiwVp{Wt5L%Um_jum;{tbLxe||D!lbbFHAG>9(&;8XVVl&;4!8UG^`?s zimrOllV6ZeSgM1(FoG6RDCzIbH;_9wEU+|qVgQy+rPi=)9gcC4IryX!wNYwPN&)1m zU3R~|U86fL7hF*AO_;?wS_8%6$-agte*^9B^zC8jDE3^~BnZH1+S=0UgMa9Jr9@7k zMXH2Iv24Njs}$yviB5cKz*a}!_1aDs2+XEpIY){x{A95q$uMN;A@8=3ilO8u(J9J} z0>T$4^hAvwD`H4J0-Q{E7ntL7Dr#y$R(VV(T*8X9)PAn4&JeFP%W6wrI(@kEf3hj9 zLTIC2T2=}n7!^2N&go<<3<<+3$>$#r=WYh1?S`R@h-27djqC>iNAm(SsYJJXybe>RBdytE4` zgvc~xSd?0H&w&Zvv`-9B=4bY`jto1N)(~;+qQE*D45yNx^iO|r?v<==>Mq{0)|wIr ze&k=b)y8kP;oo}tRRw-F&iY^Qy^#rc<-_M+H3FoV2Ws zX*COz#@Q5>&BdPyF4!uke@eGWX-27X?$qa^wdlSONnMq-HM@vjC~_U(?Wt{el9^~KkHMVJy}vfE{)*D4Zhu@qZP zk_DyNTEyJymnq*{)DgAUm2`$rf-2jmm+_+7oWfo1&8q{p$=>pRe`9_0gNFylYy|O} zoK??7#iEJKa)Ofa-Qm#@gIjzk?q!(bA(uv3Y)ss1m^HqvYGDr^Jn$OSwPIL(VJ09* zf2HiFS5=KKqo-8r0e;Qo&^crfxON7cXzn}!UD*yTNBYmN~KCys~EE?n+Zm(0C*nD>b zE~Zk8P@!S47pQz1T=0TV4RQ3}^@;lW1l0q?X_kD_d4xB}<*>;NPvZppNGn(Y-qJDnk7@km^?f}sMo^WD)Ts)2*`a51^B?o zX>U|d$2e0bD{sSwLtu3hfMc2R=i$PQpE zI+XX_4_r^8BJS1ZRmm+XCoCB<33^A#koIb@dR!bd^$@hQ)ZG}&QuzI(|^%v+v zaG@<;jX2(gd;O&&_UMDpGg!O)LU;KI`Z(b=d4###f5=HukvzCa{mfrpC&QsIFyB&4 zwGU?9B^C9EkvO6;=WxTh7}<0Gf-Z3fXV9=cAy`^Xatc)*$(lwwMN&qX{&;*&SG%In z89JEA)pe8EEP&YaXH~AQl+aYjd}`+ZM1ftTj?9*qt$BH`s;XuSWH0B+ z!%EcWPDaAriytE{MOAmi26|~Z9^cCOhjfRZe=*e)RceP+WIrPgcyo*V4sr{qe5SSv z;hh~_iTGWO_!m$kzR#(qesu9~pi6KWJft$a!r442WEEj4KGD~_B;cU~Vxg+gk+Kan z5e^lK41*g)Jp8Z!sseW(sV^|bs_->rzuB=*(3&l3=>$;ewwyW3*}%)I!O&Euvn*>O ze~OsJGMJ~Vcm-4=SR=;GD*mV$MG)kfghm$SgEX^Q_3VZMJFwF4aG0yAcV+P6a-cT1 z5SDPZ*iz6eOUPoF+R}ZbfSun@UjL3KubS)qZ^>KrnMR1Sn<3x!01+)fkbEOV#(o=m z$rNAu#g3Lgcj0{dPVPjDh)&w$JqHH+#J$M>_CLu)vGu!&!kv)cO%%VIDE@s+ z6t0x3c)x;~!jyEfG^Qr!N+X4M3H-n(_L8XP~5F9fAD@k z9WP>_tDWac!6I2$84m;Rfk|NmL;sL+_ozhmWj-2NjAJ&1WDAn29;%2*+yEkyP-LdT z`Z`5CC`!#N(jdy*J}Pd3zQURdC=!nnx)V8+z!f7^}xa{_5IrYXC@mNdtt-S!V37>zIjk`wU>-`Fvq zpwCI3z}cJTY@W`39;$jelXRGj=2SfPXU+_e_@QCKm+2of2$CE{8H;YCxzPvKMxpIb z698#XKTe`AdupXDmOdqHaCYUaX;{7`B(=$JH8A9s49ef zp#&F$EUsq85d0{l>)_iuI)xy>q~L4^3V+X~uO4+nP9|Z@jVSoqsMA-=;$9VmF1|#- z+Bs1Avrc86T)_>>WG^X=$D3tWrWzx>ljYRS%z(wLG)gF134Z<*oKsVUamve9CBXga9 zqgA$22p#ZYpknfkY3Y6J&$hfr`w=0c{(L$tn7!oG-I z&nBN^JysEEyo+;~>8^%VJqdR|D8p0HRgvEMyQAJNbyq)cjy%23kCeIRBPCgH=?>D% zq|;s5aqoNN(OrY*e;y_Kf#Og*S}KyGH08=W<^XzMq&dfIdbJ^@u4x2#YTvJCOho#q zb&GuXG%~Sn_sR^MSEV(~m(OUJFPF^lH_hTp_X{hf@dXxqIF!zvknoSM;TwFoVGAVT zen}+L9>Fo2FZUmE_R}AdMoXiYHsoJ#N#HgZJ?E8?RuP|^e-}}a3^wFsD=1pdOW`e9 zb|?2etl9Eh__a(ydQbL?aMXubSK$(jS5Si_bCSoRa;Z|a@`f^h?29>NkbRwuQ>bvjoQ;d*2J-Fn`=W|c zt`&X(hIb3?ph-?QK;VQT@*$kWw=BnxMD{TH5b}D8j2)N>gsLo26H$ex->1$l;>pdJ z*72KMX07s?j1s^aS_;F4R*q*NA`>2I&j?wggquW07OIG*aHdNfz5b6235#F_ zOP5uDn>*hcrK74phT>(O5@-5H`tJ-2IXQ*O%rbbM$%i6Pm26o9;|aJovPnK3|-(HE#oCU)&05jfA%MWdPz^9+7UlNu&RLONxVk+eVkqO zz9H@|urMgux9k=ID7KJ2IE~0Dq5=w9q^bOqbt8`)a2wbDTG9TCr~MbF zb69%~f3)V=ZHg%We<{d@V3%wGiFG)i_J>0eyx(k3?aTt8l)(m0M1z2T&{^s7@yl=>PMhauO`PA0|26(VnO|MrjW9)ObtC!~k9Hf0d2O zORe||r`sGIccv-3jpkT{N95uDENcBMMqn?5z~WB_7H;%CKJE6l>Ok0C3WDY}We|6p|dZf8(dUAKH$qbbT3dwk@54^_}ezF0=x^y-)9cB@Z(?uPu7PK!9rb|Xs zt6Akvtk{7SJFjBLE!a2y{h~Cm>TN-77H$f^p>3IMvAG#A*2&}za7(KLf7HpuM5dDb zLIn7usjj4?bXIUZyZBF~pat~vFGoEBP!cv#>#m>aEm}jq`Iq)Oo#k;a$|m8(P0WP_ zRPaT&)2Uc-_9wQv^|-zLr2DA%bo)sK0YJi)NA0K7^0A*B8l3*wJ1D$OqO`N6EA7$Y@!`csNGrOt6HL9U z^k@w)*MqZOYCdn*f8M8?zT!pURD8i+J>vz{__rD`_3eMW4FRV5(<|SAed7jQP z*6p$MXIx0;oh2LVCT3RDk#<=}nU-@GB1NY^8=fW!T*b?h*^Pj6G!-GS^c=|23PMq6 zI<`ADbjwwre>B^$W(Zvggx|{_@&;*0z9O^Eb)7@&q6}&}8s%}(biMJ^o-cFQmU~`z zw!=c7d`m>dbvr7eX>UV)-u}YRS4{u&i}~@FQ|w-TK1d-CF#v3`KT6z;59a0vc{25V z;PvvelkpnLt8xL9dcQkRfwiWQyp}Ac)Q<#< zsT&xom-MkCL#afpjEDn)BlA+!O+&75G;wH`j-B50<9gFz-BUTeTH|Fx$4VN^qY(~n z1WAcGA!0f-DmKf>Z%oJdXv#Y6ZFU?NP#^OKe}e6?(x_u*;J_}@0}kpe_0bzmI(j3^ zMu!-rA~N0j+#>?JNEy*MFNo1&*@N^`_G$9)8rg-Yt!un4$4qZaEurF2&wHZR^vzxZ zSJl+!FEZ9rjO{r3l1ye3a)pQTXYCH+f_m)dc+j3ej&e!8Z(~kSNx_vs4vF>Jy=K!t ze-$PF3U8qaE)`#kIOZBU{blc=QH&y8yycR7tKECrdAjxNnME{OB4u=L*}zYm!QER< zo5O49Wpl;F*4A#D4JHrKQ64D~I3tmQYWw2N1@KewZ@*5*Lr4@DXQOyf@IOC`EFP5G zOu8g+EbA;yr`_2${hAE+`OgZkD|=whf2w+C)C?~5D>L^~M)-6M`55OamyTCEsi&7L zrFN7$SYWS(`AStz5Xuj88~-fKV2P@5X9ef`t4NBx2n&T#pctggj!V?fVY(dwum!XU~4wt!D$zJ9UDs+mcSR*M3tyyI?TDeOqK)-CCev6ShIxpHXf0E*j zLVqE9n?csqb~eB5<{-_=h4QUkYmvGK_aY4$dF5*hAMQu1ZH=aVq0#Pdd4b ziYjwgwejzV3~admK`o$@n=Bo0X{4fXzlr!~!JjFl8*5;j1lp1{JaJ!o>Z?tzx1oeO+S|l6VQ=Xl%Q|bqPa3ucG|dW z*2q$~W(FlW(`O^;%DwcE#mVvPV>hh-AqPs!($BJJzCo%5bloBklNLR}x2B~GZuq(_ z;fP|?-m7;H=Ost2w-)@mFMRDqG-pe>?6}GGgfj8%PP2a$?L1xmx8Eg2`9NF#LQ54{{ z(x0{$P)JIwDyXG#UL;szVG>PmqG6-u>AzK49u^D5n!WZnyHDBSf7LizrQ?A33e8|L z9ev*^Ovl57PvP++&nS53-(&tnm;GOt>vGANn_T&VWtN+i-lJz894A*E6l-7<6)R)( zI^x?L9&oJAUccPzKK2n^u^L{JG%KQPW!!o%x?M&ve3OMQsu44($z|^)IP2EKV)w%H zPNy*6Ro=p#g3kU}78i3qtBzg|&6ppvzJnYXX>bcGYZ^zl>GS0Lkl79WG!T(cv*aq8FcdG+d zuIo4(sOF91Zs*Z9dv$#L?k&4Geb+GGY>790&LhB4f3UHhn^YPA*Q??j>UH1Tj4|Ay z%&w}EDqAB}bwR+zfR2mKWB`rH^CHk$RWo|paI&0wI;Js-=c5bl64)YjH7h=zqRrVi zrk#RYOtT1myOXlQ6%Uk~Zb|lmU&$fJjttR9&^C zx~a}J%o$v$g7Ji6(|;VN(ao|T96@(arYs@fe?^36`ztPcMo_cioDhop+GV{b1D|?% z@8dwZZT`g$1g^gG2DK}hH{gB>zR%b!!+4fa|9#TUd&{S)JXJz4qe&M>;K;b;sp)U! z3ygH**iQrcnVjLEAHP09vTJ#diC%pscw_JupRd!Ya|c#Cz)LS7HdhfZ5P9>Mr4(|5 ze;L0W(5nT9)C~~XeB5z9s0Q@#Pe}rP(~JaIZz7UUrfY zPqdd0$JPpQG3?IH`LIZsl|Bo^3Ka?K`Bn&K)$!U3!b-bh!7%Mx-}z#e|NI<7zLSWl zC2jcC)oSOBJq4*GjmMn{ZpWX??Kn?oecWv7JUXSd8iX-huscvH~m z`_rKrcG3*hgff^Ed=L2n#A9WPps$J2m)+|rDG)M)Di7#tf7tC+_) zz1>%qb87kM!#(d7v<|)+D!*RQf8852RvFOi^_=lWt}K&5MU>#hnup4!P1YJ`(N`fq zrxRtK2zF!cojTJjZU*#qGnUr5gTNxnB7O$=lmLK5NW?5;@fF7oL$T5kfTTDZtRpF_ zj7`&`=5j1~QMAs>qKZ54bzK_Oj)wjLQ=oaDez!@`T~3=zRyXuqrTw@oe=B1zDo@^BtpaZ zON(uG{nGL5z7hSoAqc#=u!XiuO7o zbgTgUDi`%C=C(riEM#d!e^sZCK0qUq5cY<_jfs1mqqfP zN`vj7P^~tsa@0Pd)mJ5#UG?2F5cilTCJC!5U&iW2NaSJz#ni)JEIt&>84{GWbxj?@ zh#=rtwuGKPJKT~k{maB<>6c;zLJSe7CE)OX|6tCQ<9zn)Xn@~ve+GRQi((GttNYKQ z9q_U6z{eTe`ov(jT8^3Q*t3~R)Bh?w!&Wq^gY`rDkN2P$ug@jyJM-rnk&%nOUt;oq zKjsbBllEanj~?F6aOr{X?iQRtk!2Z)JS#kD%ul5|(!HGv&HM`McQITQe%R5_Iu>0R z$u@kP$n`-oziq3Ff9fA;2`yGslGdS+vXJ+rhzPIKF4@md6l$Ptd5`0%= z*3k|0oo4o`3xDy#%sEiQ9P1l~*A}a{MqCyhCtaF#W~82C?y*(T5lx*hgJ;MP?|G}d zHkaf-{`s&&mRC31`0PmQ=%qFM z)zrX)A<$_1N5JQpCf7Q6Y;K}Aqq0~C0V90yzjM6GkJ5jAc`s^QGJ756YSKnmyCxRr zpS7GnIL(>If11E?!)H--PK>6cb{gu8-rh1E8C!e-{?KRyuI_Z-f^d%88cF6vNBAFP zXvprYPxVAI0{6d78)W~aGAAzF!S&LGY;LkM6r8!r8wGN`e~?_6-9qN!1ajWSc|a(Lra~|% z)?FkMuCV01(Qr174`j)h;Fm2jA<$BfB9VvzZG0bOi5L)zcA;PQ(-rfgI`D@+BZS+=(an-qDB04GaDCf-6CUc?@3i! zzr4HHUlQdWq(`%vPRDcMfuV51thWW;3u5+KDAFL~OgZbA#<}krNMhiYD_TGs{_;i& zV6%J$!e|$ZXJvD#dmAkm=0RP;wXp>210)w$f0T)knZ5<&rjgRfDV?Hi=Cl6A{&TF1 zG6=c0kz7_Sz}c}GPPsbJJt8TETl7Va3Vgswc9f2^@>Gnoi?R|tF&AcN-P|Oqq0H0| z!VQ&vj)|#vG*ZzV@!NB@$$V3w-dAB#&gZNB!XRUr&STL-PW~*@J>g_8f&o22dV~Jg(bQ=kO?3PFhdH=Pqy-to6cb_>Wk9k&SGR*-mM#0c5mbiTh4#zF_JXp%3e|+_| z@uNV-+%@2^cvm5F7}RlauS9>bs&A6Oy}5zXeuI@6^?xq2IQkTBBE2$fLFLM`#e`LN ze?TT)NUB?;oP(sFYB8M<&oSkN!F>4E+OES&YRu63#*G<>f5gDq8bLa8vFikH6GTXtIAh-9VCp?eR@lkyqvCQ#KAl>@ zbp|~oA$K*qj7Q)@%w;y#bP?e=9vS9(X4SWeRv(Dnp{(WbTIb;E&qrsREVn!D&WgoO zzoYJOUwvV%Izo*ywQJJ_D&*+$GGFDLxk<`MbFD7ZFph6_)0_E*xnMQReoFbW360jM`H?%d&W?0%g6ETxa&0tB%%j z7>vkNpy7r45Nrs>fc#w0zC_mU12T+7fqA`*BQCcwh-MOfidjC(&|o)bw`un2fh}dS zc*F(L^;tAb(iik;y~_a4e~00_fKJm+g+uEnq@QlaCI8!asQ2O4_N(J$VRX|T z$QLc^MZrI88TT<#s*vBZhKL1ofpK(mQ$#z>ax8ig|6>+U2T2UM@5lwB#iC&u>pz=9 zL$7dwdouuFPZoUe=GDPL3EOWb1tyN)bA+wo&#p&H7DM2GVzX0$e_gW*0*yF?HiwWj zSK~qpC+O|{Cg}4@6ZH1p6ZH0nP0+#dedcF0Sz&sNE?1cy8^EfQv$;7K$6Otq-3TU1 z{aG$u4hlXl)e;P<C3|{ggkbs7Q_Af6OdJ?Hd3K5lgCJIwGNDfvO9NbZsXfmT-t&OvP>Ezo=D$02-&)Z07h_qlE%bg%!W{lXOc`~bYf>e zi(2RaSwN=0KLatKQBySLVDn@Q00?p5*YI2)pXED+{lDdF%D3N+NPh`breiYjZcP!4JWW`W>abGLh8wF0aJ7mf-7Dx4ckg0 zIZ(SpLTrD5t5S}3`->=0FJH{%i@8YMC0~4%FTOfEVVGp*2!F7uG+$WWHJXA(Hc3im zv*VWP)gBb-UVO!6=LYo9gjulHR=^3_mN+QQwiJj+o6yn5aO_*7Kd2KI1v!&aurhQejFvNwe}?YY3Ce$L8+kS&wq1SA`T~f!PEgIce#!( zWzNZxe1E{7I`W10b1QuOguxjg=MJ;dvpz!u^K>ny%EQ57^8TN=JK~K>R>5D$Nj)z} zLE~_nO+PCD@a|G9pV#p`%`&b56?(=sFun1E5Qm)`kuN3z*PuHbpO@|&-83+Iy9_}D zVrq=X$^loYhwY=&B0W07#`dYz^YPL2ibI#$Sbvey`oQ-Ja*J)*#oEygQEq{&EGGnQ zD910)&Nl>7M@6dtS%D+h_O`={T8Xo(R}RwY;dGR$P{Q<5SS#Mkjyy3n+IQaQz$)zn zq+Yu>V!yun%1j-jgo-w`hbWJm%RxP^f;v-B*9>?xao~DRR!Z0fxMpA%%<$UaBbuSf z0e`CX5o}V}0F1Lfsw2m;e1EOr{rdvS36(JKryShMD6ddk^6S3dK0Q@rEGrdX*NO;GTB!%PM(&X+O+^j*_A z#EFhLVJ-(qyBJEQgYj$#Wo)?wBJJUU?|-Df;232ezrNWg-Do@}7|R!ZQJ)$ax3w!` zZy|>2ue=3cP#EJ7POx~mDnwA8AQV*ho(WWjK{%DKeI`A<{5#j-H_HC3MDUOgEXi0N z$CI30&aSTJcqJ+|ygWq{1~p1@+@vj3TgcW(Ucu;Qd4=Wysv*SRWle7@gM2e| zvkPDDX=NnTu}GP>TTJx(kq%g8(FwKecTT*vQSVshPBwaL)+&xCk83OJ2KA|&GEZ7y z?}k|T;i`K=0shW=qBed0I}saIIDcW%oN(9r9#kjg#X!(pg+;e2NjR2!aacZlp?oNm zi;T3TUGsw)2dJ6nH@lVzRK4k}Y$@CD*~E54fg3bzP{kWW(C4S7qoG-?eD(#^Qlr8R z&p=_M*tPoLFYbIaLk0@Z#3?|Y=H@DV9JpRQ3v;q6A}K)yv?ndeNWXtR&wq<}B537f z6w%*aD#?pi(d{Ry!?RXWQPqE7)ABC%Y#v3ihw0>I92c>~ITT5Hts#m3g^lrIj)$MJ zD@$B!VP$2TcDsSmWx8b^HuL#)db^=x+H6`GXA}xLt5Z)sa>6S=)K{XL_uUWe9LL_K zQYeraPOKO`soVG%`SdkH!48h!R<-#rP#TfA2_Iph%vN}7c{j<_i_l=5sAzQP)EXArbOLx}wsQ`vd zC+J+E>maT-wP31d8pIq6{=Ar7y-TxC5oy|%#zs<%V+ngj=OtPfmVd4$wIeDgL@0&6 zv_>e=tjGj>6AeCT_j)r-(HxAnje>AfyZWi{yTfOQ^l~Nnlro3710@|&-lzOt=@o!J!K!b{FDy7AH-*28D_m7Sm z&FXYpL^$fWpsAvUDSyD{GVG?us4?7LC(PwbZ+>41xnTbG6%u+5qUp~Cqp?$DK3KLN zunTaWDbRyD$<*j7EPo5j3nYjvWg-_E`ced9 z(G$r2JuVVD82*=M;q?un=9-W_i~li8pca{DpZFX8QW}Yk%o>Iu#w0i)nb8;7FpB6dASoXVN)*K?t63As!|1c<9f|=_p3|e_!->Veb+G9_64^lcDKHFbD5X!8|cs zm?uQVsA08M*XRB3MKpLR%6AWsqCDnPHw0C&TbX?2W>(0d2E&2WzA*7o0myayC|!is(B|4 zICzrg-J~;$5EonA%1T;!q;E0L;ctDpT`{gVd4|5j5rR4+v`F7zkWyKT3 zk3BU6QlauG5TG@^(m1`716ZlMdGBN|ldA*mQh&(I=$cQs90|WJ(jpq`@2p&YrSott z|4XgCcG?Zry|F&1>6wX|jWuZV??3tS@tF57&di#lZTgS8i_jG(@ZfELy%_eB^&{?$ ze~OC1H5(?MpWJ(~O(_V+x+bl0F0}BGsv=htvNX|M z(ssooiJ^f+Ahf)~0Bv1Wq4%5b!0r8lu7AUz^t;fKpdKX?a1CYIp5H8AccTh3j7TY^&zCaga=t zoNqzWxWPx6cl1C;JHYu-)G2~AJ>chl8DkAg{>AL3T|YJUI`+Faxti_L+QeztGBsJ$ zfv9h2-^%y+VwWGbv-Zm@j;B>X>Kk>eEcE`e3BHBgjizuE#>qko#q^W~%YR5|%VCv{ zI912min0y1#ZdFrAMy`)FI_fPtx08S>Zmb4|fSo10X>k|OTWiY+u`Oki(D)x$MQ zN)Ls{D_3DJVsh@25W`VE%J*U@2v~X&Ua01m_UZp|US)F&>VCg13sPx*UVE zuLkfhJM0PPA1jqGamJzL)Wd@5m%yI#XcTiAn@u58XG~-RRn-f~ftW#hhcXn~(PPx2 zDp3x9_ls`t6u*(UY=3o}@>>4HtT^aj*du?E!Sbsb+2!17RnGa<18?#Eyp2UNXGn4S zfL%xiP)?~hna17{DrTQf=1AXc00n4S)+J#CCTZQ2AxsYZ8RW9%MB(FfFf4ZoEm^$s zT7CbO31slp?OFP*w3l`6>1OOq^MLx1cv3wWCs2#Lz)25%GPU8W!i-XR)M$wO`6SbptEpkUqeG#HvGA< zt5CbpP5t^)8*fL3o)jBLqUNX}4y9r}9v>HxW@ z{QJ$T1AGr`f`1&$VHq%Ia|-`EIlbULUtz4QRienX5Xl`^=5K`GxHZdtco`M^1TY6h z60)%6`Vm%YKG!4Z6j5$`ttZ+UWpAQ~1|Lkr+*_Ylg!I;dG@7gg=-{|vkB)Nl$^A}O z=KVcAfuJ7eO4E!64t``duMcS^jcD+4asySyMGNp6aDQwjX1+Wc*bCAAkLx+Z5ZmkC>LV6x2Xc5TAqD}N>7qX4Sz(BIu zlySmC&>We=8SN7`){mTgDsZ876;gt}tc8 znFeBJfYA7;;;CK`WH=XNF`ldM#ZT|&kOn}bF6~W8vXXkWmr6`f_G>9KsKK39gLh$a zUzHEpG0q2)fBHYyap8_d(;eXh&<9H+?y`E*hjKY`^kt;;Qbg~f|wDcu%m&lu8cqZ6}XENW`pUk(x z$$YzLGT+vi%u>k+PSx95Q}uRm1gYC?oG~3jj@=ruJCV$2e zx|hQd7d^6bVU~jf?eXFHg$`oCW%N~=(a0#8d{;bbLs7|-J)=jlF&m;H2mYZH5~cDA zj-YfFaGV#G0=2XKed$}UY49XF(j9m6a6au1ha37wZQ;M-)kO78jCiL`f8>r13V zXY~aTW&sGLlDPnYXz1l>M`?Ov_~kN$Tb|S`rPjQf_{fXJz=WC{64n5|>Ng)Nk6= zlFb`BP&-wWlrWmhup){;zJC?m2D>SE^KjiFQ$BR3pr@oKH2!WfnoG8%9ePgiV20D$%7mR2p0UIRv*r2-%hC}8-/YHrpN7A-0aIeIOp8wpaZs9`({1 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 b;&B217@iUT3urrvMSDVcuO-<3x5NJc5sR`$ delta 88920 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 delta 103219 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

    G*n$TjXcp9zM42=xv*|Vpf^STLRx| zUkp?h=>^PMu+m2qZq0Sm=ya@lrCltKh8M>wg^55>)t7BuO#Afu9F!o z!;=`NEDH!ty`RhEe_1Df6B*BbpAbN)0+}h@!CmiD?`nA0`>l601kHfGN;QGb_Y<{0 zg{ZY(PK;%5PW=(Rzd1$`U?LZkWB4e`k#F-^Wjg9B+pb6_8iU>LN@O?|W)X2xz(G%@ zodxHUmxFo{HQ&dICU305V(EHXX+K~_Z%q?pr=;^WFpq$6e-(-kmRM^cp{0$(V?vvW z9T;S!xoRct=K;1`*gF~HnC-a2q21n)1F|`w>wOJ%%VPAN)q$RS zyC%=gvU`eEgc~wH_&8xPcpAo=c+!Lqw&X?SQeHF0-?2&)&W!ARPea;wY=mK~quJ_- zI6ux-4#r@u&K^ocnguc^Ia^dHf@z*Gh%)Lev0gf9e_4Y697jn__vd}e3E8PcvoSz6 z3;YslY&<1z4|aSot&YmaXiY2J7Q^zf zaXI)tecPDMA)0ZTF@`MU+z;`B{Ug~@SH#gA zHGi@&@qH&8-aM}0DVwXqbJ1a;qqNzat|H$MfBY~R0*-4gfeb2n)>C=FJ*1ZGc?%m< zpsg~12g4njxu`EoV*%fn2ZH|WL_&p_x?SfoMKgajg}~PKrm}`=zp$PyO091_X2K-Y zV|}v~);ePAM~Ea%nHV!iu3F1gN~z5gw0NvZlA2Pi$dokTyeVY652s3LLIP^*$=+++ zf2Z~rM8>l*QP7*i^MOP}ufejn4Hk1bYXh=PBngLHyJRCSD|@lCD>w3HLRsY66m1W) z42+CiEU5uO-T3Ke)}YqNLuW9t32G`PEtKp@92HYCd9m#VI=ScAv|1G_S6eXoMkyaL z843AJ#+DNYWV92I3o^MA=U9r`2>P2>e`yk|YD<=c+Rz^7=@* zAEAj3uZ$uZidwvkqdZH)Ehw=Jl`P9Jc@|`^wA2s0yHQLOQcg>iAw*l#^z(64e?)fi zLTu7f*A#K}7?AIlj|_!$2Udk0RcVJnIJK8Eh11=S^&)Qhbdc(@L#xA1Y1zQV#Vgw- zL&1`AN#Sj1w9;XCXf%v#NaO{QFa|*e`yU=gUcR|0lxWfoo(96b)-&q+p}l=%UsT9( zkk`d8MW*;DNi)uAoN47aTve*Ke_H%4J{|7owCn5ZA6+x?F?5|v&zq_SNnixeAf)v} z5EI_DY;P9@gnEi9olms>>hw&Q&blsge^#Tn7tATRMD7TL^LC3-75WkVh~R29-<8Pr zmV6KYHdN~$QjgWTg^ngg=V5yiAB#ZaD5aNyg?rl{&DC|sZlAdsy#Gw5e{J*hv^Jb& znsyl{=nAN>yBeHZ3^@Js9DkaATNT_`sIfpTFbJr;^j?G?tTOH#MO__x3DV8#;}#;N zh~lB>1-#Qa?tQ#HRVTMsbR6a$F(Dqh=vi_ug_U$3!xR@$+#lEZq|GDRqF`#Jd2>br zNbSi~eKEcn>J@~K{tr+~7y$wR02BZM00;m803ZN34R~gXOaK6aR+ogo2P+(tY=xxj z2LJ%sF#rG;0000000001000000Iy7wY)KiHNY2j~ zb(;VHbB6-}6#xJL000000RR91001Rv2A9us1{RlU!3PkRr@#jq1I+{nm&CvaA}AC9 z6aWAK2mmvg0ZE`5(?U&`002__0ss{N0000000031AOHXW*AbVN!3QS>SE&a8007W4 B3g`d;

    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 diff --git a/test-mission - real slingload.miz b/test-mission - real slingload.miz index 042dbdeb5668f40d57de693b76ea39dd0a49921c..dba3f35226a2b36eec0a6143eb87d5f719d5557f 100644 GIT binary patch delta 108934 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 z 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 Z{{x^X0}b<^Q1Bl^^yBhuy8m;6{{cHFOoRXc delta 103239 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

  • *zk&Cu2NCB+N8xclEiD_3{$YV(ujB68Gdxr=*@hU zCwmEQn13Fben23@draMaleZb)X((g|_@%p};lD<8LdV&R1_5Z_9FJ31f!j%FAM{B( z<>5S8DwAx>qp-$GoeozqJyNGBqaCZ9H(8<2S9*Zg6~JqA(vn|1CTP59b7`L!RqZ#t zr(3e&wPVQddPc#KuBfjf)ug>|vgztHBPI5A_-L8p01KP%+gyZ`jlRdKN&p6a z0rvt5A-oIB$BnhJNT%Oeh z)X$!!@$#!zRcSZj!-vp4>3dz<(6dW!vf>N&IybT7%8Y-W#v3gqR?66KWxoGCY_>Gm zEv&X}w6!T!qWT@!?T@#0U&0c!t6ZuHgDLn$4xBXXh0Ju&0%G=UY=59DBgg2y z4+!i-ofX810aX#JIJ~Ulmt^#Sg|DsU0&jqpLAg%5)@j!&ZG?VvSAETsOA$+GD27>G z%aVz(&;ZD7NjP>_?Jk{0iU!moy+$>@Cxx`=<`(=lR7q+asM7avF2sWK2Z_4w2B6Cr zI5IwuXx2g(&GQxt^!)3!)PE3!dNWOR=+vYBHP&-+E$^e*;E?q_=CE0GalWrbVQThn zN0!k385+=o@9eBAknu(Nm5YAmqF>oByG0S}2>b)B17FNw zbwUNjE`##X{Eq{)oO=K(22gV3VlQn_lokIOClGZfiA*RbPf5@W3V*ldKgbM%mK~#- zIn%L`x(eN%v@-at0R$;?sY>Cncx1zR{@|5N#~BB!ygf4TvsIiFrphvNgFXLQ#lt9w#n}s7WULJ)|yg``G0H@;9X4)gYxy4#tQ*-HP2LFA3bky}ky z(%ZooP6~5JfDgBA~=8 z>?iofW?JZQk85%>?fo6}k&TA`z6-;lzcM-W-=6Y6n}5y(SbjwP3{DSdSHeGf#slz= zo^S8%&+z1dDo-m18*!OM@M29f0Kky6a6*2ptMeOMt&9FZe~Co+H#BT}w3^~7D(;R- zCsrP|-m&XU@8cD$y>4>Q*VK2+%4PXGvW-hv9MvC24CnC{awP2G|S2 zMN*)Z&VQjn(y__+@5eXt?Y3-BU%OkPWe>C~Bdv9oUbZ}(lezb;J-Y&Tn1&y&K5e-i z7-g|JkY3|=TGTab4~pS~;F~sayq9eWtaq|Wp%-1L1etf~MJqRD1uE>OTz~NDqXIxO z-N&}@TY4uE8i{e$vreSx?QCY79dA`ZSu;5Hk$+7-cv)9;mZYa=C2m7n^5s+vDS`oX z%N?`fKs1!;PlVZduS8J{HAhFbK%DgJ4_)QDk(zOo6-Y#<(AIZ?maZL}0D&JqWZY1& zAUa1FI+C<;tbzMu*%PL@t6CP_2gwC@I*K;UuT-TWJ7YA|bqFf3Eyl`a&9g%pM{|bv zTz^G!<^@bOTV9+YJ37P4a=W^%LQt#ER|1s)i~i9wCl*O@Y3n9Wh-H~N*$U5{=<$V2 zm*{1D^)3Eg&7as)1Kw5$gu zvmq@#{X$Y`%WfF@Epr$jzarW^htg`E6Mt#_dQ&1K=#QQd@!h|k1kpLtFt?oauvJ#m z)-jz<2?cq#o#@zTp5@DI$X(2aZ2fyrhd2w=E&bq?7sk~Nc4TZ*8RDSKJP-B}GY@Nr z^J>~b0syb%@7#j9BWz6Do+_ZVqA!yL4O<*;Hen#T6Pzx%(H1V-2J7E7I|>3*3xA(@ z+MsUI;AM6Jp4{{%XS%>nPy;o$lLagNWgg*InMbfkxWD~mLS-u9CQNt;HJq4A5ARt5 zsNv~O<^zs>7>krYC4Ym#v)71%Y1Pjyd!qrkOYPSfk{_Fty3wcsafYIwXykdDv3Ely zRuz!iQTMM~&l``h*AB5~ZC$_9k^QlgZKc>_a0g2(29L7o>&uLQs|SG@0jc880YE45 z6U`kUJ=3~XqCR6Gss`U7{rj7i=maI<1SB`+y;ivED&X|OKrNh>>Hc5XYkzX9$rXQ4 zXpaYLhk{?`TfWSm$%KDP>cC1JD7kg5kX(L%qRis*tbevVO-x*cM2_)w+P%o0Z_vqu zNR6POPn;$+IM;757j%UNbbkyGHnc;sfQE@LlES>qL{jKm!*Af+AAv)XKVyK*pdh?? z3j`h7WbA2!J?%U9ng+h6!aTj;aHCe=QP7MSbroCyWKHm69(Nu)*&dTNPw$WRxioi(-PseL8& z0C=#-wldd^(6lGVVSi#!Wx}sng^3D)!^FU2q5>^UK+Dk9nzZ;OEm92sSSmeX%$b&% zI4U4IU;%778e+ZluGDaNPb;L;If5WZLq7L#R4YvU*@S+P@{{n*g%FfU2~e;vL#hZ9 zfAWzfeHQaqD2Zpc>Snq0JeMjUaC?bF8=lwX;eEr|n}m7{Pk&)WEu-|2p0;210HSASbfB zqsg+3C%!g1?4w)oV<*PQUI%8zY?wh9<_>1Yptsy+HjMj+nGnNoHA%!uq`;jHMfp}r zW)9!%dGrS!{eOW=e^8-6sL&tS^fiJg%q?fwHk$4VP4Ib<_id-!Za9_6N6Q-<`wnZ%P0E;tEecNW*`$BXX*IjtFOzB; zm-4YHb(2XoXdXS0#zrQjXwl=K)){C=0d45PCUb3->A5?ZWmA>W-){E6%O2cdo-HtH z;2V77X?lVD)QlTi1ch@f6yrtfpGp!K7IO-sldhnuQ2EgBV}m;@ClQHuF8KYvt`{uQIY#t`lQl#9fg zQVUp9l)CZwY;Aq^qqKN_1xjR1Pa?v-1`OqPJMN)e;Nm9Ua=la2hmB>LLS{+QiSHiQ zlhXdNGUXw`;EfvWccK=Xcsa{rpr5mifd0LSi+|e0{j7B$sO0m^Pp+`TXLKKBdjL<3Wk#8=8I2 zVSjoJ_TYXq(7~LpnPpgTPofd`_jWC}a#J_7-g%holhgvNTKNsQqV?pAFY*?2E&q0t z3al;A_oH8YUxO+9O_?Fzm}Pht%r0)8**}=VR-v0GJl{G zuBBW__+ZJswX^eMQqseG0FvbKso6o#FXM{Olv~iF&dG|N!RxwBR@e=Okf>Q7)n=MV z<-~r(t%8$fmRZ*D*lxO|2w~m5@M?p>VHua{h@aWpl=3Dx$~Ga_gr;anOwo7|F5n;l zqTt?`Rkn=g3A9vnj$6!M_xTY=SAQdEAG1og^pUnNt8_~nX`?b5-JmWS1N$qeq@`En zdOhVb?w7eh>uZGrk4?zDCN#KpB14LI3A<-3 zHu(xj>!cKdP{CbQpm|Zz>7VN8D9d=~)BNGq-f=R^3T{OD$+fl;`U_~C@_&aZUNE`O zyOSKt!R<=j!8C!0UV?K0kBAb|AVhFLd2;bfGUXr7`9J7(x~8+mb8uDmF~cWinU>3O zqROToCr~;TVcegR7$4F^)usHtBv>GC(sFcW0O-@oew$6FCKtb~%)iH%CJ#QWtS8wM zlLa4E*0X6kJ9#o^Pb?57jeh{?pOiN?sydjU&(x~@>IuE#ZEdhOncS)RpuMxW?6m*5 zH|P&0Fi5ipc-ek(nkPv|u)0p9=&-?ZGE6AB1z1p7H(`Kq8j7cOAd|{vNV^0|mz30W93vP9{3cv<0Fy2V0aUpKq(LBVp?@B8MjAI~127tj z#X3864HwH9Hz^h{8j7|0jHLulPYQ71;_f z=4kQ&%!|A&nE0e%N{zKpr^TdT;oa9~%zZK%*&^eNAB$>QddhF>3~g|#eWfA==MQx=w{op7#d03B2^*4M>60QiRas-2fB(j>1Hzbu-KeJ$+;q zZaM!OP$G8|k$=BYgj`8jj_d|xpPUrg6pu42x1)%QHz889`x}#iE|^S{JVw=0q?9@A z_leYh4}e&u6>BM@X^MV~rkSIL%3=|Jr)#)-hc*XB*F{n#r0mf~gmg74WHzPnoGgaI z68k}z|L^|!I^^;5`{PpKl3}Q50n+K5pMF(z0bvg>cz@i|BX}`wV3m3*pulWvo)ry* zHyWGdFcAHLZf@FSJXSl%vm%+iG2rncgpT(5I4L36@B!m(?a=Lhq&vi4z;<_s8t)}@Wihr^Ir76nO<-*cDKK~3yjnG{W2QG^L81X zW)UB4iGK?q2gV{T@pM*3vxKy;k>b2u92Ln(&dTKU(8N5u><9FuWwmHSgRYNXHAK)K zGj-1$`%`M%B|!45& zN`Dz*mGGzlGXfIoh@{B2inEgoG!nghxU*v@_Z6a|)Qb!W=P_KGSk=x@O)pZ_sSTOJ z!8pN}qEREk>Y~{#a3(n}A_e@0+u~$dMohnmibW!)ZQ0S2PJ`&9c$$F zI!{fB7jfW0+GGNuJGe5i-9-}Tqcc3VD1Uqqy?8p!E}axJyA3?0^TpEK5P6C)k0VnL zPX{QiIt7n2E@j5+s}7)QS|&>p+kaa0Up^FZ%5%0&v`PY>$081lj$;P%Y%DZQB?+4lkYyDihpeJ zmoHzmEjl%nI*Ifzd^kZOWy$LY8yzuda`WThH{o1OfVt`rkd=ueM^ zrfaZ~Wd|E;wvC2plr736-;R9p1W=r%i<+#(G@d6lc^Ao9I+{W*$qaNfn@>qX1;0pD zL}&3u!dhG~f5Ij;7_YWFwX<7-8-L2lmQ6n#!c~y_mhrMlbnbN4Y((3^9-h$=fr zp99R9GTcJ?Ie7-JC`#;$m%zMxb(!Bg`&jsot%vq8`kEm6vwx$|2#keBKYxw9YKpWp z*)EPiWPQmkQOyGL%WYhU&$4((#P8!=(!wn9hd@>uWaWTZHx*TI7P14uW&>I;EkUIg zSwXi%0bemO7rlIrMq@gTW*Kx3iNzI(U(ohLmB=&nT@GaUP%R%_i7uXJcxoWo{U}iS zs)6K3PxEn}&5{Gdgh{HwLHo6c#}6~G`5=TNYQ-*cZO+mLl6w?j*7}=M_z0;|dvt`pTt*AJ_Hv0;|8t0zR z7H99Wmy4n^*zM|(g{}a(NuPg|v?|u|qxiw)MJCI}@-Ld2Sd@T2?OfV0)TBp#rt11n zq$Jb5FlK|H6sF0zm$LyYn@o=LEapC7r$(HrdcRZDYsh|!*?+AqC31s057C=9lAG63 z%j5aEOKO_VljHa#Pl~dd5!Gc#da(GnSVo}i5ehWSvBSD%$P7x-2c7#1_lG?VV1;ZS52 zmpG^0vgTjNM1M&%)_w=k2*SO=?$vJTITtWz&fN!UKCQt_{_PDC6(dC#4ADRDR(NUr zCpVLXkMXf~L-0{&$2g9r2-?u(#KG?Fu16AUppez4XDf6)w`?5llH)X^cD7UFQ%|i- z$liYYWdGo`rBycGNt_3W74^iPK6%Tu=3}p}mGXScTz|MuBx0I?58pbQ zB3kR+$HQIn9~ECyVFf8m;Q`BE(RoEu^Xs%Mr%J;r5RlqrxyhX8YS~h;`HfDUeuI%ESX^re5r(OOciQwWM6MrY_npl3P$Sx_6FtQ z7klz~+JBS57kl#Q?8#>4UMeaI!-#D!w^JW<0)G%&k~v(9ehO>054MhFNEmhY}V0WIo%@VWJO;`9%xDr z4@BR~`917Dj5mmOFh@&F(|ox^TLgF(Yh=mnZ-4!2p=v@w1i~H3*m3Ii6_)z7ouswh zpfcuHHe0DZBh1zq;?x;!YKV*IGMR!Q&+>D#)OP0KU2Zm1$s7iY!ICLy%WLlI>^K9IpXjnEA z9e=~em?Fy^;(Io)Xr{!~vs8xeD!;lkNZF-#3=+v3oXR9kOHXCitA8`ezVwbYP~pyF z%gS2#)iX7VcbO$DTTITK06cGKpHv5hdz<`gndWHRttAr$#2-65xd&8tt@o}uZ*F>& zK5}k#5Ho?JvgtRFPy=IzIMZiA2uOWqxqoX7zS0K8L*(7?g@-Sx`Ut%^IX*v6A6P)` zbdBk3%Ob&PheG#eA~8-2R2|Au>Z2ed^>~K#7Au`w*6qy;p2p)BhoB6vT0-1N$<0?n zxxe>kC*D%<-&>ZrmKK;hOS(Z@6Ft7ITTqnvrd_G2QpDnrHq{v7FMuOFSH|(`4b~<8QabuvM>t}qGqp-5f+q~baF8o!r*MFeeeltej z58GGt_KGPI!S{O6uzl@jTvNt}o_{q-s4KQ=y6qlx<$#-Y(^5d=JC^Wgor|lj+2EF{cY$5bQ-@ z^)#c>KTMgrONV+h5zs)B_&gDBPe)hfv#)&)7UX+?2fMpH+$M_VSz{js)Slo9zjfsAxm&WZxN-IPp?(br*7kkU1C zSR0;5PpQ(8C`qkWTw6`GA?cyrkm`;3?vXH0ygOsq#sRF;&6G-^R~B`$VjtYX!fV-f z6!X}wf@DdYGNHAUKp+umXMZW#-muwcdgE>4B>Sb~}?ne(eE{OSc>zCcTX^d)$_MT(k%2%4EA{=^<7 z86tKW>j4_XaxmU5NftVW;Q-uW%2!C4u*U=Ju}l@aRBpxL+d1PL#b7mlf265tKxO_rsRW#i@8xYlWfP2W^5m8T71l^jr ziA2pP)r-v&`YEAn z4bsUZ(D``_E?)DX9c&TL7JMIp3APzb57-{E)z!G#^txaMKp0hOYO3w~nUOtSs8~V9 z)7CoxEEnbsG-zu}>NC8jDkd?JY7dr=M!*(MBf13U!MFI&E`RIlhGZz1U}6;enQ?}= zv2iEucE7SE)$MZJ(NP9dVc}4s0qaAT70Z!2j@fqY?k=0G#eG3HFR~oebsFcV32yp6 zPtb-^ouadNI=PHj(MeKXCO`o%Ov3#ixKC+`zmoAOO-SCYFgkV(aHO=cK&qG|6w@`t z*Sw6Oua+;gGwr3hp6HVfoPkdU=)}meee+S-d(y(>qPe5~JxXi||0y zJWI!PXt9rykn$P1$^jNiY6bKXG|~;{%RZmKFU-{aZL}u$EB<|9rtVKM^YZ!OlOKP4 zekiFev_5RUW=T=Rr^ySPjj}^&N#9S4#WY^MjeqIP<8FUXpOP6TlXT9L_h2Nh@WfpH z|F`$`-%aG$f0Z?joW#jYeZ*e*|%O)wnZ z-@f-#x~dO5(1hl_C8yg|sidnb>FRz-x=ISv;AUikQ#u2Q&a=13IIln~6*FA+#*<6# z=6~kPjLu5~JEB<7e1JNm1LlL2xkNff+qsy{!8+(%U!|Za@|lkFgbc;(dg8c9x739F zJ;YoShuokY$jbM_@p47*5zmOz@rMmBZU*u3D4P}K5`*~Q_{l7LBC<`s5sS4a=-8(z zXCs|>q>!(4b#+vLi22nE4YAqgN&SJm0Dqj3B_xljT;19qLx&Qw1i$Dnxtsm`Z(Rwhc`V4PT(C&Lj;nDdw}lOG`5H+y0Lq)1N`hJT-qeP94? zJ5h@A@1d)$L@T~d>!>q%`_k}a_!!{*QunD83CiSnkSBOzu)`rfFl6k!Kq-WRjX(V` z1aX#U3pXG7%u+^rba5FrhKV)i*={cWeT{?;Ih*wH1iD@Ocayvc{#$|R!lNVkQj7U` zJ`x~Exp(V7l~}V8Wkv14g@48EVN^8E=_>{@!M#k4-GJzDR!;N8@4qk*(-A6vFH$zN zp!uS(U>@!jk;@EK@mjN;>4Ce?L4Oip{Zu1?sFl8ejRs7AwY_xeOPskTTgg`ua5A7I z%#(qN^JK7ONQz77T5<_fY@38sI#kA{Y3xrxqR1C8C@PO0?Xk=^X@3u&zIeoYPy>!C zSO4@CP7|p$WX0kkDB;T0F3T*6KloN1$u- zFm_?a8+T5i%PgzllsuPhQRsKG@i~a+VYHKvi|By6O11tdi2daWZaMtBOB$!^^Q9qK z1=sS}+DR;t^qQu(gMUxk8=ztFkfSM?fy8+p4@s3)eTODI5(Zcp_Q3Tm49X2Ut^I$H z2E)IocKjZc2F}Tm+rr|@(+SS&m8A0bPau_>joD`-NVnnUW9r+i?`-pI9#=>QS0Rf9 z!>?A$jf-@YRBLRK94(XP6h@|>Nph`|uC?Z)xZFV5Eh(sFvVWktd1e}{4*f8mCXC3g zo+IwK6UF@^9VUH%&=Xr|kWB{htW#41QD?VTSGgTKy*0*mMHOe_9e)gI1hEuruA?4p z`BsB>bp-K$qo4sGVu4;CFp#ZsO$IU*s-Bl&ZNWu#Iiyc3dV&a|BUqH%?f6I6VR*CF zDQ(8{VXC%cIDcQt1Xe|m@~tGWI;dTPNwwlKm3%_YOeM8&ZQV8Fj5EJF$f5rIIY(KW z5)3mUQ8Q{P?#S$91Iq<#3>BT9g)4Fi@Am8F{qx}K=6`+t`uOGg=Fb~@Kg&mc)sGJ^ z);BkP{`d7CmhNjF?*4tbu(P z?9_0M2*N|83-=^4L{!PDTlFg;PJz~rr}6l4Is$v51L6wJc3k9*#}6Uv>t_=t2_jao z_$dN~cYio?es3e9b|*0^3<$$}*Vot3yO>TcvQ9f5fdMc?zjGvz*g@gjFUg#!9A5uj zUpJtJa=yrdVa6rfb(-5&t;@_*9BJQgW^s9qmw8FQ+Qv}Pqfr*U%<>VPpLZ+7M$g#V za398G%OND-Aw*&5oBhy}m>?-{plQE&jazW&E`P-*NtR!xaa)3X)BY*Svjdd5+y3yu z%~2tRK6HuO*SEGN{s>tZ5Ng3ujYlJB`Y>|LjE!qRGJ4JrU~pq74|1|(k>Et?gCNyo zZ65#;GU(9cYT~JOBl;>G=Ti^Jwd+cF)}Hje3LNbOZ*dyT=6=~gbBA49>1`wC( z01+g^9ol z^kpq5q2K9~a;2bor+0(b@5u~%KVzcZ=x>VX-)2l|IwC9|`tpb;_o88-AqM$9V}Hg> z-Z3Q-#Mfpjb(8bJ@u&~j-6M2x;~w6Tob@UkF%Fft$c#e7;D2#y!BeQj8V;x%9J$OW zc~e-7yqL|0NWDwPoIj>lsg!@0z~ zpw;ofO3=*eh6&UpJ?ESyFhcDv2Y>u7RUop3t7(QT5v_1vscU!z8f}qhS71MJL>bb&zVRyqp)d@tor z*0?{FiEX*OVuW;K7UVk+}+hop@2${q+ zt>(|N>{kOm*Z~n%V4m@@EHd-~R7%p^K?Gp;QaHc;p_%!CTO!;IQZMej{K@jAS>noG zk!D%N*wu@tkl1cUPXf>OP(ufKrN)^YqDo0Mff_{`lUDEZpw=E0*Jvo9fWg%)&^Rw> zv6;$I70R7M)7+!tet%S_B%1(vj<^LRseu9GFynCoJhP8$u3y={_D(=&!|dbc6R zwlz`gU|6G?Z39^aai;lN30~QDYRI57%8Db zjR}ZRR+pfVW|eIuwE7yodXL z9fK@*>n<6WoWK9r13RbgJ{euN@%uS?HEG?_xP=73Bi^DMbngT{voAF=PP!r)UGTP+ z!|a-FqZtv`NPn?={zhUC7{b^HOl0&6I);P$#qchKzy-urpz%ZU@q!J;>Z*bt%$glL zLcPS`5g`_OOt>s&Wk-(5--}Y2*T#_Z|bu;#X?do*M9eqN(T7Omjfak+!C(tVe?cXa8KswVP z^fGqP-{~;iX7q>p*v{r{1pQyAukivExm757G@;W3f~0t4zRDfgU&Y_oh0NE5&8iGv z^6zUyCVH4$rW1=pcm~O9G9{mJUKeH1@N6RgMx9GB*O>p zY#V+NFT)FQAklKDO;?=sK6#}uYCj~Sh znSTrx{U|!1VxY*TZ_?qMR{{y7^BM6aRs%Zz0@75Dk4&c-9_0U3T1-vmVZu79B>$jA zW*Iv**L~y+azdf8Rzw|CQRbFH^f(|(X>vtGgR6LQnRNRM4@iUp3(k^DJf0v2v^U5Q zy^mqD1|u+R-z11+6)8J!dH71lK|Rj;C4Z(Xpk3Y2*8A?$o6F}xsGc24kQ116Mn|%U zo^Q`KTXrG`yq`XuW%l*iEPML2!yxc1I89E{ckus)5ztxw1-c)sEZUrbaQO)s$OV$) z5GZL3Jw&U0ToM>*LBZ`S7B{HPD?j$bfuR=4U85EZ7B0VI5d4UJ-X|4`&1!FWzXYhoBTNvVH z8DY!fItMKk&*I5|^1sIQQDAN{>3`{m2YpKlDuzCR6tI@FAH570nwSGfj5`=xCN zd~W!L8ml?lN7+u(Ga*&Vgt`Vk)ZCBlt317Hsu#y16{^NhAf)LBo%^PkdiROVV0gH3 zmdg*LPm4I{ty#yzMma?mO!)v3qq>w(UDL<$TORcFAizZF`~GAo5q}#f_d2`r<~jVs zl{mn1c6*3!C8_mq2FSLHUSY;Un#>L*AsW0kFB#GmdO`$vp)@B`bfYSN-s+ekfMIj- zUdXeATNUUu58=|~@QBo!zuVgSKCaE0>zm-a`NS!a*)9vuA1x1Ahei!Fa(<6pE6@I&98-UH}HX9)1_}3&!v)n;p(EV$4QQ|7)$S z7!9}JTV~}Rm0lEfdo?~d@^-+6nL7qS3JU1`jfg5|SyZwtTow^i?dQJLM0IN-r3Q+Z-K4Xqa9S z^9e093hvYy#1l00C&^`uD^Oi)v-v8?9}gq3$mY>CZa#qwb>qF#1p7Rreb0R>TW2fm ztmz*yvX)bYntvQ$Emc&FDrb{}Syp3DagSGQI4&YKoHOA9dlAjWAIKnt_aslyWaDt# zH8iu*R{Ip1VJl8i@}yKU!Is)!UJWt^)wF6&O{=EV^fv9N=_(^?`nfEq3c2g5Y&;yc zmK`3TPt~IX+`YGOaKQOu%lH-~0ai}QPx6i2*dysXihqxot6na>*{bx`IxpKMZy^P& z)hu7MY}di(K{oZCPHAQ11mcFT_ItTQO{HTDr65KP2Ns+|L&w*k>`gN}mA!WGUQwif zdx97Ix~Nf;btLaMgrWV@!B0Rj-+foKO{h7%W1WcNI|>6Jup+nJi+$!& zxM1fFZ-2ZKUx0TTkgvxM9;<^?1Rr{`nR7Z#CPTdwJYieSR7_3i_oG6mspymjHL(oK z^A3-h`3*yu8FvYULt~FJw&*~w+nGj#@u7Kw7a#~f^K^+i{{bfYSM5js0y8vRY+Nxv z*}a$yt|okhrWftw{_r*)q@g16l`E zzJE?)eoO1CK4kEFR61{~p|K zJ_15p1UrI-=cT2C8`>9qYJkFe%A9k(B$FJEK#n<-CmqE(mrD9{-`<)ZWvxmMw=JnI z2pM|g`e>MHE3_8#Z4!-xf*?z-mH*NNWPjx4PCfCwm;|eHemrZUa=MSrp*YQ;Hx{n0 z*QMqXL+f^N32y&ByIz_}WfgP#BY%yCo%hNA0VkypC->JU2ba$WGR=q#Wk`@y`P_j{n?JCKb3*~$^I)HfiJ<-miofJak$UM;p#N` zuZ4?M*vZE(>Q?#SP1koTC08!>-V(q2vt4Rmh~F*U7hLO(`%J#RFU&lf9C)9Fd6xWr zfiKW`2)}XD+vBF{2GrZR>QDH6J%4}SkZJnEK`ij%b{xiHFpCb790;>DqzFd1&DEVj z2gySYSiYA}H%&+T!y+0Z+0rpI_I5$(0(aMrlL^f`d#xi1++7NWWcWROk|-)XYt!Nx zJ>VHdx%yl%H zxBu34AH6QZ*D&Z&fNiiRxfykL?IwQ1*}CQrf$nmAq9=-FFbo{+$;pOu$)IIjA)k}_ zsd7alf8|h|_1~JEc#dmpPdSKi)B3yisAA;Uj!3Fgi9rC7$p;1Ikk{>`9r6Bwv^1! zP{D8q6-;*J19gqeK!0K10?RFa9na!fI(T;ePcTRu*zNKxtGI5Vr2)s~kf4ZgFmCAP zS)ZepN}<|0Q7*AqTH;+z3D)$R%PeZjc$=e4Qx1;18o>8GLt%kxZlAYOaEa(Fg~_ZF zROy9ZndG>&+{32~>P$z*m!j;vZ+Ms_)7@;k=qv@n40ÄZtWKr@@_cR>S#@Kwmd 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 E0aDD9^8f$< delta 89134 zcmV)XK&`*BmL9F@9e+?u0|XQR0ssgA001BWCw^5TcNPEux&Q$H2LJ#7ZE16JX>V@r zUDDdt#Wo&8lDU(6OVt()=(CU*El!wQ^S^(s4H~Jn zv;bQ;Y!zWO4aa(8e zaJxa!2>1^hP@Pz+quKh>Rj0avKFpB&6&fCTM2_Xz8oF40Myn5hHt_%PAF2|JtO@}9 z+4%VJcWx2FYWY}NQ_s}!xc@M9)@*|vLk%XSu{ z&J`(@vM3eklz)l@r7rsEsuN_u)q1*1U3259{J%GIjs3=g;M3aVfZXJ!&~T8C++WWZ z=puDyTi)`6CXrbve=?Fds$!lXA~t-C5zy5#XIvqFTp?pzv1nW|e_SzR zT&ZYWDSuokV_dmtTsePSIX!M-)x#ww*W7@!;x%_|57E|)^1GPvyOi;}oc=wDIe0!?+i&1mt@ugiB4LxG8wRphs%9+~(3~Kb37&%1ZyuLAc;UlxyhG35Z?<368DC7C33+J795 z)9{YGh^CMcC5CMM*0*egh2HrM>b7R%F#ET=f1dZaM+BFVS||J5o{POc^~sk{=in3f z$wRAR>iby!0H?g@*8d^5xP?EU|K}xop*9}R5jR*Yp#jhDo&ksLId}Iga6fc+&W${* zfqhGRUh3gEriYnCm)-Mj`i>-KQ%|z@y*(t(07bjR=>O-@dhY!Xf2^ zQ|yIPa+c5VT;{n81NurehxT(>g(jF%TCyH0Sg>!FZA^Uo$_)noOkYghb(k#(qxrz5 zd7)#7eM6s4i)TxCk}aRH*&+oA#6EU1F6kRdU-E2r;(3ZM#3rIp& z?f{t@Fu;lKg);)48dCU>qCnSA6jEAfmO+c|=-4(yfF}K+kP+Q%G8I`5gFFO}>Fx2L z*XBE2Nd!{5ZECw>qyoi|uz#NcQRkv83qWWEOvJ3Dv0$!GCdj1Ou}vGS3Ss2dnAp}5 ztAk}N9S*A)YUD+0;4eyMr?dcc1-{q9%m_qa4+0?mngY-Uav| zqJ)npx?N`98BLhNA-pyYfsW%Q*c-hnl6cB2feDw9Jf1P(lY!K!HKT`LSVEt$OExuB zdi4_+w^oGmjNlTVneZiH5a=8P9m~u|=As3TzabtWBtb}F(1~F{CWN>V$sDXIDydgn zD)S$69{kv8Z~d&TG=C${zbDPoy7?K+hJ4fgxT48v27)H%Jg*w$T=BAIGiR=A&vEHfiSEa|k?8sIl`SCTkR-DW%bPeX zJP>$3kI2-+zn#B@h}X(Mgvnofaq$0%ubd@WvaE;_Gf1N5lo3GhK< zA^CGaS}*x)NPk*tjDWTz6(Ar^O8y!UCp7nVgb+q~UD_J(v?TyN>KZhe)AgkEoW-gf z)~Q6r7NHi!MHq>PYFAq8)e<+s4&)kdGVihNeJoI}bo2E57nqM@=sag)h#RQg_8JHA z_z_KVyGPH}uAD{11sfF?Tf0{~Gr0?Lt!<)TPD}(?wto`XJ^KevP9twiv5^P^dzLr| zPgX2!nq%`l(KYBs)|Na#&+OxeDBRK|rJAtJiE5e+_(rqZ$yx>ex+!%bYnA|? z$q?Ms@1a&6z%MBaJEkh-%C20pLM^i&)KxcDDryrtdx+AEjG>8gjEok^SUyIwlN4p0 znI`xXZGRSreyr6@9RM#DSm?rrw-%gmcfR~(nPUP^B1!RDmVi;oNy8x=#1ha}e0Nij zUKc+fnOeTLvly9r+sHQ0p6S}FHCh3b)^DPG_5CV$M&>VH8May4Wwo+m;}>58fwBhT zK3%7{tLqdixK8QhI`JwV%ynjpP(pNG%O?g!n15lKLSP7vgS}p9pGd9vEOw97^Q2=A zmAAGcawfYC1nn0c{m45mV6g*2wqvc_k!s^NcN$Kvmabz`X?|{BG VMw^v(R_NVw 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⁡$lo*dEwSI;4^XabkLP$u=zy3BPqzf9|Il97^W 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ÄZtWKr@@_cR>S# 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 + +##Github: + +Development + +Official Releases + +@script MIST +@author Speed +@author Grimes +@author lukrop ]] - ---MiST Mission Scripting Tools mist = {} -- don't change these mist.majorVersion = 4 -mist.minorVersion = 1 -mist.build = 61 +mist.minorVersion = 3 +mist.build = 74 --------------------------------------------------------------------------------------------------------------- --- the main area -do +-- forward declaration of log shorthand +local log + +do -- the main scope local coroutines = {} - + local tempSpawnedUnits = {} -- birth events added here + local tempSpawnedGroups = {} + local tempSpawnGroupsCounter = 0 + local mistAddedObjects = {} -- mist.dynAdd unit data added here local mistAddedGroups = {} -- mist.dynAdd groupdata added here local writeGroups = {} local lastUpdateTime = 0 + + local updateAliveUnitsCounter = 0 + local updateTenthSecond = 0 - local function update_alive_units() -- coroutine function + local mistGpId = 7000 + local mistUnitId = 7000 + local mistDynAddIndex = {[' air '] = 0, [' hel '] = 0, [' gnd '] = 0, [' bld '] = 0, [' static '] = 0, [' shp '] = 0} + + local scheduledTasks = {} + local taskId = 0 + local idNum = 0 + + mist.nextGroupId = 1 + mist.nextUnitId = 1 + + local dbLog + + local function initDBs() -- mist.DBs scope + mist.DBs = {} + + mist.DBs.missionData = {} + if env.mission then + + mist.DBs.missionData.startTime = env.mission.start_time + mist.DBs.missionData.theatre = env.mission.theatre + mist.DBs.missionData.version = env.mission.version + mist.DBs.missionData.files = {} + if type(env.mission.resourceCounter) == 'table' then + for fIndex, fData in pairs (env.mission.resourceCounter) do + mist.DBs.missionData.files[#mist.DBs.missionData.files + 1] = mist.utils.deepCopy(fIndex) + end + end + -- if we add more coalition specific data then bullsye should be categorized by coaliton. For now its just the bullseye table + mist.DBs.missionData.bullseye = {red = {}, blue = {}} + mist.DBs.missionData.bullseye.red.x = env.mission.coalition.red.bullseye.x --should it be point.x? + mist.DBs.missionData.bullseye.red.y = env.mission.coalition.red.bullseye.y + mist.DBs.missionData.bullseye.blue.x = env.mission.coalition.blue.bullseye.x + mist.DBs.missionData.bullseye.blue.y = env.mission.coalition.blue.bullseye.y + end + + mist.DBs.zonesByName = {} + mist.DBs.zonesByNum = {} + + + if env.mission.triggers and env.mission.triggers.zones then + for zone_ind, zone_data in pairs(env.mission.triggers.zones) do + if type(zone_data) == 'table' then + local zone = mist.utils.deepCopy(zone_data) + zone.point = {} -- point is used by SSE + zone.point.x = zone_data.x + zone.point.y = 0 + zone.point.z = zone_data.y + + mist.DBs.zonesByName[zone_data.name] = zone + mist.DBs.zonesByNum[#mist.DBs.zonesByNum + 1] = mist.utils.deepCopy(zone) --[[deepcopy so that the zone in zones_by_name and the zone in + zones_by_num se are different objects.. don't want them linked.]] + end + end + end + + mist.DBs.navPoints = {} + mist.DBs.units = {} + --Build mist.db.units and mist.DBs.navPoints + for coa_name, coa_data in pairs(env.mission.coalition) do + + if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then + mist.DBs.units[coa_name] = {} + + -- build nav points DB + mist.DBs.navPoints[coa_name] = {} + if coa_data.nav_points then --navpoints + --mist.debug.writeData (mist.utils.serialize,{'NavPoints',coa_data.nav_points}, 'NavPoints.txt') + for nav_ind, nav_data in pairs(coa_data.nav_points) do + + if type(nav_data) == 'table' then + mist.DBs.navPoints[coa_name][nav_ind] = mist.utils.deepCopy(nav_data) + + mist.DBs.navPoints[coa_name][nav_ind].name = nav_data.callsignStr -- name is a little bit more self-explanatory. + mist.DBs.navPoints[coa_name][nav_ind].point = {} -- point is used by SSE, support it. + mist.DBs.navPoints[coa_name][nav_ind].point.x = nav_data.x + mist.DBs.navPoints[coa_name][nav_ind].point.y = 0 + mist.DBs.navPoints[coa_name][nav_ind].point.z = nav_data.y + end + end + end + if coa_data.country then --there is a country table + for cntry_id, cntry_data in pairs(coa_data.country) do + + local countryName = string.lower(cntry_data.name) + mist.DBs.units[coa_name][countryName] = {} + mist.DBs.units[coa_name][countryName].countryId = cntry_data.id + + if type(cntry_data) == 'table' then --just making sure + + for obj_type_name, obj_type_data in pairs(cntry_data) do + + if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" or obj_type_name == "static" then --should be an unncessary check + + local category = obj_type_name + + if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! + + mist.DBs.units[coa_name][countryName][category] = {} + + for group_num, group_data in pairs(obj_type_data.group) do + + if group_data and group_data.units and type(group_data.units) == 'table' then --making sure again- this is a valid group + + mist.DBs.units[coa_name][countryName][category][group_num] = {} + local groupName = group_data.name + if env.mission.version > 7 then + groupName = env.getValueDictByKey(groupName) + end + mist.DBs.units[coa_name][countryName][category][group_num].groupName = groupName + mist.DBs.units[coa_name][countryName][category][group_num].groupId = group_data.groupId + mist.DBs.units[coa_name][countryName][category][group_num].category = category + mist.DBs.units[coa_name][countryName][category][group_num].coalition = coa_name + mist.DBs.units[coa_name][countryName][category][group_num].country = countryName + mist.DBs.units[coa_name][countryName][category][group_num].countryId = cntry_data.id + mist.DBs.units[coa_name][countryName][category][group_num].startTime = group_data.start_time + mist.DBs.units[coa_name][countryName][category][group_num].task = group_data.task + mist.DBs.units[coa_name][countryName][category][group_num].hidden = group_data.hidden + + mist.DBs.units[coa_name][countryName][category][group_num].units = {} + + mist.DBs.units[coa_name][countryName][category][group_num].radioSet = group_data.radioSet + mist.DBs.units[coa_name][countryName][category][group_num].uncontrolled = group_data.uncontrolled + mist.DBs.units[coa_name][countryName][category][group_num].frequency = group_data.frequency + mist.DBs.units[coa_name][countryName][category][group_num].modulation = group_data.modulation + + for unit_num, unit_data in pairs(group_data.units) do + local units_tbl = mist.DBs.units[coa_name][countryName][category][group_num].units --pointer to the units table for this group + + units_tbl[unit_num] = {} + if env.mission.version > 7 then + units_tbl[unit_num].unitName = env.getValueDictByKey(unit_data.name) + else + units_tbl[unit_num].unitName = unit_data.name + end + units_tbl[unit_num].type = unit_data.type + units_tbl[unit_num].skill = unit_data.skill --will be nil for statics + units_tbl[unit_num].unitId = unit_data.unitId + units_tbl[unit_num].category = category + units_tbl[unit_num].coalition = coa_name + units_tbl[unit_num].country = countryName + units_tbl[unit_num].countryId = cntry_data.id + units_tbl[unit_num].heading = unit_data.heading + units_tbl[unit_num].playerCanDrive = unit_data.playerCanDrive + units_tbl[unit_num].alt = unit_data.alt + units_tbl[unit_num].alt_type = unit_data.alt_type + units_tbl[unit_num].speed = unit_data.speed + units_tbl[unit_num].livery_id = unit_data.livery_id + if unit_data.point then --ME currently does not work like this, but it might one day + units_tbl[unit_num].point = unit_data.point + else + units_tbl[unit_num].point = {} + units_tbl[unit_num].point.x = unit_data.x + units_tbl[unit_num].point.y = unit_data.y + end + units_tbl[unit_num].x = unit_data.x + units_tbl[unit_num].y = unit_data.y + + units_tbl[unit_num].callsign = unit_data.callsign + units_tbl[unit_num].onboard_num = unit_data.onboard_num + units_tbl[unit_num].hardpoint_racks = unit_data.hardpoint_racks + units_tbl[unit_num].psi = unit_data.psi + + + units_tbl[unit_num].groupName = groupName + units_tbl[unit_num].groupId = group_data.groupId + + if unit_data.AddPropAircraft then + units_tbl[unit_num].AddPropAircraft = unit_data.AddPropAircraft + end + + if category == 'static' then + units_tbl[unit_num].categoryStatic = unit_data.category + units_tbl[unit_num].shape_name = unit_data.shape_name + if unit_data.mass then + units_tbl[unit_num].mass = unit_data.mass + end + + if unit_data.canCargo then + units_tbl[unit_num].canCargo = unit_data.canCargo + end + end + + end --for unit_num, unit_data in pairs(group_data.units) do + end --if group_data and group_data.units then + end --for group_num, group_data in pairs(obj_type_data.group) do + end --if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then + end --if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" or obj_type_name == "static" then + end --for obj_type_name, obj_type_data in pairs(cntry_data) do + end --if type(cntry_data) == 'table' then + end --for cntry_id, cntry_data in pairs(coa_data.country) do + end --if coa_data.country then --there is a country table + end --if coa_name == 'red' or coa_name == 'blue' and type(coa_data) == 'table' then + end --for coa_name, coa_data in pairs(mission.coalition) do + + mist.DBs.unitsByName = {} + mist.DBs.unitsById = {} + mist.DBs.unitsByCat = {} + + mist.DBs.unitsByCat.helicopter = {} -- adding default categories + mist.DBs.unitsByCat.plane = {} + mist.DBs.unitsByCat.ship = {} + mist.DBs.unitsByCat.static = {} + mist.DBs.unitsByCat.vehicle = {} + + mist.DBs.unitsByNum = {} + + mist.DBs.groupsByName = {} + mist.DBs.groupsById = {} + mist.DBs.humansByName = {} + mist.DBs.humansById = {} + + mist.DBs.dynGroupsAdded = {} -- will be filled by mist.dbUpdate from dynamically spawned groups + mist.DBs.activeHumans = {} + + mist.DBs.aliveUnits = {} -- will be filled in by the "updateAliveUnits" coroutine in mist.main. + + mist.DBs.removedAliveUnits = {} -- will be filled in by the "updateAliveUnits" coroutine in mist.main. + + mist.DBs.const = {} + + -- not accessible by SSE, must use static list :-/ + mist.DBs.const.callsigns = { + ['NATO'] = { + ['rules'] = { + ['groupLimit'] = 9, + }, + ['AWACS'] = { + ['Overlord'] = 1, + ['Magic'] = 2, + ['Wizard'] = 3, + ['Focus'] = 4, + ['Darkstar'] = 5, + }, + ['TANKER'] = { + ['Texaco'] = 1, + ['Arco'] = 2, + ['Shell'] = 3, + }, + ['JTAC'] = { + ['Axeman'] = 1, + ['Darknight'] = 2, + ['Warrior'] = 3, + ['Pointer'] = 4, + ['Eyeball'] = 5, + ['Moonbeam'] = 6, + ['Whiplash'] = 7, + ['Finger'] = 8, + ['Pinpoint'] = 9, + ['Ferret'] = 10, + ['Shaba'] = 11, + ['Playboy'] = 12, + ['Hammer'] = 13, + ['Jaguar'] = 14, + ['Deathstar'] = 15, + ['Anvil'] = 16, + ['Firefly'] = 17, + ['Mantis'] = 18, + ['Badger'] = 19, + }, + ['aircraft'] = { + ['Enfield'] = 1, + ['Springfield'] = 2, + ['Uzi'] = 3, + ['Colt'] = 4, + ['Dodge'] = 5, + ['Ford'] = 6, + ['Chevy'] = 7, + ['Pontiac'] = 8, + }, + + ['unique'] = { + ['A10'] = { + ['Hawg'] = 9, + ['Boar'] = 10, + ['Pig'] = 11, + ['Tusk'] = 12, + ['rules'] = { + ['canUseAircraft'] = true, + ['appliesTo'] = { + 'A-10C', + 'A-10A', + }, + }, + }, + }, + }, + } + mist.DBs.const.shapeNames = { + ["Landmine"] = "landmine", + ["FARP CP Blindage"] = "kp_ug", + ["Subsidiary structure C"] = "saray-c", + ["Barracks 2"] = "kazarma2", + ["Small house 2C"] = "dom2c", + ["Military staff"] = "aviashtab", + ["Tech hangar A"] = "ceh_ang_a", + ["Oil derrick"] = "neftevyshka", + ["Tech combine"] = "kombinat", + ["Garage B"] = "garage_b", + ["Airshow_Crowd"] = "Crowd1", + ["Hangar A"] = "angar_a", + ["Repair workshop"] = "tech", + ["Subsidiary structure D"] = "saray-d", + ["FARP Ammo Dump Coating"] = "SetkaKP", + ["Small house 1C area"] = "dom2c-all", + ["Tank 2"] = "airbase_tbilisi_tank_01", + ["Boiler-house A"] = "kotelnaya_a", + ["Workshop A"] = "tec_a", + ["Small werehouse 1"] = "s1", + ["Garage small B"] = "garagh-small-b", + ["Small werehouse 4"] = "s4", + ["Shop"] = "magazin", + ["Subsidiary structure B"] = "saray-b", + ["FARP Fuel Depot"] = "GSM Rus", + ["Coach cargo"] = "wagon-gruz", + ["Electric power box"] = "tr_budka", + ["Tank 3"] = "airbase_tbilisi_tank_02", + ["Red_Flag"] = "H-flag_R", + ["Container red 3"] = "konteiner_red3", + ["Garage A"] = "garage_a", + ["Hangar B"] = "angar_b", + ["Black_Tyre"] = "H-tyre_B", + ["Cafe"] = "stolovaya", + ["Restaurant 1"] = "restoran1", + ["Subsidiary structure A"] = "saray-a", + ["Container white"] = "konteiner_white", + ["Warehouse"] = "sklad", + ["Tank"] = "bak", + ["Railway crossing B"] = "pereezd_small", + ["Subsidiary structure F"] = "saray-f", + ["Farm A"] = "ferma_a", + ["Small werehouse 3"] = "s3", + ["Water tower A"] = "wodokachka_a", + ["Railway station"] = "r_vok_sd", + ["Coach a tank blue"] = "wagon-cisterna_blue", + ["Supermarket A"] = "uniwersam_a", + ["Coach a platform"] = "wagon-platforma", + ["Garage small A"] = "garagh-small-a", + ["TV tower"] = "tele_bash", + ["Comms tower M"] = "tele_bash_m", + ["Small house 1A"] = "domik1a", + ["Farm B"] = "ferma_b", + ["GeneratorF"] = "GeneratorF", + ["Cargo1"] = "ab-212_cargo", + ["Container red 2"] = "konteiner_red2", + ["Subsidiary structure E"] = "saray-e", + ["Coach a passenger"] = "wagon-pass", + ["Black_Tyre_WF"] = "H-tyre_B_WF", + ["Electric locomotive"] = "elektrowoz", + ["Shelter"] = "ukrytie", + ["Coach a tank yellow"] = "wagon-cisterna_yellow", + ["Railway crossing A"] = "pereezd_big", + [".Ammunition depot"] = "SkladC", + ["Small werehouse 2"] = "s2", + ["Windsock"] = "H-Windsock_RW", + ["Shelter B"] = "ukrytie_b", + ["Fuel tank"] = "toplivo-bak", + ["Locomotive"] = "teplowoz", + [".Command Center"] = "ComCenter", + ["Pump station"] = "nasos", + ["Black_Tyre_RF"] = "H-tyre_B_RF", + ["Coach cargo open"] = "wagon-gruz-otkr", + ["Subsidiary structure 3"] = "hozdomik3", + ["FARP Tent"] = "PalatkaB", + ["White_Tyre"] = "H-tyre_W", + ["Subsidiary structure G"] = "saray-g", + ["Container red 1"] = "konteiner_red1", + ["Small house 1B area"] = "domik1b-all", + ["Subsidiary structure 1"] = "hozdomik1", + ["Container brown"] = "konteiner_brown", + ["Small house 1B"] = "domik1b", + ["Subsidiary structure 2"] = "hozdomik2", + ["Chemical tank A"] = "him_bak_a", + ["WC"] = "WC", + ["Small house 1A area"] = "domik1a-all", + ["White_Flag"] = "H-Flag_W", + ["Airshow_Cone"] = "Comp_cone", + } + + + -- create mist.DBs.oldAliveUnits + -- do + -- local intermediate_alive_units = {} -- between 0 and 0.5 secs old + -- local function make_old_alive_units() -- called every 0.5 secs, makes the old_alive_units DB which is just a copy of alive_units that is 0.5 to 1 sec old + -- if intermediate_alive_units then + -- mist.DBs.oldAliveUnits = mist.utils.deepCopy(intermediate_alive_units) + -- end + -- intermediate_alive_units = mist.utils.deepCopy(mist.DBs.aliveUnits) + -- timer.scheduleFunction(make_old_alive_units, nil, timer.getTime() + 0.5) + -- end + + -- make_old_alive_units() + -- end + + --Build DBs + for coa_name, coa_data in pairs(mist.DBs.units) do + for cntry_name, cntry_data in pairs(coa_data) do + for category_name, category_data in pairs(cntry_data) do + if type(category_data) == 'table' then + for group_ind, group_data in pairs(category_data) do + if type(group_data) == 'table' and group_data.units and type(group_data.units) == 'table' and #group_data.units > 0 then -- OCD paradigm programming + mist.DBs.groupsByName[group_data.groupName] = mist.utils.deepCopy(group_data) + mist.DBs.groupsById[group_data.groupId] = mist.utils.deepCopy(group_data) + for unit_ind, unit_data in pairs(group_data.units) do + mist.DBs.unitsByName[unit_data.unitName] = mist.utils.deepCopy(unit_data) + mist.DBs.unitsById[unit_data.unitId] = mist.utils.deepCopy(unit_data) + + mist.DBs.unitsByCat[unit_data.category] = mist.DBs.unitsByCat[unit_data.category] or {} -- future-proofing against new categories... + table.insert(mist.DBs.unitsByCat[unit_data.category], mist.utils.deepCopy(unit_data)) + dbLog:info('inserting $1', unit_data.unitName) + table.insert(mist.DBs.unitsByNum, mist.utils.deepCopy(unit_data)) + + if unit_data.skill and (unit_data.skill == "Client" or unit_data.skill == "Player") then + mist.DBs.humansByName[unit_data.unitName] = mist.utils.deepCopy(unit_data) + mist.DBs.humansById[unit_data.unitId] = mist.utils.deepCopy(unit_data) + --if Unit.getByName(unit_data.unitName) then + -- mist.DBs.activeHumans[unit_data.unitName] = mist.utils.deepCopy(unit_data) + -- mist.DBs.activeHumans[unit_data.unitName].playerName = Unit.getByName(unit_data.unitName):getPlayerName() + --end + end + end + end + end + end + end + end + end + + --DynDBs + mist.DBs.MEunits = mist.utils.deepCopy(mist.DBs.units) + mist.DBs.MEunitsByName = mist.utils.deepCopy(mist.DBs.unitsByName) + mist.DBs.MEunitsById = mist.utils.deepCopy(mist.DBs.unitsById) + mist.DBs.MEunitsByCat = mist.utils.deepCopy(mist.DBs.unitsByCat) + mist.DBs.MEunitsByNum = mist.utils.deepCopy(mist.DBs.unitsByNum) + mist.DBs.MEgroupsByName = mist.utils.deepCopy(mist.DBs.groupsByName) + mist.DBs.MEgroupsById = mist.utils.deepCopy(mist.DBs.groupsById) + + mist.DBs.deadObjects = {} + + do + local mt = {} + + function mt.__newindex(t, key, val) + local original_key = key --only for duplicate runtime IDs. + local key_ind = 1 + while mist.DBs.deadObjects[key] do + dbLog:warn('duplicate runtime id of previously dead object key: $1', key) + key = tostring(original_key) .. ' #' .. tostring(key_ind) + key_ind = key_ind + 1 + end + + if mist.DBs.aliveUnits and mist.DBs.aliveUnits[val.object.id_] then + --dbLog:info('object found in alive_units') + val.objectData = mist.utils.deepCopy(mist.DBs.aliveUnits[val.object.id_]) + local pos = Object.getPosition(val.object) + if pos then + val.objectPos = pos.p + end + val.objectType = mist.DBs.aliveUnits[val.object.id_].category + + elseif mist.DBs.removedAliveUnits and mist.DBs.removedAliveUnits[val.object.id_] then -- it didn't exist in alive_units, check old_alive_units + --dbLog:info('object found in old_alive_units') + val.objectData = mist.utils.deepCopy(mist.DBs.removedAliveUnits[val.object.id_]) + local pos = Object.getPosition(val.object) + if pos then + val.objectPos = pos.p + end + val.objectType = mist.DBs.removedAliveUnits[val.object.id_].category + + else --attempt to determine if static object... + --dbLog:info('object not found in alive units or old alive units') + local pos = Object.getPosition(val.object) + if pos then + local static_found = false + for ind, static in pairs(mist.DBs.unitsByCat.static) do + if ((pos.p.x - static.point.x)^2 + (pos.p.z - static.point.y)^2)^0.5 < 0.1 then --really, it should be zero... + dbLog:info('correlated dead static object to position') + val.objectData = static + val.objectPos = pos.p + val.objectType = 'static' + static_found = true + break + end + end + if not static_found then + val.objectPos = pos.p + val.objectType = 'building' + end + else + val.objectType = 'unknown' + end + end + rawset(t, key, val) + end + + setmetatable(mist.DBs.deadObjects, mt) + end + + do -- mist unitID funcs + for id, idData in pairs(mist.DBs.unitsById) do + if idData.unitId > mist.nextUnitId then + mist.nextUnitId = mist.utils.deepCopy(idData.unitId) + end + if idData.groupId > mist.nextGroupId then + mist.nextGroupId = mist.utils.deepCopy(idData.groupId) + end + end + end + + + end + + local function updateAliveUnits() -- coroutine function local lalive_units = mist.DBs.aliveUnits -- local references for faster execution local lunits = mist.DBs.unitsByNum local ldeepcopy = mist.utils.deepCopy local lUnit = Unit local lremovedAliveUnits = mist.DBs.removedAliveUnits local updatedUnits = {} - + if #lunits > 0 then local units_per_run = math.ceil(#lunits/20) if units_per_run < 5 then units_per_run = 5 end - + for i = 1, #lunits do if lunits[i].category ~= 'static' then -- can't get statics with Unit.getByName :( local unit = lUnit.getByName(lunits[i].unitName) if unit then - --print('unit named ' .. lunits[i].unitName .. ' alive!') + --dbLog:info("unit named $1 alive!", lunits[i].unitName) -- spammy local pos = unit:getPosition() local newtbl = ldeepcopy(lunits[i]) if pos then - newtbl['pos'] = pos.p + newtbl.pos = pos.p end - newtbl['unit'] = unit - --newtbl['rt_id'] = unit.id_ + newtbl.unit = unit + --newtbl.rt_id = unit.id_ lalive_units[unit.id_] = newtbl updatedUnits[unit.id_] = true end end - if i%units_per_run == 0 then - --print('yielding at: ' .. tostring(i)) + if i%units_per_run == 0 then coroutine.yield() - --print('resuming at: ' .. tostring(i)) end end -- All units updated, remove any "alive" units that were not updated- they are dead! @@ -73,34 +610,29 @@ do end end end - - local function dbUpdate(event) + + local function dbUpdate(event, objType) + dbLog:info('dbUpdate') local newTable = {} - - newTable['startTime'] = 0 - - if type(event) == 'string' then -- if name of an object. + newTable.startTime = 0 + if type(event) == 'string' then -- if name of an object. local newObject - local newType = 'group' if Group.getByName(event) then newObject = Group.getByName(event) elseif StaticObject.getByName(event) then newObject = StaticObject.getByName(event) - newType = 'static' - -- env.info('its static') + -- log:info('its static') else - env.info('WTF') + log:warn('$1 is not a Unit or Static Object. This should not be possible', event) return false end - - newTable.name = newObject:getName() newTable.groupId = tonumber(newObject:getID()) newTable.groupName = newObject:getName() - local unitOneRef - if newType == 'static' then - unitOneRef = newObject + local unitOneRef + if objType == 'static' then + unitOneRef = newObject newTable.countryId = tonumber(newObject:getCountry()) newTable.coalitionId = tonumber(newObject:getCoalition()) newTable.category = 'static' @@ -112,25 +644,25 @@ do end for countryData, countryId in pairs(country.id) do if newTable.country and string.upper(countryData) == string.upper(newTable.country) or countryId == newTable.countryId then - newTable['countryId'] = countryId - newTable['country'] = string.lower(countryData) + newTable.countryId = countryId + newTable.country = string.lower(countryData) for coaData, coaId in pairs(coalition.side) do - if coaId == coalition.getCountryCoalition(countryId) then - newTable['coalition'] = string.lower(coaData) + if coaId == coalition.getCountryCoalition(countryId) then + newTable.coalition = string.lower(coaData) end end end end for catData, catId in pairs(Unit.Category) do - if newType == 'group' and Group.getByName(newTable.groupName):isExist() then + if objType == 'group' and Group.getByName(newTable.groupName):isExist() then if catId == Group.getByName(newTable.groupName):getCategory() then - newTable['category'] = string.lower(catData) + newTable.category = string.lower(catData) end - elseif newType == 'static' and StaticObject.getByName(newTable.groupName):isExist() then + elseif objType == 'static' and StaticObject.getByName(newTable.groupName):isExist() then if catId == StaticObject.getByName(newTable.groupName):getCategory() then - newTable['category'] = string.lower(catData) + newTable.category = string.lower(catData) end - + end end local gfound = false @@ -146,18 +678,18 @@ do mistAddedGroups[index] = nil end end - + if gfound == false then newTable.uncontrolled = false newTable.hidden = false end - + newTable.units = {} - if newType == 'group' then + if objType == 'group' then for unitId, unitData in pairs(unitOneRef) do newTable.units[unitId] = {} newTable.units[unitId].unitName = unitData:getName() - + newTable.units[unitId].x = mist.utils.round(unitData:getPosition().p.x) newTable.units[unitId].y = mist.utils.round(unitData:getPosition().p.z) newTable.units[unitId].point = {} @@ -165,13 +697,13 @@ do newTable.units[unitId].point.y = newTable.units[unitId].y newTable.units[unitId].alt = mist.utils.round(unitData:getPosition().p.y) newTable.units[unitId].speed = mist.vec.mag(unitData:getVelocity()) - + newTable.units[unitId].heading = mist.getHeading(unitData, true) newTable.units[unitId].type = unitData:getTypeName() newTable.units[unitId].unitId = tonumber(unitData:getID()) - - + + newTable.units[unitId].groupName = newTable.groupName newTable.units[unitId].groupId = newTable.groupId newTable.units[unitId].countryId = newTable.countryId @@ -191,10 +723,10 @@ do end if found == false then newTable.units[unitId].skill = "High" - newTable.units[unitId].alt_type = "BARO" + newTable.units[unitId].alt_type = "BARO" end end - + end else -- its a static newTable.category = 'static' @@ -225,7 +757,7 @@ do newTable.units[1].canCargo = true newTable.units[1].shape_name = 'ab-212_cargo' end - + ----- search mist added objects for extra data if applicable for index, data in pairs(mistAddedObjects) do if mist.stringMatch(data.name, newTable.units[1].unitName) == true then @@ -242,332 +774,499 @@ do end end --mist.debug.writeData(mist.utils.serialize,{'msg', newTable}, timer.getAbsTime() ..'Group.lua') - newTable['timeAdded'] = timer.getAbsTime() -- only on the dynGroupsAdded table. For other reference, see start time + newTable.timeAdded = timer.getAbsTime() -- only on the dynGroupsAdded table. For other reference, see start time --mist.debug.dumpDBs() --end - + dbLog:info('endDbUpdate') return newTable end - + --[[DB update code... FRACK. I need to refactor some of it. - local function checkSpawnedEvents() - if #tempSpawnedUnits > 0 then - local groupsToAdd = {} - local added = false - local ltemp = tempSpawnedUnits - local ltable = table - - local updatesPerRun = math.ceil(#tempSpawnedUnits/20) + The problem is that the DBs need to account better for shared object names. Needs to write over some data and outright remove other. + + If groupName is used then entire group needs to be rewritten + what to do with old groups units DB entries?. Names cant be assumed to be the same. + + + -- new spawn event check. + -- event handler filters everything into groups: tempSpawnedGroups + -- this function then checks DBs to see if data has changed + ]] + local function checkSpawnedEventsNew() + if tempSpawnGroupsCounter > 0 then + --[[local updatesPerRun = math.ceil(#tempSpawnedGroupsCounter/20) if updatesPerRun < 5 then updatesPerRun = 5 - end - for x = 1, #tempSpawnedUnits do - local spawnedObj = ltemp[x] - if spawnedObj and spawnedObj:isExist() then - local found = false - for name, val in pairs(groupsToAdd) do - if spawnedObj:getCategory() == 1 then -- normal groups - if mist.stringMatch(spawnedObj:getGroup():getName(), name) == true then - found = true - break - end - elseif spawnedObj:getCategory() == 3 or spawnedObj:getCategory() == 6 then -- static objects - if mist.stringMatch(spawnedObj:getName(), name) == true then - found = true - break - end + end]] + + dbLog:info('iterate') + for name, gType in pairs(tempSpawnedGroups) do + dbLog:info(name) + local updated = false + + if mist.DBs.groupsByName[name] then + -- first check group level properties, groupId, countryId, coalition + dbLog:info('Found in DBs, check if updated') + local dbTable = mist.DBs.groupsByName[name] + dbLog:info(dbTable) + if gType ~= 'static' then + dbLog:info('Not static') + local _g = Group.getByName(name) + local _u = _g:getUnit(1) + if dbTable.groupId ~= tonumber(_g:getID()) or _u:getCountry() ~= dbTable.countryId or _u:getCoalition() ~= dbTable.coaltionId then + dbLog:info('Group Data mismatch') + updated = true + else + dbLog:info('No Mismatch') end + end - -- for some reason cargo objects are returning as category == 6. - if found == false then - added = true - if spawnedObj:getCategory() == 1 then -- normal groups - groupsToAdd[spawnedObj:getGroup():getName()] = true - elseif spawnedObj:getCategory() == 3 or spawnedObj:getCategory() == 6 then -- static objects - groupsToAdd[spawnedObj:getName()] = true + end + dbLog:info('Updated: $1', updated) + if updated == false and gType ~= 'static' then -- time to check units + dbLog:info('No Group Mismatch, Check Units') + for index, uObject in pairs(Group.getByName(name):getUnits()) do + dbLog:info(index) + if mist.DBs.unitsByName[uObject:getName()] then + dbLog:info('UnitByName table exists') + local uTable = mist.DBs.unitsByName[uObject:getName()] + if tonumber(uObject:getID()) ~= uTable.unitId or uObject:getTypeName() ~= uTable.type then + dbLog:info('Unit Data mismatch') + updated = true + break + end end - end end - - table.remove(ltemp, x) - if x%updatesPerRun == 0 then - coroutine.yield() - end - end - - if added == true then - for groupName, val in pairs(groupsToAdd) do - local dataChanged = false - if mist.DBs.groupsByName[groupName] then - for _index, data in pairs(mist.DBs.groupsByName[groupName]) do - if data.unitName ~= spawnedObj:getName() and data.unitId ~= spawnedObj:getID() and data.type ~= spawnedObj:getTypeName() then - dataChanged = true - break - end - end - if dataChanged == false then - groupsToAdd[groupName] = false - end - end - if groupsToAdd[groupName] == true or not mist.DBs.groupsByName[groupName] then - writeGroups[#writeGroups + 1] = dbUpdate(groupName) - end + + if updated == true or not mist.DBs.groupsByName[name] then + dbLog:info('Get Table') + writeGroups[#writeGroups+1] = {data = dbUpdate(name, gType), isUpdated = updated} + end - end - end + -- Work done, so remove + tempSpawnedGroups[name] = nil + tempSpawnGroupsCounter = tempSpawnGroupsCounter - 1 + end + end end - local function updateDBTables() - - local i = 0 - for index, newTable in pairs(writeGroups) do - i = i + 1 - end + local i = #writeGroups + local savesPerRun = math.ceil(i/10) if savesPerRun < 5 then savesPerRun = 5 end if i > 0 then + dbLog:info('updateDBTables') local ldeepCopy = mist.utils.deepCopy for x = 1, i do - local newTable = writeGroups[x] - local mistCategory + dbLog:info(writeGroups[x]) + local newTable = writeGroups[x].data + local updated = writeGroups[x].isUpdated + local mistCategory if type(newTable.category) == 'string' then mistCategory = string.lower(newTable.category) end - if string.upper(newTable['category']) == 'GROUND_UNIT' then + if string.upper(newTable.category) == 'GROUND_UNIT' then mistCategory = 'vehicle' - newTable['category'] = mistCategory - elseif string.upper(newTable['category']) == 'AIRPLANE' then + newTable.category = mistCategory + elseif string.upper(newTable.category) == 'AIRPLANE' then mistCategory = 'plane' - newTable['category'] = mistCategory - elseif string.upper(newTable['category']) == 'HELICOPTER' then + newTable.category = mistCategory + elseif string.upper(newTable.category) == 'HELICOPTER' then mistCategory = 'helicopter' - newTable['category'] = mistCategory - elseif string.upper(newTable['category']) == 'SHIP' then + newTable.category = mistCategory + elseif string.upper(newTable.category) == 'SHIP' then mistCategory = 'ship' - newTable['category'] = mistCategory + newTable.category = mistCategory end + dbLog:info('Update unitsBy') for newId, newUnitData in pairs(newTable.units) do + dbLog:info(newId) newUnitData.category = mistCategory if newUnitData.unitId then - mist.DBs.unitsById[tonumber(newUnitData.unitId)] = ldeepCopy(newUnitData) + dbLog:info('byId') + mist.DBs.unitsById[tonumber(newUnitData.unitId)] = ldeepCopy(newUnitData) + end + dbLog:info(updated) + if mist.DBs.unitsByName[newUnitData.unitName] and updated == true then--if unit existed before and something was updated, write over the entry for a given unit name just in case. + dbLog:info('Updating Unit Tables') + for i = 1, #mist.DBs.unitsByCat[mistCategory] do + if mist.DBs.unitsByCat[mistCategory][i].unitName == newUnitData.unitName then + dbLog:info('Entry Found, Rewriting for unitsByCat') + mist.DBs.unitsByCat[mistCategory][i] = ldeepCopy(newUnitData) + break + end + end + for i = 1, #mist.DBs.unitsByNum do + if mist.DBs.unitsByNum[i].unitName == newUnitData.unitName then + dbLog:info('Entry Found, Rewriting for unitsByNum') + mist.DBs.unitsByNum[i] = ldeepCopy(newUnitData) + break + end + end + + else + dbLog:info('Unitname not in use, add as normal') + mist.DBs.unitsByCat[mistCategory][#mist.DBs.unitsByCat[mistCategory] + 1] = ldeepCopy(newUnitData) + mist.DBs.unitsByNum[#mist.DBs.unitsByNum + 1] = ldeepCopy(newUnitData) end - mist.DBs.unitsByName[newUnitData.unitName] = ldeepCopy(newUnitData) - mist.DBs.unitsByCat[mistCategory][#mist.DBs.unitsByCat[mistCategory] + 1] = ldeepCopy(newUnitData) - mist.DBs.unitsByNum[#mist.DBs.unitsByNum + 1] = ldeepCopy(newUnitData) + + end - -- this is a really annoying DB to populate. Gotta create new tables in case its missing + -- this is a really annoying DB to populate. Gotta create new tables in case its missing + dbLog:info('write mist.DBs.units') if not mist.DBs.units[newTable.coalition] then mist.DBs.units[newTable.coalition] = {} end if not mist.DBs.units[newTable.coalition][newTable.country] then mist.DBs.units[newTable.coalition][(newTable.country)] = {} - mist.DBs.units[newTable.coalition][(newTable.country)]['countryId'] = newTable.countryId + mist.DBs.units[newTable.coalition][(newTable.country)].countryId = newTable.countryId end if not mist.DBs.units[newTable.coalition][newTable.country][mistCategory] then mist.DBs.units[newTable.coalition][(newTable.country)][mistCategory] = {} end - mist.DBs.units[newTable.coalition][(newTable.country)][mistCategory][#mist.DBs.units[newTable.coalition][(newTable.country)][mistCategory] + 1] = ldeepCopy(newTable) + if updated == true then + dbLog:info('Updating DBsUnits') + for i = 1, #mist.DBs.units[newTable.coalition][(newTable.country)][mistCategory] do + if mist.DBs.units[newTable.coalition][(newTable.country)][mistCategory][i].groupName == newTable.groupName then + dbLog:info('Entry Found, Rewriting') + mist.DBs.units[newTable.coalition][(newTable.country)][mistCategory][i] = ldeepCopy(newTable) + break + end + end + else + mist.DBs.units[newTable.coalition][(newTable.country)][mistCategory][#mist.DBs.units[newTable.coalition][(newTable.country)][mistCategory] + 1] = ldeepCopy(newTable) + end + + if newTable.groupId then mist.DBs.groupsById[newTable.groupId] = ldeepCopy(newTable) end - + mist.DBs.groupsByName[newTable.name] = ldeepCopy(newTable) mist.DBs.dynGroupsAdded[#mist.DBs.dynGroupsAdded + 1] = ldeepCopy(newTable) - + writeGroups[x] = nil - if x%savesPerRun == 0 then + if x%savesPerRun == 0 then coroutine.yield() end end if timer.getTime() > lastUpdateTime then lastUpdateTime = timer.getTime() end + dbLog:info('endUpdateTables') end end - - local update_alive_units_counter = 0 - local write_DB_table_counter = 0 - local check_spawn_events_counter = 0 - - -- THE MAIN FUNCTION -- Accessed 100 times/sec. - mist.main = function() - timer.scheduleFunction(mist.main, {}, timer.getTime() + 0.01) --reschedule first in case of Lua error - ---------------------------------------------------------------------------------------------------------- - --area to add new stuff in - write_DB_table_counter = write_DB_table_counter + 1 - if write_DB_table_counter == 10 then + + local function groupSpawned(event) + -- dont need to add units spawned in at the start of the mission if mist is loaded in init line + if event.id == world.event.S_EVENT_BIRTH and timer.getTime0() < timer.getAbsTime() then + dbLog:info('unitSpawnEvent') - write_DB_table_counter = 0 + --table.insert(tempSpawnedUnits,(event.initiator)) + ------- + -- New functionality below. + ------- + if Object.getCategory(event.initiator) == 1 and not Unit.getPlayerName(event.initiator) then -- simple player check, will need to later check to see if unit was spawned with a player in a flight + dbLog:info('Object is a Unit') + dbLog:info(Unit.getGroup(event.initiator):getName()) + if not tempSpawnedGroups[Unit.getGroup(event.initiator):getName()] then + dbLog:info('added') + tempSpawnedGroups[Unit.getGroup(event.initiator):getName()] = 'group' + tempSpawnGroupsCounter = tempSpawnGroupsCounter + 1 + end + elseif Object.getCategory(event.initiator) == 3 or Object.getCategory(event.initiator) == 6 then + dbLog:info('Object is Static') + tempSpawnedGroups[StaticObject.getName(event.initiator)] = 'static' + tempSpawnGroupsCounter = tempSpawnGroupsCounter + 1 + end + + + end + end + + local function doScheduledFunctions() + local i = 1 + while i <= #scheduledTasks do + if not scheduledTasks[i].rep then -- not a repeated process + if scheduledTasks[i].t <= timer.getTime() then + local task = scheduledTasks[i] -- local reference + table.remove(scheduledTasks, i) + local err, errmsg = pcall(task.f, unpack(task.vars, 1, table.maxn(task.vars))) + if not err then + log:error('Error in scheduled function: $1', errmsg) + end + --task.f(unpack(task.vars, 1, table.maxn(task.vars))) -- do the task, do not increment i + else + i = i + 1 + end + else + if scheduledTasks[i].st and scheduledTasks[i].st <= timer.getTime() then --if a stoptime was specified, and the stop time exceeded + table.remove(scheduledTasks, i) -- stop time exceeded, do not execute, do not increment i + elseif scheduledTasks[i].t <= timer.getTime() then + local task = scheduledTasks[i] -- local reference + task.t = timer.getTime() + task.rep --schedule next run + local err, errmsg = pcall(task.f, unpack(task.vars, 1, table.maxn(task.vars))) + if not err then + log:error('Error in scheduled function: $1' .. errmsg) + end + --scheduledTasks[i].f(unpack(scheduledTasks[i].vars, 1, table.maxn(scheduledTasks[i].vars))) -- do the task + i = i + 1 + else + i = i + 1 + end + end + end + end + + -- Event handler to start creating the dead_objects table + local function addDeadObject(event) + if event.id == world.event.S_EVENT_DEAD or event.id == world.event.S_EVENT_CRASH then + if event.initiator and event.initiator.id_ and event.initiator.id_ > 0 then + + local id = event.initiator.id_ -- initial ID, could change if there is a duplicate id_ already dead. + local val = {object = event.initiator} -- the new entry in mist.DBs.deadObjects. + + local original_id = id --only for duplicate runtime IDs. + local id_ind = 1 + while mist.DBs.deadObjects[id] do + --log:info('duplicate runtime id of previously dead object id: $1', id) + id = tostring(original_id) .. ' #' .. tostring(id_ind) + id_ind = id_ind + 1 + end + + if mist.DBs.aliveUnits and mist.DBs.aliveUnits[val.object.id_] then + --log:info('object found in alive_units') + val.objectData = mist.utils.deepCopy(mist.DBs.aliveUnits[val.object.id_]) + local pos = Object.getPosition(val.object) + if pos then + val.objectPos = pos.p + end + val.objectType = mist.DBs.aliveUnits[val.object.id_].category + --[[if mist.DBs.activeHumans[Unit.getName(val.object)] then + --trigger.action.outText('remove via death: ' .. Unit.getName(val.object),20) + mist.DBs.activeHumans[Unit.getName(val.object)] = nil + end]] + elseif mist.DBs.removedAliveUnits and mist.DBs.removedAliveUnits[val.object.id_] then -- it didn't exist in alive_units, check old_alive_units + --log:info('object found in old_alive_units') + val.objectData = mist.utils.deepCopy(mist.DBs.removedAliveUnits[val.object.id_]) + local pos = Object.getPosition(val.object) + if pos then + val.objectPos = pos.p + end + val.objectType = mist.DBs.removedAliveUnits[val.object.id_].category + + else --attempt to determine if static object... + --log:info('object not found in alive units or old alive units') + local pos = Object.getPosition(val.object) + if pos then + local static_found = false + for ind, static in pairs(mist.DBs.unitsByCat.static) do + if ((pos.p.x - static.point.x)^2 + (pos.p.z - static.point.y)^2)^0.5 < 0.1 then --really, it should be zero... + --log:info('correlated dead static object to position') + val.objectData = static + val.objectPos = pos.p + val.objectType = 'static' + static_found = true + break + end + end + if not static_found then + val.objectPos = pos.p + val.objectType = 'building' + end + else + val.objectType = 'unknown' + end + end + mist.DBs.deadObjects[id] = val + end + end + end + + --[[ + local function addClientsToActive(event) + if event.id == world.event.S_EVENT_PLAYER_ENTER_UNIT or event.id == world.event.S_EVENT_BIRTH then + log:info(event) + if Unit.getPlayerName(event.initiator) then + log:info(Unit.getPlayerName(event.initiator)) + local newU = mist.utils.deepCopy(mist.DBs.unitsByName[Unit.getName(event.initiator)]) + newU.playerName = Unit.getPlayerName(event.initiator) + mist.DBs.activeHumans[Unit.getName(event.initiator)] = newU + --trigger.action.outText('added: ' .. Unit.getName(event.initiator), 20) + end + elseif event.id == world.event.S_EVENT_PLAYER_LEAVE_UNIT and event.initiator then + if mist.DBs.activeHumans[Unit.getName(event.initiator)] then + mist.DBs.activeHumans[Unit.getName(event.initiator)] = nil + -- trigger.action.outText('removed via control: ' .. Unit.getName(event.initiator), 20) + end + end + end + + mist.addEventHandler(addClientsToActive) + ]] + + --- init function. + -- creates logger, adds default event handler + -- and calls main the first time. + -- @function mist.init + function mist.init() + -- create logger + mist.log = mist.Logger:new("MIST") + dbLog = mist.Logger:new('MISTDB', 'warning') + + log = mist.log -- log shorthand + -- set warning log level, showing only + -- warnings and errors + log:setLevel("warning") + + log:info("initializing databases") + initDBs() + + -- add event handler for group spawns + mist.addEventHandler(groupSpawned) + mist.addEventHandler(addDeadObject) + + -- call main the first time therafter it reschedules itself. + mist.main() + --log:msg('MIST version $1.$2.$3 loaded', mist.majorVersion, mist.minorVersion, mist.build) + return + end + + --- The main function. + -- Run 100 times per second. + -- You shouldn't call this function. + function mist.main() + timer.scheduleFunction(mist.main, {}, timer.getTime() + 0.01) --reschedule first in case of Lua error + + updateTenthSecond = updateTenthSecond + 1 + if updateTenthSecond == 10 then + updateTenthSecond = 0 + + checkSpawnedEventsNew() if not coroutines.updateDBTables then - coroutines['updateDBTables'] = coroutine.create(updateDBTables) + coroutines.updateDBTables = coroutine.create(updateDBTables) end - + coroutine.resume(coroutines.updateDBTables) - + if coroutine.status(coroutines.updateDBTables) == 'dead' then coroutines.updateDBTables = nil end end - check_spawn_events_counter = check_spawn_events_counter + 1 - if check_spawn_events_counter == 10 then - - check_spawn_events_counter = 0 - - if not coroutines.checkSpawnedEvents then - coroutines['checkSpawnedEvents'] = coroutine.create(checkSpawnedEvents) - end - - coroutine.resume(coroutines.checkSpawnedEvents) - - if coroutine.status(coroutines.checkSpawnedEvents) == 'dead' then - coroutines.checkSpawnedEvents = nil - end - end - - ----------------------------------------------------------------------------------------------------------- --updating alive units - update_alive_units_counter = update_alive_units_counter + 1 - if update_alive_units_counter == 5 then - update_alive_units_counter = 0 - - if not coroutines.update_alive_units then - coroutines['update_alive_units'] = coroutine.create(update_alive_units) + updateAliveUnitsCounter = updateAliveUnitsCounter + 1 + if updateAliveUnitsCounter == 5 then + updateAliveUnitsCounter = 0 + + if not coroutines.updateAliveUnits then + coroutines.updateAliveUnits = coroutine.create(updateAliveUnits) end - - coroutine.resume(coroutines.update_alive_units) - - if coroutine.status(coroutines.update_alive_units) == 'dead' then - coroutines.update_alive_units = nil + + coroutine.resume(coroutines.updateAliveUnits) + + if coroutine.status(coroutines.updateAliveUnits) == 'dead' then + coroutines.updateAliveUnits = nil end end - - mist.do_scheduled_functions() + + doScheduledFunctions() end -- end of mist.main - -------------------------------------------- - ------------ mist dyn add stuff for coroutines - local mistGpId = 7000 - local mistUnitId = 7000 - local mistDynAddIndex = 1 - - - mist.nextGroupId = 1 - mist.nextUnitId = 1 - - mist.getNextUnitId = function() + + --- Returns next unit id. + -- @treturn number next unit id. + function mist.getNextUnitId() mist.nextUnitId = mist.nextUnitId + 1 if mist.nextUnitId > 6900 then mist.nextUnitId = 14000 end return mist.nextUnitId end - - mist.getNextGroupId = function() + + --- Returns next group id. + -- @treturn number next group id. + function mist.getNextGroupId() mist.nextGroupId = mist.nextGroupId + 1 if mist.nextGroupId > 6900 then mist.nextGroupId = 14000 end return mist.nextGroupId end - - mist.getLastDBUpdateTime = function() + + --- Returns timestamp of last database update. + -- @treturn timestamp of last database update + function mist.getLastDBUpdateTime() return lastUpdateTime end - - local function groupSpawned(event) - if event.id == world.event.S_EVENT_BIRTH and timer.getTime0() < timer.getAbsTime()then -- dont need to add units spawned in at the start of the mission if mist is loaded in init line - table.insert(tempSpawnedUnits,(event.initiator)) - end - end - - - - mist.dynAddStatic = function(staticObj) - local newObj = {} - newObj.groupId = staticObj.groupId - newObj.category = staticObj.category - newObj.type = staticObj.type - newObj.unitId = staticObj.unitId - newObj.y = staticObj.y - newObj.x = staticObj.x - newObj.heading = staticObj.heading - newObj.name = staticObj.name - newObj.dead = staticObj.dead - newObj.country = staticObj.country - newObj.countryId = staticObj.countryId - newObj.clone = staticObj.clone - newObj.shape_name = staticObj.shape_name - newObj.canCargo = staticObj.canCargo - newObj.mass = staticObj.mass - newObj.categoryStatic = staticObj.categoryStatic - if staticObj.units then -- if its mist format - newObj.groupId = staticObj.units[1].groupId - newObj.category = staticObj.units[1].category - newObj.type = staticObj.units[1].type - newObj.unitId = staticObj.units[1].unitId - newObj.y = staticObj.units[1].y - newObj.x = staticObj.units[1].x - newObj.heading = staticObj.units[1].heading - newObj.name = staticObj.units[1].name - newObj.dead = staticObj.units[1].dead - newObj.country = staticObj.units[1].country - newObj.countryId = staticObj.units[1].countryId - newObj.shape_name = staticObj.units[1].shape_name - newObj.canCargo = staticObj.units[1].canCargo - newObj.mass = staticObj.units[1].mass - newObj.categoryStatic = staticObj.units[1].categoryStatic + --- Spawns a static object to the game world. + -- @todo write good docs + -- @tparam table staticObj table containing data needed for the object creation + function mist.dynAddStatic(newObj) + + if newObj.units and newObj.units[1] then -- if its mist format + for entry, val in pairs(newObj.units[1]) do + if newObj[entry] and newObj[entry] ~= val or not newObj[entry] then + newObj[entry] = val + end + end end + --log:info(newObj) - if not newObj.country then - return false - end - - local newCountry = newObj.country + local cntry = newObj.country if newObj.countryId then - newCountry = newObj.countryId - end + cntry = newObj.countryId + end + + local newCountry = '' + for countryId, countryName in pairs(country.name) do - if type(newObj.country) == 'string' then - if tostring(countryName) == string.upper(newObj.country) then + if type(cntry) == 'string' then + cntry = cntry:gsub("%s+", "_") + if tostring(countryName) == string.upper(cntry) then newCountry = countryName end - elseif type(newObj.country) == 'number' then - if countryId == newObj.country then + elseif type(cntry) == 'number' then + if countryId == cntry then newCountry = countryName end end end + if newCountry == '' then + log:error("Country not found: $1", cntry) + return false + end + if newObj.clone or not newObj.groupId then - mistGpId = mistGpId + 1 + mistGpId = mistGpId + 1 newObj.groupId = mistGpId end - + if newObj.clone or not newObj.unitId then - mistUnitId = mistUnitId + 1 + mistUnitId = mistUnitId + 1 newObj.unitId = mistUnitId end - + if newObj.clone or not newObj.name then - mistDynAddIndex = mistDynAddIndex + 1 - newObj.name = (country.name[newCountry] .. ' static ' .. mistDynAddIndex) + mistDynAddIndex[' static '] = mistDynAddIndex[' static '] + 1 + newObj.name = (newCountry .. ' static ' .. mistDynAddIndex[' static ']) end - + if not newObj.dead then newObj.dead = false end - + if not newObj.heading then newObj.heading = math.random(360) end @@ -578,213 +1277,223 @@ do if newObj.mass then newObj.category = 'Cargos' end + + if newObj.shapeName then + newObj.shape_name = newObj.shapeName + end + + if not newObj.shape_name then + log:info('shape_name not present') + if mist.DBs.const.shapeNames[newObj.type] then + newObj.shape_name = mist.DBs.const.shapeNames[newObj.type] + end + end + mistAddedObjects[#mistAddedObjects + 1] = mist.utils.deepCopy(newObj) if newObj.x and newObj.y and newObj.type and type(newObj.x) == 'number' and type(newObj.y) == 'number' and type(newObj.type) == 'string' then + --log:info('addStaticObject') coalition.addStaticObject(country.id[newCountry], newObj) return newObj - end + end + log:error("Failed to add static object due to missing or incorrect value. X: $1, Y: $2, Type: $3", newObj.x, newObj.y, newObj.type) return false end - mist.dynAdd = function(newGroup) -- same as coalition.add function in SSE. checks the passed data to see if its valid. ---Will generate groupId, groupName, unitId, and unitName if needed --- - - + --- Spawns a dynamic group into the game world. + -- Same as coalition.add function in SSE. checks the passed data to see if its valid. + -- Will generate groupId, groupName, unitId, and unitName if needed + -- @tparam table newGroup table containting values needed for spawning a group. + function mist.dynAdd(newGroup) - --mist.debug.writeData(mist.utils.serialize,{'msg', newGroup}, 'newGroupOrig.lua') - local cntry = newGroup.country - if newGroup.countryId then - cntry = newGroup.countryId - end - - local groupType = newGroup.category - local newCountry = '' - -- validate data - for countryId, countryName in pairs(country.name) do - if type(cntry) == 'string' then - cntry = cntry:gsub("%s+", "_") - if tostring(countryName) == string.upper(cntry) then - newCountry = countryName - end - elseif type(cntry) == 'number' then - if countryId == cntry then - newCountry = countryName - end + --mist.debug.writeData(mist.utils.serialize,{'msg', newGroup}, 'newGroupOrig.lua') + local cntry = newGroup.country + if newGroup.countryId then + cntry = newGroup.countryId end - end - - if newCountry == '' then - return false - end - - local newCat = '' - for catName, catId in pairs(Unit.Category) do - if type(groupType) == 'string' then - if tostring(catName) == string.upper(groupType) then - newCat = catName - end - elseif type(groupType) == 'number' then - if catId == groupType then - newCat = catName - end - end - - if catName == 'GROUND_UNIT' and (string.upper(groupType) == 'VEHICLE' or string.upper(groupType) == 'GROUND') then - newCat = 'GROUND_UNIT' - elseif catName == 'AIRPLANE' and string.upper(groupType) == 'PLANE' then - newCat = 'AIRPLANE' - end - end - local typeName - if newCat == 'GROUND_UNIT' then - typeName = ' gnd ' - elseif newCat == 'AIRPLANE' then - typeName = ' air ' - elseif newCat == 'HELICOPTER' then - typeName = ' hel ' - elseif newCat == 'SHIP' then - typeName = ' shp ' - elseif newCat == 'BUILDING' then - typeName = ' bld ' - end - if newGroup.clone or not newGroup.groupId then - mistDynAddIndex = mistDynAddIndex + 1 - mistGpId = mistGpId + 1 - newGroup.groupId = mistGpId - end - if newGroup.groupName or newGroup.name then - if newGroup.groupName then - newGroup['name'] = newGroup.groupName - elseif newGroup.name then - newGroup['name'] = newGroup.name - end - end - - if newGroup.clone and mist.DBs.groupsByName[newGroup.name] or not newGroup.name then - newGroup['name'] = tostring(tostring(country.name[cntry]) .. tostring(typeName) .. mistDynAddIndex) - end - - if not newGroup.hidden then - newGroup.hidden = false - end - - if not newGroup.visible then - newGroup.visible = false - end - - if (newGroup.start_time and type(newGroup.start_time) ~= 'number') or not newGroup.start_time then - if newGroup.startTime then - newGroup.start_time = mist.utils.round(newGroup.startTime) - else - newGroup.start_time = 0 - end - end - - - for unitIndex, unitData in pairs(newGroup.units) do - local originalName = newGroup.units[unitIndex].unitName or newGroup.units[unitIndex].name - if newGroup.clone or not unitData.unitId then - mistUnitId = mistUnitId + 1 - newGroup.units[unitIndex]['unitId'] = mistUnitId - end - if newGroup.units[unitIndex].unitName or newGroup.units[unitIndex].name then - if newGroup.units[unitIndex].unitName then - newGroup.units[unitIndex].name = newGroup.units[unitIndex].unitName - elseif newGroup.units[unitIndex].name then - newGroup.units[unitIndex].name = newGroup.units[unitIndex].name - end - end - if newGroup.clone or not unitData.name then - newGroup.units[unitIndex].name = tostring(newGroup.name .. ' unit' .. unitIndex) - end - - if not unitData.skill then - newGroup.units[unitIndex].skill = 'Random' - end - - if not unitData.alt then - if newCat == 'AIRPLANE' then - newGroup.units[unitIndex].alt = 2000 - newGroup.units[unitIndex].alt_type = 'RADIO' - newGroup.units[unitIndex].speed = 150 - elseif newCat == 'HELICOPTER' then - newGroup.units[unitIndex].alt = 500 - newGroup.units[unitIndex].alt_type = 'RADIO' - newGroup.units[unitIndex].speed = 60 - else - --[[env.info('check height') - newGroup.units[unitIndex].alt = land.getHeight({x = newGroup.units[unitIndex].x, y = newGroup.units[unitIndex].y}) - newGroup.units[unitIndex].alt_type = 'BARO']] - end - - end - - if newCat == 'AIRPLANE' or newCat == 'HELICOPTER' then - if newGroup.units[unitIndex].alt_type and newGroup.units[unitIndex].alt_type ~= 'BARO' or not newGroup.units[unitIndex].alt_type then - newGroup.units[unitIndex].alt_type = 'RADIO' - end - if not unitData.speed then - if newCat == 'AIRPLANE' then - newGroup.units[unitIndex].speed = 150 - elseif newCat == 'HELICOPTER' then - newGroup.units[unitIndex].speed = 60 + local groupType = newGroup.category + local newCountry = '' + -- validate data + for countryId, countryName in pairs(country.name) do + if type(cntry) == 'string' then + cntry = cntry:gsub("%s+", "_") + if tostring(countryName) == string.upper(cntry) then + newCountry = countryName + end + elseif type(cntry) == 'number' then + if countryId == cntry then + newCountry = countryName end end - if not unitData.payload then - newGroup.units[unitIndex].payload = mist.getPayload(originalName) + end + + if newCountry == '' then + log:error("Country not found: $1", cntry) + return false + end + + local newCat = '' + for catName, catId in pairs(Unit.Category) do + if type(groupType) == 'string' then + if tostring(catName) == string.upper(groupType) then + newCat = catName + end + elseif type(groupType) == 'number' then + if catId == groupType then + newCat = catName + end + end + + if catName == 'GROUND_UNIT' and (string.upper(groupType) == 'VEHICLE' or string.upper(groupType) == 'GROUND') then + newCat = 'GROUND_UNIT' + elseif catName == 'AIRPLANE' and string.upper(groupType) == 'PLANE' then + newCat = 'AIRPLANE' end end - mistAddedObjects[#mistAddedObjects + 1] = mist.utils.deepCopy(newGroup.units[unitIndex]) - end - mistAddedGroups[#mistAddedGroups + 1] = mist.utils.deepCopy(newGroup) - if newGroup.route and not newGroup.route.points then - if not newGroup.route.points and newGroup.route[1] then - local copyRoute = newGroup.route - newGroup.route = {} - newGroup.route.points = copyRoute + local typeName + if newCat == 'GROUND_UNIT' then + typeName = ' gnd ' + elseif newCat == 'AIRPLANE' then + typeName = ' air ' + elseif newCat == 'HELICOPTER' then + typeName = ' hel ' + elseif newCat == 'SHIP' then + typeName = ' shp ' + elseif newCat == 'BUILDING' then + typeName = ' bld ' end - end - newGroup.country = newCountry - - - --mist.debug.writeData(mist.utils.serialize,{'msg', newGroup}, 'newGroup.lua') - - -- sanitize table - newGroup.groupName = nil - newGroup.clone = nil - newGroup.category = nil - newGroup.country = nil - - newGroup.tasks = {} - - for unitIndex, unitData in pairs(newGroup.units) do - newGroup.units[unitIndex].unitName = nil - end - - coalition.addGroup(country.id[newCountry], Unit.Category[newCat], newGroup) - - return newGroup - + if newGroup.clone or not newGroup.groupId then + mistDynAddIndex[typeName] = mistDynAddIndex[typeName] + 1 + mistGpId = mistGpId + 1 + newGroup.groupId = mistGpId + end + if newGroup.groupName or newGroup.name then + if newGroup.groupName then + newGroup.name = newGroup.groupName + elseif newGroup.name then + newGroup.name = newGroup.name + end + end + + if newGroup.clone and mist.DBs.groupsByName[newGroup.name] or not newGroup.name then + newGroup.name = tostring(newCountry .. tostring(typeName) .. mistDynAddIndex[typeName]) + end + + if not newGroup.hidden then + newGroup.hidden = false + end + + if not newGroup.visible then + newGroup.visible = false + end + + if (newGroup.start_time and type(newGroup.start_time) ~= 'number') or not newGroup.start_time then + if newGroup.startTime then + newGroup.start_time = mist.utils.round(newGroup.startTime) + else + newGroup.start_time = 0 + end + end + + + for unitIndex, unitData in pairs(newGroup.units) do + local originalName = newGroup.units[unitIndex].unitName or newGroup.units[unitIndex].name + if newGroup.clone or not unitData.unitId then + mistUnitId = mistUnitId + 1 + newGroup.units[unitIndex].unitId = mistUnitId + end + if newGroup.units[unitIndex].unitName or newGroup.units[unitIndex].name then + if newGroup.units[unitIndex].unitName then + newGroup.units[unitIndex].name = newGroup.units[unitIndex].unitName + elseif newGroup.units[unitIndex].name then + newGroup.units[unitIndex].name = newGroup.units[unitIndex].name + end + end + if newGroup.clone or not unitData.name then + newGroup.units[unitIndex].name = tostring(newGroup.name .. ' unit' .. unitIndex) + end + + if not unitData.skill then + newGroup.units[unitIndex].skill = 'Random' + end + + if not unitData.alt then + if newCat == 'AIRPLANE' then + newGroup.units[unitIndex].alt = 2000 + newGroup.units[unitIndex].alt_type = 'RADIO' + newGroup.units[unitIndex].speed = 150 + elseif newCat == 'HELICOPTER' then + newGroup.units[unitIndex].alt = 500 + newGroup.units[unitIndex].alt_type = 'RADIO' + newGroup.units[unitIndex].speed = 60 + else + --[[log:info('check height') + newGroup.units[unitIndex].alt = land.getHeight({x = newGroup.units[unitIndex].x, y = newGroup.units[unitIndex].y}) + newGroup.units[unitIndex].alt_type = 'BARO']] + end + + + end + + if newCat == 'AIRPLANE' or newCat == 'HELICOPTER' then + if newGroup.units[unitIndex].alt_type and newGroup.units[unitIndex].alt_type ~= 'BARO' or not newGroup.units[unitIndex].alt_type then + newGroup.units[unitIndex].alt_type = 'RADIO' + end + if not unitData.speed then + if newCat == 'AIRPLANE' then + newGroup.units[unitIndex].speed = 150 + elseif newCat == 'HELICOPTER' then + newGroup.units[unitIndex].speed = 60 + end + end + if not unitData.payload then + newGroup.units[unitIndex].payload = mist.getPayload(originalName) + end + end + mistAddedObjects[#mistAddedObjects + 1] = mist.utils.deepCopy(newGroup.units[unitIndex]) + end + mistAddedGroups[#mistAddedGroups + 1] = mist.utils.deepCopy(newGroup) + if newGroup.route and not newGroup.route.points then + if not newGroup.route.points and newGroup.route[1] then + local copyRoute = newGroup.route + newGroup.route = {} + newGroup.route.points = copyRoute + end + end + newGroup.country = newCountry + + + --mist.debug.writeData(mist.utils.serialize,{'msg', newGroup}, 'newGroup.lua') + + -- sanitize table + newGroup.groupName = nil + newGroup.clone = nil + newGroup.category = nil + newGroup.country = nil + + newGroup.tasks = {} + + for unitIndex, unitData in pairs(newGroup.units) do + newGroup.units[unitIndex].unitName = nil + end + + coalition.addGroup(country.id[newCountry], Unit.Category[newCat], newGroup) + + return newGroup + end ---------------------------------------------------------------------------------------------- ---Modified Slmod task scheduler, superior to timer.scheduleFunction - - local Tasks = {} - local task_id = 0 - --[[ mist.scheduleFunction: - int id = mist.schedule_task(f function, vars table, t number, rep number, st number) - id - integer id of this function task - f - function to run - vars - table of vars for that function - t - time to run function - rep - time between repetitions of this function (OPTIONAL) - st - time when repetitions of this function will stop automatically (OPTIONAL) - ]] - mist.scheduleFunction = function(f, vars, t, rep, st) + --- Schedules a function. + -- Modified Slmod task scheduler, superior to timer.scheduleFunction + -- @tparam function f function to schedule + -- @tparam table vars array containing all parameters passed to the function + -- @tparam number t time in seconds from mission start to schedule the function to. + -- @tparam[opt] number rep time between repetitions of the function + -- @tparam[opt] number st time in seconds from mission start at which the function + -- should stop to be rescheduled. + -- @treturn number scheduled function id. + function mist.scheduleFunction(f, vars, t, rep, st) --verify correct types assert(type(f) == 'function', 'variable 1, expected function, got ' .. type(f)) assert(type(vars) == 'table' or vars == nil, 'variable 2, expected table or nil, got ' .. type(f)) @@ -794,77 +1503,44 @@ do if not vars then vars = {} end - task_id = task_id + 1 - table.insert(Tasks, {f = f, vars = vars, t = t, rep = rep, st = st, id = task_id}) - return task_id + taskId = taskId + 1 + table.insert(scheduledTasks, {f = f, vars = vars, t = t, rep = rep, st = st, id = taskId}) + return taskId end - - -- removes a scheduled function based on the function's id. returns true if successful, false if not successful. - mist.removeFunction = function(id) + + --- Removes a scheduled function. + -- @tparam number id function id + -- @treturn boolean true if function was successfully removed, false otherwise. + function mist.removeFunction(id) local i = 1 - while i <= #Tasks do - if Tasks[i].id == id then - table.remove(Tasks, i) + while i <= #scheduledTasks do + if scheduledTasks[i].id == id then + table.remove(scheduledTasks, i) else i = i + 1 end end end - -------------------------------------------------------------------------------------------------------------------- - -- not intended for users to use this function. - mist.do_scheduled_functions = function() - local i = 1 - while i <= #Tasks do - if not Tasks[i].rep then -- not a repeated process - if Tasks[i].t <= timer.getTime() then - local Task = Tasks[i] -- local reference - table.remove(Tasks, i) - local err, errmsg = pcall(Task.f, unpack(Task.vars, 1, table.maxn(Task.vars))) - if not err then - env.info('mist.scheduleFunction, error in scheduled function: ' .. errmsg) - end - --Task.f(unpack(Task.vars, 1, table.maxn(Task.vars))) -- do the task, do not increment i - else - i = i + 1 - end - else - if Tasks[i].st and Tasks[i].st <= timer.getTime() then --if a stoptime was specified, and the stop time exceeded - table.remove(Tasks, i) -- stop time exceeded, do not execute, do not increment i - elseif Tasks[i].t <= timer.getTime() then - local Task = Tasks[i] -- local reference - Task.t = timer.getTime() + Task.rep --schedule next run - local err, errmsg = pcall(Task.f, unpack(Task.vars, 1, table.maxn(Task.vars))) - if not err then - env.info('mist.scheduleFunction, error in scheduled function: ' .. errmsg) - end - --Tasks[i].f(unpack(Tasks[i].vars, 1, table.maxn(Tasks[i].vars))) -- do the task - i = i + 1 - else - i = i + 1 - end - end - end - end - - - - local idNum = 0 - - --Simplified event handler - mist.addEventHandler = function(f) --id is optional! + --- Registers an event handler. + -- @tparam function f function handling event + -- @treturn number id of the event handler + function mist.addEventHandler(f) --id is optional! local handler = {} idNum = idNum + 1 handler.id = idNum handler.f = f - handler.onEvent = function(self, event) + function handler:onEvent(event) self.f(event) end world.addEventHandler(handler) return handler.id end - mist.removeEventHandler = function(id) + --- Removes event handler with given id. + -- @tparam number id event handler id + -- @treturn boolean true on success, false otherwise + function mist.removeEventHandler(id) for key, handler in pairs(world.eventHandlers) do if handler.id and handler.id == id then world.eventHandlers[key] = nil @@ -872,1524 +1548,610 @@ do end end return false - end - - mist.addEventHandler(groupSpawned) --- mist.scheduleFunction(checkSpawnedEvents, {}, timer.getTime() + 5, 1) - -end ------------------------------------------------------------------------------------------------------------- - - ----------------------------------------------------------------------------------------------- --- Utils- conversion, Lua utils, etc. -mist.utils = {} - -mist.utils.toDegree = function(angle) - return angle*180/math.pi -end - -mist.utils.toRadian = function(angle) - return angle*math.pi/180 -end - -mist.utils.metersToNM = function(meters) - return meters/1852 -end - -mist.utils.metersToFeet = function(meters) - return meters/0.3048 -end - -mist.utils.NMToMeters = function(NM) - return NM*1852 -end - -mist.utils.feetToMeters = function(feet) - return feet*0.3048 -end - -mist.utils.mpsToKnots = function(mps) - return mps*3600/1852 -end - -mist.utils.mpsToKmph = function(mps) - return mps*3.6 -end - -mist.utils.knotsToMps = function(knots) - return knots*1852/3600 -end - -mist.utils.kmphToMps = function(kmph) - return kmph/3.6 -end - -function mist.utils.makeVec2(Vec3) - if Vec3.z then - return {x = Vec3.x, y = Vec3.z} - else - return {x = Vec3.x, y = Vec3.y} -- it was actually already vec2. end end -function mist.utils.makeVec3(Vec2, y) - if not Vec2.z then - if Vec2.alt and not y then - y = Vec2.alt - elseif not y then - y = 0 - end - return {x = Vec2.x, y = y, z = Vec2.y} - else - return {x = Vec2.x, y = Vec2.y, z = Vec2.z} -- it was already Vec3, actually. - end -end - -function mist.utils.makeVec3GL(Vec2, offset) - local adj = offset or 0 - - if not Vec2.z then - return {x = Vec2.x, y = (land.getHeight(Vec2) + adj), z = Vec2.y} - else - return {x = Vec2.x, y = (land.getHeight({x = Vec2.x, y = Vec2.z}) + adj), z = Vec2.z} - end -end - -mist.utils.zoneToVec3 = function(zone) - local new = {} - if type(zone) == 'table' and zone.point then - new.x = zone.point.x - new.y = zone.point.y - new.z = zone.point.z - return new - elseif type(zone) == 'string' then - zone = trigger.misc.getZone(zone) - if zone then - new.x = zone.point.x - new.y = zone.point.y - new.z = zone.point.z - return new - end - end -end - --- gets heading-error corrected direction from point along vector vec. -function mist.utils.getDir(vec, point) - local dir = math.atan2(vec.z, vec.x) - if point then - dir = dir + mist.getNorthCorrection(point) - end - if dir < 0 then - dir = dir + 2*math.pi -- put dir in range of 0 to 2*pi - end - return dir -end - --- gets distance in meters between two points (2 dimensional) -function mist.utils.get2DDist(point1, point2) - point1 = mist.utils.makeVec3(point1) - point2 = mist.utils.makeVec3(point2) - return mist.vec.mag({x = point1.x - point2.x, y = 0, z = point1.z - point2.z}) -end - --- gets distance in meters between two points (3 dimensional) -function mist.utils.get3DDist(point1, point2) - return mist.vec.mag({x = point1.x - point2.x, y = point1.y - point2.y, z = point1.z - point2.z}) -end - -function mist.utils.vecToWP(vec) - local newWP = {} - newWP.x = vec.x - newWP.y = vec.y - if vec.z then - newWP.alt = vec.y - newWP.y = vec.z - else - newWP.alt = land.getHeight({x = vec.x, y = vec.y}) - end - return newWP -end - -function mist.utils.unitToWP(pUnit) - local unit = mist.utils.deepCopy(pUnit) - if type(unit) == 'string' then - if Unit.getByName(unit) then - unit = Unit.getByName(unit) - end - end - if unit:isExist() == true then - local new = mist.utils.vecToWP(unit:getPosition().p) - new.speed = mist.vec.mag(unit:getVelocity()) - new.alt_type = "BARO" - - return new - end - return false -end - - - ---from http://lua-users.org/wiki/CopyTable -mist.utils.deepCopy = function(object) - local lookup_table = {} - local function _copy(object) - if type(object) ~= "table" then - return object - elseif lookup_table[object] then - return lookup_table[object] - end - local new_table = {} - lookup_table[object] = new_table - for index, value in pairs(object) do - new_table[_copy(index)] = _copy(value) - end - return setmetatable(new_table, getmetatable(object)) - end - return _copy(object) -end - --- From http://lua-users.org/wiki/SimpleRound --- use negative idp for rounding ahead of decimal place, positive for rounding after decimal place -mist.utils.round = function(num, idp) - local mult = 10^(idp or 0) - return math.floor(num * mult + 0.5) / mult -end - -mist.utils.roundTbl = function(tbl, idp) - for id, val in pairs(tbl) do - if type(val) == 'number' then - tbl[id] = mist.utils.round(val, idp) - end - end - return tbl -end - --- porting in Slmod's dostring -mist.utils.dostring = function(s) - local f, err = loadstring(s) - if f then - return true, f() - else - return false, err - end -end - - ---[[ mist.utils.typeCheck(fname, type_tbl, var_tbl) -Type-checking function: -Checks a var_tbl to a type_tbl. Returns true if the var_tbl passes the type check, returns false plus an error message if the var_tbl fails. - -type_tbl examples: -type_tbl = { {'table', 'number'}, 'string', 'number', 'number', {'string', 'nil'}, {'number', 'nil'} } -Compare to a var_tbl with up to six entries; var_tbl index 1 must be a table or a number; index 2, a string; index 3, a number; -index 4, a number; index 5, either a string or nil; and index 6, either a number or nil. - -Another example: -type_tbl = { {'text', 'msg', 'text_out'} = 'string', display_time = 'number', display_mode = {'string', 'nil'} coa = {'string', 'nil'}} - -var_tbl must have a string at one of the following table keys: "text", "msg", or "text_out". var_tbl must have a number at table key "display_time", -the table key "display_mode" must be either a string or nil, and the table key "coa" must be either a string or nil. -]] -function mist.utils.typeCheck(fname, type_tbl, var_tbl) - --env.info('type check') - for type_key, type_val in pairs(type_tbl) do - --print('type_key:') - --print(type_key) - --print('type_val:') - --print(type_val) - - --type_key can be a table of accepted keys- so try to find one that is not nil - local type_key_str = '' - local act_key = type_key -- actual key within var_tbl - necessary to use for multiple possible key variables. Initialize to type_key - if type(type_key) == 'table' then - - for i = 1, #type_key do - if i ~= 1 then - type_key_str = type_key_str .. '/' - end - type_key_str = type_key_str .. tostring(type_key[i]) - if var_tbl[type_key[i]] ~= nil then - act_key = type_key[i] -- found a non-nil entry, make act_key now this val. - end - end +-- Begin common funcs +do + --- Returns MGRS coordinates as string. + -- @tparam string MGRS MGRS coordinates + -- @tparam number acc the accuracy of each easting/northing. + -- Can be: 0, 1, 2, 3, 4, or 5. + function mist.tostringMGRS(MGRS, acc) + if acc == 0 then + return MGRS.UTMZone .. ' ' .. MGRS.MGRSDigraph else - type_key_str = tostring(type_key) + return MGRS.UTMZone .. ' ' .. MGRS.MGRSDigraph .. ' ' .. string.format('%0' .. acc .. 'd', mist.utils.round(MGRS.Easting/(10^(5-acc)), 0)) + .. ' ' .. string.format('%0' .. acc .. 'd', mist.utils.round(MGRS.Northing/(10^(5-acc)), 0)) end - - local err_msg = 'Error in function ' .. fname .. ', parameter "' .. type_key_str .. '", expected: ' - local passed_check = false - - if type(type_tbl[type_key]) == 'table' then - --print('err_msg, before and after:') - --print(err_msg) - for j = 1, #type_tbl[type_key] do - - if j == 1 then - err_msg = err_msg .. type_tbl[type_key][j] - else - err_msg = err_msg .. ' or ' .. type_tbl[type_key][j] - end - - if type(var_tbl[act_key]) == type_tbl[type_key][j] then - passed_check = true - end - end - --print(err_msg) + end + + --[[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. + ]] + function mist.tostringLL(lat, lon, acc, DMS) + + local latHemi, lonHemi + if lat > 0 then + latHemi = 'N' else - --print('err_msg, before and after:') - --print(err_msg) - err_msg = err_msg .. type_tbl[type_key] - --print(err_msg) - if type(var_tbl[act_key]) == type_tbl[type_key] then - passed_check = true - - end - + latHemi = 'S' end - - if not passed_check then - err_msg = err_msg .. ', got ' .. type(var_tbl[act_key]) - return false, err_msg - end - end - return true -end ---porting in Slmod's "safestring" basic serialize -mist.utils.basicSerialize = function(s) - if s == nil then - return "\"\"" - else - if ((type(s) == 'number') or (type(s) == 'boolean') or (type(s) == 'function') or (type(s) == 'table') or (type(s) == 'userdata') ) then - return tostring(s) - elseif type(s) == 'string' then - s = string.format('%q', s) - return s - end - end -end - ---porting in Slmod's serialize_slmod -mist.utils.serialize = function(name, value, level) - -----Based on ED's serialize_simple2 - local basicSerialize = function (o) - if type(o) == "number" then - return tostring(o) - elseif type(o) == "boolean" then - return tostring(o) - else -- assume it is a string - return mist.utils.basicSerialize(o) - end - end - - local serialize_to_t = function (name, value, level) - ----Based on ED's serialize_simple2 - - - local var_str_tbl = {} - if level == nil then level = "" end - if level ~= "" then level = level.." " end - - table.insert(var_str_tbl, level .. name .. " = ") - - if type(value) == "number" or type(value) == "string" or type(value) == "boolean" then - table.insert(var_str_tbl, basicSerialize(value) .. ",\n") - elseif type(value) == "table" then - table.insert(var_str_tbl, "\n"..level.."{\n") - - for k,v in pairs(value) do -- serialize its fields - local key - if type(k) == "number" then - key = string.format("[%s]", k) - else - key = string.format("[%q]", k) - end - - table.insert(var_str_tbl, mist.utils.serialize(key, v, level.." ")) - - end - if level == "" then - table.insert(var_str_tbl, level.."} -- end of "..name.."\n") - - else - table.insert(var_str_tbl, level.."}, -- end of "..name.."\n") - - end - else - env.info("Cannot serialize a "..type(value)) - end - return var_str_tbl - end - - local t_str = serialize_to_t(name, value, level) - - return table.concat(t_str) -end - --- porting in slmod's serialize_wcycles -mist.utils.serializeWithCycles = function(name, value, saved) - --mostly straight out of Programming in Lua - local basicSerialize = function (o) - if type(o) == "number" then - return tostring(o) - elseif type(o) == "boolean" then - return tostring(o) - else -- assume it is a string - return mist.utils.basicSerialize(o) - end - end - - local t_str = {} - saved = saved or {} -- initial value - if ((type(value) == 'string') or (type(value) == 'number') or (type(value) == 'table') or (type(value) == 'boolean')) then - table.insert(t_str, name .. " = ") - if type(value) == "number" or type(value) == "string" or type(value) == "boolean" then - table.insert(t_str, basicSerialize(value) .. "\n") + if lon > 0 then + lonHemi = 'E' else + lonHemi = 'W' + end - if saved[value] then -- value already saved? - table.insert(t_str, saved[value] .. "\n") + lat = math.abs(lat) + lon = math.abs(lon) + + local latDeg = math.floor(lat) + local latMin = (lat - latDeg)*60 + + local lonDeg = math.floor(lon) + local lonMin = (lon - lonDeg)*60 + + if DMS then -- degrees, minutes, and seconds. + local oldLatMin = latMin + latMin = math.floor(latMin) + local latSec = mist.utils.round((oldLatMin - latMin)*60, acc) + + local oldLonMin = lonMin + lonMin = math.floor(lonMin) + local lonSec = mist.utils.round((oldLonMin - lonMin)*60, acc) + + if latSec == 60 then + latSec = 0 + latMin = latMin + 1 + end + + if lonSec == 60 then + lonSec = 0 + lonMin = lonMin + 1 + end + + local secFrmtStr -- create the formatting string for the seconds place + if acc <= 0 then -- no decimal place. + secFrmtStr = '%02d' else - saved[value] = name -- save name for next time - table.insert(t_str, "{}\n") - for k,v in pairs(value) do -- save its fields - local fieldname = string.format("%s[%s]", name, basicSerialize(k)) - table.insert(t_str, mist.utils.serializeWithCycles(fieldname, v, saved)) - end + local width = 3 + acc -- 01.310 - that's a width of 6, for example. + secFrmtStr = '%0' .. width .. '.' .. acc .. 'f' end - end - return table.concat(t_str) - else - return "" - end -end --- porting in Slmod's serialize_slmod2 -mist.utils.oneLineSerialize = function(tbl) -- serialization of a table all on a single line, no comments, made to replace old get_table_string function - if type(tbl) == 'table' then --function only works for tables! + return string.format('%02d', latDeg) .. ' ' .. string.format('%02d', latMin) .. '\' ' .. string.format(secFrmtStr, latSec) .. '"' .. latHemi .. ' ' + .. string.format('%02d', lonDeg) .. ' ' .. string.format('%02d', lonMin) .. '\' ' .. string.format(secFrmtStr, lonSec) .. '"' .. lonHemi - local tbl_str = {} + else -- degrees, decimal minutes. + latMin = mist.utils.round(latMin, acc) + lonMin = mist.utils.round(lonMin, acc) - tbl_str[#tbl_str + 1] = '{ ' - - for ind,val in pairs(tbl) do -- serialize its fields - if type(ind) == "number" then - tbl_str[#tbl_str + 1] = '[' - tbl_str[#tbl_str + 1] = tostring(ind) - tbl_str[#tbl_str + 1] = '] = ' - else --must be a string - tbl_str[#tbl_str + 1] = '[' - tbl_str[#tbl_str + 1] = mist.utils.basicSerialize(ind) - tbl_str[#tbl_str + 1] = '] = ' + if latMin == 60 then + latMin = 0 + latDeg = latDeg + 1 end - - if ((type(val) == 'number') or (type(val) == 'boolean')) then - tbl_str[#tbl_str + 1] = tostring(val) - tbl_str[#tbl_str + 1] = ', ' - elseif type(val) == 'string' then - tbl_str[#tbl_str + 1] = mist.utils.basicSerialize(val) - tbl_str[#tbl_str + 1] = ', ' - elseif type(val) == 'nil' then -- won't ever happen, right? - tbl_str[#tbl_str + 1] = 'nil, ' - elseif type(val) == 'table' then - tbl_str[#tbl_str + 1] = mist.utils.oneLineSerialize(val) - tbl_str[#tbl_str + 1] = ', ' --I think this is right, I just added it + + if lonMin == 60 then + lonMin = 0 + lonDeg = lonDeg + 1 + end + + local minFrmtStr -- create the formatting string for the minutes place + if acc <= 0 then -- no decimal place. + minFrmtStr = '%02d' else - env.info('unable to serialize value type ' .. mist.utils.basicSerialize(type(val)) .. ' at index ' .. tostring(ind)) + local width = 3 + acc -- 01.310 - that's a width of 6, for example. + minFrmtStr = '%0' .. width .. '.' .. acc .. 'f' end - - end - tbl_str[#tbl_str + 1] = '}' - return table.concat(tbl_str) - end -end ---Function to create string for viewing the contents of a table -NOT for serialization -mist.utils.tableShow = function(tbl, loc, indent, tableshow_tbls) --based on serialize_slmod, this is a _G serialization - tableshow_tbls = tableshow_tbls or {} --create table of tables - loc = loc or "" - indent = indent or "" - if type(tbl) == 'table' then --function only works for tables! - tableshow_tbls[tbl] = loc - - local tbl_str = {} + return string.format('%02d', latDeg) .. ' ' .. string.format(minFrmtStr, latMin) .. '\'' .. latHemi .. ' ' + .. string.format('%02d', lonDeg) .. ' ' .. string.format(minFrmtStr, lonMin) .. '\'' .. lonHemi - tbl_str[#tbl_str + 1] = indent .. '{\n' - - for ind,val in pairs(tbl) do -- serialize its fields - if type(ind) == "number" then - tbl_str[#tbl_str + 1] = indent - tbl_str[#tbl_str + 1] = loc .. '[' - tbl_str[#tbl_str + 1] = tostring(ind) - tbl_str[#tbl_str + 1] = '] = ' - else - tbl_str[#tbl_str + 1] = indent - tbl_str[#tbl_str + 1] = loc .. '[' - tbl_str[#tbl_str + 1] = mist.utils.basicSerialize(ind) - tbl_str[#tbl_str + 1] = '] = ' - end - - if ((type(val) == 'number') or (type(val) == 'boolean')) then - tbl_str[#tbl_str + 1] = tostring(val) - tbl_str[#tbl_str + 1] = ',\n' - elseif type(val) == 'string' then - tbl_str[#tbl_str + 1] = mist.utils.basicSerialize(val) - tbl_str[#tbl_str + 1] = ',\n' - elseif type(val) == 'nil' then -- won't ever happen, right? - tbl_str[#tbl_str + 1] = 'nil,\n' - elseif type(val) == 'table' then - if tableshow_tbls[val] then - tbl_str[#tbl_str + 1] = tostring(val) .. ' already defined: ' .. tableshow_tbls[val] .. ',\n' - else - tableshow_tbls[val] = loc .. '[' .. mist.utils.basicSerialize(ind) .. ']' - tbl_str[#tbl_str + 1] = tostring(val) .. ' ' - tbl_str[#tbl_str + 1] = mist.utils.tableShow(val, loc .. '[' .. mist.utils.basicSerialize(ind).. ']', indent .. ' ', tableshow_tbls) - tbl_str[#tbl_str + 1] = ',\n' - end - elseif type(val) == 'function' then - if debug and debug.getinfo then - local fcnname = tostring(val) - local info = debug.getinfo(val, "S") - if info.what == "C" then - tbl_str[#tbl_str + 1] = string.format('%q', fcnname .. ', C function') .. ',\n' - else - if (string.sub(info.source, 1, 2) == [[./]]) then - tbl_str[#tbl_str + 1] = string.format('%q', fcnname .. ', defined in (' .. info.linedefined .. '-' .. info.lastlinedefined .. ')' .. info.source) ..',\n' - else - tbl_str[#tbl_str + 1] = string.format('%q', fcnname .. ', defined in (' .. info.linedefined .. '-' .. info.lastlinedefined .. ')') ..',\n' - end - end - - else - tbl_str[#tbl_str + 1] = 'a function,\n' - end - else - tbl_str[#tbl_str + 1] = 'unable to serialize value type ' .. mist.utils.basicSerialize(type(val)) .. ' at index ' .. tostring(ind) - end - end - - tbl_str[#tbl_str + 1] = indent .. '}' - return table.concat(tbl_str) - end -end - -mist.debug = {} - -mist.debug.dump_G = function(fname) - if lfs and io then - local fdir = lfs.writedir() .. [[Logs\]] .. fname - local f = io.open(fdir, 'w') - f:write(mist.utils.tableShow(_G)) - f:close() - local errmsg = 'mist.debug.dump_G wrote data to ' .. fdir - env.info(errmsg) - trigger.action.outText(errmsg, 10) - else - local errmsg = 'Error: insufficient libraries to run mist.debug.dump_G, you must disable the sanitization of the io and lfs libraries in ./Scripts/MissionScripting.lua' - env.info(errmsg) - trigger.action.outText(errmsg, 10) - end -end - -mist.debug.writeData = function(fcn, fcnVars, fname) - if lfs and io then - local fdir = lfs.writedir() .. [[Logs\]] .. fname - local f = io.open(fdir, 'w') - f:write(fcn(unpack(fcnVars, 1, table.maxn(fcnVars)))) - f:close() - local errmsg = 'mist.debug.writeData wrote data to ' .. fdir - env.info(errmsg) - trigger.action.outText(errmsg, 10) - else - local errmsg = 'Error: insufficient libraries to run mist.debug.writeData, you must disable the sanitization of the io and lfs libraries in ./Scripts/MissionScripting.lua' - env.info(errmsg) - trigger.action.outText(errmsg, 10) - end -end - -mist.debug.dumpDBs = function() - for DBname, DB in pairs(mist.DBs) do - if type(DB) == 'table' and type(DBname) == 'string' then - mist.debug.writeData(mist.utils.serialize, {DBname, DB}, 'mist_DBs_' .. DBname .. '.lua') end end -end ------------------------------------------------------------------------------------------------------------------ ---3D Vector manipulation -mist.vec = {} + --[[ required: az - radian + required: dist - meters + optional: alt - meters (set to false or nil if you don't want to use it). + optional: metric - set true to get dist and alt in km and m. + precision will always be nearest degree and NM or km.]] + function mist.tostringBR(az, dist, alt, metric) + az = mist.utils.round(mist.utils.toDegree(az), 0) -mist.vec.add = function(vec1, vec2) - return {x = vec1.x + vec2.x, y = vec1.y + vec2.y, z = vec1.z + vec2.z} -end - -mist.vec.sub = function(vec1, vec2) - return {x = vec1.x - vec2.x, y = vec1.y - vec2.y, z = vec1.z - vec2.z} -end - -mist.vec.scalarMult = function(vec, mult) - return {x = vec.x*mult, y = vec.y*mult, z = vec.z*mult} -end - -mist.vec.scalar_mult = mist.vec.scalarMult - -mist.vec.dp = function(vec1, vec2) - return vec1.x*vec2.x + vec1.y*vec2.y + vec1.z*vec2.z -end - -mist.vec.cp = function(vec1, vec2) - return { x = vec1.y*vec2.z - vec1.z*vec2.y, y = vec1.z*vec2.x - vec1.x*vec2.z, z = vec1.x*vec2.y - vec1.y*vec2.x} -end - -mist.vec.mag = function(vec) - return (vec.x^2 + vec.y^2 + vec.z^2)^0.5 -end - -mist.vec.getUnitVec = function(vec) - local mag = mist.vec.mag(vec) - return { x = vec.x/mag, y = vec.y/mag, z = vec.z/mag } -end - -mist.vec.rotateVec2 = function(vec2, theta) - return { x = vec2.x*math.cos(theta) - vec2.y*math.sin(theta), y = vec2.x*math.sin(theta) + vec2.y*math.cos(theta)} -end ---------------------------------------------------------------------------------------------------------------------------- - --- acc- the accuracy of each easting/northing. 0, 1, 2, 3, 4, or 5. -mist.tostringMGRS = function(MGRS, acc) - if acc == 0 then - return MGRS.UTMZone .. ' ' .. MGRS.MGRSDigraph - else - return MGRS.UTMZone .. ' ' .. MGRS.MGRSDigraph .. ' ' .. string.format('%0' .. acc .. 'd', mist.utils.round(MGRS.Easting/(10^(5-acc)), 0)) - .. ' ' .. string.format('%0' .. acc .. 'd', mist.utils.round(MGRS.Northing/(10^(5-acc)), 0)) - end -end - ---[[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. -]] -mist.tostringLL = function(lat, lon, acc, DMS) - - local latHemi, lonHemi - if lat > 0 then - latHemi = 'N' - else - latHemi = 'S' - end - - if lon > 0 then - lonHemi = 'E' - else - lonHemi = 'W' - end - - lat = math.abs(lat) - lon = math.abs(lon) - - local latDeg = math.floor(lat) - local latMin = (lat - latDeg)*60 - - local lonDeg = math.floor(lon) - local lonMin = (lon - lonDeg)*60 - - if DMS then -- degrees, minutes, and seconds. - local oldLatMin = latMin - latMin = math.floor(latMin) - local latSec = mist.utils.round((oldLatMin - latMin)*60, acc) - - local oldLonMin = lonMin - lonMin = math.floor(lonMin) - local lonSec = mist.utils.round((oldLonMin - lonMin)*60, acc) - - if latSec == 60 then - latSec = 0 - latMin = latMin + 1 - end - - if lonSec == 60 then - lonSec = 0 - lonMin = lonMin + 1 - end - - local secFrmtStr -- create the formatting string for the seconds place - if acc <= 0 then -- no decimal place. - secFrmtStr = '%02d' - else - local width = 3 + acc -- 01.310 - that's a width of 6, for example. - secFrmtStr = '%0' .. width .. '.' .. acc .. 'f' - end - - return string.format('%02d', latDeg) .. ' ' .. string.format('%02d', latMin) .. '\' ' .. string.format(secFrmtStr, latSec) .. '"' .. latHemi .. ' ' - .. string.format('%02d', lonDeg) .. ' ' .. string.format('%02d', lonMin) .. '\' ' .. string.format(secFrmtStr, lonSec) .. '"' .. lonHemi - - else -- degrees, decimal minutes. - latMin = mist.utils.round(latMin, acc) - lonMin = mist.utils.round(lonMin, acc) - - if latMin == 60 then - latMin = 0 - latDeg = latDeg + 1 - end - - if lonMin == 60 then - lonMin = 0 - lonDeg = lonDeg + 1 - end - - local minFrmtStr -- create the formatting string for the minutes place - if acc <= 0 then -- no decimal place. - minFrmtStr = '%02d' - else - local width = 3 + acc -- 01.310 - that's a width of 6, for example. - minFrmtStr = '%0' .. width .. '.' .. acc .. 'f' - end - - return string.format('%02d', latDeg) .. ' ' .. string.format(minFrmtStr, latMin) .. '\'' .. latHemi .. ' ' - .. string.format('%02d', lonDeg) .. ' ' .. string.format(minFrmtStr, lonMin) .. '\'' .. lonHemi - - end -end - ---[[ required: az - radian - required: dist - meters - optional: alt - meters (set to false or nil if you don't want to use it). - optional: metric - set true to get dist and alt in km and m. - precision will always be nearest degree and NM or km.]] -mist.tostringBR = function(az, dist, alt, metric) - az = mist.utils.round(mist.utils.toDegree(az), 0) - - if metric then - dist = mist.utils.round(dist/1000, 0) - else - dist = mist.utils.round(mist.utils.metersToNM(dist), 0) - end - - local s = string.format('%03d', az) .. ' for ' .. dist - - if alt then if metric then - s = s .. ' at ' .. mist.utils.round(alt, 0) + dist = mist.utils.round(dist/1000, 0) else - s = s .. ' at ' .. mist.utils.round(mist.utils.metersToFeet(alt), 0) + dist = mist.utils.round(mist.utils.metersToNM(dist), 0) end - end - return s -end -mist.getNorthCorrection = function(gPoint) --gets the correction needed for true north - local point = mist.utils.deepCopy(gPoint) - if not point.z then --Vec2; convert to Vec3 - point.z = point.y - point.y = 0 - end - local lat, lon = coord.LOtoLL(point) - local north_posit = coord.LLtoLO(lat + 1, lon) - return math.atan2(north_posit.z - point.z, north_posit.x - point.x) -end + local s = string.format('%03d', az) .. ' for ' .. dist -mist.getUnitSkill = function(unitName) - if Unit.getByName(unitName) and Unit.getByName(unitName):isExist() == true then - local lunit = Unit.getByName(unitName) - for name, data in pairs(mist.DBs.unitsByName) do - if name == unitName and data.type == lunit:getTypeName() and data.unitId == lunit:getID() and data.skill then - return data.skill - end - end - end - return false -end - - -function mist.getGroupPoints(groupIdent) -- if groupname exists in env.mission, then returns table of the group's points in numerical order, such as: { [1] = {x = 299435.224, y = -1146632.6773}, [2] = { x = 663324.6563, y = 322424.1112}} - -- refactor to search by groupId and allow groupId and groupName as inputs - local gpId = groupIdent - if type(groupIdent) == 'string' and not tonumber(groupIdent) then - gpId = mist.DBs.MEgroupsByName[groupIdent].groupId - end - - for coa_name, coa_data in pairs(env.mission.coalition) do - if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then - if coa_data.country then --there is a country table - for cntry_id, cntry_data in pairs(coa_data.country) do - for obj_type_name, obj_type_data in pairs(cntry_data) do - if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" then -- only these types have points - if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! - for group_num, group_data in pairs(obj_type_data.group) do - if group_data and group_data.groupId == gpId then -- this is the group we are looking for - if group_data.route and group_data.route.points and #group_data.route.points > 0 then - local points = {} - for point_num, point in pairs(group_data.route.points) do - if not point.point then - points[point_num] = { x = point.x, y = point.y } - else - points[point_num] = point.point --it's possible that the ME could move to the point = Vec2 notation. - end - end - return points - end - return - end --if group_data and group_data.name and group_data.name == 'groupname' - end --for group_num, group_data in pairs(obj_type_data.group) do - end --if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then - end --if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" or obj_type_name == "static" then - end --for obj_type_name, obj_type_data in pairs(cntry_data) do - end --for cntry_id, cntry_data in pairs(coa_data.country) do - end --if coa_data.country then --there is a country table - end --if coa_name == 'red' or coa_name == 'blue' and type(coa_data) == 'table' then - end --for coa_name, coa_data in pairs(mission.coalition) do -end - - - ---[[ table attitude = getAttitude(string unitname) -- will work on any unit, even if not an aircraft. - -attitude = { - Heading = number, -- in radians, range of 0 to 2*pi, relative to true north - Pitch = number, -- in radians, range of -pi/2 to pi/2 - Roll = number, -- in radians, range of 0 to 2*pi, right roll is positive direction - - --Yaw, AoA, ClimbAngle - relative to earth reference- DOES NOT TAKE INTO ACCOUNT WIND. - Yaw = number, -- in radians, range of -pi to pi, right yaw is positive direction - AoA = number, -- in radians, range of -pi to pi, rotation of aircraft to the right in comparison to flight direction being positive - ClimbAngle = number, -- in radians, range of -pi/2 to pi/2 - - --Maybe later? - AxialVel = table, velocity of the aircraft transformed into directions of aircraft axes - Speed = number -- absolute velocity in meters/sec - - } - -]] -function mist.getAttitude(unit) - local unitpos = unit:getPosition() - if unitpos then - - local Heading = math.atan2(unitpos.x.z, unitpos.x.x) - - Heading = Heading + mist.getNorthCorrection(unitpos.p) - - if Heading < 0 then - Heading = Heading + 2*math.pi -- put heading in range of 0 to 2*pi - end - ---- heading complete.---- - - local Pitch = math.asin(unitpos.x.y) - ---- pitch complete.---- - - -- now get roll: - --maybe not the best way to do it, but it works. - - --first, make a vector that is perpendicular to y and unitpos.x with cross product - local cp = mist.vec.cp(unitpos.x, {x = 0, y = 1, z = 0}) - - --now, get dot product of of this cross product with unitpos.z - local dp = mist.vec.dp(cp, unitpos.z) - - --now get the magnitude of the roll (magnitude of the angle between two vectors is acos(vec1.vec2/|vec1||vec2|) - local Roll = math.acos(dp/(mist.vec.mag(cp)*mist.vec.mag(unitpos.z))) - - --now, have to get sign of roll. - -- by convention, making right roll positive - -- to get sign of roll, use the y component of unitpos.z. For right roll, y component is negative. - - if unitpos.z.y > 0 then -- left roll, flip the sign of the roll - Roll = -Roll - end - ---- roll complete. ---- - - --now, work on yaw, AoA, climb, and abs velocity - local Yaw - local AoA - local ClimbAngle - - -- get unit velocity - local unitvel = unit:getVelocity() - if mist.vec.mag(unitvel) ~= 0 then --must have non-zero velocity! - local AxialVel = {} --unit velocity transformed into aircraft axes directions - - --transform velocity components in direction of aircraft axes. - AxialVel.x = mist.vec.dp(unitpos.x, unitvel) - AxialVel.y = mist.vec.dp(unitpos.y, unitvel) - AxialVel.z = mist.vec.dp(unitpos.z, unitvel) - - --Yaw is the angle between unitpos.x and the x and z velocities - --define right yaw as positive - Yaw = math.acos(mist.vec.dp({x = 1, y = 0, z = 0}, {x = AxialVel.x, y = 0, z = AxialVel.z})/mist.vec.mag({x = AxialVel.x, y = 0, z = AxialVel.z})) - - --now set correct direction: - if AxialVel.z > 0 then - Yaw = -Yaw - end - - -- AoA is angle between unitpos.x and the x and y velocities - AoA = math.acos(mist.vec.dp({x = 1, y = 0, z = 0}, {x = AxialVel.x, y = AxialVel.y, z = 0})/mist.vec.mag({x = AxialVel.x, y = AxialVel.y, z = 0})) - - --now set correct direction: - if AxialVel.y > 0 then - AoA = -AoA - end - - ClimbAngle = math.asin(unitvel.y/mist.vec.mag(unitvel)) - end - return { Heading = Heading, Pitch = Pitch, Roll = Roll, Yaw = Yaw, AoA = AoA, ClimbAngle = ClimbAngle} - else - env.info('unit:getPosition() is nil!') - end -end - -function mist.getHeading(unit, rawHeading) - local unitpos = unit:getPosition() - if unitpos then - local Heading = math.atan2(unitpos.x.z, unitpos.x.x) - if not rawHeading then - Heading = Heading + mist.getNorthCorrection(unitpos.p) - end - if Heading < 0 then - Heading = Heading + 2*math.pi -- put heading in range of 0 to 2*pi - end - return Heading - end -end - -function mist.getPitch(unit) - local unitpos = unit:getPosition() - if unitpos then - return math.asin(unitpos.x.y) - end -end - -function mist.getRoll(unit) - local unitpos = unit:getPosition() - if unitpos then - -- now get roll: - --maybe not the best way to do it, but it works. - - --first, make a vector that is perpendicular to y and unitpos.x with cross product - local cp = mist.vec.cp(unitpos.x, {x = 0, y = 1, z = 0}) - - --now, get dot product of of this cross product with unitpos.z - local dp = mist.vec.dp(cp, unitpos.z) - - --now get the magnitude of the roll (magnitude of the angle between two vectors is acos(vec1.vec2/|vec1||vec2|) - local Roll = math.acos(dp/(mist.vec.mag(cp)*mist.vec.mag(unitpos.z))) - - --now, have to get sign of roll. - -- by convention, making right roll positive - -- to get sign of roll, use the y component of unitpos.z. For right roll, y component is negative. - - if unitpos.z.y > 0 then -- left roll, flip the sign of the roll - Roll = -Roll - end - return Roll - end -end - -function mist.getYaw(unit) - local unitpos = unit:getPosition() - if unitpos then - -- get unit velocity - local unitvel = unit:getVelocity() - if mist.vec.mag(unitvel) ~= 0 then --must have non-zero velocity! - local AxialVel = {} --unit velocity transformed into aircraft axes directions - - --transform velocity components in direction of aircraft axes. - AxialVel.x = mist.vec.dp(unitpos.x, unitvel) - AxialVel.y = mist.vec.dp(unitpos.y, unitvel) - AxialVel.z = mist.vec.dp(unitpos.z, unitvel) - - --Yaw is the angle between unitpos.x and the x and z velocities - --define right yaw as positive - local Yaw = math.acos(mist.vec.dp({x = 1, y = 0, z = 0}, {x = AxialVel.x, y = 0, z = AxialVel.z})/mist.vec.mag({x = AxialVel.x, y = 0, z = AxialVel.z})) - - --now set correct direction: - if AxialVel.z > 0 then - Yaw = -Yaw - end - return Yaw - end - end -end - -function mist.getAoA(unit) - local unitpos = unit:getPosition() - if unitpos then - local unitvel = unit:getVelocity() - if mist.vec.mag(unitvel) ~= 0 then --must have non-zero velocity! - local AxialVel = {} --unit velocity transformed into aircraft axes directions - - --transform velocity components in direction of aircraft axes. - AxialVel.x = mist.vec.dp(unitpos.x, unitvel) - AxialVel.y = mist.vec.dp(unitpos.y, unitvel) - AxialVel.z = mist.vec.dp(unitpos.z, unitvel) - - -- AoA is angle between unitpos.x and the x and y velocities - local AoA = math.acos(mist.vec.dp({x = 1, y = 0, z = 0}, {x = AxialVel.x, y = AxialVel.y, z = 0})/mist.vec.mag({x = AxialVel.x, y = AxialVel.y, z = 0})) - - --now set correct direction: - if AxialVel.y > 0 then - AoA = -AoA - end - return AoA - end - end -end - -function mist.getClimbAngle(unit) - local unitpos = unit:getPosition() - if unitpos then - local unitvel = unit:getVelocity() - if mist.vec.mag(unitvel) ~= 0 then --must have non-zero velocity! - return math.asin(unitvel.y/mist.vec.mag(unitvel)) - end - end -end ------------------------------------------------------------------------------------------------------------ --- Database building -mist.DBs = {} - -mist.DBs.missionData = {} ------------------------------------------ -if env.mission then - - mist.DBs.missionData['startTime'] = env.mission.start_time - mist.DBs.missionData['theatre'] = env.mission.theatre - mist.DBs.missionData['version'] = env.mission.version - mist.DBs.missionData['files'] = {} - if type(env.mission.resourceCounter) == 'table' then - for fIndex, fData in pairs (env.mission.resourceCounter) do - mist.DBs.missionData.files[#mist.DBs.missionData.files + 1] = mist.utils.deepCopy(fIndex) - end - end - mist.DBs.missionData['bullseye'] = {['red'] = {}, ['blue'] = {}} -- if we add more coalition specific data then bullsye should be categorized by coaliton. For now its just the bullseye table - mist.DBs.missionData.bullseye.red['x'] = env.mission.coalition.red.bullseye.x --should it be point.x? - mist.DBs.missionData.bullseye.red['y'] = env.mission.coalition.red.bullseye.y - mist.DBs.missionData.bullseye.blue['x'] = env.mission.coalition.blue.bullseye.x - mist.DBs.missionData.bullseye.blue['y'] = env.mission.coalition.blue.bullseye.y - -end - ----------------------------------------- - -mist.DBs.zonesByName = {} -mist.DBs.zonesByNum = {} - - -if env.mission.triggers and env.mission.triggers.zones then - for zone_ind, zone_data in pairs(env.mission.triggers.zones) do - if type(zone_data) == 'table' then - local zone = mist.utils.deepCopy(zone_data) - zone['point'] = {} -- point is used by SSE - zone['point']['x'] = zone_data.x - zone['point']['y'] = 0 - zone['point']['z'] = zone_data.y - - mist.DBs.zonesByName[zone_data.name] = zone - mist.DBs.zonesByNum[#mist.DBs.zonesByNum + 1] = mist.utils.deepCopy(zone) --[[deepcopy so that the zone in zones_by_name and the zone in - zones_by_num se are different objects.. don't want them linked.]] - end - end -end - -mist.DBs.navPoints = {} -mist.DBs.units = {} - --Build mist.db.units and mist.DBs.navPoints -for coa_name, coa_data in pairs(env.mission.coalition) do - - if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then - mist.DBs.units[coa_name] = {} - - ---------------------------------------------- - -- build nav points DB - mist.DBs.navPoints[coa_name] = {} - if coa_data.nav_points then --navpoints - --mist.debug.writeData (mist.utils.serialize,{'NavPoints',coa_data.nav_points}, 'NavPoints.txt') - for nav_ind, nav_data in pairs(coa_data.nav_points) do - - if type(nav_data) == 'table' then - mist.DBs.navPoints[coa_name][nav_ind] = mist.utils.deepCopy(nav_data) - - mist.DBs.navPoints[coa_name][nav_ind]['name'] = nav_data.callsignStr -- name is a little bit more self-explanatory. - mist.DBs.navPoints[coa_name][nav_ind]['point'] = {} -- point is used by SSE, support it. - mist.DBs.navPoints[coa_name][nav_ind]['point']['x'] = nav_data.x - mist.DBs.navPoints[coa_name][nav_ind]['point']['y'] = 0 - mist.DBs.navPoints[coa_name][nav_ind]['point']['z'] = nav_data.y - end - end - end - ------------------------------------------------- - if coa_data.country then --there is a country table - for cntry_id, cntry_data in pairs(coa_data.country) do - - local countryName = string.lower(cntry_data.name) - mist.DBs.units[coa_name][countryName] = {} - mist.DBs.units[coa_name][countryName]["countryId"] = cntry_data.id - - if type(cntry_data) == 'table' then --just making sure - - for obj_type_name, obj_type_data in pairs(cntry_data) do - - if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" or obj_type_name == "static" then --should be an unncessary check - - local category = obj_type_name - - if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! - - mist.DBs.units[coa_name][countryName][category] = {} - - for group_num, group_data in pairs(obj_type_data.group) do - - if group_data and group_data.units and type(group_data.units) == 'table' then --making sure again- this is a valid group - - mist.DBs.units[coa_name][countryName][category][group_num] = {} - local groupName = group_data.name - if env.mission.version > 7 then - groupName = env.getValueDictByKey(groupName) - end - mist.DBs.units[coa_name][countryName][category][group_num]["groupName"] = groupName - mist.DBs.units[coa_name][countryName][category][group_num]["groupId"] = group_data.groupId - mist.DBs.units[coa_name][countryName][category][group_num]["category"] = category - mist.DBs.units[coa_name][countryName][category][group_num]["coalition"] = coa_name - mist.DBs.units[coa_name][countryName][category][group_num]["country"] = countryName - mist.DBs.units[coa_name][countryName][category][group_num]["countryId"] = cntry_data.id - mist.DBs.units[coa_name][countryName][category][group_num]["startTime"] = group_data.start_time - mist.DBs.units[coa_name][countryName][category][group_num]["task"] = group_data.task - mist.DBs.units[coa_name][countryName][category][group_num]["hidden"] = group_data.hidden - - mist.DBs.units[coa_name][countryName][category][group_num]["units"] = {} - - mist.DBs.units[coa_name][countryName][category][group_num]["radioSet"] = group_data.radioSet - mist.DBs.units[coa_name][countryName][category][group_num]["uncontrolled"] = group_data.uncontrolled - mist.DBs.units[coa_name][countryName][category][group_num]["frequency"] = group_data.frequency - mist.DBs.units[coa_name][countryName][category][group_num]["modulation"] = group_data.modulation - - for unit_num, unit_data in pairs(group_data.units) do - local units_tbl = mist.DBs.units[coa_name][countryName][category][group_num]["units"] --pointer to the units table for this group - - units_tbl[unit_num] = {} - if env.mission.version > 7 then - units_tbl[unit_num]["unitName"] = env.getValueDictByKey(unit_data.name) - else - units_tbl[unit_num]["unitName"] = unit_data.name - end - units_tbl[unit_num]["type"] = unit_data.type - units_tbl[unit_num]["skill"] = unit_data.skill --will be nil for statics - units_tbl[unit_num]["unitId"] = unit_data.unitId - units_tbl[unit_num]["category"] = category - units_tbl[unit_num]["coalition"] = coa_name - units_tbl[unit_num]["country"] = countryName - units_tbl[unit_num]["countryId"] = cntry_data.id - units_tbl[unit_num]["heading"] = unit_data.heading - units_tbl[unit_num]["playerCanDrive"] = unit_data.playerCanDrive - units_tbl[unit_num]["alt"] = unit_data.alt - units_tbl[unit_num]["alt_type"] = unit_data.alt_type - units_tbl[unit_num]["speed"] = unit_data.speed - units_tbl[unit_num]["livery_id"] = unit_data.livery_id - if unit_data.point then --ME currently does not work like this, but it might one day - units_tbl[unit_num]["point"] = unit_data.point - else - units_tbl[unit_num]["point"] = {} - units_tbl[unit_num]["point"]["x"] = unit_data.x - units_tbl[unit_num]["point"]["y"] = unit_data.y - end - units_tbl[unit_num]['x'] = unit_data.x - units_tbl[unit_num]['y'] = unit_data.y - - units_tbl[unit_num]["callsign"] = unit_data.callsign - units_tbl[unit_num]["onboard_num"] = unit_data.onboard_num - units_tbl[unit_num]["hardpoint_racks"] = unit_data.hardpoint_racks - units_tbl[unit_num]["psi"] = unit_data.psi - - - units_tbl[unit_num]["groupName"] = groupName - units_tbl[unit_num]["groupId"] = group_data.groupId - - if unit_data.AddPropAircraft then - units_tbl[unit_num]["AddPropAircraft"] = unit_data.AddPropAircraft - end - - if category == 'static' then - units_tbl[unit_num]["categoryStatic"] = unit_data.category - units_tbl[unit_num]["shape_name"] = unit_data.shape_name - if unit_data.mass then - units_tbl[unit_num]["mass"] = unit_data.mass - end - - if unit_data.canCargo then - units_tbl[unit_num]["canCargo"] = unit_data.canCargo - end - end - - end --for unit_num, unit_data in pairs(group_data.units) do - end --if group_data and group_data.units then - end --for group_num, group_data in pairs(obj_type_data.group) do - end --if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then - end --if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" or obj_type_name == "static" then - end --for obj_type_name, obj_type_data in pairs(cntry_data) do - end --if type(cntry_data) == 'table' then - end --for cntry_id, cntry_data in pairs(coa_data.country) do - end --if coa_data.country then --there is a country table - end --if coa_name == 'red' or coa_name == 'blue' and type(coa_data) == 'table' then -end --for coa_name, coa_data in pairs(mission.coalition) do - -mist.DBs.unitsByName = {} -mist.DBs.unitsById = {} -mist.DBs.unitsByCat = {} - -mist.DBs.unitsByCat['helicopter'] = {} -- adding default categories -mist.DBs.unitsByCat['plane'] = {} -mist.DBs.unitsByCat['ship'] = {} -mist.DBs.unitsByCat['static'] = {} -mist.DBs.unitsByCat['vehicle'] = {} - -mist.DBs.unitsByNum = {} - -mist.DBs.groupsByName = {} -mist.DBs.groupsById = {} -mist.DBs.humansByName = {} -mist.DBs.humansById = {} - -mist.DBs.dynGroupsAdded = {} -- will be filled by mist.dbUpdate from dynamically spawned groups -mist.DBs.activeHumans = {} - -mist.DBs.aliveUnits = {} -- will be filled in by the "update_alive_units" coroutine in mist.main. - -mist.DBs.removedAliveUnits = {} -- will be filled in by the "update_alive_units" coroutine in mist.main. --- create mist.DBs.oldAliveUnits --- do - -- local intermediate_alive_units = {} -- between 0 and 0.5 secs old - -- local function make_old_alive_units() -- called every 0.5 secs, makes the old_alive_units DB which is just a copy of alive_units that is 0.5 to 1 sec old - -- if intermediate_alive_units then - -- mist.DBs.oldAliveUnits = mist.utils.deepCopy(intermediate_alive_units) - -- end - -- intermediate_alive_units = mist.utils.deepCopy(mist.DBs.aliveUnits) - -- timer.scheduleFunction(make_old_alive_units, nil, timer.getTime() + 0.5) - -- end - - -- make_old_alive_units() --- end - - ---Build DBs -for coa_name, coa_data in pairs(mist.DBs.units) do - for cntry_name, cntry_data in pairs(coa_data) do - for category_name, category_data in pairs(cntry_data) do - if type(category_data) == 'table' then - for group_ind, group_data in pairs(category_data) do - if type(group_data) == 'table' and group_data.units and type(group_data.units) == 'table' and #group_data.units > 0 then -- OCD paradigm programming - mist.DBs.groupsByName[group_data.groupName] = mist.utils.deepCopy(group_data) - mist.DBs.groupsById[group_data.groupId] = mist.utils.deepCopy(group_data) - for unit_ind, unit_data in pairs(group_data.units) do - mist.DBs.unitsByName[unit_data.unitName] = mist.utils.deepCopy(unit_data) - mist.DBs.unitsById[unit_data.unitId] = mist.utils.deepCopy(unit_data) - - mist.DBs.unitsByCat[unit_data.category] = mist.DBs.unitsByCat[unit_data.category] or {} -- future-proofing against new categories... - table.insert(mist.DBs.unitsByCat[unit_data.category], mist.utils.deepCopy(unit_data)) - --print('inserting ' .. unit_data.unitName) - table.insert(mist.DBs.unitsByNum, mist.utils.deepCopy(unit_data)) - - if unit_data.skill and (unit_data.skill == "Client" or unit_data.skill == "Player") then - mist.DBs.humansByName[unit_data.unitName] = mist.utils.deepCopy(unit_data) - mist.DBs.humansById[unit_data.unitId] = mist.utils.deepCopy(unit_data) - --if Unit.getByName(unit_data.unitName) then - -- mist.DBs.activeHumans[unit_data.unitName] = mist.utils.deepCopy(unit_data) - -- mist.DBs.activeHumans[unit_data.unitName].playerName = Unit.getByName(unit_data.unitName):getPlayerName() - --end - end - end - end - end - end - end - end -end - --------------- --------- mist unitID funcs -do - for id, idData in pairs(mist.DBs.unitsById) do - if idData.unitId > mist.nextUnitId then - mist.nextUnitId = mist.utils.deepCopy(idData.unitId) - end - if idData.groupId > mist.nextGroupId then - mist.nextGroupId = mist.utils.deepCopy(idData.groupId) - end - end -end - ---DynDBs -mist.DBs.MEunits = mist.utils.deepCopy(mist.DBs.units) -mist.DBs.MEunitsByName = mist.utils.deepCopy(mist.DBs.unitsByName) -mist.DBs.MEunitsById = mist.utils.deepCopy(mist.DBs.unitsById) -mist.DBs.MEunitsByCat = mist.utils.deepCopy(mist.DBs.unitsByCat) -mist.DBs.MEunitsByNum = mist.utils.deepCopy(mist.DBs.unitsByNum) -mist.DBs.MEgroupsByName = mist.utils.deepCopy(mist.DBs.groupsByName) -mist.DBs.MEgroupsById = mist.utils.deepCopy(mist.DBs.groupsById) -------------- - - -mist.DBs.deadObjects = {} - -do - local mt = {} - - mt.__newindex = function(t, key, val) - --------------------------------------------------------------- - local original_key = key --only for duplicate runtime IDs. - local key_ind = 1 - while mist.DBs.deadObjects[key] do - --print('duplicate runtime id of previously dead object- key: ' .. tostring(key)) - key = tostring(original_key) .. ' #' .. tostring(key_ind) - key_ind = key_ind + 1 - end - --------------------------------------------------------------- - - if mist.DBs.aliveUnits and mist.DBs.aliveUnits[val.object.id_] then - --print('object found in alive_units') - val['objectData'] = mist.utils.deepCopy(mist.DBs.aliveUnits[val.object.id_]) - local pos = Object.getPosition(val.object) - if pos then - val['objectPos'] = pos.p - end - val['objectType'] = mist.DBs.aliveUnits[val.object.id_].category - - elseif mist.DBs.removedAliveUnits and mist.DBs.removedAliveUnits[val.object.id_] then -- it didn't exist in alive_units, check old_alive_units - --print('object found in old_alive_units') - val['objectData'] = mist.utils.deepCopy(mist.DBs.removedAliveUnits[val.object.id_]) - local pos = Object.getPosition(val.object) - if pos then - val['objectPos'] = pos.p - end - val['objectType'] = mist.DBs.removedAliveUnits[val.object.id_].category - - else --attempt to determine if static object... - --print('object not found in alive units or old alive units') - local pos = Object.getPosition(val.object) - if pos then - local static_found = false - for ind, static in pairs(mist.DBs.unitsByCat['static']) do - if ((pos.p.x - static.point.x)^2 + (pos.p.z - static.point.y)^2)^0.5 < 0.1 then --really, it should be zero... - --print('correlated dead static object to position') - val['objectData'] = static - val['objectPos'] = pos.p - val['objectType'] = 'static' - static_found = true - break - end - end - if not static_found then - val['objectPos'] = pos.p - val['objectType'] = 'building' - end + if alt then + if metric then + s = s .. ' at ' .. mist.utils.round(alt, 0) else - val['objectType'] = 'unknown' + s = s .. ' at ' .. mist.utils.round(mist.utils.metersToFeet(alt), 0) end end - rawset(t, key, val) + return s end - setmetatable(mist.DBs.deadObjects, mt) -end + function mist.getNorthCorrection(gPoint) --gets the correction needed for true north + local point = mist.utils.deepCopy(gPoint) + if not point.z then --Vec2; convert to Vec3 + point.z = point.y + point.y = 0 + end + local lat, lon = coord.LOtoLL(point) + local north_posit = coord.LLtoLO(lat + 1, lon) + return math.atan2(north_posit.z - point.z, north_posit.x - point.x) + end --- Event handler to start creating the dead_objects table -do - - local function addDeadObject(event) - if event.id == world.event.S_EVENT_DEAD or event.id == world.event.S_EVENT_CRASH then - if event.initiator and event.initiator.id_ and event.initiator.id_ > 0 then - - local id = event.initiator.id_ -- initial ID, could change if there is a duplicate id_ already dead. - local val = {object = event.initiator} -- the new entry in mist.DBs.deadObjects. - - --------------------------------------------------------------- - local original_id = id --only for duplicate runtime IDs. - local id_ind = 1 - while mist.DBs.deadObjects[id] do - --print('duplicate runtime id of previously dead object- id: ' .. tostring(id)) - id = tostring(original_id) .. ' #' .. tostring(id_ind) - id_ind = id_ind + 1 + --- Returns skill of the given unit. + -- @tparam string unitName unit name + -- @return skill of the unit + function mist.getUnitSkill(unitName) + if mist.DBs.unitsByName[unitName] then + if Unit.getByName(unitName) then + local lunit = Unit.getByName(unitName) + local data = mist.DBs.unitsByName[unitName] + if data.unitName == unitName and data.type == lunit:getTypeName() and data.unitId == tonumber(lunit:getID()) and data.skill then + return data.skill end - --------------------------------------------------------------- - - if mist.DBs.aliveUnits and mist.DBs.aliveUnits[val.object.id_] then - --print('object found in alive_units') - val['objectData'] = mist.utils.deepCopy(mist.DBs.aliveUnits[val.object.id_]) - local pos = Object.getPosition(val.object) - if pos then - val['objectPos'] = pos.p - end - val['objectType'] = mist.DBs.aliveUnits[val.object.id_].category - --[[if mist.DBs.activeHumans[Unit.getName(val.object)] then - --trigger.action.outText('remove via death: ' .. Unit.getName(val.object),20) - mist.DBs.activeHumans[Unit.getName(val.object)] = nil - end]] - elseif mist.DBs.removedAliveUnits and mist.DBs.removedAliveUnits[val.object.id_] then -- it didn't exist in alive_units, check old_alive_units - --print('object found in old_alive_units') - val['objectData'] = mist.utils.deepCopy(mist.DBs.removedAliveUnits[val.object.id_]) - local pos = Object.getPosition(val.object) - if pos then - val['objectPos'] = pos.p - end - val['objectType'] = mist.DBs.removedAliveUnits[val.object.id_].category - - else --attempt to determine if static object... - --print('object not found in alive units or old alive units') - local pos = Object.getPosition(val.object) - if pos then - local static_found = false - for ind, static in pairs(mist.DBs.unitsByCat['static']) do - if ((pos.p.x - static.point.x)^2 + (pos.p.z - static.point.y)^2)^0.5 < 0.1 then --really, it should be zero... - --print('correlated dead static object to position') - val['objectData'] = static - val['objectPos'] = pos.p - val['objectType'] = 'static' - static_found = true - break - end - end - if not static_found then - val['objectPos'] = pos.p - val['objectType'] = 'building' - end - else - val['objectType'] = 'unknown' - end + end + end + log:error("Unit not found in DB: $1", unitName) + return false + end + + --- Returns an array containing a group's units positions. + -- e.g. + -- { + -- [1] = {x = 299435.224, y = -1146632.6773}, + -- [2] = {x = 663324.6563, y = 322424.1112} + -- } + -- @tparam number|string groupIdent group id or name + -- @treturn table array containing positions of each group member + function mist.getGroupPoints(groupIdent) + -- search by groupId and allow groupId and groupName as inputs + local gpId = groupIdent + if type(groupIdent) == 'string' and not tonumber(groupIdent) then + if mist.DBs.MEgroupsByName[groupIdent] then + gpId = mist.DBs.MEgroupsByName[groupIdent].groupId + else + log:error("Group not found in mist.DBs.MEgroupsByName: $1", groupIdent) + end + end + + for coa_name, coa_data in pairs(env.mission.coalition) do + if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then + if coa_data.country then --there is a country table + for cntry_id, cntry_data in pairs(coa_data.country) do + for obj_type_name, obj_type_data in pairs(cntry_data) do + if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" then -- only these types have points + if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! + for group_num, group_data in pairs(obj_type_data.group) do + if group_data and group_data.groupId == gpId then -- this is the group we are looking for + if group_data.route and group_data.route.points and #group_data.route.points > 0 then + local points = {} + for point_num, point in pairs(group_data.route.points) do + if not point.point then + points[point_num] = { x = point.x, y = point.y } + else + points[point_num] = point.point --it's possible that the ME could move to the point = Vec2 notation. + end + end + return points + end + return + end --if group_data and group_data.name and group_data.name == 'groupname' + end --for group_num, group_data in pairs(obj_type_data.group) do + end --if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then + end --if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" or obj_type_name == "static" then + end --for obj_type_name, obj_type_data in pairs(cntry_data) do + end --for cntry_id, cntry_data in pairs(coa_data.country) do + end --if coa_data.country then --there is a country table + end --if coa_name == 'red' or coa_name == 'blue' and type(coa_data) == 'table' then + end --for coa_name, coa_data in pairs(mission.coalition) do + end + + --- getUnitAttitude(unit) return values. + -- Yaw, AoA, ClimbAngle - relative to earth reference + -- DOES NOT TAKE INTO ACCOUNT WIND. + -- @table attitude + -- @tfield number Heading in radians, range of 0 to 2*pi, + -- relative to true north. + -- @tfield number Pitch in radians, range of -pi/2 to pi/2 + -- @tfield number Roll in radians, range of 0 to 2*pi, + -- right roll is positive direction. + -- @tfield number Yaw in radians, range of -pi to pi, + -- right yaw is positive direction. + -- @tfield number AoA in radians, range of -pi to pi, + -- rotation of aircraft to the right in comparison to + -- flight direction being positive. + -- @tfield number ClimbAngle in radians, range of -pi/2 to pi/2 + + --- Returns the attitude of a given unit. + -- Will work on any unit, even if not an aircraft. + -- @tparam Unit unit unit whose attitude is returned. + -- @treturn table @{attitude} + function mist.getAttitude(unit) + local unitpos = unit:getPosition() + if unitpos then + + local Heading = math.atan2(unitpos.x.z, unitpos.x.x) + + Heading = Heading + mist.getNorthCorrection(unitpos.p) + + if Heading < 0 then + Heading = Heading + 2*math.pi -- put heading in range of 0 to 2*pi + end + ---- heading complete.---- + + local Pitch = math.asin(unitpos.x.y) + ---- pitch complete.---- + + -- now get roll: + --maybe not the best way to do it, but it works. + + --first, make a vector that is perpendicular to y and unitpos.x with cross product + local cp = mist.vec.cp(unitpos.x, {x = 0, y = 1, z = 0}) + + --now, get dot product of of this cross product with unitpos.z + local dp = mist.vec.dp(cp, unitpos.z) + + --now get the magnitude of the roll (magnitude of the angle between two vectors is acos(vec1.vec2/|vec1||vec2|) + local Roll = math.acos(dp/(mist.vec.mag(cp)*mist.vec.mag(unitpos.z))) + + --now, have to get sign of roll. + -- by convention, making right roll positive + -- to get sign of roll, use the y component of unitpos.z. For right roll, y component is negative. + + if unitpos.z.y > 0 then -- left roll, flip the sign of the roll + Roll = -Roll + end + ---- roll complete. ---- + + --now, work on yaw, AoA, climb, and abs velocity + local Yaw + local AoA + local ClimbAngle + + -- get unit velocity + local unitvel = unit:getVelocity() + if mist.vec.mag(unitvel) ~= 0 then --must have non-zero velocity! + local AxialVel = {} --unit velocity transformed into aircraft axes directions + + --transform velocity components in direction of aircraft axes. + AxialVel.x = mist.vec.dp(unitpos.x, unitvel) + AxialVel.y = mist.vec.dp(unitpos.y, unitvel) + AxialVel.z = mist.vec.dp(unitpos.z, unitvel) + + --Yaw is the angle between unitpos.x and the x and z velocities + --define right yaw as positive + Yaw = math.acos(mist.vec.dp({x = 1, y = 0, z = 0}, {x = AxialVel.x, y = 0, z = AxialVel.z})/mist.vec.mag({x = AxialVel.x, y = 0, z = AxialVel.z})) + + --now set correct direction: + if AxialVel.z > 0 then + Yaw = -Yaw end - mist.DBs.deadObjects[id] = val + -- AoA is angle between unitpos.x and the x and y velocities + AoA = math.acos(mist.vec.dp({x = 1, y = 0, z = 0}, {x = AxialVel.x, y = AxialVel.y, z = 0})/mist.vec.mag({x = AxialVel.x, y = AxialVel.y, z = 0})) + + --now set correct direction: + if AxialVel.y > 0 then + AoA = -AoA + end + + ClimbAngle = math.asin(unitvel.y/mist.vec.mag(unitvel)) + end + return { Heading = Heading, Pitch = Pitch, Roll = Roll, Yaw = Yaw, AoA = AoA, ClimbAngle = ClimbAngle} + else + log:error("Couldn't get unit's position") + end + end + + --- Returns heading of given unit. + -- @tparam Unit unit unit whose heading is returned. + -- @param rawHeading + -- @treturn number heading of the unit, in range + -- of 0 to 2*pi. + function mist.getHeading(unit, rawHeading) + local unitpos = unit:getPosition() + if unitpos then + local Heading = math.atan2(unitpos.x.z, unitpos.x.x) + if not rawHeading then + Heading = Heading + mist.getNorthCorrection(unitpos.p) + end + if Heading < 0 then + Heading = Heading + 2*math.pi -- put heading in range of 0 to 2*pi + end + return Heading + end + end + + --- Returns given unit's pitch + -- @tparam Unit unit unit whose pitch is returned. + -- @treturn number pitch of given unit + function mist.getPitch(unit) + local unitpos = unit:getPosition() + if unitpos then + return math.asin(unitpos.x.y) + end + end + + --- Returns given unit's roll. + -- @tparam Unit unit unit whose roll is returned. + -- @treturn number roll of given unit + function mist.getRoll(unit) + local unitpos = unit:getPosition() + if unitpos then + -- now get roll: + --maybe not the best way to do it, but it works. + + --first, make a vector that is perpendicular to y and unitpos.x with cross product + local cp = mist.vec.cp(unitpos.x, {x = 0, y = 1, z = 0}) + + --now, get dot product of of this cross product with unitpos.z + local dp = mist.vec.dp(cp, unitpos.z) + + --now get the magnitude of the roll (magnitude of the angle between two vectors is acos(vec1.vec2/|vec1||vec2|) + local Roll = math.acos(dp/(mist.vec.mag(cp)*mist.vec.mag(unitpos.z))) + + --now, have to get sign of roll. + -- by convention, making right roll positive + -- to get sign of roll, use the y component of unitpos.z. For right roll, y component is negative. + + if unitpos.z.y > 0 then -- left roll, flip the sign of the roll + Roll = -Roll + end + return Roll + end + end + + --- Returns given unit's yaw. + -- @tparam Unit unit unit whose yaw is returned. + -- @treturn number yaw of given unit. + function mist.getYaw(unit) + local unitpos = unit:getPosition() + if unitpos then + -- get unit velocity + local unitvel = unit:getVelocity() + if mist.vec.mag(unitvel) ~= 0 then --must have non-zero velocity! + local AxialVel = {} --unit velocity transformed into aircraft axes directions + + --transform velocity components in direction of aircraft axes. + AxialVel.x = mist.vec.dp(unitpos.x, unitvel) + AxialVel.y = mist.vec.dp(unitpos.y, unitvel) + AxialVel.z = mist.vec.dp(unitpos.z, unitvel) + + --Yaw is the angle between unitpos.x and the x and z velocities + --define right yaw as positive + local Yaw = math.acos(mist.vec.dp({x = 1, y = 0, z = 0}, {x = AxialVel.x, y = 0, z = AxialVel.z})/mist.vec.mag({x = AxialVel.x, y = 0, z = AxialVel.z})) + + --now set correct direction: + if AxialVel.z > 0 then + Yaw = -Yaw + end + return Yaw end end end - - mist.addEventHandler(addDeadObject) - - --[[ - local function addClientsToActive(event) - if event.id == world.event.S_EVENT_PLAYER_ENTER_UNIT or event.id == world.event.S_EVENT_BIRTH then - env.info(mist.utils.tableShow(event)) - if Unit.getPlayerName(event.initiator) then - env.info(Unit.getPlayerName(event.initiator)) - local newU = mist.utils.deepCopy(mist.DBs.unitsByName[Unit.getName(event.initiator)]) - newU.playerName = Unit.getPlayerName(event.initiator) - mist.DBs.activeHumans[Unit.getName(event.initiator)] = newU - --trigger.action.outText('added: ' .. Unit.getName(event.initiator), 20) - end - elseif event.id == world.event.S_EVENT_PLAYER_LEAVE_UNIT and event.initiator then - if mist.DBs.activeHumans[Unit.getName(event.initiator)] then - mist.DBs.activeHumans[Unit.getName(event.initiator)] = nil - -- trigger.action.outText('removed via control: ' .. Unit.getName(event.initiator), 20) + --- Returns given unit's angle of attack. + -- @tparam Unit unit unit to get AoA from. + -- @treturn number angle of attack of the given unit. + function mist.getAoA(unit) + local unitpos = unit:getPosition() + if unitpos then + local unitvel = unit:getVelocity() + if mist.vec.mag(unitvel) ~= 0 then --must have non-zero velocity! + local AxialVel = {} --unit velocity transformed into aircraft axes directions + + --transform velocity components in direction of aircraft axes. + AxialVel.x = mist.vec.dp(unitpos.x, unitvel) + AxialVel.y = mist.vec.dp(unitpos.y, unitvel) + AxialVel.z = mist.vec.dp(unitpos.z, unitvel) + + -- AoA is angle between unitpos.x and the x and y velocities + local AoA = math.acos(mist.vec.dp({x = 1, y = 0, z = 0}, {x = AxialVel.x, y = AxialVel.y, z = 0})/mist.vec.mag({x = AxialVel.x, y = AxialVel.y, z = 0})) + + --now set correct direction: + if AxialVel.y > 0 then + AoA = -AoA + end + return AoA end end end - - mist.addEventHandler(addClientsToActive)]] -end + + --- Returns given unit's climb angle. + -- @tparam Unit unit unit to get climb angle from. + -- @treturn number climb angle of given unit. + function mist.getClimbAngle(unit) + local unitpos = unit:getPosition() + if unitpos then + local unitvel = unit:getVelocity() + if mist.vec.mag(unitvel) ~= 0 then --must have non-zero velocity! + return math.asin(unitvel.y/mist.vec.mag(unitvel)) + end + end + end + + --[[-- + Unit name table. + Many Mist functions require tables of unit names, which are known + in Mist as UnitNameTables. These follow a special set of shortcuts + borrowed from Slmod. These shortcuts alleviate the problem of entering + huge lists of unit names by hand, and in many cases, they remove the + need to even know the names of the units in the first place! + + These are the unit table "short-cut" commands: + + Prefixes: + "[-u]" - subtract this unit if its in the table + "[g]" - add this group to the table + "[-g]" - subtract this group from the table + "[c]" - add this country's units + "[-c]" - subtract this country's units if any are in the table + + Stand-alone identifiers + "[all]" - add all units + "[-all]" - subtract all units (not very useful by itself) + "[blue]" - add all blue units + "[-blue]" - subtract all blue units + "[red]" - add all red coalition units + "[-red]" - subtract all red units + + Compound Identifiers: + "[c][helicopter]" - add all of this country's helicopters + "[-c][helicopter]" - subtract all of this country's helicopters + "[c][plane]" - add all of this country's planes + "[-c][plane]" - subtract all of this country's planes + "[c][ship]" - add all of this country's ships + "[-c][ship]" - subtract all of this country's ships + "[c][vehicle]" - add all of this country's vehicles + "[-c][vehicle]" - subtract all of this country's vehicles + + "[all][helicopter]" - add all helicopters + "[-all][helicopter]" - subtract all helicopters + "[all][plane]" - add all planes + "[-all][plane]" - subtract all planes + "[all][ship]" - add all ships + "[-all][ship]" - subtract all ships + "[all][vehicle]" - add all vehicles + "[-all][vehicle]" - subtract all vehicles + + "[blue][helicopter]" - add all blue coalition helicopters + "[-blue][helicopter]" - subtract all blue coalition helicopters + "[blue][plane]" - add all blue coalition planes + "[-blue][plane]" - subtract all blue coalition planes + "[blue][ship]" - add all blue coalition ships + "[-blue][ship]" - subtract all blue coalition ships + "[blue][vehicle]" - add all blue coalition vehicles + "[-blue][vehicle]" - subtract all blue coalition vehicles + + "[red][helicopter]" - add all red coalition helicopters + "[-red][helicopter]" - subtract all red coalition helicopters + "[red][plane]" - add all red coalition planes + "[-red][plane]" - subtract all red coalition planes + "[red][ship]" - add all red coalition ships + "[-red][ship]" - subtract all red coalition ships + "[red][vehicle]" - add all red coalition vehicles + "[-red][vehicle]" - subtract all red coalition vehicles + + Country names to be used in [c] and [-c] short-cuts: + Turkey + Norway + The Netherlands + Spain + 11 + UK + Denmark + USA + Georgia + Germany + Belgium + Canada + France + Israel + Ukraine + Russia + South Ossetia + Abkhazia + Italy + Australia + Austria + Belarus + Bulgaria + Czech Republic + China + Croatia + Finland + Greece + Hungary + India + Iran + Iraq + Japan + Kazakhstan + North Korea + Pakistan + Poland + Romania + Saudi Arabia + Serbia, Slovakia + South Korea + Sweden + Switzerland + Syria + USAF Aggressors + + Do NOT use a '[u]' notation for single units. Single units are referenced + the same way as before: Simply input their names as strings. + + These unit tables are evaluated in order, and you cannot subtract a unit + from a table before it is added. For example: + + {'[blue]', '[-c]Georgia'} + + will evaluate to all of blue coalition except those units owned by the + country named "Georgia"; however: + + {'[-c]Georgia', '[blue]'} + + will evaluate to all of the units in blue coalition, because the addition + of all units owned by blue coalition occurred AFTER the subtraction of all + units owned by Georgia (which actually subtracted nothing at all, since + there were no units in the table when the subtraction occurred). + + More examples: + + {'[blue][plane]', '[-c]Georgia', '[-g]Hawg 1'} + + Evaluates to all blue planes, except those blue units owned by the country + named "Georgia" and the units in the group named "Hawg1". + {'[g]arty1', '[g]arty2', '[-u]arty1_AD', '[-u]arty2_AD', 'Shark 11' } + Evaluates to the unit named "Shark 11", plus all the units in groups named + "arty1" and "arty2" except those that are named "arty1\_AD" and "arty2\_AD". + @table UnitNameTable + ]] -function mist.makeUnitTable(tbl) + --- Returns a table containing unit names. + -- @tparam table tbl sequential strings + -- @treturn table @{UnitNameTable} + function mist.makeUnitTable(tbl) + --Assumption: will be passed a table of strings, sequential + log:info(tbl) + local units_by_name = {} ---[[ -Prefixes: -"[-u]" - subtract this unit if its in the table -"[g]" - add this group to the table -"[-g]" - subtract this group from the table -"[c]" - add this country's units -"[-c]" - subtract this country's units if any are in the table - -Stand-alone identifiers -"[all]" - add all units -"[-all]" - subtract all units (not very useful by itself) -"[blue]" - add all blue units -"[-blue]" - subtract all blue units -"[red]" - add all red coalition units -"[-red]" - subtract all red units - -Compound Identifiers: -"[c][helicopter]" - add all of this country's helicopters -"[-c][helicopter]" - subtract all of this country's helicopters -"[c][plane]" - add all of this country's planes -"[-c][plane]" - subtract all of this country's planes -"[c][ship]" - add all of this country's ships -"[-c][ship]" - subtract all of this country's ships -"[c][vehicle]" - add all of this country's vehicles -"[-c][vehicle]" - subtract all of this country's vehicles - -"[all][helicopter]" - add all helicopters -"[-all][helicopter]" - subtract all helicopters -"[all][plane]" - add all planes -"[-all][plane]" - subtract all planes -"[all][ship]" - add all ships -"[-all][ship]" - subtract all ships -"[all][vehicle]" - add all vehicles -"[-all][vehicle]" - subtract all vehicles - -"[blue][helicopter]" - add all blue coalition helicopters -"[-blue][helicopter]" - subtract all blue coalition helicopters -"[blue][plane]" - add all blue coalition planes -"[-blue][plane]" - subtract all blue coalition planes -"[blue][ship]" - add all blue coalition ships -"[-blue][ship]" - subtract all blue coalition ships -"[blue][vehicle]" - add all blue coalition vehicles -"[-blue][vehicle]" - subtract all blue coalition vehicles - -"[red][helicopter]" - add all red coalition helicopters -"[-red][helicopter]" - subtract all red coalition helicopters -"[red][plane]" - add all red coalition planes -"[-red][plane]" - subtract all red coalition planes -"[red][ship]" - add all red coalition ships -"[-red][ship]" - subtract all red coalition ships -"[red][vehicle]" - add all red coalition vehicles -"[-red][vehicle]" - subtract all red coalition vehicles - - -Country names to be used in [c] and [-c] short-cuts: -"Turkey" -"Norway" -"The Netherlands" -"Spain" -"UK" -"Denmark" -"USA" -"Georgia" -"Germany" -"Belgium" -"Canada" -"France" -"Israel" -"Ukraine" -"Russia" -"South Osetia" -"Abkhazia" -"Italy" -]] - - --Assumption: will be passed a table of strings, sequential - local units_by_name = {} - - local l_munits = mist.DBs.units --local reference for faster execution - for i = 1, #tbl do - local unit = tbl[i] - if unit:sub(1,4) == '[-u]' then --subtract a unit - if units_by_name[unit:sub(5)] then -- 5 to end - units_by_name[unit:sub(5)] = nil --remove + local l_munits = mist.DBs.units --local reference for faster execution + for i = 1, #tbl do + local unit = tbl[i] + if unit:sub(1,4) == '[-u]' then --subtract a unit + if units_by_name[unit:sub(5)] then -- 5 to end + units_by_name[unit:sub(5)] = nil --remove end elseif unit:sub(1,3) == '[g]' then -- add a group for coa, coa_tbl in pairs(l_munits) do for country, country_table in pairs(coa_tbl) do for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' then + if type(unit_type_tbl) == 'table' then for group_ind, group_tbl in pairs(unit_type_tbl) do - if type(group_tbl) == 'table' and group_tbl.groupName == unit:sub(4) then -- index 4 to end + if type(group_tbl) == 'table' and group_tbl.groupName == unit:sub(4) then + -- index 4 to end for unit_ind, unit in pairs(group_tbl.units) do - units_by_name[unit.unitName] = true --add + units_by_name[unit.unitName] = true --add end end end @@ -2401,9 +2163,10 @@ Country names to be used in [c] and [-c] short-cuts: for coa, coa_tbl in pairs(l_munits) do for country, country_table in pairs(coa_tbl) do for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' then + if type(unit_type_tbl) == 'table' then for group_ind, group_tbl in pairs(unit_type_tbl) do - if type(group_tbl) == 'table' and group_tbl.groupName == unit:sub(5) then -- index 5 to end + if type(group_tbl) == 'table' and group_tbl.groupName == unit:sub(5) then + -- index 5 to end for unit_ind, unit in pairs(group_tbl.units) do if units_by_name[unit.unitName] then units_by_name[unit.unitName] = nil --remove @@ -2418,28 +2181,28 @@ Country names to be used in [c] and [-c] short-cuts: elseif unit:sub(1,3) == '[c]' then -- add a country local category = '' local country_start = 4 - if unit:sub(4,15) == '[helicopter]' then + if unit:sub(4,15) == '[helicopter]' then category = 'helicopter' country_start = 16 - elseif unit:sub(4,10) == '[plane]' then + elseif unit:sub(4,10) == '[plane]' then category = 'plane' country_start = 11 - elseif unit:sub(4,9) == '[ship]' then + elseif unit:sub(4,9) == '[ship]' then category = 'ship' country_start = 10 - elseif unit:sub(4,12) == '[vehicle]' then + elseif unit:sub(4,12) == '[vehicle]' then category = 'vehicle' country_start = 13 - end + end for coa, coa_tbl in pairs(l_munits) do for country, country_table in pairs(coa_tbl) do - if country == string.lower(unit:sub(country_start)) then -- match + if country == string.lower(unit:sub(country_start)) then -- match for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then + if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then for group_ind, group_tbl in pairs(unit_type_tbl) do if type(group_tbl) == 'table' then for unit_ind, unit in pairs(group_tbl.units) do - units_by_name[unit.unitName] = true --add + units_by_name[unit.unitName] = true --add end end end @@ -2451,29 +2214,29 @@ Country names to be used in [c] and [-c] short-cuts: elseif unit:sub(1,4) == '[-c]' then -- subtract a country local category = '' local country_start = 5 - if unit:sub(5,16) == '[helicopter]' then + if unit:sub(5,16) == '[helicopter]' then category = 'helicopter' country_start = 17 - elseif unit:sub(5,11) == '[plane]' then + elseif unit:sub(5,11) == '[plane]' then category = 'plane' country_start = 12 - elseif unit:sub(5,10) == '[ship]' then + elseif unit:sub(5,10) == '[ship]' then category = 'ship' country_start = 11 - elseif unit:sub(5,13) == '[vehicle]' then + elseif unit:sub(5,13) == '[vehicle]' then category = 'vehicle' country_start = 14 - end + end for coa, coa_tbl in pairs(l_munits) do for country, country_table in pairs(coa_tbl) do - if country == string.lower(unit:sub(country_start)) then -- match + if country == string.lower(unit:sub(country_start)) then -- match for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then + if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then for group_ind, group_tbl in pairs(unit_type_tbl) do - if type(group_tbl) == 'table' then + if type(group_tbl) == 'table' then for unit_ind, unit in pairs(group_tbl.units) do if units_by_name[unit.unitName] then - units_by_name[unit.unitName] = nil --remove + units_by_name[unit.unitName] = nil --remove end end end @@ -2483,26 +2246,26 @@ Country names to be used in [c] and [-c] short-cuts: end end end - elseif unit:sub(1,6) == '[blue]' then -- add blue coalition + elseif unit:sub(1,6) == '[blue]' then -- add blue coalition local category = '' - if unit:sub(7) == '[helicopter]' then + if unit:sub(7) == '[helicopter]' then category = 'helicopter' - elseif unit:sub(7) == '[plane]' then + elseif unit:sub(7) == '[plane]' then category = 'plane' - elseif unit:sub(7) == '[ship]' then + elseif unit:sub(7) == '[ship]' then category = 'ship' - elseif unit:sub(7) == '[vehicle]' then + elseif unit:sub(7) == '[vehicle]' then category = 'vehicle' - end + end for coa, coa_tbl in pairs(l_munits) do if coa == 'blue' then for country, country_table in pairs(coa_tbl) do for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then + if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then for group_ind, group_tbl in pairs(unit_type_tbl) do if type(group_tbl) == 'table' then for unit_ind, unit in pairs(group_tbl.units) do - units_by_name[unit.unitName] = true --add + units_by_name[unit.unitName] = true --add end end end @@ -2510,28 +2273,28 @@ Country names to be used in [c] and [-c] short-cuts: end end end - end + end elseif unit:sub(1,7) == '[-blue]' then -- subtract blue coalition local category = '' - if unit:sub(8) == '[helicopter]' then + if unit:sub(8) == '[helicopter]' then category = 'helicopter' - elseif unit:sub(8) == '[plane]' then + elseif unit:sub(8) == '[plane]' then category = 'plane' - elseif unit:sub(8) == '[ship]' then + elseif unit:sub(8) == '[ship]' then category = 'ship' - elseif unit:sub(8) == '[vehicle]' then + elseif unit:sub(8) == '[vehicle]' then category = 'vehicle' - end + end for coa, coa_tbl in pairs(l_munits) do if coa == 'blue' then for country, country_table in pairs(coa_tbl) do for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then + if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then for group_ind, group_tbl in pairs(unit_type_tbl) do if type(group_tbl) == 'table' then for unit_ind, unit in pairs(group_tbl.units) do if units_by_name[unit.unitName] then - units_by_name[unit.unitName] = nil --remove + units_by_name[unit.unitName] = nil --remove end end end @@ -2540,27 +2303,27 @@ Country names to be used in [c] and [-c] short-cuts: end end end - end + end elseif unit:sub(1,5) == '[red]' then -- add red coalition local category = '' - if unit:sub(6) == '[helicopter]' then + if unit:sub(6) == '[helicopter]' then category = 'helicopter' - elseif unit:sub(6) == '[plane]' then + elseif unit:sub(6) == '[plane]' then category = 'plane' - elseif unit:sub(6) == '[ship]' then + elseif unit:sub(6) == '[ship]' then category = 'ship' - elseif unit:sub(6) == '[vehicle]' then + elseif unit:sub(6) == '[vehicle]' then category = 'vehicle' - end + end for coa, coa_tbl in pairs(l_munits) do if coa == 'red' then for country, country_table in pairs(coa_tbl) do for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then + if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then for group_ind, group_tbl in pairs(unit_type_tbl) do if type(group_tbl) == 'table' then for unit_ind, unit in pairs(group_tbl.units) do - units_by_name[unit.unitName] = true --add + units_by_name[unit.unitName] = true --add end end end @@ -2571,25 +2334,25 @@ Country names to be used in [c] and [-c] short-cuts: end elseif unit:sub(1,6) == '[-red]' then -- subtract red coalition local category = '' - if unit:sub(7) == '[helicopter]' then + if unit:sub(7) == '[helicopter]' then category = 'helicopter' - elseif unit:sub(7) == '[plane]' then + elseif unit:sub(7) == '[plane]' then category = 'plane' - elseif unit:sub(7) == '[ship]' then + elseif unit:sub(7) == '[ship]' then category = 'ship' - elseif unit:sub(7) == '[vehicle]' then + elseif unit:sub(7) == '[vehicle]' then category = 'vehicle' - end + end for coa, coa_tbl in pairs(l_munits) do if coa == 'red' then for country, country_table in pairs(coa_tbl) do for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then + if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then for group_ind, group_tbl in pairs(unit_type_tbl) do if type(group_tbl) == 'table' then for unit_ind, unit in pairs(group_tbl.units) do if units_by_name[unit.unitName] then - units_by_name[unit.unitName] = nil --remove + units_by_name[unit.unitName] = nil --remove end end end @@ -2598,26 +2361,26 @@ Country names to be used in [c] and [-c] short-cuts: end end end - end + end elseif unit:sub(1,5) == '[all]' then -- add all of a certain category (or all categories) local category = '' - if unit:sub(6) == '[helicopter]' then + if unit:sub(6) == '[helicopter]' then category = 'helicopter' - elseif unit:sub(6) == '[plane]' then + elseif unit:sub(6) == '[plane]' then category = 'plane' - elseif unit:sub(6) == '[ship]' then + elseif unit:sub(6) == '[ship]' then category = 'ship' - elseif unit:sub(6) == '[vehicle]' then + elseif unit:sub(6) == '[vehicle]' then category = 'vehicle' - end + end for coa, coa_tbl in pairs(l_munits) do for country, country_table in pairs(coa_tbl) do for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then + if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then for group_ind, group_tbl in pairs(unit_type_tbl) do if type(group_tbl) == 'table' then for unit_ind, unit in pairs(group_tbl.units) do - units_by_name[unit.unitName] = true --add + units_by_name[unit.unitName] = true --add end end end @@ -2627,24 +2390,24 @@ Country names to be used in [c] and [-c] short-cuts: end elseif unit:sub(1,6) == '[-all]' then -- subtract all of a certain category (or all categories) local category = '' - if unit:sub(7) == '[helicopter]' then + if unit:sub(7) == '[helicopter]' then category = 'helicopter' - elseif unit:sub(7) == '[plane]' then + elseif unit:sub(7) == '[plane]' then category = 'plane' - elseif unit:sub(7) == '[ship]' then + elseif unit:sub(7) == '[ship]' then category = 'ship' - elseif unit:sub(7) == '[vehicle]' then + elseif unit:sub(7) == '[vehicle]' then category = 'vehicle' - end + end for coa, coa_tbl in pairs(l_munits) do for country, country_table in pairs(coa_tbl) do for unit_type, unit_type_tbl in pairs(country_table) do - if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then + if type(unit_type_tbl) == 'table' and (category == '' or unit_type == category) then for group_ind, group_tbl in pairs(unit_type_tbl) do if type(group_tbl) == 'table' then for unit_ind, unit in pairs(group_tbl.units) do if units_by_name[unit.unitName] then - units_by_name[unit.unitName] = nil --remove + units_by_name[unit.unitName] = nil --remove end end end @@ -2652,28 +2415,27 @@ Country names to be used in [c] and [-c] short-cuts: end end end - end + end else -- just a regular unit - units_by_name[unit] = true --add + units_by_name[unit] = true --add end end - - local units_tbl = {} -- indexed sequentially + + local units_tbl = {} -- indexed sequentially for unit_name, val in pairs(units_by_name) do - if val then - units_tbl[#units_tbl + 1] = unit_name -- add all the units to the table + if val then + units_tbl[#units_tbl + 1] = unit_name -- add all the units to the table end end - - - units_tbl['processed'] = timer.getTime() --add the processed flag + + + units_tbl.processed = timer.getTime() --add the processed flag return units_tbl end - -mist.getDeadMapObjsInZones = function(zone_names) --- zone_names: table of zone names --- returns: table of dead map objects (indexed numerically) +function mist.getDeadMapObjsInZones(zone_names) + -- zone_names: table of zone names + -- returns: table of dead map objects (indexed numerically) local map_objs = {} local zones = {} for i = 1, #zone_names do @@ -2693,10 +2455,9 @@ mist.getDeadMapObjsInZones = function(zone_names) return map_objs end - -mist.getDeadMapObjsInPolygonZone = function(zone) --- zone_names: table of zone names --- returns: table of dead map objects (indexed numerically) +function mist.getDeadMapObjsInPolygonZone(zone) + -- zone_names: table of zone names + -- returns: table of dead map objects (indexed numerically) local map_objs = {} for obj_id, obj in pairs(mist.DBs.deadObjects) do if obj.objectType and obj.objectType == 'building' then --dead map object @@ -2708,105 +2469,13 @@ mist.getDeadMapObjsInPolygonZone = function(zone) return map_objs end -mist.flagFunc = {} - -mist.flagFunc.mapobjs_dead_zones = function(vars) ---[[vars needs to be: -zones = table or string, -flag = number, -stopflag = number or nil, -req_num = number or nil - -AND used by function, -initial_number - -]] --- type_tbl - local type_tbl = { - [{'zones', 'zone'}] = {'table', 'string'}, - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - [{'req_num', 'reqnum'}] = {'number', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.mapobjs_dead_zones', type_tbl, vars) - assert(err, errmsg) - local zones = vars.zones or vars.zone - local flag = vars.flag - local stopflag = vars.stopflag or -1 - local req_num = vars.req_num or vars.reqnum or 1 - local initial_number = vars.initial_number - - if type(zones) == 'string' then - zones = {zones} - end - - if not initial_number then - initial_number = #mist.getDeadMapObjsInZones(zones) - end - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - if (#mist.getDeadMapObjsInZones(zones) - initial_number) >= req_num and trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - return - else - mist.scheduleFunction(mist.flagFunc.mapobjs_dead_zones, {{zones = zones, flag = flag, stopflag = stopflag, req_num = req_num, initial_number = initial_number}}, timer.getTime() + 1) - end - end -end - - - -mist.flagFunc.mapobjs_dead_polygon = function(vars) ---[[vars needs to be: -zone = table, -flag = number, -stopflag = number or nil, -req_num = number or nil - -AND used by function, -initial_number - -]] --- type_tbl - local type_tbl = { - [{'zone', 'polyzone'}] = 'table', - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - [{'req_num', 'reqnum'}] = {'number', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.mapobjs_dead_polygon', type_tbl, vars) - assert(err, errmsg) - local zone = vars.zone or vars.polyzone - local flag = vars.flag - local stopflag = vars.stopflag or -1 - local req_num = vars.req_num or vars.reqnum or 1 - local initial_number = vars.initial_number - - if not initial_number then - initial_number = #mist.getDeadMapObjsInPolygonZone(zone) - end - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - if (#mist.getDeadMapObjsInPolygonZone(zone) - initial_number) >= req_num and trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - return - else - mist.scheduleFunction(mist.flagFunc.mapobjs_dead_polygon, {{zone = zone, flag = flag, stopflag = stopflag, req_num = req_num, initial_number = initial_number}}, timer.getTime() + 1) - end - end -end - - - function mist.pointInPolygon(point, poly, maxalt) --raycasting point in polygon. Code from http://softsurfer.com/Archive/algorithm_0103/algorithm_0103.htm --[[local type_tbl = { point = {'table'}, - poly = {'table'}, - maxalt = {'number', 'nil'}, + poly = {'table'}, + maxalt = {'number', 'nil'}, } - + local err, errmsg = mist.utils.typeCheck('mist.pointInPolygon', type_tbl, {point, poly, maxalt}) assert(err, errmsg) ]] @@ -2815,122 +2484,48 @@ function mist.pointInPolygon(point, poly, maxalt) --raycasting point in polygon. local pz = point.z local cn = 0 local newpoly = mist.utils.deepCopy(poly) - + if not maxalt or (point.y <= maxalt) then local polysize = #newpoly newpoly[#newpoly + 1] = newpoly[1] - + newpoly[1] = mist.utils.makeVec3(newpoly[1]) - + for k = 1, polysize do newpoly[k+1] = mist.utils.makeVec3(newpoly[k+1]) - if ((newpoly[k].z <= pz) and (newpoly[k+1].z > pz)) or ((newpoly[k].z > pz) and (newpoly[k+1].z <= pz)) then + if ((newpoly[k].z <= pz) and (newpoly[k+1].z > pz)) or ((newpoly[k].z > pz) and (newpoly[k+1].z <= pz)) then local vt = (pz - newpoly[k].z) / (newpoly[k+1].z - newpoly[k].z) if (px < newpoly[k].x + vt*(newpoly[k+1].x - newpoly[k].x)) then - cn = cn + 1 + cn = cn + 1 end end end - - return cn%2 == 1 + + return cn%2 == 1 else return false end end -mist.getUnitsInPolygon = function (unit_names, polyZone, max_alt) +function mist.getUnitsInPolygon(unit_names, polyZone, max_alt) local units = {} - + for i = 1, #unit_names do units[#units + 1] = Unit.getByName(unitNames[i]) end - + local inZoneUnits = {} for i =1, #units do if units[i]:isActive() and mist.pointInPolygon(units[i]:getPosition().p, polyZone, max_alt) then inZoneUnits[inZoneUnits + 1] = units[i] end end - + return inZoneUnits end -function mist.flagFunc.units_in_polygon(vars) ---[[vars needs to be: -units = table, -zone = table, -flag = number, -stopflag = number or nil, -maxalt = number or nil, -interval = number or nil, -req_num = number or nil -toggle = boolean or nil -unitTableDef = table or nil -]] --- type_tbl - local type_tbl = { - [{'units', 'unit'}] = 'table', - [{'zone', 'polyzone'}] = 'table', - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - [{'maxalt', 'alt'}] = {'number', 'nil'}, - interval = {'number', 'nil'}, - [{'req_num', 'reqnum'}] = {'number', 'nil'}, - toggle = {'boolean', 'nil'}, - unitTableDef = {'table', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.units_in_polygon', type_tbl, vars) - assert(err, errmsg) - local units = vars.units or vars.unit - local zone = vars.zone or vars.polyzone - local flag = vars.flag - local stopflag = vars.stopflag or -1 - local interval = vars.interval or 1 - local maxalt = vars.maxalt or vars.alt - local req_num = vars.req_num or vars.reqnum or 1 - local toggle = vars.toggle or nil - local unitTableDef = vars.unitTableDef - - if not units.processed then - unitTableDef = mist.utils.deepCopy(units) - end - - if (units.processed and units.processed < mist.getLastDBUpdateTime()) or not units.processed then -- run unit table short cuts - units = mist.makeUnitTable(unitTableDef) - end - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == 0) then - local num_in_zone = 0 - for i = 1, #units do - local unit = Unit.getByName(units[i]) - if unit then - local pos = unit:getPosition().p - if mist.pointInPolygon(pos, zone, maxalt) then - num_in_zone = num_in_zone + 1 - if num_in_zone >= req_num and trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - break - end - end - end - end - if toggle and (num_in_zone < req_num) and trigger.misc.getUserFlag(flag) > 0 then - trigger.action.setUserFlag(flag, false) - end - -- do another check in case stopflag was set true by this function - if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == 0) then - mist.scheduleFunction(mist.flagFunc.units_in_polygon, {{units = units, zone = zone, flag = flag, stopflag = stopflag, interval = interval, req_num = req_num, maxalt = maxalt, toggle = toggle, unitTableDef = unitTableDef}}, timer.getTime() + interval) - end - end - -end - - - - function mist.getUnitsInZones(unit_names, zone_names, zone_type) - + zone_type = zone_type or 'cylinder' if zone_type == 'c' or zone_type == 'cylindrical' or zone_type == 'C' then zone_type = 'cylinder' @@ -2938,7 +2533,7 @@ function mist.getUnitsInZones(unit_names, zone_names, zone_type) if zone_type == 's' or zone_type == 'spherical' or zone_type == 'S' then zone_type = 'sphere' end - + assert(zone_type == 'cylinder' or zone_type == 'sphere', 'invalid zone_type: ' .. tostring(zone_type)) local units = {} @@ -2950,20 +2545,20 @@ function mist.getUnitsInZones(unit_names, zone_names, zone_type) units[#units + 1] = unit end end - - + + for k = 1, #zone_names do local zone = trigger.misc.getZone(zone_names[k]) if zone then zones[#zones + 1] = {radius = zone.radius, x = zone.point.x, y = zone.point.y, z = zone.point.z} end end - + local in_zone_units = {} - + for units_ind = 1, #units do for zones_ind = 1, #zones do - if zone_type == 'sphere' then --add land height value for sphere zone type + if zone_type == 'sphere' then --add land height value for sphere zone type local alt = land.getHeight({x = zones[zones_ind].x, y = zones[zones_ind].z}) if alt then zones[zones_ind].y = alt @@ -2984,71 +2579,8 @@ function mist.getUnitsInZones(unit_names, zone_names, zone_type) return in_zone_units end - -function mist.flagFunc.units_in_zones(vars) - --[[vars needs to be: - units = table, - zones = table, - flag = number, - stopflag = number or nil, - zone_type = string or nil, - req_num = number or nil, - interval = number or nil - toggle = boolean or nil - ]] - -- type_tbl - local type_tbl = { - units = 'table', - zones = 'table', - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - [{'zone_type', 'zonetype'}] = {'string', 'nil'}, - [{'req_num', 'reqnum'}] = {'number', 'nil'}, - interval = {'number', 'nil'}, - toggle = {'boolean', 'nil'}, - unitTableDef = {'table', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.units_in_zones', type_tbl, vars) - assert(err, errmsg) - local units = vars.units - local zones = vars.zones - local flag = vars.flag - local stopflag = vars.stopflag or -1 - local zone_type = vars.zone_type or vars.zonetype or 'cylinder' - local req_num = vars.req_num or vars.reqnum or 1 - local interval = vars.interval or 1 - local toggle = vars.toggle or nil - local unitTableDef = vars.unitTableDef - - if not units.processed then - unitTableDef = mist.utils.deepCopy(units) - end - - if (units.processed and units.processed < mist.getLastDBUpdateTime()) or not units.processed then -- run unit table short cuts - units = mist.makeUnitTable(unitTableDef) - end - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - - local in_zone_units = mist.getUnitsInZones(units, zones, zone_type) - - if #in_zone_units >= req_num and trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - elseif #in_zone_units < req_num and toggle then - trigger.action.setUserFlag(flag, false) - end - -- do another check in case stopflag was set true by this function - if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - mist.scheduleFunction(mist.flagFunc.units_in_zones, {{units = units, zones = zones, flag = flag, stopflag = stopflag, zone_type = zone_type, req_num = req_num, interval = interval, toggle = toggle, unitTableDef = unitTableDef}}, timer.getTime() + interval) - end - end - -end - - function mist.getUnitsInMovingZones(unit_names, zone_unit_names, radius, zone_type) - + zone_type = zone_type or 'cylinder' if zone_type == 'c' or zone_type == 'cylindrical' or zone_type == 'C' then zone_type = 'cylinder' @@ -3056,7 +2588,7 @@ function mist.getUnitsInMovingZones(unit_names, zone_unit_names, radius, zone_ty if zone_type == 's' or zone_type == 'spherical' or zone_type == 'S' then zone_type = 'sphere' end - + assert(zone_type == 'cylinder' or zone_type == 'sphere', 'invalid zone_type: ' .. tostring(zone_type)) local units = {} @@ -3068,7 +2600,7 @@ function mist.getUnitsInMovingZones(unit_names, zone_unit_names, radius, zone_ty units[#units + 1] = unit end end - + for k = 1, #zone_unit_names do local unit = Unit.getByName(zone_unit_names[k]) if unit then @@ -3077,7 +2609,7 @@ function mist.getUnitsInMovingZones(unit_names, zone_unit_names, radius, zone_ty end local in_zone_units = {} - + for units_ind = 1, #units do for zone_units_ind = 1, #zone_units do local unit_pos = units[units_ind]:getPosition().p @@ -3096,105 +2628,28 @@ function mist.getUnitsInMovingZones(unit_names, zone_unit_names, radius, zone_ty return in_zone_units end - - -function mist.flagFunc.units_in_moving_zones(vars) - --[[vars needs to be: - units = table, - zone_units = table, - radius = number, - flag = number, - stopflag = number or nil, - zone_type = string or nil, - req_num = number or nil, - interval = number or nil - toggle = boolean or nil - ]] - -- type_tbl - local type_tbl = { - units = 'table', - [{'zone_units', 'zoneunits'}] = 'table', - radius = 'number', - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - [{'zone_type', 'zonetype'}] = {'string', 'nil'}, - [{'req_num', 'reqnum'}] = {'number', 'nil'}, - interval = {'number', 'nil'}, - toggle = {'boolean', 'nil'}, - unitTableDef = {'table', 'nil'}, - zUnitTableDef = {'table', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.units_in_moving_zones', type_tbl, vars) - assert(err, errmsg) - local units = vars.units - local zone_units = vars.zone_units or vars.zoneunits - local radius = vars.radius - local flag = vars.flag - local stopflag = vars.stopflag or -1 - local zone_type = vars.zone_type or vars.zonetype or 'cylinder' - local req_num = vars.req_num or vars.reqnum or 1 - local interval = vars.interval or 1 - local toggle = vars.toggle or nil - local unitTableDef = vars.unitTableDef - local zUnitTableDef = vars.zUnitTableDef - - if not units.processed then - unitTableDef = mist.utils.deepCopy(units) - end - - if not zone_units.processed then - zUnitTableDef = mist.utils.deepCopy(zone_units) - end - - if (units.processed and units.processed < mist.getLastDBUpdateTime()) or not units.processed then -- run unit table short cuts - units = mist.makeUnitTable(unitTableDef) - end - - if (zone_units.processed and zone_units.processed < mist.getLastDBUpdateTime()) or not zone_units.processed then -- run unit table short cuts - zone_units = mist.makeUnitTable(zUnitTableDef) - end - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - - local in_zone_units = mist.getUnitsInMovingZones(units, zone_units, radius, zone_type) - - if #in_zone_units >= req_num and trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - elseif #in_zone_units < req_num and toggle then - trigger.action.setUserFlag(flag, false) - end - -- do another check in case stopflag was set true by this function - if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - mist.scheduleFunction(mist.flagFunc.units_in_moving_zones, {{units = units, zone_units = zone_units, radius = radius, flag = flag, stopflag = stopflag, zone_type = zone_type, req_num = req_num, interval = interval, toggle = toggle, unitTableDef = unitTableDef, zUnitTableDef = zUnitTableDef}}, timer.getTime() + interval) - end - end - -end - - -mist.getUnitsLOS = function(unitset1, altoffset1, unitset2, altoffset2, radius) +function mist.getUnitsLOS(unitset1, altoffset1, unitset2, altoffset2, radius) + log:info("$1, $2, $3, $4, $5", unitset1, altoffset1, unitset2, altoffset2, radius) radius = radius or math.huge - local unit_info1 = {} local unit_info2 = {} - + -- get the positions all in one step, saves execution time. for unitset1_ind = 1, #unitset1 do local unit1 = Unit.getByName(unitset1[unitset1_ind]) if unit1 and unit1:isActive() == true then unit_info1[#unit_info1 + 1] = {} - unit_info1[#unit_info1]["unit"] = unit1 - unit_info1[#unit_info1]["pos"] = unit1:getPosition().p + unit_info1[#unit_info1].unit = unit1 + unit_info1[#unit_info1].pos = unit1:getPosition().p end end - + for unitset2_ind = 1, #unitset2 do local unit2 = Unit.getByName(unitset2[unitset2_ind]) if unit2 and unit2:isActive() == true then unit_info2[#unit_info2 + 1] = {} - unit_info2[#unit_info2]["unit"] = unit2 - unit_info2[#unit_info2]["pos"] = unit2:getPosition().p + unit_info2[#unit_info2].unit = unit2 + unit_info2[#unit_info2].pos = unit2:getPosition().p end end @@ -3210,267 +2665,21 @@ mist.getUnitsLOS = function(unitset1, altoffset1, unitset2, altoffset2, radius) if unit_added == false then unit_added = true LOS_data[#LOS_data + 1] = {} - LOS_data[#LOS_data]['unit'] = unit_info1[unit1_ind].unit - LOS_data[#LOS_data]['vis'] = {} - LOS_data[#LOS_data]['vis'][#LOS_data[#LOS_data]['vis'] + 1] = unit_info2[unit2_ind].unit + LOS_data[#LOS_data].unit = unit_info1[unit1_ind].unit + LOS_data[#LOS_data].vis = {} + LOS_data[#LOS_data].vis[#LOS_data[#LOS_data].vis + 1] = unit_info2[unit2_ind].unit else - LOS_data[#LOS_data]['vis'][#LOS_data[#LOS_data]['vis'] + 1] = unit_info2[unit2_ind].unit + LOS_data[#LOS_data].vis[#LOS_data[#LOS_data].vis + 1] = unit_info2[unit2_ind].unit end end end end end - + return LOS_data end -mist.flagFunc.units_LOS = function(vars) ---[[vars needs to be: -unitset1 = table, -altoffset1 = number, -unitset2 = table, -altoffset2 = number, -flag = number, -stopflag = number or nil, -radius = number or nil, -interval = number or nil, -req_num = number or nil -toggle = boolean or nil -]] --- type_tbl - local type_tbl = { - [{'unitset1', 'units1'}] = 'table', - [{'altoffset1', 'alt1'}] = 'number', - [{'unitset2', 'units2'}] = 'table', - [{'altoffset2', 'alt2'}] = 'number', - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - [{'req_num', 'reqnum'}] = {'number', 'nil'}, - interval = {'number', 'nil'}, - radius = {'number', 'nil'}, - toggle = {'boolean', 'nil'}, - unitTableDef1 = {'table', 'nil'}, - unitTableDef2 = {'table', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.units_LOS', type_tbl, vars) - assert(err, errmsg) - local unitset1 = vars.unitset1 or vars.units1 - local altoffset1 = vars.altoffset1 or vars.alt1 - local unitset2 = vars.unitset2 or vars.units2 - local altoffset2 = vars.altoffset2 or vars.alt2 - local flag = vars.flag - local stopflag = vars.stopflag or -1 - local interval = vars.interval or 1 - local radius = vars.radius or math.huge - local req_num = vars.req_num or vars.reqnum or 1 - local toggle = vars.toggle or nil - local unitTableDef1 = vars.unitTableDef1 - local unitTableDef2 = vars.unitTableDef2 - - if not unitset1.processed then - unitTableDef1 = mist.utils.deepCopy(unitset1) - end - - if not unitset2.processed then - unitTableDef2 = mist.utils.deepCopy(unitset2) - end - - if (unitset1.processed and unitset1.processed < mist.getLastDBUpdateTime()) or not unitset1.processed then -- run unit table short cuts - unitset1 = mist.makeUnitTable(unitTableDef1) - end - - if (unitset2.processed and unitset2.processed < mist.getLastDBUpdateTime()) or not unitset2.processed then -- run unit table short cuts - unitset2 = mist.makeUnitTable(unitTableDef2) - end - - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - - local unitLOSdata = mist.getUnitsLOS(unitset1, altoffset1, unitset2, altoffset2, radius) - - if #unitLOSdata >= req_num and trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - elseif #unitLOSdata < req_num and toggle then - trigger.action.setUserFlag(flag, false) - end - -- do another check in case stopflag was set true by this function - if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - mist.scheduleFunction(mist.flagFunc.units_LOS, {{unitset1 = unitset1, altoffset1 = altoffset1, unitset2 = unitset2, altoffset2 = altoffset2, flag = flag, stopflag = stopflag, radius = radius, req_num = req_num, interval = interval, toggle = toggle, unitTableDef1 = unitTableDef1, unitTableDef2 = unitTableDef2}}, timer.getTime() + interval) - end - end -end - -mist.flagFunc.group_alive = function(vars) ---[[vars -groupName -flag -toggle -interval -stopFlag - -]] - local type_tbl = { - [{'group', 'groupname', 'gp', 'groupName'}] = 'string', - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - interval = {'number', 'nil'}, - toggle = {'boolean', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.group_alive', type_tbl, vars) - assert(err, errmsg) - - local groupName = vars.groupName or vars.group or vars.gp or vars.Groupname - local flag = vars.flag - local stopflag = vars.stopflag or -1 - local interval = vars.interval or 1 - local toggle = vars.toggle or nil - - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - if Group.getByName(groupName) and Group.getByName(groupName):isExist() == true and #Group.getByName(groupName):getUnits() > 0 then - if trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - end - else - if toggle then - trigger.action.setUserFlag(flag, false) - end - end - end - - if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - mist.scheduleFunction(mist.flagFunc.group_alive, {{groupName = groupName, flag = flag, stopflag = stopflag, interval = interval, toggle = toggle}}, timer.getTime() + interval) - end - -end - -mist.flagFunc.group_dead = function(vars) - local type_tbl = { - [{'group', 'groupname', 'gp', 'groupName'}] = 'string', - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - interval = {'number', 'nil'}, - toggle = {'boolean', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.group_dead', type_tbl, vars) - assert(err, errmsg) - - local groupName = vars.groupName or vars.group or vars.gp or vars.Groupname - local flag = vars.flag - local stopflag = vars.stopflag or -1 - local interval = vars.interval or 1 - local toggle = vars.toggle or nil - - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - if (Group.getByName(groupName) and Group.getByName(groupName):isExist() == false) or (Group.getByName(groupName) and #Group.getByName(groupName):getUnits() < 1) or not Group.getByName(groupName) then - if trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - end - else - if toggle then - trigger.action.setUserFlag(flag, false) - end - end - end - - if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - mist.scheduleFunction(mist.flagFunc.group_dead, {{groupName = groupName, flag = flag, stopflag = stopflag, interval = interval, toggle = toggle}}, timer.getTime() + interval) - end -end - -mist.flagFunc.group_alive_less_than = function(vars) - local type_tbl = { - [{'group', 'groupname', 'gp', 'groupName'}] = 'string', - percent = 'number', - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - interval = {'number', 'nil'}, - toggle = {'boolean', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.group_alive_less_than', type_tbl, vars) - assert(err, errmsg) - - local groupName = vars.groupName or vars.group or vars.gp or vars.Groupname - local flag = vars.flag - local percent = vars.percent - local stopflag = vars.stopflag or -1 - local interval = vars.interval or 1 - local toggle = vars.toggle or nil - - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - if Group.getByName(groupName) and Group.getByName(groupName):isExist() == true then - if Group.getByName(groupName):getSize()/Group.getByName(groupName):getInitialSize() < percent/100 then - if trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - end - else - if toggle then - trigger.action.setUserFlag(flag, false) - end - end - else - if trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - end - end - end - - if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - mist.scheduleFunction(mist.flagFunc.group_alive_less_than, {{groupName = groupName, flag = flag, stopflag = stopflag, interval = interval, toggle = toggle, percent = percent}}, timer.getTime() + interval) - end -end - -mist.flagFunc.group_alive_more_than = function(vars) - local type_tbl = { - [{'group', 'groupname', 'gp', 'groupName'}] = 'string', - percent = 'number', - flag = {'number', 'string'}, - stopflag = {'number', 'string', 'nil'}, - interval = {'number', 'nil'}, - toggle = {'boolean', 'nil'}, - } - - local err, errmsg = mist.utils.typeCheck('mist.flagFunc.group_alive_more_than', type_tbl, vars) - assert(err, errmsg) - - local groupName = vars.groupName or vars.group or vars.gp or vars.Groupname - local flag = vars.flag - local percent = vars.percent - local stopflag = vars.stopflag or -1 - local interval = vars.interval or 1 - local toggle = vars.toggle or nil - - - if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - if Group.getByName(groupName) and Group.getByName(groupName):isExist() == true then - if Group.getByName(groupName):getSize()/Group.getByName(groupName):getInitialSize() > percent/100 then - if trigger.misc.getUserFlag(flag) == 0 then - trigger.action.setUserFlag(flag, true) - end - else - if toggle and trigger.misc.getUserFlag(flag) == 1 then - trigger.action.setUserFlag(flag, false) - end - end - else --- just in case - if toggle and trigger.misc.getUserFlag(flag) == 1 then - trigger.action.setUserFlag(flag, false) - end - end - end - - if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then - mist.scheduleFunction(mist.flagFunc.group_alive_more_than, {{groupName = groupName, flag = flag, stopflag = stopflag, interval = interval, toggle = toggle, percent = percent}}, timer.getTime() + interval) - end -end - -mist.getAvgPoint = function(points) +function mist.getAvgPoint(points) local avgX, avgY, avgZ, totNum = 0, 0, 0, 0 for i = 1, #points do local nPoint = mist.utils.makeVec3(points[i]) @@ -3479,19 +2688,18 @@ mist.getAvgPoint = function(points) avgY = avgY + nPoint.y avgZ = avgZ + nPoint.z totNum = totNum + 1 - end + end end if totNum ~= 0 then return {x = avgX/totNum, y = avgY/totNum, z = avgZ/totNum} end end - --Gets the average position of a group of units (by name) -mist.getAvgPos = function(unitNames) +function mist.getAvgPos(unitNames) local avgX, avgY, avgZ, totNum = 0, 0, 0, 0 for i = 1, #unitNames do - local unit + local unit if Unit.getByName(unitNames[i]) then unit = Unit.getByName(unitNames[i]) elseif StaticObject.getByName(unitNames[i]) then @@ -3505,14 +2713,14 @@ mist.getAvgPos = function(unitNames) avgZ = avgZ + pos.z totNum = totNum + 1 end - end + end end if totNum ~= 0 then return {x = avgX/totNum, y = avgY/totNum, z = avgZ/totNum} end end -mist.getAvgGroupPos = function(groupName) +function mist.getAvgGroupPos(groupName) if type(groupName) == 'string' and Group.getByName(groupName) and Group.getByName(groupName):isExist() == true then groupName = Group.getByName(groupName) end @@ -3520,659 +2728,2277 @@ mist.getAvgGroupPos = function(groupName) for i = 1, #groupName:getSize() do table.insert(units, groupName.getUnit(i):getName()) end - + return mist.getAvgPos(units) end ---------------------------------------------------------------------------------------- --- demos -mist.demos = {} - -mist.demos.printFlightData = function(unit) - if unit:isExist() then - local function printData(unit, prevVel, prevE, prevTime) - local angles = mist.getAttitude(unit) - if angles then - local Heading = angles.Heading - local Pitch = angles.Pitch - local Roll = angles.Roll - local Yaw = angles.Yaw - local AoA = angles.AoA - local ClimbAngle = angles.ClimbAngle - - if not Heading then - Heading = 'NA' - else - Heading = string.format('%12.2f', mist.utils.toDegree(Heading)) - end - - if not Pitch then - Pitch = 'NA' - else - Pitch = string.format('%12.2f', mist.utils.toDegree(Pitch)) - end - - if not Roll then - Roll = 'NA' - else - Roll = string.format('%12.2f', mist.utils.toDegree(Roll)) - end - - local AoAplusYaw = 'NA' - if AoA and Yaw then - AoAplusYaw = string.format('%12.2f', mist.utils.toDegree((AoA^2 + Yaw^2)^0.5)) - end - - if not Yaw then - Yaw = 'NA' - else - Yaw = string.format('%12.2f', mist.utils.toDegree(Yaw)) - end - - if not AoA then - AoA = 'NA' - else - AoA = string.format('%12.2f', mist.utils.toDegree(AoA)) - end - - if not ClimbAngle then - ClimbAngle = 'NA' - else - ClimbAngle = string.format('%12.2f', mist.utils.toDegree(ClimbAngle)) - end - local unitPos = unit:getPosition() - local unitVel = unit:getVelocity() - local curTime = timer.getTime() - local absVel = string.format('%12.2f', mist.vec.mag(unitVel)) - - - local unitAcc = 'NA' - local Gs = 'NA' - local axialGs = 'NA' - local transGs = 'NA' - if prevVel and prevTime then - local xAcc = (unitVel.x - prevVel.x)/(curTime - prevTime) - local yAcc = (unitVel.y - prevVel.y)/(curTime - prevTime) - local zAcc = (unitVel.z - prevVel.z)/(curTime - prevTime) - - unitAcc = string.format('%12.2f', mist.vec.mag({x = xAcc, y = yAcc, z = zAcc})) - Gs = string.format('%12.2f', mist.vec.mag({x = xAcc, y = yAcc + 9.81, z = zAcc})/9.81) - axialGs = string.format('%12.2f', mist.vec.dp({x = xAcc, y = yAcc + 9.81, z = zAcc}, unitPos.x)/9.81) - transGs = string.format('%12.2f', mist.vec.mag(mist.vec.cp({x = xAcc, y = yAcc + 9.81, z = zAcc}, unitPos.x))/9.81) - end - - local E = 0.5*mist.vec.mag(unitVel)^2 + 9.81*unitPos.p.y - - local energy = string.format('%12.2e', E) - - local dEdt = 'NA' - if prevE and prevTime then - dEdt = string.format('%12.2e', (E - prevE)/(curTime - prevTime)) - end - - trigger.action.outText(string.format('%-25s', 'Heading: ') .. Heading .. ' degrees\n' .. string.format('%-25s', 'Roll: ') .. Roll .. ' degrees\n' .. string.format('%-25s', 'Pitch: ') .. Pitch - .. ' degrees\n' .. string.format('%-25s', 'Yaw: ') .. Yaw .. ' degrees\n' .. string.format('%-25s', 'AoA: ') .. AoA .. ' degrees\n' .. string.format('%-25s', 'AoA plus Yaw: ') .. AoAplusYaw .. ' degrees\n' .. string.format('%-25s', 'Climb Angle: ') .. - ClimbAngle .. ' degrees\n' .. string.format('%-25s', 'Absolute Velocity: ') .. absVel .. ' m/s\n' .. string.format('%-25s', 'Absolute Acceleration: ') .. unitAcc ..' m/s^2\n' - .. string.format('%-25s', 'Axial G loading: ') .. axialGs .. ' g\n' .. string.format('%-25s', 'Transverse G loading: ') .. transGs .. ' g\n' .. string.format('%-25s', 'Absolute G loading: ') .. Gs .. ' g\n' .. string.format('%-25s', 'Energy: ') .. energy .. ' J/kg\n' .. string.format('%-25s', 'dE/dt: ') .. dEdt .. - ' J/(kg*s)', 1) - - return unitVel, E, curTime - end - end - - local function frameFinder(unit, prevVel, prevE, prevTime) - if unit:isExist() then - local currVel = unit:getVelocity() - if prevVel and (prevVel.x ~= currVel.x or prevVel.y ~= currVel.y or prevVel.z ~= currVel.z) or (prevTime and (timer.getTime() - prevTime) > 0.25) then - prevVel, prevE, prevTime = printData(unit, prevVel, prevE, prevTime) - end - mist.scheduleFunction(frameFinder, {unit, prevVel, prevE, prevTime}, timer.getTime() + 0.005) -- it can't go this fast, limited to the 100 times a sec check right now. - end - end - - - local curVel = unit:getVelocity() - local curTime = timer.getTime() - local curE = 0.5*mist.vec.mag(curVel)^2 + 9.81*unit:getPosition().p.y - frameFinder(unit, curVel, curE, curTime) - +--[[ vars for mist.getMGRSString: +vars.units - table of unit names (NOT unitNameTable- maybe this should change). +vars.acc - integer between 0 and 5, inclusive +]] +function mist.getMGRSString(vars) + local units = vars.units + local acc = vars.acc or 5 + local avgPos = mist.getAvgPos(units) + if avgPos then + return mist.tostringMGRS(coord.LLtoMGRS(coord.LOtoLL(avgPos)), acc) end - -end --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- ---start of Mission task functions ---***************************************************** -mist.ground = {} -mist.fixedWing = {} -mist.heli = {} -mist.air = {} -mist.air.fixedWing = {} -mist.air.heli = {} - -mist.goRoute = function(group, path) - local misTask = { - id = 'Mission', - params = { - route = { - points = mist.utils.deepCopy(path), - }, - }, - } - if type(group) == 'string' then - group = Group.getByName(group) - end - local groupCon = nil - if group then - groupCon = group:getController() - if groupCon then - groupCon:setTask(misTask) - return true - end - end - --Controller.setTask(groupCon, misTask) - return false end -function mist.getGroupRoute(groupIdent, task) -- same as getGroupPoints but returns speed and formation type along with vec2 of point} +--[[ vars for mist.getLLString +vars.units - table of unit names (NOT unitNameTable- maybe this should change). +vars.acc - integer, number of numbers after decimal place +vars.DMS - if true, output in degrees, minutes, seconds. Otherwise, output in degrees, minutes. +]] +function mist.getLLString(vars) + local units = vars.units + local acc = vars.acc or 3 + local DMS = vars.DMS + local avgPos = mist.getAvgPos(units) + if avgPos then + local lat, lon = coord.LOtoLL(avgPos) + return mist.tostringLL(lat, lon, acc, DMS) + end +end + +--[[ +vars.units- table of unit names (NOT unitNameTable- maybe this should change). +vars.ref - vec3 ref point, maybe overload for vec2 as well? +vars.alt - boolean, if used, includes altitude in string +vars.metric - boolean, gives distance in km instead of NM. +]] +function mist.getBRString(vars) + local units = vars.units + local ref = mist.utils.makeVec3(vars.ref, 0) -- turn it into Vec3 if it is not already. + local alt = vars.alt + local metric = vars.metric + local avgPos = mist.getAvgPos(units) + if avgPos then + local vec = {x = avgPos.x - ref.x, y = avgPos.y - ref.y, z = avgPos.z - ref.z} + local dir = mist.utils.getDir(vec, ref) + local dist = mist.utils.get2DDist(avgPos, ref) + if alt then + alt = avgPos.y + end + return mist.tostringBR(dir, dist, alt, metric) + end +end + +-- Returns the Vec3 coordinates of the average position of the concentration of units most in the heading direction. +--[[ vars for mist.getLeadingPos: +vars.units - table of unit names +vars.heading - direction +vars.radius - number +vars.headingDegrees - boolean, switches heading to degrees +]] +function mist.getLeadingPos(vars) + local units = vars.units + local heading = vars.heading + local radius = vars.radius + if vars.headingDegrees then + heading = mist.utils.toRadian(vars.headingDegrees) + end + + local unitPosTbl = {} + for i = 1, #units do + local unit = Unit.getByName(units[i]) + if unit and unit:isExist() then + unitPosTbl[#unitPosTbl + 1] = unit:getPosition().p + end + end + if #unitPosTbl > 0 then -- one more more units found. + -- first, find the unit most in the heading direction + local maxPos = -math.huge + + local maxPosInd -- maxPos - the furthest in direction defined by heading; maxPosInd = + for i = 1, #unitPosTbl do + local rotatedVec2 = mist.vec.rotateVec2(mist.utils.makeVec2(unitPosTbl[i]), heading) + if (not maxPos) or maxPos < rotatedVec2.x then + maxPos = rotatedVec2.x + maxPosInd = i + end + end + + --now, get all the units around this unit... + local avgPos + if radius then + local maxUnitPos = unitPosTbl[maxPosInd] + local avgx, avgy, avgz, totNum = 0, 0, 0, 0 + for i = 1, #unitPosTbl do + if mist.utils.get2DDist(maxUnitPos, unitPosTbl[i]) <= radius then + avgx = avgx + unitPosTbl[i].x + avgy = avgy + unitPosTbl[i].y + avgz = avgz + unitPosTbl[i].z + totNum = totNum + 1 + end + end + avgPos = { x = avgx/totNum, y = avgy/totNum, z = avgz/totNum} + else + avgPos = unitPosTbl[maxPosInd] + end + + return avgPos + end +end + +--[[ vars for mist.getLeadingMGRSString: +vars.units - table of unit names +vars.heading - direction +vars.radius - number +vars.headingDegrees - boolean, switches heading to degrees +vars.acc - number, 0 to 5. +]] +function mist.getLeadingMGRSString(vars) + local pos = mist.getLeadingPos(vars) + if pos then + local acc = vars.acc or 5 + return mist.tostringMGRS(coord.LLtoMGRS(coord.LOtoLL(pos)), acc) + end +end + +--[[ vars for mist.getLeadingLLString: +vars.units - table of unit names +vars.heading - direction, number +vars.radius - number +vars.headingDegrees - boolean, switches heading to degrees +vars.acc - number of digits after decimal point (can be negative) +vars.DMS - boolean, true if you want DMS. +]] +function mist.getLeadingLLString(vars) + local pos = mist.getLeadingPos(vars) + if pos then + local acc = vars.acc or 3 + local DMS = vars.DMS + local lat, lon = coord.LOtoLL(pos) + return mist.tostringLL(lat, lon, acc, DMS) + end +end + +--[[ vars for mist.getLeadingBRString: +vars.units - table of unit names +vars.heading - direction, number +vars.radius - number +vars.headingDegrees - boolean, switches heading to degrees +vars.metric - boolean, if true, use km instead of NM. +vars.alt - boolean, if true, include altitude. +vars.ref - vec3/vec2 reference point. +]] +function mist.getLeadingBRString(vars) + local pos = mist.getLeadingPos(vars) + if pos then + local ref = vars.ref + local alt = vars.alt + local metric = vars.metric + + local vec = {x = pos.x - ref.x, y = pos.y - ref.y, z = pos.z - ref.z} + local dir = mist.utils.getDir(vec, ref) + local dist = mist.utils.get2DDist(pos, ref) + if alt then + alt = pos.y + end + return mist.tostringBR(dir, dist, alt, metric) + end +end + +end + +--- Group functions. +-- @section groups +do -- group functions scope + + --- Check table used for group creation. + -- @tparam table groupData table to check. + -- @treturn boolean true if a group can be spawned using + -- this table, false otherwise. + function mist.groupTableCheck(groupData) + -- return false if country, category + -- or units are missing + if not groupData.country or + not groupData.category or + not groupData.units then + return false + end + -- return false if unitData misses + -- x, y or type + for unitId, unitData in pairs(groupData.units) do + if not unitData.x or + not unitData.y or + not unitData.type then + return false + end + end + -- everything we need is here return true + return true + end + + --- Returns group data table of give group. + function mist.getCurrentGroupData(gpName) + local dbData = mist.getGroupData(gpName) + + if Group.getByName(gpName) and Group.getByName(gpName):isExist() == true then + local newGroup = Group.getByName(gpName) + local newData = {} + newData.name = gpName + newData.groupId = tonumber(newGroup:getID()) + newData.category = newGroup:getCategory() + newData.groupName = gpName + newData.hidden = dbData.hidden + + if newData.category == 2 then + newData.category = 'vehicle' + elseif newData.category == 3 then + newData.category = 'ship' + end + + newData.units = {} + local newUnits = newGroup:getUnits() + for unitNum, unitData in pairs(newGroup:getUnits()) do + newData.units[unitNum] = {} + local uName = unitData:getName() + + if mist.DBs.unitsByName[uName] and unitData:getTypeName() == mist.DBs.unitsByName[uName].type and mist.DBs.unitsByName[uName].unitId == tonumber(unitData:getID()) then -- If old data matches most of new data + newData.units[unitNum] = mist.utils.deepCopy(mist.DBs.unitsByName[uName]) + else + newData.units[unitNum].unitId = tonumber(unitData:getID()) + newData.units[unitNum].type = unitData:getTypeName() + newData.units[unitNum].skill = mist.getUnitSkill(uName) + newData.country = string.lower(country.name[unitData:getCountry()]) + newData.units[unitNum].callsign = unitData:getCallsign() + newData.units[unitNum].unitName = uName + end + + newData.units[unitNum].x = unitData:getPosition().p.x + newData.units[unitNum].y = unitData:getPosition().p.z + newData.units[unitNum].point = {x = newData.units[unitNum].x, y = newData.units[unitNum].y} + newData.units[unitNum].heading = mist.getHeading(unitData, true) -- added to DBs + newData.units[unitNum].alt = unitData:getPosition().p.y + newData.units[unitNum].speed = mist.vec.mag(unitData:getVelocity()) + + end + + return newData + elseif StaticObject.getByName(gpName) and StaticObject.getByName(gpName):isExist() == true then + local staticObj = StaticObject.getByName(gpName) + dbData.units[1].x = staticObj:getPosition().p.x + dbData.units[1].y = staticObj:getPosition().p.z + dbData.units[1].alt = staticObj:getPosition().p.y + dbData.units[1].heading = mist.getHeading(staticObj, true) + + return dbData + end + + end + + function mist.getGroupData(gpName) + local found = false + local newData = {} + if mist.DBs.groupsByName[gpName] then + newData = mist.utils.deepCopy(mist.DBs.groupsByName[gpName]) + found = true + end + + if found == false then + for groupName, groupData in pairs(mist.DBs.groupsByName) do + if mist.stringMatch(groupName, gpName) == true then + newData = mist.utils.deepCopy(groupData) + newData.groupName = groupName + found = true + break + end + end + end + + local payloads + if newData.category == 'plane' or newData.category == 'helicopter' then + payloads = mist.getGroupPayload(newData.groupName) + end + if found == true then + --newData.hidden = false -- maybe add this to DBs + + for unitNum, unitData in pairs(newData.units) do + newData.units[unitNum] = {} + + newData.units[unitNum].unitId = unitData.unitId + --newData.units[unitNum].point = unitData.point + newData.units[unitNum].x = unitData.point.x + newData.units[unitNum].y = unitData.point.y + newData.units[unitNum].alt = unitData.alt + newData.units[unitNum].alt_type = unitData.alt_type + newData.units[unitNum].speed = unitData.speed + newData.units[unitNum].type = unitData.type + newData.units[unitNum].skill = unitData.skill + newData.units[unitNum].unitName = unitData.unitName + newData.units[unitNum].heading = unitData.heading -- added to DBs + newData.units[unitNum].playerCanDrive = unitData.playerCanDrive -- added to DBs + + + if newData.category == 'plane' or newData.category == 'helicopter' then + newData.units[unitNum].payload = payloads[unitNum] + newData.units[unitNum].livery_id = unitData.livery_id + newData.units[unitNum].onboard_num = unitData.onboard_num + newData.units[unitNum].callsign = unitData.callsign + newData.units[unitNum].AddPropAircraft = unitData.AddPropAircraft + end + if newData.category == 'static' then + newData.units[unitNum].categoryStatic = unitData.categoryStatic + newData.units[unitNum].mass = unitData.mass + newData.units[unitNum].canCargo = unitData.canCargo + newData.units[unitNum].shape_name = unitData.shape_name + end + end + --log:info(newData) + return newData + else + log:error('$1 not found in MIST database', gpName) + return + end + end + + function mist.getPayload(unitIdent) -- refactor to search by groupId and allow groupId and groupName as inputs - local gpId = groupIdent - if type(groupIdent) == 'string' and not tonumber(groupIdent) then - gpId = mist.DBs.MEgroupsByName[groupIdent].groupId - end - - for coa_name, coa_data in pairs(env.mission.coalition) do - if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then - if coa_data.country then --there is a country table - for cntry_id, cntry_data in pairs(coa_data.country) do - for obj_type_name, obj_type_data in pairs(cntry_data) do - if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" then -- only these types have points - if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! - for group_num, group_data in pairs(obj_type_data.group) do - if group_data and group_data.groupId == gpId then -- this is the group we are looking for - if group_data.route and group_data.route.points and #group_data.route.points > 0 then - local points = {} - - for point_num, point in pairs(group_data.route.points) do - local routeData = {} - if not point.point then - routeData.x = point.x - routeData.y = point.y - else - routeData.point = point.point --it's possible that the ME could move to the point = Vec2 notation. - end - routeData.form = point.action - routeData.speed = point.speed - routeData.alt = point.alt - routeData.alt_type = point.alt_type - routeData.airdromeId = point.airdromeId - routeData.helipadId = point.helipadId - routeData.type = point.type - routeData.action = point.action - if task then - routeData.task = point.task - end - points[point_num] = routeData - end - - return points - end - return - end --if group_data and group_data.name and group_data.name == 'groupname' - end --for group_num, group_data in pairs(obj_type_data.group) do - end --if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then - end --if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" or obj_type_name == "static" then - end --for obj_type_name, obj_type_data in pairs(cntry_data) do - end --for cntry_id, cntry_data in pairs(coa_data.country) do - end --if coa_data.country then --there is a country table - end --if coa_name == 'red' or coa_name == 'blue' and type(coa_data) == 'table' then - end --for coa_name, coa_data in pairs(mission.coalition) do -end - - - -mist.ground.buildPath = function() end -- ???? - - --- No longer accepts path -mist.ground.buildWP = function(point, overRideForm, overRideSpeed) - - local wp = {} - wp.x = point.x - - if point.z then - wp.y = point.z - else - wp.y = point.y - end - local form, speed - - if point.speed and not overRideSpeed then - wp.speed = point.speed - elseif type(overRideSpeed) == 'number' then - wp.speed = overRideSpeed - else - wp.speed = mist.utils.kmphToMps(20) - end - - if point.form and not overRideForm then - form = point.form - else - form = overRideForm - end - - if not form then - wp.action = 'Cone' - else - form = string.lower(form) - if form == 'off_road' or form == 'off road' then - wp.action = 'Off Road' - elseif form == 'on_road' or form == 'on road' then - wp.action = 'On Road' - elseif form == 'rank' or form == 'line_abrest' or form == 'line abrest' or form == 'lineabrest'then - wp.action = 'Rank' - elseif form == 'cone' then - wp.action = 'Cone' - elseif form == 'diamond' then - wp.action = 'Diamond' - elseif form == 'vee' then - wp.action = 'Vee' - elseif form == 'echelon_left' or form == 'echelon left' or form == 'echelonl' then - wp.action = 'EchelonL' - elseif form == 'echelon_right' or form == 'echelon right' or form == 'echelonr' then - wp.action = 'EchelonR' - else - wp.action = 'Cone' -- if nothing matched - end - end - - wp.type = 'Turning Point' - - return wp - -end - -mist.fixedWing.buildWP = function(point, WPtype, speed, alt, altType) - - local wp = {} - wp.x = point.x - - if point.z then - wp.y = point.z - else - wp.y = point.y - end - - if alt and type(alt) == 'number' then - wp.alt = alt - else - wp.alt = 2000 - end - - if altType then - altType = string.lower(altType) - if altType == 'radio' or altType == 'agl' then - wp.alt_type = 'RADIO' - elseif altType == 'baro' or altType == 'asl' then - wp.alt_type = 'BARO' - end - else - wp.alt_type = 'RADIO' - end - - if point.speed then - speed = point.speed - end - - if point.type then - WPtype = point.type - end - - if not speed then - wp.speed = mist.utils.kmphToMps(500) - else - wp.speed = speed - end - - if not WPtype then - wp.action = 'Turning Point' - else - WPtype = string.lower(WPtype) - if WPtype == 'flyover' or WPtype == 'fly over' or WPtype == 'fly_over' then - wp.action = 'Fly Over Point' - elseif WPtype == 'turningpoint' or WPtype == 'turning point' or WPtype == 'turning_point' then - wp.action = 'Turning Point' - else - wp.action = 'Turning Point' - end - end - - wp.type = 'Turning Point' - return wp -end - -mist.heli.buildWP = function(point, WPtype, speed, alt, altType) - - local wp = {} - wp.x = point.x - - if point.z then - wp.y = point.z - else - wp.y = point.y - end - - if alt and type(alt) == 'number' then - wp.alt = alt - else - wp.alt = 500 - end - - if altType then - altType = string.lower(altType) - if altType == 'radio' or altType == 'agl' then - wp.alt_type = 'RADIO' - elseif altType == 'baro' or altType == 'asl' then - wp.alt_type = 'BARO' - end - else - wp.alt_type = 'RADIO' - end - - if point.speed then - speed = point.speed - end - - if point.type then - WPtype = point.type - end - - if not speed then - wp.speed = mist.utils.kmphToMps(200) - else - wp.speed = speed - end - - if not WPtype then - wp.action = 'Turning Point' - else - WPtype = string.lower(WPtype) - if WPtype == 'flyover' or WPtype == 'fly over' or WPtype == 'fly_over' then - wp.action = 'Fly Over Point' - elseif WPtype == 'turningpoint' or WPtype == 'turning point' or WPtype == 'turning_point' then - wp.action = 'Turning Point' - else - wp.action = 'Turning Point' - end - end - - wp.type = 'Turning Point' - return wp -end - - - ---------------------------------- - --- - - --- need to return a Vec3 or Vec2? -function mist.getRandPointInCircle(point, radius, innerRadius) - local theta = 2*math.pi*math.random() - local rad = math.random() + math.random() - if rad > 1 then - rad = 2 - rad - end - - local radMult - if innerRadius and innerRadius <= radius then - radMult = (radius - innerRadius)*rad + innerRadius - else - radMult = radius*rad - end - - if not point.z then --might as well work with vec2/3 - point.z = point.y - end - - local rndCoord - if radius > 0 then - rndCoord = {x = math.cos(theta)*radMult + point.x, y = math.sin(theta)*radMult + point.z} - else - rndCoord = {x = point.x, y = point.z} - end - return rndCoord -end - -mist.getRandomPointInZone = function(zoneName, innerRadius) - if type(zoneName) == 'string' and type(trigger.misc.getZone(zoneName)) == 'table' then - return mist.getRandPointInCircle(trigger.misc.getZone(zoneName).point, trigger.misc.getZone(zoneName).radius, innerRadius) - end - return false -end - -mist.groupToRandomPoint = function(vars) - local group = vars.group --Required - local point = vars.point --required - local radius = vars.radius or 0 - local innerRadius = vars.innerRadius - local form = vars.form or 'Cone' - local heading = vars.heading or math.random()*2*math.pi - local headingDegrees = vars.headingDegrees - local speed = vars.speed or mist.utils.kmphToMps(20) - - - local useRoads - if not vars.disableRoads then - useRoads = true - else - useRoads = false - end - - local path = {} - - if headingDegrees then - heading = headingDegrees*math.pi/180 - end - - if heading >= 2*math.pi then - heading = heading - 2*math.pi - end - - local rndCoord = mist.getRandPointInCircle(point, radius, innerRadius) - - local offset = {} - local posStart = mist.getLeadPos(group) - - offset.x = mist.utils.round(math.sin(heading - (math.pi/2)) * 50 + rndCoord.x, 3) - offset.z = mist.utils.round(math.cos(heading + (math.pi/2)) * 50 + rndCoord.y, 3) - path[#path + 1] = mist.ground.buildWP(posStart, form, speed) - - - if useRoads == true and ((point.x - posStart.x)^2 + (point.z - posStart.z)^2)^0.5 > radius * 1.3 then - path[#path + 1] = mist.ground.buildWP({['x'] = posStart.x + 11, ['z'] = posStart.z + 11}, 'off_road', speed) - path[#path + 1] = mist.ground.buildWP(posStart, 'on_road', speed) - path[#path + 1] = mist.ground.buildWP(offset, 'on_road', speed) - else - path[#path + 1] = mist.ground.buildWP({['x'] = posStart.x + 25, ['z'] = posStart.z + 25}, form, speed) - end - - path[#path + 1] = mist.ground.buildWP(offset, form, speed) - path[#path + 1] = mist.ground.buildWP(rndCoord, form, speed) - - mist.goRoute(group, path) - - return -end - -mist.groupRandomDistSelf = function(gpData, dist, form, heading, speed) - local pos = mist.getLeadPos(gpData) - local fakeZone = {} - fakeZone.radius = dist or math.random(300, 1000) - fakeZone.point = {x = pos.x, y = pos.y, z = pos.z} - mist.groupToRandomZone(gpData, fakeZone, form, heading, speed) - - return -end - -mist.groupToRandomZone = function(gpData, zone, form, heading, speed) - if type(gpData) == 'string' then - gpData = Group.getByName(gpData) - end - - if type(zone) == 'string' then - zone = trigger.misc.getZone(zone) - elseif type(zone) == 'table' and not zone.radius then - zone = trigger.misc.getZone(zone[math.random(1, #zone)]) - end - - if speed then - speed = mist.utils.kmphToMps(speed) - end - - local vars = {} - vars.group = gpData - vars.radius = zone.radius - vars.form = form - vars.headingDegrees = heading - vars.speed = speed - vars.point = mist.utils.zoneToVec3(zone) - - mist.groupToRandomPoint(vars) - - return -end - -mist.isTerrainValid = function(coord, terrainTypes) -- vec2/3 and enum or table of acceptable terrain types - if coord.z then - coord.y = coord.z - end - local typeConverted = {} - - if type(terrainTypes) == 'string' then -- if its a string it does this check - for constId, constData in pairs(land.SurfaceType) do - if string.lower(constId) == string.lower(terrainTypes) or string.lower(constData) == string.lower(terrainTypes) then - table.insert(typeConverted, constId) + local unitId = unitIdent + if type(unitIdent) == 'string' and not tonumber(unitIdent) then + if mist.DBs.MEunitsByName[unitIdent] then + unitId = mist.DBs.MEunitsByName[unitIdent].unitId + else + log:error("Unit not found in mist.DBs.MEunitsByName: $1", unitIdent) end end - elseif type(terrainTypes) == 'table' then -- if its a table it does this check - for typeId, typeData in pairs(terrainTypes) do - for constId, constData in pairs(land.SurfaceType) do - if string.lower(constId) == string.lower(typeData) or string.lower(constData) == string.lower(typeId) then - table.insert(typeConverted, constId) + local gpId = mist.DBs.MEunitsById[unitId].groupId + + if gpId and unitId then + for coa_name, coa_data in pairs(env.mission.coalition) do + if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then + if coa_data.country then --there is a country table + for cntry_id, cntry_data in pairs(coa_data.country) do + for obj_type_name, obj_type_data in pairs(cntry_data) do + if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" then -- only these types have points + if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! + for group_num, group_data in pairs(obj_type_data.group) do + if group_data and group_data.groupId == gpId then + for unitIndex, unitData in pairs(group_data.units) do --group index + if unitData.unitId == unitId then + return unitData.payload + end + end + end + end + end + end + end + end + end + end + end + else + log:error('Need string or number. Got: $1', type(unitIdent)) + return false + end + log:warn("Couldn't find payload for unit: $1", unitIdent) + return + end + + function mist.getGroupPayload(groupIdent) + local gpId = groupIdent + if type(groupIdent) == 'string' and not tonumber(groupIdent) then + if mist.DBs.MEgroupsByName[groupIdent] then + gpId = mist.DBs.MEgroupsByName[groupIdent].groupId + else + log:error('$1 not found in mist.DBs.MEgroupsByName', groupIdent) + end + end + + if gpId then + for coa_name, coa_data in pairs(env.mission.coalition) do + if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then + if coa_data.country then --there is a country table + for cntry_id, cntry_data in pairs(coa_data.country) do + for obj_type_name, obj_type_data in pairs(cntry_data) do + if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" then -- only these types have points + if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! + for group_num, group_data in pairs(obj_type_data.group) do + if group_data and group_data.groupId == gpId then + local payloads = {} + for unitIndex, unitData in pairs(group_data.units) do --group index + payloads[unitIndex] = unitData.payload + end + return payloads + end + end + end + end + end + end + end + end + end + else + log:error('Need string or number. Got: $1', type(groupIdent)) + return false + end + log:warn("Couldn't find payload for group: $1", groupIdent) + return + + end + + function mist.teleportToPoint(vars) -- main teleport function that all of teleport/respawn functions call + local point = vars.point + + local gpName + if vars.gpName then + gpName = vars.gpName + elseif vars.groupName then + gpName = vars.groupName + else + log:error('Missing field groupName or gpName in variable table') + end + + local action = vars.action + + local disperse = vars.disperse or false + local maxDisp = vars.maxDisp + if not vars.maxDisp then + maxDisp = 200 + else + maxDisp = vars.maxDisp + end + local radius = vars.radius or 0 + local innerRadius = vars.innerRadius + + local route = vars.route + local dbData = false + + local newGroupData + if gpName and not vars.groupData then + if string.lower(action) == 'teleport' or string.lower(action) == 'tele' then + newGroupData = mist.getCurrentGroupData(gpName) + elseif string.lower(action) == 'respawn' then + newGroupData = mist.getGroupData(gpName) + dbData = true + elseif string.lower(action) == 'clone' then + newGroupData = mist.getGroupData(gpName) + newGroupData.clone = 'order66' + dbData = true + else + action = 'tele' + newGroupData = mist.getCurrentGroupData(gpName) + end + else + action = 'tele' + newGroupData = vars.groupData + end + + --log:info('get Randomized Point') + local diff = {x = 0, y = 0} + local newCoord, origCoord + if point then + local valid = false + + local validTerrain + if string.lower(newGroupData.category) == 'ship' then + validTerrain = {'SHALLOW_WATER' , 'WATER'} + elseif string.lower(newGroupData.category) == 'vehicle' then + validTerrain = {'LAND', 'ROAD'} + else + validTerrain = {'LAND', 'ROAD', 'SHALLOW_WATER', 'WATER', 'RUNWAY'} + end + + for i = 1, 100 do + newCoord = mist.getRandPointInCircle(point, radius, innerRadius) + if mist.isTerrainValid(newCoord, validTerrain) then + origCoord = mist.utils.deepCopy(newCoord) + diff = {x = (newCoord.x - newGroupData.units[1].x), y = (newCoord.y - newGroupData.units[1].y)} + valid = true + break + end + end + if valid == false then + log:error('Point supplied in variable table is not a valid coordinate. Valid coords: $1', validTerrain) + return false + end + end + if not newGroupData.country and mist.DBs.groupsByName[newGroupData.groupName].country then + newGroupData.country = mist.DBs.groupsByName[newGroupData.groupName].country + end + if not newGroupData.category and mist.DBs.groupsByName[newGroupData.groupName].category then + newGroupData.category = mist.DBs.groupsByName[newGroupData.groupName].category + end + + for unitNum, unitData in pairs(newGroupData.units) do + if disperse then + if maxDisp and type(maxDisp) == 'number' and unitNum ~= 1 then + newCoord = mist.getRandPointInCircle(origCoord, maxDisp) + --else + --newCoord = mist.getRandPointInCircle(zone.point, zone.radius) + end + + newGroupData.units[unitNum].x = newCoord.x + newGroupData.units[unitNum].y = newCoord.y + else + newGroupData.units[unitNum].x = unitData.x + diff.x + newGroupData.units[unitNum].y = unitData.y + diff.y + end + if point then + if (newGroupData.category == 'plane' or newGroupData.category == 'helicopter') then + if point.z and point.y > 0 and point.y > land.getHeight({newGroupData.units[unitNum].x, newGroupData.units[unitNum].y}) + 10 then + newGroupData.units[unitNum].alt = point.y + else + if newGroupData.category == 'plane' then + newGroupData.units[unitNum].alt = land.getHeight({newGroupData.units[unitNum].x, newGroupData.units[unitNum].y}) + math.random(300, 9000) + else + newGroupData.units[unitNum].alt = land.getHeight({newGroupData.units[unitNum].x, newGroupData.units[unitNum].y}) + math.random(200, 3000) + end + end end end end + + if newGroupData.start_time then + newGroupData.startTime = newGroupData.start_time + end + + if newGroupData.startTime and newGroupData.startTime ~= 0 and dbData == true then + local timeDif = timer.getAbsTime() - timer.getTime0() + if timeDif > newGroupData.startTime then + newGroupData.startTime = 0 + else + newGroupData.startTime = newGroupData.startTime - timeDif + end + + end + + if route then + newGroupData.route = route + end + --mist.debug.writeData(mist.utils.serialize,{'teleportToPoint', newGroupData}, 'newGroupData.lua') + if string.lower(newGroupData.category) == 'static' then + --log:info(newGroupData) + return mist.dynAddStatic(newGroupData) + end + return mist.dynAdd(newGroupData) + end - for validIndex, validData in pairs(typeConverted) do - if land.getSurfaceType(coord) == land.SurfaceType[validData] then - return true + + function mist.respawnInZone(gpName, zone, disperse, maxDisp) + + if type(gpName) == 'table' and gpName:getName() then + gpName = gpName:getName() + elseif type(gpName) == 'table' and gpName[1]:getName() then + gpName = math.random(#gpName) + else + gpName = tostring(gpName) + end + + if type(zone) == 'string' then + zone = trigger.misc.getZone(zone) + elseif type(zone) == 'table' and not zone.radius then + zone = trigger.misc.getZone(zone[math.random(1, #zone)]) + end + local vars = {} + vars.gpName = gpName + vars.action = 'respawn' + vars.point = zone.point + vars.radius = zone.radius + vars.disperse = disperse + vars.maxDisp = maxDisp + return mist.teleportToPoint(vars) + end + + function mist.cloneInZone(gpName, zone, disperse, maxDisp) + --log:info('cloneInZone') + if type(gpName) == 'table' then + gpName = gpName:getName() + else + gpName = tostring(gpName) + end + + if type(zone) == 'string' then + zone = trigger.misc.getZone(zone) + elseif type(zone) == 'table' and not zone.radius then + zone = trigger.misc.getZone(zone[math.random(1, #zone)]) + end + local vars = {} + vars.gpName = gpName + vars.action = 'clone' + vars.point = zone.point + vars.radius = zone.radius + vars.disperse = disperse + vars.maxDisp = maxDisp + --log:info('do teleport') + return mist.teleportToPoint(vars) + end + + function mist.teleportInZone(gpName, zone, disperse, maxDisp) -- groupName, zoneName or table of Zone Names, keepForm is a boolean + if type(gpName) == 'table' and gpName:getName() then + gpName = gpName:getName() + else + gpName = tostring(gpName) + end + + if type(zone) == 'string' then + zone = trigger.misc.getZone(zone) + elseif type(zone) == 'table' and not zone.radius then + zone = trigger.misc.getZone(zone[math.random(1, #zone)]) + end + + local vars = {} + vars.gpName = gpName + vars.action = 'tele' + vars.point = zone.point + vars.radius = zone.radius + vars.disperse = disperse + vars.maxDisp = maxDisp + return mist.teleportToPoint(vars) + end + + function mist.respawnGroup(gpName, task) + local vars = {} + vars.gpName = gpName + vars.action = 'respawn' + if task and type(task) ~= 'number' then + vars.route = mist.getGroupRoute(gpName, 'task') + end + local newGroup = mist.teleportToPoint(vars) + if task and type(task) == 'number' then + local newRoute = mist.getGroupRoute(gpName, 'task') + mist.scheduleFunction(mist.goRoute, {newGroup, newRoute}, timer.getTime() + task) + end + return newGroup + end + + function mist.cloneGroup(gpName, task) + local vars = {} + vars.gpName = gpName + vars.action = 'clone' + if task and type(task) ~= 'number' then + vars.route = mist.getGroupRoute(gpName, 'task') + end + local newGroup = mist.teleportToPoint(vars) + if task and type(task) == 'number' then + local newRoute = mist.getGroupRoute(gpName, 'task') + mist.scheduleFunction(mist.goRoute, {newGroup, newRoute}, timer.getTime() + task) + end + return newGroup + end + + function mist.teleportGroup(gpName, task) + local vars = {} + vars.gpName = gpName + vars.action = 'teleport' + if task and type(task) ~= 'number' then + vars.route = mist.getGroupRoute(gpName, 'task') + end + local newGroup = mist.teleportToPoint(vars) + if task and type(task) == 'number' then + local newRoute = mist.getGroupRoute(gpName, 'task') + mist.scheduleFunction(mist.goRoute, {newGroup, newRoute}, timer.getTime() + task) + end + return newGroup + end + + function mist.spawnRandomizedGroup(groupName, vars) -- need to debug + if Group.getByName(groupName) and Group.getByName(groupName):isExist() == true then + local gpData = mist.getGroupData(groupName) + gpData.units = mist.randomizeGroupOrder(gpData.units, vars) + gpData.route = mist.getGroupRoute(groupName, 'task') + + mist.dynAdd(gpData) + end + + return true + end + + function mist.randomizeNumTable(vars) + local newTable = {} + + local excludeIndex = {} + local randomTable = {} + + if vars and vars.exclude and type(vars.exclude) == 'table' then + for index, data in pairs(vars.exclude) do + excludeIndex[data] = true + end + end + + local low, hi, size + + if vars.size then + size = vars.size + end + + if vars and vars.lowerLimit and type(vars.lowerLimit) == 'number' then + low = mist.utils.round(vars.lowerLimit) + else + low = 1 + end + + if vars and vars.upperLimit and type(vars.upperLimit) == 'number' then + hi = mist.utils.round(vars.upperLimit) + else + hi = size + end + + local choices = {} + -- add to exclude list and create list of what to randomize + for i = 1, size do + if not (i >= low and i <= hi) then + + excludeIndex[i] = true + end + if not excludeIndex[i] then + table.insert(choices, i) + else + newTable[i] = i + end + end + + for ind, num in pairs(choices) do + local found = false + local x = 0 + while found == false do + x = mist.random(size) -- get random number from list + local addNew = true + for index, _ in pairs(excludeIndex) do + if index == x then + addNew = false + break + end + end + if addNew == true then + excludeIndex[x] = true + found = true + end + excludeIndex[x] = true + + end + newTable[num] = x + end + --[[ + for i = 1, #newTable do + log:info(newTable[i]) + end + ]] + return newTable + end + + function mist.randomizeGroupOrder(passedUnits, vars) + -- figure out what to exclude, and send data to other func + local units = passedUnits + + if passedUnits.units then + units = passUnits.units + end + + local exclude = {} + local excludeNum = {} + if vars and vars.excludeType and type(vars.excludeType) == 'table' then + exclude = vars.excludeType + end + + if vars and vars.excludeNum and type(vars.excludeNum) == 'table' then + excludeNum = vars.excludeNum + end + + local low, hi + + if vars and vars.lowerLimit and type(vars.lowerLimit) == 'number' then + low = mist.utils.round(vars.lowerLimit) + else + low = 1 + end + + if vars and vars.upperLimit and type(vars.upperLimit) == 'number' then + hi = mist.utils.round(vars.upperLimit) + else + hi = #units + end + + + local excludeNum = {} + for unitIndex, unitData in pairs(units) do + if unitIndex >= low and unitIndex <= hi then -- if within range + local found = false + if #exclude > 0 then + for excludeType, index in pairs(exclude) do -- check if excluded + if mist.stringMatch(excludeType, unitData.type) then -- if excluded + excludeNum[unitIndex] = unitIndex + found = true + end + end + end + else -- unitIndex is either to low, or to high: added to exclude list + excludeNum[unitIndex] = unitId + end + end + + local newGroup = {} + local newOrder = mist.randomizeNumTable({exclude = excludeNum, size = #units}) + + for unitIndex, unitData in pairs(units) do + for i = 1, #newOrder do + if newOrder[i] == unitIndex then + newGroup[i] = mist.utils.deepCopy(units[i]) -- gets all of the unit data + newGroup[i].type = mist.utils.deepCopy(unitData.type) + newGroup[i].skill = mist.utils.deepCopy(unitData.skill) + newGroup[i].unitName = mist.utils.deepCopy(unitData.unitName) + newGroup[i].unitIndex = mist.utils.deepCopy(unitData.unitIndex) -- replaces the units data with a new type + end + end + end + return newGroup + end + + function mist.random(firstNum, secondNum) -- no support for decimals + local lowNum, highNum + if not secondNum then + highNum = firstNum + lowNum = 1 + else + lowNum = firstNum + highNum = secondNum + end + local total = 1 + if math.abs(highNum - lowNum + 1) < 50 then -- if total values is less than 50 + total = math.modf(50/math.abs(highNum - lowNum + 1)) -- make x copies required to be above 50 + end + local choices = {} + for i = 1, total do -- iterate required number of times + for x = lowNum, highNum do -- iterate between the range + choices[#choices +1] = x -- add each entry to a table + end + end + local rtnVal = math.random(#choices) -- will now do a math.random of at least 50 choices + for i = 1, 10 do + rtnVal = math.random(#choices) -- iterate a few times for giggles + end + return choices[rtnVal] + end + + function mist.stringMatch(s1, s2, bool) + local exclude = {'%-', '%(', '%)', '%_', '%[', '%]', '%.', '%#', '% ', '%{', '%}', '%$', '%%', '%?', '%+', '%^'} + if type(s1) == 'string' and type(s2) == 'string' then + for i , str in pairs(exclude) do + s1 = string.gsub(s1, str, '') + s2 = string.gsub(s2, str, '') + end + if not bool then + s1 = string.lower(s1) + s2 = string.lower(s2) + end + log:info('Comparing: $1 and $2', s1, s2) + if s1 == s2 then + return true + else + return false + end + else + log:error('Either the first or second variable were not a string') + return false end end - return false + + mist.matchString = mist.stringMatch -- both commands work because order out type of I + + --[[ scope: +{ + units = {...}, -- unit names. + coa = {...}, -- coa names + countries = {...}, -- country names + CA = {...}, -- looks just like coa. + unitTypes = { red = {}, blue = {}, all = {}, Russia = {},} +} + + +scope examples: + +{ units = { 'Hawg11', 'Hawg12' }, CA = {'blue'} } + +{ countries = {'Georgia'}, unitTypes = {blue = {'A-10C', 'A-10A'}}} + +{ coa = {'all'}} + +{unitTypes = { blue = {'A-10C'}}} +]] end -mist.terrainHeightDiff = function(coord, searchSize) - local samples = {} - local searchRadius = 5 - if searchSize then - searchRadius = searchSize +--- Utility functions. +-- E.g. conversions between units etc. +-- @section mist.utils +do -- mist.util scope + mist.utils = {} + + --- Converts angle in radians to degrees. + -- @param angle angle in radians + -- @return angle in degrees + function mist.utils.toDegree(angle) + return angle*180/math.pi end - if type(coord) == 'string' then - coord = mist.utils.zoneToVec3(coord) + + --- Converts angle in degrees to radians. + -- @param angle angle in degrees + -- @return angle in degrees + function mist.utils.toRadian(angle) + return angle*math.pi/180 end - - coord = mist.utils.makeVec2(coord) - - samples[#samples + 1] = land.getHeight(coord) - for i = 0, 360, 30 do - samples[#samples + 1] = land.getHeight({x = (coord.x + (math.sin(math.rad(i))*searchRadius)), y = (coord.y + (math.cos(math.rad(i))*searchRadius))}) - if searchRadius >= 20 then -- if search radius is sorta large, take a sample halfway between center and outer edge - samples[#samples + 1] = land.getHeight({x = (coord.x + (math.sin(math.rad(i))*(searchRadius/2))), y = (coord.y + (math.cos(math.rad(i))*(searchRadius/2)))}) + + --- Converts meters to nautical miles. + -- @param meters distance in meters + -- @return distance in nautical miles + function mist.utils.metersToNM(meters) + return meters/1852 + end + + --- Converts meters to feet. + -- @param meters distance in meters + -- @return distance in feet + function mist.utils.metersToFeet(meters) + return meters/0.3048 + end + + --- Converts nautical miles to meters. + -- @param nm distance in nautical miles + -- @return distance in meters + function mist.utils.NMToMeters(nm) + return nm*1852 + end + + --- Converts feet to meters. + -- @param feet distance in feet + -- @return distance in meters + function mist.utils.feetToMeters(feet) + return feet*0.3048 + end + + --- Converts meters per second to knots. + -- @param mps speed in m/s + -- @return speed in knots + function mist.utils.mpsToKnots(mps) + return mps*3600/1852 + end + + --- Converts meters per second to kilometers per hour. + -- @param mps speed in m/s + -- @return speed in km/h + function mist.utils.mpsToKmph(mps) + return mps*3.6 + end + + --- Converts knots to meters per second. + -- @param knots speed in knots + -- @return speed in m/s + function mist.utils.knotsToMps(knots) + return knots*1852/3600 + end + + --- Converts kilometers per hour to meters per second. + -- @param kmph speed in km/h + -- @return speed in m/s + function mist.utils.kmphToMps(kmph) + return kmph/3.6 + end + + --- Converts a Vec3 to a Vec2. + -- @tparam Vec3 vec the 3D vector + -- @return vector converted to Vec2 + function mist.utils.makeVec2(vec) + if vec.z then + return {x = vec.x, y = vec.z} + else + return {x = vec.x, y = vec.y} -- it was actually already vec2. end end - local tMax, tMin = 0, 1000000 - for index, height in pairs(samples) do - if height > tMax then - tMax = height - end - if height < tMin then - tMin = height + + --- Converts a Vec2 to a Vec3. + -- @tparam Vec2 vec the 2D vector + -- @param y optional new y axis (altitude) value. If omitted it's 0. + function mist.utils.makeVec3(vec, y) + if not vec.z then + if vec.alt and not y then + y = vec.alt + elseif not y then + y = 0 + end + return {x = vec.x, y = y, z = vec.y} + else + return {x = vec.x, y = vec.y, z = vec.z} -- it was already Vec3, actually. end end - return mist.utils.round(tMax - tMin, 2) -end + --- Converts a Vec2 to a Vec3 using ground level as altitude. + -- The ground level at the specific point is used as altitude (y-axis) + -- for the new vector. Optionally a offset can be specified. + -- @tparam Vec2 vec the 2D vector + -- @param[opt] offset offset to be applied to the ground level + -- @return new 3D vector + function mist.utils.makeVec3GL(vec, offset) + local adj = offset or 0 - -mist.groupToPoint = function(gpData, point, form, heading, speed, useRoads) - if type(point) == 'string' then - point = trigger.misc.getZone(point) + if not vec.z then + return {x = vec.x, y = (land.getHeight(vec) + adj), z = vec.y} + else + return {x = vec.x, y = (land.getHeight({x = vec.x, y = vec.z}) + adj), z = vec.z} + end end - if speed then - speed = mist.utils.kmphToMps(speed) - end - - local vars = {} - vars.group = gpData - vars.form = form - vars.headingDegrees = heading - vars.speed = speed - vars.disableRoads = useRoads - vars.point = mist.utils.zoneToVec3(point) - mist.groupToRandomPoint(vars) - - return -end - -mist.getLeadPos = function(group) - if type(group) == 'string' then -- group name - group = Group.getByName(group) - end - - local units = group:getUnits() - - local leader = units[1] - if not Unit.isExist(leader) then -- SHOULD be good, but if there is a bug, this code future-proofs it then. - local lowestInd = math.huge - for ind, unit in pairs(units) do - if Unit.isExist(unit) and ind < lowestInd then - lowestInd = ind - return unit:getPosition().p + --- Returns the center of a zone as Vec3. + -- @tparam string|table zone trigger zone name or table + -- @treturn Vec3 center of the zone + function mist.utils.zoneToVec3(zone) + local new = {} + if type(zone) == 'table' then + if zone.point then + new.x = zone.point.x + new.y = zone.point.y + new.z = zone.point.z + elseif zone.x and zone.y and zone.z then + return zone + end + return new + elseif type(zone) == 'string' then + zone = trigger.misc.getZone(zone) + if zone then + new.x = zone.point.x + new.y = zone.point.y + new.z = zone.point.z + return new end end end - if leader and Unit.isExist(leader) then -- maybe a little too paranoid now... - return leader:getPosition().p + + --- Returns heading-error corrected direction. + -- True-north corrected direction from point along vector vec. + -- @tparam Vec3 vec + -- @tparam Vec2 point + -- @return heading-error corrected direction from point. + function mist.utils.getDir(vec, point) + local dir = math.atan2(vec.z, vec.x) + if point then + dir = dir + mist.getNorthCorrection(point) + end + if dir < 0 then + dir = dir + 2 * math.pi -- put dir in range of 0 to 2*pi + end + return dir + end + + --- Returns distance in meters between two points. + -- @tparam Vec2|Vec3 point1 first point + -- @tparam Vec2|Vec3 point2 second point + -- @treturn number distance between given points. + function mist.utils.get2DDist(point1, point2) + point1 = mist.utils.makeVec3(point1) + point2 = mist.utils.makeVec3(point2) + return mist.vec.mag({x = point1.x - point2.x, y = 0, z = point1.z - point2.z}) + end + + --- Returns distance in meters between two points in 3D space. + -- @tparam Vec3 point1 first point + -- @tparam Vec3 point2 second point + -- @treturn number distancen between given points in 3D space. + function mist.utils.get3DDist(point1, point2) + return mist.vec.mag({x = point1.x - point2.x, y = point1.y - point2.y, z = point1.z - point2.z}) + end + + --- Creates a waypoint from a vector. + -- @tparam Vec2|Vec3 vec position of the new waypoint + -- @treturn Waypoint a new waypoint to be used inside paths. + function mist.utils.vecToWP(vec) + local newWP = {} + newWP.x = vec.x + newWP.y = vec.y + if vec.z then + newWP.alt = vec.y + newWP.y = vec.z + else + newWP.alt = land.getHeight({x = vec.x, y = vec.y}) + end + return newWP + end + + --- Creates a waypoint from a unit. + -- This function also considers the units speed. + -- The alt_type of this waypoint is set to "BARO". + -- @tparam Unit pUnit Unit whose position and speed will be used. + -- @treturn Waypoint new waypoint. + function mist.utils.unitToWP(pUnit) + local unit = mist.utils.deepCopy(pUnit) + if type(unit) == 'string' then + if Unit.getByName(unit) then + unit = Unit.getByName(unit) + end + end + if unit:isExist() == true then + local new = mist.utils.vecToWP(unit:getPosition().p) + new.speed = mist.vec.mag(unit:getVelocity()) + new.alt_type = "BARO" + + return new + end + log:error("$1 not found or doesn't exist", pUnit) + return false + end + + --- Creates a deep copy of a object. + -- Usually this object is a table. + -- See also: from http://lua-users.org/wiki/CopyTable + -- @param object object to copy + -- @return copy of object + function mist.utils.deepCopy(object) + local lookup_table = {} + local function _copy(object) + if type(object) ~= "table" then + return object + elseif lookup_table[object] then + return lookup_table[object] + end + local new_table = {} + lookup_table[object] = new_table + for index, value in pairs(object) do + new_table[_copy(index)] = _copy(value) + end + return setmetatable(new_table, getmetatable(object)) + end + return _copy(object) + end + + --- Simple rounding function. + -- From http://lua-users.org/wiki/SimpleRound + -- use negative idp for rounding ahead of decimal place, positive for rounding after decimal place + -- @tparam number num number to round + -- @param idp + function mist.utils.round(num, idp) + local mult = 10^(idp or 0) + return math.floor(num * mult + 0.5) / mult + end + + --- Rounds all numbers inside a table. + -- @tparam table tbl table in which to round numbers + -- @param idp + function mist.utils.roundTbl(tbl, idp) + for id, val in pairs(tbl) do + if type(val) == 'number' then + tbl[id] = mist.utils.round(val, idp) + end + end + return tbl + end + + --- Executes the given string. + -- borrowed from Slmod + -- @tparam string s string containing LUA code. + -- @treturn boolean true if successfully executed, false otherwise + function mist.utils.dostring(s) + local f, err = loadstring(s) + if f then + return true, f() + else + return false, err + end + end + + --- Checks a table's types. + -- This function checks a tables types against a specifically forged type table. + -- @param fname + -- @tparam table type_tbl + -- @tparam table var_tbl + -- @usage -- specifically forged type table + -- type_tbl = { + -- {'table', 'number'}, + -- 'string', + -- 'number', + -- 'number', + -- {'string','nil'}, + -- {'number', 'nil'} + -- } + -- -- my_tbl index 1 must be a table or a number; + -- -- index 2, a string; index 3, a number; + -- -- index 4, a number; index 5, either a string or nil; + -- -- and index 6, either a number or nil. + -- mist.utils.typeCheck(type_tbl, my_tb) + -- @return true if table passes the check, false otherwise. + function mist.utils.typeCheck(fname, type_tbl, var_tbl) + -- log:info('type check') + for type_key, type_val in pairs(type_tbl) do + -- log:info('type_key: $1 type_val: $2', type_key, type_val) + + --type_key can be a table of accepted keys- so try to find one that is not nil + local type_key_str = '' + local act_key = type_key -- actual key within var_tbl - necessary to use for multiple possible key variables. Initialize to type_key + if type(type_key) == 'table' then + + for i = 1, #type_key do + if i ~= 1 then + type_key_str = type_key_str .. '/' + end + type_key_str = type_key_str .. tostring(type_key[i]) + if var_tbl[type_key[i]] ~= nil then + act_key = type_key[i] -- found a non-nil entry, make act_key now this val. + end + end + else + type_key_str = tostring(type_key) + end + + local err_msg = 'Error in function ' .. fname .. ', parameter "' .. type_key_str .. '", expected: ' + local passed_check = false + + if type(type_tbl[type_key]) == 'table' then + -- log:info('err_msg, before: $1', err_msg) + for j = 1, #type_tbl[type_key] do + + if j == 1 then + err_msg = err_msg .. type_tbl[type_key][j] + else + err_msg = err_msg .. ' or ' .. type_tbl[type_key][j] + end + + if type(var_tbl[act_key]) == type_tbl[type_key][j] then + passed_check = true + end + end + -- log:info('err_msg, after: $1', err_msg) + else + -- log:info('err_msg, before: $1', err_msg) + err_msg = err_msg .. type_tbl[type_key] + -- log:info('err_msg, after: $1', err_msg) + if type(var_tbl[act_key]) == type_tbl[type_key] then + passed_check = true + end + + end + + if not passed_check then + err_msg = err_msg .. ', got ' .. type(var_tbl[act_key]) + return false, err_msg + end + end + return true + end + + --- Serializes the give variable to a string. + -- borrowed from slmod + -- @param var variable to serialize + -- @treturn string variable serialized to string + function mist.utils.basicSerialize(var) + if var == nil then + return "\"\"" + else + if ((type(var) == 'number') or + (type(var) == 'boolean') or + (type(var) == 'function') or + (type(var) == 'table') or + (type(var) == 'userdata') ) then + return tostring(var) + elseif type(var) == 'string' then + var = string.format('%q', var) + return var + end end end --- end of Mission task functions --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- +--- Serialize value +-- borrowed from slmod (serialize_slmod) +-- @param name +-- @param value value to serialize +-- @param level +function mist.utils.serialize(name, value, level) + --Based on ED's serialize_simple2 + local function basicSerialize(o) + if type(o) == "number" then + return tostring(o) + elseif type(o) == "boolean" then + return tostring(o) + else -- assume it is a string + return mist.utils.basicSerialize(o) + end + end + + local function serializeToTbl(name, value, level) + local var_str_tbl = {} + if level == nil then level = "" end + if level ~= "" then level = level.." " end + + table.insert(var_str_tbl, level .. name .. " = ") + + if type(value) == "number" or type(value) == "string" or type(value) == "boolean" then + table.insert(var_str_tbl, basicSerialize(value) .. ",\n") + elseif type(value) == "table" then + table.insert(var_str_tbl, "\n"..level.."{\n") + + for k,v in pairs(value) do -- serialize its fields + local key + if type(k) == "number" then + key = string.format("[%s]", k) + else + key = string.format("[%q]", k) + end + + table.insert(var_str_tbl, mist.utils.serialize(key, v, level.." ")) + + end + if level == "" then + table.insert(var_str_tbl, level.."} -- end of "..name.."\n") + + else + table.insert(var_str_tbl, level.."}, -- end of "..name.."\n") + + end + else + log:error('Cannot serialize a $1', type(value)) + end + return var_str_tbl + end + + local t_str = serializeToTbl(name, value, level) + + return table.concat(t_str) +end + +--- Serialize value supporting cycles. +-- borrowed from slmod (serialize_wcycles) +-- @param name +-- @param value value to serialize +-- @param saved +function mist.utils.serializeWithCycles(name, value, saved) + --mostly straight out of Programming in Lua + local function basicSerialize(o) + if type(o) == "number" then + return tostring(o) + elseif type(o) == "boolean" then + return tostring(o) + else -- assume it is a string + return mist.utils.basicSerialize(o) + end + end + + local t_str = {} + saved = saved or {} -- initial value + if ((type(value) == 'string') or (type(value) == 'number') or (type(value) == 'table') or (type(value) == 'boolean')) then + table.insert(t_str, name .. " = ") + if type(value) == "number" or type(value) == "string" or type(value) == "boolean" then + table.insert(t_str, basicSerialize(value) .. "\n") + else + + if saved[value] then -- value already saved? + table.insert(t_str, saved[value] .. "\n") + else + saved[value] = name -- save name for next time + table.insert(t_str, "{}\n") + for k,v in pairs(value) do -- save its fields + local fieldname = string.format("%s[%s]", name, basicSerialize(k)) + table.insert(t_str, mist.utils.serializeWithCycles(fieldname, v, saved)) + end + end + end + return table.concat(t_str) + else + return "" + end +end + +--- Serialize a table to a single line string. +-- serialization of a table all on a single line, no comments, made to replace old get_table_string function +-- borrowed from slmod +-- @tparam table tbl table to serialize. +-- @treturn string string containing serialized table +function mist.utils.oneLineSerialize(tbl) + if type(tbl) == 'table' then --function only works for tables! + + local tbl_str = {} + + tbl_str[#tbl_str + 1] = '{ ' + + for ind,val in pairs(tbl) do -- serialize its fields + if type(ind) == "number" then + tbl_str[#tbl_str + 1] = '[' + tbl_str[#tbl_str + 1] = tostring(ind) + tbl_str[#tbl_str + 1] = '] = ' + else --must be a string + tbl_str[#tbl_str + 1] = '[' + tbl_str[#tbl_str + 1] = mist.utils.basicSerialize(ind) + tbl_str[#tbl_str + 1] = '] = ' + end + + if ((type(val) == 'number') or (type(val) == 'boolean')) then + tbl_str[#tbl_str + 1] = tostring(val) + tbl_str[#tbl_str + 1] = ', ' + elseif type(val) == 'string' then + tbl_str[#tbl_str + 1] = mist.utils.basicSerialize(val) + tbl_str[#tbl_str + 1] = ', ' + elseif type(val) == 'nil' then -- won't ever happen, right? + tbl_str[#tbl_str + 1] = 'nil, ' + elseif type(val) == 'table' then + tbl_str[#tbl_str + 1] = mist.utils.oneLineSerialize(val) + tbl_str[#tbl_str + 1] = ', ' --I think this is right, I just added it + else + log:war('Unable to serialize value type $1 at index $2', mist.utils.basicSerialize(type(val)), tostring(ind)) + end + + end + tbl_str[#tbl_str + 1] = '}' + return table.concat(tbl_str) + end +end + +--- Returns table in a easy readable string representation. +-- this function is not meant for serialization because it uses +-- newlines for better readability. +-- @param tbl table to show +-- @param loc +-- @param indent +-- @param tableshow_tbls +-- @return human readable string representation of given table +function mist.utils.tableShow(tbl, loc, indent, tableshow_tbls) --based on serialize_slmod, this is a _G serialization + tableshow_tbls = tableshow_tbls or {} --create table of tables + loc = loc or "" + indent = indent or "" + if type(tbl) == 'table' then --function only works for tables! + tableshow_tbls[tbl] = loc + + local tbl_str = {} + + tbl_str[#tbl_str + 1] = indent .. '{\n' + + for ind,val in pairs(tbl) do -- serialize its fields + if type(ind) == "number" then + tbl_str[#tbl_str + 1] = indent + tbl_str[#tbl_str + 1] = loc .. '[' + tbl_str[#tbl_str + 1] = tostring(ind) + tbl_str[#tbl_str + 1] = '] = ' + else + tbl_str[#tbl_str + 1] = indent + tbl_str[#tbl_str + 1] = loc .. '[' + tbl_str[#tbl_str + 1] = mist.utils.basicSerialize(ind) + tbl_str[#tbl_str + 1] = '] = ' + end + + if ((type(val) == 'number') or (type(val) == 'boolean')) then + tbl_str[#tbl_str + 1] = tostring(val) + tbl_str[#tbl_str + 1] = ',\n' + elseif type(val) == 'string' then + tbl_str[#tbl_str + 1] = mist.utils.basicSerialize(val) + tbl_str[#tbl_str + 1] = ',\n' + elseif type(val) == 'nil' then -- won't ever happen, right? + tbl_str[#tbl_str + 1] = 'nil,\n' + elseif type(val) == 'table' then + if tableshow_tbls[val] then + tbl_str[#tbl_str + 1] = tostring(val) .. ' already defined: ' .. tableshow_tbls[val] .. ',\n' + else + tableshow_tbls[val] = loc .. '[' .. mist.utils.basicSerialize(ind) .. ']' + tbl_str[#tbl_str + 1] = tostring(val) .. ' ' + tbl_str[#tbl_str + 1] = mist.utils.tableShow(val, loc .. '[' .. mist.utils.basicSerialize(ind).. ']', indent .. ' ', tableshow_tbls) + tbl_str[#tbl_str + 1] = ',\n' + end + elseif type(val) == 'function' then + if debug and debug.getinfo then + local fcnname = tostring(val) + local info = debug.getinfo(val, "S") + if info.what == "C" then + tbl_str[#tbl_str + 1] = string.format('%q', fcnname .. ', C function') .. ',\n' + else + if (string.sub(info.source, 1, 2) == [[./]]) then + tbl_str[#tbl_str + 1] = string.format('%q', fcnname .. ', defined in (' .. info.linedefined .. '-' .. info.lastlinedefined .. ')' .. info.source) ..',\n' + else + tbl_str[#tbl_str + 1] = string.format('%q', fcnname .. ', defined in (' .. info.linedefined .. '-' .. info.lastlinedefined .. ')') ..',\n' + end + end + + else + tbl_str[#tbl_str + 1] = 'a function,\n' + end + else + tbl_str[#tbl_str + 1] = 'unable to serialize value type ' .. mist.utils.basicSerialize(type(val)) .. ' at index ' .. tostring(ind) + end + end + + tbl_str[#tbl_str + 1] = indent .. '}' + return table.concat(tbl_str) + end +end +end + +--- Debug functions +-- @section mist.debug +do -- mist.debug scope + mist.debug = {} + + --- Dumps the global table _G. + -- This dumps the global table _G to a file in + -- the DCS\Logs directory. + -- This function requires you to disable script sanitization + -- in $DCS_ROOT\Scripts\MissionScripting.lua to access lfs and io + -- libraries. + -- @param fname + function mist.debug.dump_G(fname) + if lfs and io then + local fdir = lfs.writedir() .. [[Logs\]] .. fname + local f = io.open(fdir, 'w') + f:write(mist.utils.tableShow(_G)) + f:close() + log:info('Wrote debug data to $1', fdir) + --trigger.action.outText(errmsg, 10) + else + log:alert('insufficient libraries to run mist.debug.dump_G, you must disable the sanitization of the io and lfs libraries in ./Scripts/MissionScripting.lua') + --trigger.action.outText(errmsg, 10) + end + end + + --- Write debug data to file. + -- This function requires you to disable script sanitization + -- in $DCS_ROOT\Scripts\MissionScripting.lua to access lfs and io + -- libraries. + -- @param fcn + -- @param fcnVars + -- @param fname + function mist.debug.writeData(fcn, fcnVars, fname) + if lfs and io then + local fdir = lfs.writedir() .. [[Logs\]] .. fname + local f = io.open(fdir, 'w') + f:write(fcn(unpack(fcnVars, 1, table.maxn(fcnVars)))) + f:close() + log:info('Wrote debug data to $1', fdir) + local errmsg = 'mist.debug.writeData wrote data to ' .. fdir + trigger.action.outText(errmsg, 10) + else + local errmsg = 'Error: insufficient libraries to run mist.debug.writeData, you must disable the sanitization of the io and lfs libraries in ./Scripts/MissionScripting.lua' + log:alert(errmsg) + trigger.action.outText(errmsg, 10) + end + end + + --- Write mist databases to file. + -- This function requires you to disable script sanitization + -- in $DCS_ROOT\Scripts\MissionScripting.lua to access lfs and io + -- libraries. + function mist.debug.dumpDBs() + for DBname, DB in pairs(mist.DBs) do + if type(DB) == 'table' and type(DBname) == 'string' then + mist.debug.writeData(mist.utils.serialize, {DBname, DB}, 'mist_DBs_' .. DBname .. '.lua') + end + end + end +end + +--- 3D Vector functions +-- @section mist.vec +do -- mist.vec scope + mist.vec = {} + + --- Vector addition. + -- @tparam Vec3 vec1 first vector + -- @tparam Vec3 vec2 second vector + -- @treturn Vec3 new vector, sum of vec1 and vec2. + function mist.vec.add(vec1, vec2) + return {x = vec1.x + vec2.x, y = vec1.y + vec2.y, z = vec1.z + vec2.z} + end + + --- Vector substraction. + -- @tparam Vec3 vec1 first vector + -- @tparam Vec3 vec2 second vector + -- @treturn Vec3 new vector, vec2 substracted from vec1. + function mist.vec.sub(vec1, vec2) + return {x = vec1.x - vec2.x, y = vec1.y - vec2.y, z = vec1.z - vec2.z} + end + + --- Vector scalar multiplication. + -- @tparam Vec3 vec vector to multiply + -- @tparam number mult scalar multiplicator + -- @treturn Vec3 new vector multiplied with the given scalar + function mist.vec.scalarMult(vec, mult) + return {x = vec.x*mult, y = vec.y*mult, z = vec.z*mult} + end + + mist.vec.scalar_mult = mist.vec.scalarMult + + --- Vector dot product. + -- @tparam Vec3 vec1 first vector + -- @tparam Vec3 vec2 second vector + -- @treturn number dot product of given vectors + function mist.vec.dp (vec1, vec2) + return vec1.x*vec2.x + vec1.y*vec2.y + vec1.z*vec2.z + end + + --- Vector cross product. + -- @tparam Vec3 vec1 first vector + -- @tparam Vec3 vec2 second vector + -- @treturn Vec3 new vector, cross product of vec1 and vec2. + function mist.vec.cp(vec1, vec2) + return { x = vec1.y*vec2.z - vec1.z*vec2.y, y = vec1.z*vec2.x - vec1.x*vec2.z, z = vec1.x*vec2.y - vec1.y*vec2.x} + end + + --- Vector magnitude + -- @tparam Vec3 vec vector + -- @treturn number magnitude of vector vec + function mist.vec.mag(vec) + return (vec.x^2 + vec.y^2 + vec.z^2)^0.5 + end + + --- Unit vector + -- @tparam Vec3 vec + -- @treturn Vec3 unit vector of vec + function mist.vec.getUnitVec(vec) + local mag = mist.vec.mag(vec) + return { x = vec.x/mag, y = vec.y/mag, z = vec.z/mag } + end + + --- Rotate vector. + -- @tparam Vec2 vec2 to rotoate + -- @tparam number theta + -- @return Vec2 rotated vector. + function mist.vec.rotateVec2(vec2, theta) + return { x = vec2.x*math.cos(theta) - vec2.y*math.sin(theta), y = vec2.x*math.sin(theta) + vec2.y*math.cos(theta)} + end +end + +--- Flag functions. +-- The mist "Flag functions" are functions that are similar to Slmod functions +-- that detect a game condition and set a flag when that game condition is met. +-- +-- They are intended to be used by persons with little or no experience in Lua +-- programming, but with a good knowledge of the DCS mission editor. +-- @section mist.flagFunc +do -- mist.flagFunc scope + mist.flagFunc = {} + + --- Sets a flag if map objects are destroyed inside a zone. + -- Once this function is run, it will start a continuously evaluated process + -- that will set a flag true if map objects (such as bridges, buildings in + -- town, etc.) die (or have died) in a mission editor zone (or set of zones). + -- This will only happen once; once the flag is set true, the process ends. + -- @usage + -- -- Example vars table + -- vars = { + -- zones = { "zone1", "zone2" }, -- can also be a single string + -- flag = 3, -- number of the flag + -- stopflag = 4, -- optional number of the stop flag + -- req_num = 10, -- optional minimum amount of map objects needed to die + -- } + -- mist.flagFuncs.mapobjs_dead_zones(vars) + -- @tparam table vars table containing parameters. + function mist.flagFunc.mapobjs_dead_zones(vars) + --[[vars needs to be: +zones = table or string, +flag = number, +stopflag = number or nil, +req_num = number or nil + +AND used by function, +initial_number + +]] + -- type_tbl + local type_tbl = { + [{'zones', 'zone'}] = {'table', 'string'}, + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + [{'req_num', 'reqnum'}] = {'number', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.mapobjs_dead_zones', type_tbl, vars) + assert(err, errmsg) + local zones = vars.zones or vars.zone + local flag = vars.flag + local stopflag = vars.stopflag or vars.stopFlag or -1 + local req_num = vars.req_num or vars.reqnum or 1 + local initial_number = vars.initial_number + + if type(zones) == 'string' then + zones = {zones} + end + + if not initial_number then + initial_number = #mist.getDeadMapObjsInZones(zones) + end + + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + if (#mist.getDeadMapObjsInZones(zones) - initial_number) >= req_num and trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + return + else + mist.scheduleFunction(mist.flagFunc.mapobjs_dead_zones, {{zones = zones, flag = flag, stopflag = stopflag, req_num = req_num, initial_number = initial_number}}, timer.getTime() + 1) + end + end + end + + --- Sets a flag if map objects are destroyed inside a polygon. + -- Once this function is run, it will start a continuously evaluated process + -- that will set a flag true if map objects (such as bridges, buildings in + -- town, etc.) die (or have died) in a polygon. + -- This will only happen once; once the flag is set true, the process ends. + -- @usage + -- -- Example vars table + -- vars = { + -- zone = { + -- [1] = mist.DBs.unitsByName['NE corner'].point, + -- [2] = mist.DBs.unitsByName['SE corner'].point, + -- [3] = mist.DBs.unitsByName['SW corner'].point, + -- [4] = mist.DBs.unitsByName['NW corner'].point + -- } + -- flag = 3, -- number of the flag + -- stopflag = 4, -- optional number of the stop flag + -- req_num = 10, -- optional minimum amount of map objects needed to die + -- } + -- mist.flagFuncs.mapobjs_dead_zones(vars) + -- @tparam table vars table containing parameters. + function mist.flagFunc.mapobjs_dead_polygon(vars) + --[[vars needs to be: +zone = table, +flag = number, +stopflag = number or nil, +req_num = number or nil + +AND used by function, +initial_number + +]] + -- type_tbl + local type_tbl = { + [{'zone', 'polyzone'}] = 'table', + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + [{'req_num', 'reqnum'}] = {'number', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.mapobjs_dead_polygon', type_tbl, vars) + assert(err, errmsg) + local zone = vars.zone or vars.polyzone + local flag = vars.flag + local stopflag = vars.stopflag or vars.stopFlag or -1 + local req_num = vars.req_num or vars.reqnum or 1 + local initial_number = vars.initial_number + + if not initial_number then + initial_number = #mist.getDeadMapObjsInPolygonZone(zone) + end + + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + if (#mist.getDeadMapObjsInPolygonZone(zone) - initial_number) >= req_num and trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + return + else + mist.scheduleFunction(mist.flagFunc.mapobjs_dead_polygon, {{zone = zone, flag = flag, stopflag = stopflag, req_num = req_num, initial_number = initial_number}}, timer.getTime() + 1) + end + end + end + + --- Sets a flag if unit(s) is/are inside a polygon. + -- @tparam table vars @{unitsInPolygonVars} + -- @usage -- set flag 11 to true as soon as any blue vehicles + -- -- are inside the polygon shape created off of the waypoints + -- -- of the group forest1 + -- mist.flagFunc.units_in_polygon { + -- units = {'[blue][vehicle]'}, + -- zone = mist.getGroupPoints('forest1'), + -- flag = 11 + -- } + function mist.flagFunc.units_in_polygon(vars) + --[[vars needs to be: +units = table, +zone = table, +flag = number, +stopflag = number or nil, +maxalt = number or nil, +interval = number or nil, +req_num = number or nil +toggle = boolean or nil +unitTableDef = table or nil +]] + -- type_tbl + local type_tbl = { + [{'units', 'unit'}] = 'table', + [{'zone', 'polyzone'}] = 'table', + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + [{'maxalt', 'alt'}] = {'number', 'nil'}, + interval = {'number', 'nil'}, + [{'req_num', 'reqnum'}] = {'number', 'nil'}, + toggle = {'boolean', 'nil'}, + unitTableDef = {'table', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.units_in_polygon', type_tbl, vars) + assert(err, errmsg) + local units = vars.units or vars.unit + local zone = vars.zone or vars.polyzone + local flag = vars.flag + local stopflag = vars.stopflag or vars.stopFlag or -1 + local interval = vars.interval or 1 + local maxalt = vars.maxalt or vars.alt + local req_num = vars.req_num or vars.reqnum or 1 + local toggle = vars.toggle or nil + local unitTableDef = vars.unitTableDef + + if not units.processed then + unitTableDef = mist.utils.deepCopy(units) + end + + if (units.processed and units.processed < mist.getLastDBUpdateTime()) or not units.processed then -- run unit table short cuts + if unitTableDef then + units = mist.makeUnitTable(unitTableDef) + end + end + + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == 0) then + local num_in_zone = 0 + for i = 1, #units do + local unit = Unit.getByName(units[i]) + if unit then + local pos = unit:getPosition().p + if mist.pointInPolygon(pos, zone, maxalt) then + num_in_zone = num_in_zone + 1 + if num_in_zone >= req_num and trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + break + end + end + end + end + if toggle and (num_in_zone < req_num) and trigger.misc.getUserFlag(flag) > 0 then + trigger.action.setUserFlag(flag, false) + end + -- do another check in case stopflag was set true by this function + if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == 0) then + mist.scheduleFunction(mist.flagFunc.units_in_polygon, {{units = units, zone = zone, flag = flag, stopflag = stopflag, interval = interval, req_num = req_num, maxalt = maxalt, toggle = toggle, unitTableDef = unitTableDef}}, timer.getTime() + interval) + end + end + + end + + --- Sets a flag if unit(s) is/are inside a trigger zone. + -- @todo document + function mist.flagFunc.units_in_zones(vars) + --[[vars needs to be: + units = table, + zones = table, + flag = number, + stopflag = number or nil, + zone_type = string or nil, + req_num = number or nil, + interval = number or nil + toggle = boolean or nil + ]] + -- type_tbl + local type_tbl = { + units = 'table', + zones = 'table', + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + [{'zone_type', 'zonetype'}] = {'string', 'nil'}, + [{'req_num', 'reqnum'}] = {'number', 'nil'}, + interval = {'number', 'nil'}, + toggle = {'boolean', 'nil'}, + unitTableDef = {'table', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.units_in_zones', type_tbl, vars) + assert(err, errmsg) + local units = vars.units + local zones = vars.zones + local flag = vars.flag + local stopflag = vars.stopflag or vars.stopFlag or -1 + local zone_type = vars.zone_type or vars.zonetype or 'cylinder' + local req_num = vars.req_num or vars.reqnum or 1 + local interval = vars.interval or 1 + local toggle = vars.toggle or nil + local unitTableDef = vars.unitTableDef + + if not units.processed then + unitTableDef = mist.utils.deepCopy(units) + end + + if (units.processed and units.processed < mist.getLastDBUpdateTime()) or not units.processed then -- run unit table short cuts + if unitTableDef then + units = mist.makeUnitTable(unitTableDef) + end + end + + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + + local in_zone_units = mist.getUnitsInZones(units, zones, zone_type) + + if #in_zone_units >= req_num and trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + elseif #in_zone_units < req_num and toggle then + trigger.action.setUserFlag(flag, false) + end + -- do another check in case stopflag was set true by this function + if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + mist.scheduleFunction(mist.flagFunc.units_in_zones, {{units = units, zones = zones, flag = flag, stopflag = stopflag, zone_type = zone_type, req_num = req_num, interval = interval, toggle = toggle, unitTableDef = unitTableDef}}, timer.getTime() + interval) + end + end + + end + + --- Sets a flag if unit(s) is/are inside a moving zone. + -- @todo document + function mist.flagFunc.units_in_moving_zones(vars) + --[[vars needs to be: + units = table, + zone_units = table, + radius = number, + flag = number, + stopflag = number or nil, + zone_type = string or nil, + req_num = number or nil, + interval = number or nil + toggle = boolean or nil + ]] + -- type_tbl + local type_tbl = { + units = 'table', + [{'zone_units', 'zoneunits'}] = 'table', + radius = 'number', + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + [{'zone_type', 'zonetype'}] = {'string', 'nil'}, + [{'req_num', 'reqnum'}] = {'number', 'nil'}, + interval = {'number', 'nil'}, + toggle = {'boolean', 'nil'}, + unitTableDef = {'table', 'nil'}, + zUnitTableDef = {'table', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.units_in_moving_zones', type_tbl, vars) + assert(err, errmsg) + local units = vars.units + local zone_units = vars.zone_units or vars.zoneunits + local radius = vars.radius + local flag = vars.flag + local stopflag = vars.stopflag or vars.stopFlag or -1 + local zone_type = vars.zone_type or vars.zonetype or 'cylinder' + local req_num = vars.req_num or vars.reqnum or 1 + local interval = vars.interval or 1 + local toggle = vars.toggle or nil + local unitTableDef = vars.unitTableDef + local zUnitTableDef = vars.zUnitTableDef + + if not units.processed then + unitTableDef = mist.utils.deepCopy(units) + end + + if not zone_units.processed then + zUnitTableDef = mist.utils.deepCopy(zone_units) + end + + if (units.processed and units.processed < mist.getLastDBUpdateTime()) or not units.processed then -- run unit table short cuts + if unitTableDef then + units = mist.makeUnitTable(unitTableDef) + end + end + + if (zone_units.processed and zone_units.processed < mist.getLastDBUpdateTime()) or not zone_units.processed then -- run unit table short cuts + if zUnitTableDef then + zone_units = mist.makeUnitTable(zUnitTableDef) + end + + end + + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + + local in_zone_units = mist.getUnitsInMovingZones(units, zone_units, radius, zone_type) + + if #in_zone_units >= req_num and trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + elseif #in_zone_units < req_num and toggle then + trigger.action.setUserFlag(flag, false) + end + -- do another check in case stopflag was set true by this function + if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + mist.scheduleFunction(mist.flagFunc.units_in_moving_zones, {{units = units, zone_units = zone_units, radius = radius, flag = flag, stopflag = stopflag, zone_type = zone_type, req_num = req_num, interval = interval, toggle = toggle, unitTableDef = unitTableDef, zUnitTableDef = zUnitTableDef}}, timer.getTime() + interval) + end + end + + end + + --- Sets a flag if units have line of sight to each other. + -- @todo document + function mist.flagFunc.units_LOS(vars) + --[[vars needs to be: +unitset1 = table, +altoffset1 = number, +unitset2 = table, +altoffset2 = number, +flag = number, +stopflag = number or nil, +radius = number or nil, +interval = number or nil, +req_num = number or nil +toggle = boolean or nil +]] + -- type_tbl + local type_tbl = { + [{'unitset1', 'units1'}] = 'table', + [{'altoffset1', 'alt1'}] = 'number', + [{'unitset2', 'units2'}] = 'table', + [{'altoffset2', 'alt2'}] = 'number', + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + [{'req_num', 'reqnum'}] = {'number', 'nil'}, + interval = {'number', 'nil'}, + radius = {'number', 'nil'}, + toggle = {'boolean', 'nil'}, + unitTableDef1 = {'table', 'nil'}, + unitTableDef2 = {'table', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.units_LOS', type_tbl, vars) + assert(err, errmsg) + local unitset1 = vars.unitset1 or vars.units1 + local altoffset1 = vars.altoffset1 or vars.alt1 + local unitset2 = vars.unitset2 or vars.units2 + local altoffset2 = vars.altoffset2 or vars.alt2 + local flag = vars.flag + local stopflag = vars.stopflag or vars.stopFlag or -1 + local interval = vars.interval or 1 + local radius = vars.radius or math.huge + local req_num = vars.req_num or vars.reqnum or 1 + local toggle = vars.toggle or nil + local unitTableDef1 = vars.unitTableDef1 + local unitTableDef2 = vars.unitTableDef2 + + if not unitset1.processed then + unitTableDef1 = mist.utils.deepCopy(unitset1) + end + + if not unitset2.processed then + unitTableDef2 = mist.utils.deepCopy(unitset2) + end + + if (unitset1.processed and unitset1.processed < mist.getLastDBUpdateTime()) or not unitset1.processed then -- run unit table short cuts + if unitTableDef1 then + unitset1 = mist.makeUnitTable(unitTableDef1) + end + end + + if (unitset2.processed and unitset2.processed < mist.getLastDBUpdateTime()) or not unitset2.processed then -- run unit table short cuts + if unitTableDef2 then + unitset2 = mist.makeUnitTable(unitTableDef2) + end + end + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- --------MESAGGES------ + local unitLOSdata = mist.getUnitsLOS(unitset1, altoffset1, unitset2, altoffset2, radius) -do + if #unitLOSdata >= req_num and trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + elseif #unitLOSdata < req_num and toggle then + trigger.action.setUserFlag(flag, false) + end + -- do another check in case stopflag was set true by this function + if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + mist.scheduleFunction(mist.flagFunc.units_LOS, {{unitset1 = unitset1, altoffset1 = altoffset1, unitset2 = unitset2, altoffset2 = altoffset2, flag = flag, stopflag = stopflag, radius = radius, req_num = req_num, interval = interval, toggle = toggle, unitTableDef1 = unitTableDef1, unitTableDef2 = unitTableDef2}}, timer.getTime() + interval) + end + end + end + + --- Sets a flag if group is alive. + -- @todo document + function mist.flagFunc.group_alive(vars) + --[[vars +groupName +flag +toggle +interval +stopFlag + +]] + local type_tbl = { + [{'group', 'groupname', 'gp', 'groupName'}] = 'string', + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + interval = {'number', 'nil'}, + toggle = {'boolean', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.group_alive', type_tbl, vars) + assert(err, errmsg) + + local groupName = vars.groupName or vars.group or vars.gp or vars.Groupname + local flag = vars.flag + local stopflag = vars.stopflag or vars.stopFlag or -1 + local interval = vars.interval or 1 + local toggle = vars.toggle or nil + + + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + if Group.getByName(groupName) and Group.getByName(groupName):isExist() == true and #Group.getByName(groupName):getUnits() > 0 then + if trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + end + else + if toggle then + trigger.action.setUserFlag(flag, false) + end + end + end + + if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + mist.scheduleFunction(mist.flagFunc.group_alive, {{groupName = groupName, flag = flag, stopflag = stopflag, interval = interval, toggle = toggle}}, timer.getTime() + interval) + end + + end + + --- Sets a flag if group is dead. + -- @todo document + function mist.flagFunc.group_dead(vars) + local type_tbl = { + [{'group', 'groupname', 'gp', 'groupName'}] = 'string', + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + interval = {'number', 'nil'}, + toggle = {'boolean', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.group_dead', type_tbl, vars) + assert(err, errmsg) + + local groupName = vars.groupName or vars.group or vars.gp or vars.Groupname + local flag = vars.flag + local stopflag = vars.stopflag or vars.stopFlag or -1 + local interval = vars.interval or 1 + local toggle = vars.toggle or nil + + + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + if (Group.getByName(groupName) and Group.getByName(groupName):isExist() == false) or (Group.getByName(groupName) and #Group.getByName(groupName):getUnits() < 1) or not Group.getByName(groupName) then + if trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + end + else + if toggle then + trigger.action.setUserFlag(flag, false) + end + end + end + + if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + mist.scheduleFunction(mist.flagFunc.group_dead, {{groupName = groupName, flag = flag, stopflag = stopflag, interval = interval, toggle = toggle}}, timer.getTime() + interval) + end + end + + --- Sets a flag if less than given percent of group is alive. + -- @todo document + function mist.flagFunc.group_alive_less_than(vars) + local type_tbl = { + [{'group', 'groupname', 'gp', 'groupName'}] = 'string', + percent = 'number', + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + interval = {'number', 'nil'}, + toggle = {'boolean', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.group_alive_less_than', type_tbl, vars) + assert(err, errmsg) + + local groupName = vars.groupName or vars.group or vars.gp or vars.Groupname + local flag = vars.flag + local percent = vars.percent + local stopflag = vars.stopflag or vars.stopFlag or -1 + local interval = vars.interval or 1 + local toggle = vars.toggle or nil + + + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + if Group.getByName(groupName) and Group.getByName(groupName):isExist() == true then + if Group.getByName(groupName):getSize()/Group.getByName(groupName):getInitialSize() < percent/100 then + if trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + end + else + if toggle then + trigger.action.setUserFlag(flag, false) + end + end + else + if trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + end + end + end + + if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + mist.scheduleFunction(mist.flagFunc.group_alive_less_than, {{groupName = groupName, flag = flag, stopflag = stopflag, interval = interval, toggle = toggle, percent = percent}}, timer.getTime() + interval) + end + end + + --- Sets a flag if more than given percent of group is alive. + -- @todo document + function mist.flagFunc.group_alive_more_than(vars) + local type_tbl = { + [{'group', 'groupname', 'gp', 'groupName'}] = 'string', + percent = 'number', + flag = {'number', 'string'}, + [{'stopflag', 'stopFlag'}] = {'number', 'string', 'nil'}, + interval = {'number', 'nil'}, + toggle = {'boolean', 'nil'}, + } + + local err, errmsg = mist.utils.typeCheck('mist.flagFunc.group_alive_more_than', type_tbl, vars) + assert(err, errmsg) + + local groupName = vars.groupName or vars.group or vars.gp or vars.Groupname + local flag = vars.flag + local percent = vars.percent + local stopflag = vars.stopflag or vars.stopFlag or -1 + local interval = vars.interval or 1 + local toggle = vars.toggle or nil + + + if stopflag == -1 or (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + if Group.getByName(groupName) and Group.getByName(groupName):isExist() == true then + if Group.getByName(groupName):getSize()/Group.getByName(groupName):getInitialSize() > percent/100 then + if trigger.misc.getUserFlag(flag) == 0 then + trigger.action.setUserFlag(flag, true) + end + else + if toggle and trigger.misc.getUserFlag(flag) == 1 then + trigger.action.setUserFlag(flag, false) + end + end + else --- just in case + if toggle and trigger.misc.getUserFlag(flag) == 1 then + trigger.action.setUserFlag(flag, false) + end + end + end + + if (type(trigger.misc.getUserFlag(stopflag)) == 'number' and trigger.misc.getUserFlag(stopflag) == 0) or (type(trigger.misc.getUserFlag(stopflag)) == 'boolean' and trigger.misc.getUserFlag(stopflag) == false) then + mist.scheduleFunction(mist.flagFunc.group_alive_more_than, {{groupName = groupName, flag = flag, stopflag = stopflag, interval = interval, toggle = toggle, percent = percent}}, timer.getTime() + interval) + end + end + + mist.flagFunc.mapobjsDeadPolygon = mist.flagFunc.mapobjs_dead_polygon + mist.flagFunc.mapobjsDeadZones = mist.flagFunc.Mapobjs_dead_zones + mist.flagFunc.unitsInZones = mist.flagFunc.units_in_zones + mist.flagFunc.unitsInMovingZones = mist.flagFunc.units_in_moving_zones + mist.flagFunc.unitsInPolygon = mist.flagFunc.units_in_polygon + mist.flagFunc.unitsLOS = mist.flagFunc.units_LOS + mist.flagFunc.groupAlive = mist.flagFunc.group_alive + mist.flagFunc.groupDead = mist.flagFunc.group_dead + mist.flagFunc.groupAliveMoreThan = mist.flagFunc.group_alive_more_than + mist.flagFunc.groupAliveLessThan = mist.flagFunc.group_alive_less_than + +end + +--- Message functions. +-- Messaging system +-- @section mist.msg +do -- mist.msg scope local messageList = {} - local messageDisplayRate = 0.1 -- this defines the max refresh rate of the message box it honestly only needs to go faster than this for precision timing stuff (which could be its own function) + -- this defines the max refresh rate of the message box it honestly only needs to + -- go faster than this for precision timing stuff (which could be its own function) + local messageDisplayRate = 0.1 local messageID = 0 local displayActive = false local displayFuncId = 0 - + local caSlots = false local caMSGtoGroup = false - + if env.mission.groundControl then -- just to be sure? for index, value in pairs(env.mission.groundControl) do if type(value) == 'table' then @@ -4192,16 +5018,16 @@ do end end end - + local function mistdisplayV5() - --[[thoughts to improve upon - event handler based activeClients table. - display messages only when there is an update - possibly co-routine it. -]] + --[[thoughts to improve upon + event handler based activeClients table. + display messages only when there is an update + possibly co-routine it. + ]] end - - local function mistdisplayV4() + + local function mistdisplayV4() local activeClients = {} for clientId, clientData in pairs(mist.DBs.humansById) do @@ -4209,12 +5035,12 @@ do activeClients[clientData.groupId] = clientData.groupName end end - + --[[if caSlots == true and caMSGtoGroup == true then - + end]] - + if #messageList > 0 then if displayActive == false then displayActive = true @@ -4222,17 +5048,17 @@ do --mist.debug.writeData(mist.utils.serialize,{'msg', messageList}, 'messageList.lua') local msgTableText = {} local msgTableSound = {} - + for messageId, messageData in pairs(messageList) do if messageData.displayedFor > messageData.displayTime then - messageData:remove() -- now using the remove/destroy function. + messageData:remove() -- now using the remove/destroy function. else if messageData.displayedFor then messageData.displayedFor = messageData.displayedFor + messageDisplayRate end local nextSound = 1000 local soundIndex = 0 - + if messageData.multSound and #messageData.multSound > 0 then for index, sData in pairs(messageData.multSound) do if sData.time <= messageData.displayedFor and sData.played == false and sData.time < nextSound then -- find index of the next sound to be played @@ -4244,7 +5070,7 @@ do messageData.multSound[soundIndex].played = true end end - + for recIndex, recData in pairs(messageData.msgFor) do -- iterate recipiants if recData == 'RED' or recData == 'BLUE' or activeClients[recData] then -- rec exists if messageData.text then -- text @@ -4265,7 +5091,7 @@ do msgTableText[recData].text[#msgTableText[recData].text + 1] = messageData.text if msgTableText[recData].displayTime < messageData.displayTime - messageData.displayedFor then msgTableText[recData].displayTime = messageData.displayTime - messageData.displayedFor - else + else msgTableText[recData].displayTime = 1 end end @@ -4275,36 +5101,36 @@ do end end end - - + + end end ------- new display - + if caSlots == true and caMSGtoGroup == false then - if msgTableText['RED'] then - trigger.action.outTextForCoalition(coalition.side.RED, table.concat(msgTableText['RED'].text), msgTableText['RED'].displayTime, true) + if msgTableText.RED then + trigger.action.outTextForCoalition(coalition.side.RED, table.concat(msgTableText.RED.text), msgTableText.RED.displayTime, true) end - if msgTableText['BLUE'] then - trigger.action.outTextForCoalition(coalition.side.BLUE, table.concat(msgTableText['BLUE'].text), msgTableText['BLUE'].displayTime, true) + if msgTableText.BLUE then + trigger.action.outTextForCoalition(coalition.side.BLUE, table.concat(msgTableText.BLUE.text), msgTableText.BLUE.displayTime, true) end end - + for index, msgData in pairs(msgTableText) do if type(index) == 'number' then -- its a groupNumber trigger.action.outTextForGroup(index, table.concat(msgData.text), msgData.displayTime, true) end end --- new audio - if msgTableSound['RED'] then - trigger.action.outSoundForCoalition(coalition.side.RED, msgTableSound['RED']) + if msgTableSound.RED then + trigger.action.outSoundForCoalition(coalition.side.RED, msgTableSound.RED) end - if msgTableSound['BLUE'] then - trigger.action.outSoundForCoalition(coalition.side.BLUE, msgTableSound['BLUE']) + if msgTableSound.BLUE then + trigger.action.outSoundForCoalition(coalition.side.BLUE, msgTableSound.BLUE) end - - + + for index, file in pairs(msgTableSound) do if type(index) == 'number' then -- its a groupNumber trigger.action.outSoundForGroup(index, file) @@ -4312,11 +5138,11 @@ do end else mist.removeFunction(displayFuncId) - displayActive = false + displayActive = false end - + end - + local typeBase = { ['Mi-8MT'] = {'Mi-8MTV2', 'Mi-8MTV', 'Mi-8'}, ['MiG-21Bis'] = {'Mig-21'}, @@ -4324,31 +5150,30 @@ do ['FW-190D9'] = {'FW-190'}, ['Bf-109K-4'] = {'Bf-109'}, } - - --[[mist.setCAGroupMSG = function(val) - if type(val) == 'boolean' then - caMSGtoGroup = val - return true - end - return false - end]] + + --[[function mist.setCAGroupMSG(val) + if type(val) == 'boolean' then + caMSGtoGroup = val + return true + end + return false +end]] mist.message = { - add = function(vars) local function msgSpamFilter(recList, spamBlockOn) for id, name in pairs(recList) do if name == spamBlockOn then - -- env.info('already on recList') + -- log:info('already on recList') return recList end end - --env.info('add to recList') + --log:info('add to recList') table.insert(recList, spamBlockOn) return recList end - + --[[ local vars = {} vars.text = 'Hello World' @@ -4357,24 +5182,24 @@ do mist.message.add(vars) Displays the message for all red coalition players. Players belonging to Ukraine and Georgia, and all A-10Cs on the map - + ]] - - + + local new = {} new.text = vars.text -- The actual message new.displayTime = vars.displayTime -- How long will the message appear for new.displayedFor = 0 -- how long the message has been displayed so far - new.name = vars.name -- ID to overwrite the older message (if it exists) Basically it replaces a message that is displayed with new text. + new.name = vars.name -- ID to overwrite the older message (if it exists) Basically it replaces a message that is displayed with new text. new.addedAt = timer.getTime() new.update = true - + if vars.multSound and vars.multSound[1] then new.multSound = vars.multSound - else + else new.multSound = {} end - + if vars.sound or vars.fileName then -- converts old sound file system into new multSound format local sound = vars.sound if vars.fileName then @@ -4382,15 +5207,15 @@ do end new.multSound[#new.multSound+1] = {time = 0.1, file = sound} end - + if #new.multSound > 0 then for i, data in pairs(new.multSound) do data.played = false end end - + local newMsgFor = {} -- list of all groups message displays for - for forIndex, forData in pairs(vars.msgFor) do + for forIndex, forData in pairs(vars.msgFor) do for list, listData in pairs(forData) do for clientId, clientData in pairs(mist.DBs.humansById) do forIndex = string.lower(forIndex) @@ -4421,7 +5246,7 @@ do end end end - if found == true then -- shouldn't this be elsewhere too? + if found == true then -- shouldn't this be elsewhere too? break end end @@ -4429,7 +5254,7 @@ do end end - for coaData, coaId in pairs(coalition.side) do + for coaData, coaId in pairs(coalition.side) do if string.lower(forIndex) == 'coa' or string.lower(forIndex) == 'ca' then if listData == string.lower(coaData) or listData == 'all' then newMsgFor = msgSpamFilter(newMsgFor, coaData) @@ -4437,21 +5262,21 @@ do end end end - end - + end + if #newMsgFor > 0 then new.msgFor = newMsgFor -- I swear its not confusing - + else return false end - - + + if vars.name and type(vars.name) == 'string' then for i = 1, #messageList do if messageList[i].name then if messageList[i].name == vars.name then - --env.info('updateMessage') + --log:info('updateMessage') messageList[i].displayedFor = 0 messageList[i].addedAt = timer.getTime() messageList[i].sound = new.sound @@ -4464,427 +5289,197 @@ do end end end - + messageID = messageID + 1 new.messageID = messageID --mist.debug.writeData(mist.utils.serialize,{'msg', new}, 'newMsg.lua') - + messageList[#messageList + 1] = new - - local mt = { __index = mist.message} - setmetatable(new, mt) + + local mt = { __index = mist.message} + setmetatable(new, mt) if displayActive == false then displayActive = true displayFuncId = mist.scheduleFunction(mistdisplayV4, {}, timer.getTime() + messageDisplayRate, messageDisplayRate) end - + return messageID - + end, - - remove = function(self) -- Now a self variable; the former functionality taken up by mist.message.removeById. + + remove = function(self) -- Now a self variable; the former functionality taken up by mist.message.removeById. for i, msgData in pairs(messageList) do - if messageList[i] == self then + if messageList[i] == self then table.remove(messageList, i) return true --removal successful end end return false -- removal not successful this script fails at life! end, - - removeById = function(id) -- This function is NOT passed a self variable; it is the remove by id function. + + removeById = function(id) -- This function is NOT passed a self variable; it is the remove by id function. for i, msgData in pairs(messageList) do - if messageList[i].messageID == id then + if messageList[i].messageID == id then table.remove(messageList, i) return true --removal successful end end return false -- removal not successful this script fails at life! end, - } - -end --- End of message system --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- + } --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- --- Beginning of coordinate messages ---[[ -Design: - -Already have: -mist.tostringBR = function(az, dist, alt, metric) -mist.tostringLL = function(lat, lon, acc, DMS) -mist.tostringMGRS = function(MGRS, acc) - -Need: -mist.getMGRSString(UnitNameTable, acc) -mist.getLeadingMGRSString(UnitNameTable, dir, radius, acc) - -mist.getLLString(UnitNameTable, acc) -mist.getLeadingLLString(UnitNameTable, dir, radius acc) - -mist.getBRString(UnitNameTable, ref, alt, metric) -mist.getLeadingBRString(UnitNameTable, ref, alt, metric, dir, radius, acc) -- vars versions? - - -mist.sendMGRSMsg(vars) -mist.sendLeadingMGRSMsg(vars) - -mist.sendLLMsg(vars) -mist.sendLeadingLLMsg(vars) - -mist.sendBRMsg(vars) -mist.sendLeadingBRMsg(vars) - -]] - ---[[RE-EXAMINE USAGE OF VARS FOR SIMPLE FUNCTIONS. -(Answer: the leading functions require a lot of input variables; maybe better to leave in vars -format for consistency. Maybe individual variable specification could also be supported?) - -]] - - ---[[ vars for mist.getMGRSString: -vars.units - table of unit names (NOT unitNameTable- maybe this should change). -vars.acc - integer between 0 and 5, inclusive -]] -mist.getMGRSString = function(vars) - local units = vars.units - local acc = vars.acc or 5 - local avgPos = mist.getAvgPos(units) - if avgPos then - return mist.tostringMGRS(coord.LLtoMGRS(coord.LOtoLL(avgPos)), acc) - end -end - ---[[ vars for mist.getLLString -vars.units - table of unit names (NOT unitNameTable- maybe this should change). -vars.acc - integer, number of numbers after decimal place -vars.DMS - if true, output in degrees, minutes, seconds. Otherwise, output in degrees, minutes. - - -]] -mist.getLLString = function(vars) - local units = vars.units - local acc = vars.acc or 3 - local DMS = vars.DMS - local avgPos = mist.getAvgPos(units) - if avgPos then - local lat, lon = coord.LOtoLL(avgPos) - return mist.tostringLL(lat, lon, acc, DMS) - end -end - - ---[[ -vars.units- table of unit names (NOT unitNameTable- maybe this should change). -vars.ref - vec3 ref point, maybe overload for vec2 as well? -vars.alt - boolean, if used, includes altitude in string -vars.metric - boolean, gives distance in km instead of NM. -]] -mist.getBRString = function(vars) - local units = vars.units - local ref = mist.utils.makeVec3(vars.ref, 0) -- turn it into Vec3 if it is not already. - local alt = vars.alt - local metric = vars.metric - local avgPos = mist.getAvgPos(units) - if avgPos then - local vec = {x = avgPos.x - ref.x, y = avgPos.y - ref.y, z = avgPos.z - ref.z} - local dir = mist.utils.getDir(vec, ref) - local dist = mist.utils.get2DDist(avgPos, ref) - if alt then - alt = avgPos.y - end - return mist.tostringBR(dir, dist, alt, metric) - end -end - --- Returns the Vec3 coordinates of the average position of the concentration of units most in the heading direction. ---[[ vars for mist.getLeadingPos: -vars.units - table of unit names -vars.heading - direction -vars.radius - number -vars.headingDegrees - boolean, switches heading to degrees -]] -mist.getLeadingPos = function(vars) - local units = vars.units - local heading = vars.heading - local radius = vars.radius - if vars.headingDegrees then - heading = mist.utils.toRadian(vars.headingDegrees) - end - - local unitPosTbl = {} - for i = 1, #units do - local unit = Unit.getByName(units[i]) - if unit and unit:isExist() then - unitPosTbl[#unitPosTbl + 1] = unit:getPosition().p - end - end - if #unitPosTbl > 0 then -- one more more units found. - -- first, find the unit most in the heading direction - local maxPos = -math.huge - - local maxPosInd -- maxPos - the furthest in direction defined by heading; maxPosInd = - for i = 1, #unitPosTbl do - local rotatedVec2 = mist.vec.rotateVec2(mist.utils.makeVec2(unitPosTbl[i]), heading) - if (not maxPos) or maxPos < rotatedVec2.x then - maxPos = rotatedVec2.x - maxPosInd = i - end - end - - --now, get all the units around this unit... - local avgPos - if radius then - local maxUnitPos = unitPosTbl[maxPosInd] - local avgx, avgy, avgz, totNum = 0, 0, 0, 0 - for i = 1, #unitPosTbl do - if mist.utils.get2DDist(maxUnitPos, unitPosTbl[i]) <= radius then - avgx = avgx + unitPosTbl[i].x - avgy = avgy + unitPosTbl[i].y - avgz = avgz + unitPosTbl[i].z - totNum = totNum + 1 - end - end - avgPos = { x = avgx/totNum, y = avgy/totNum, z = avgz/totNum} - else - avgPos = unitPosTbl[maxPosInd] - end - - return avgPos - end -end - - ---[[ vars for mist.getLeadingMGRSString: -vars.units - table of unit names -vars.heading - direction -vars.radius - number -vars.headingDegrees - boolean, switches heading to degrees -vars.acc - number, 0 to 5. -]] -mist.getLeadingMGRSString = function(vars) - local pos = mist.getLeadingPos(vars) - if pos then - local acc = vars.acc or 5 - return mist.tostringMGRS(coord.LLtoMGRS(coord.LOtoLL(pos)), acc) - end -end - ---[[ vars for mist.getLeadingLLString: -vars.units - table of unit names -vars.heading - direction, number -vars.radius - number -vars.headingDegrees - boolean, switches heading to degrees -vars.acc - number of digits after decimal point (can be negative) -vars.DMS - boolean, true if you want DMS. -]] -mist.getLeadingLLString = function(vars) - local pos = mist.getLeadingPos(vars) - if pos then - local acc = vars.acc or 3 - local DMS = vars.DMS - local lat, lon = coord.LOtoLL(pos) - return mist.tostringLL(lat, lon, acc, DMS) - end -end - - - ---[[ vars for mist.getLeadingBRString: -vars.units - table of unit names -vars.heading - direction, number -vars.radius - number -vars.headingDegrees - boolean, switches heading to degrees -vars.metric - boolean, if true, use km instead of NM. -vars.alt - boolean, if true, include altitude. -vars.ref - vec3/vec2 reference point. -]] -mist.getLeadingBRString = function(vars) - local pos = mist.getLeadingPos(vars) - if pos then - local ref = vars.ref - local alt = vars.alt - local metric = vars.metric - - local vec = {x = pos.x - ref.x, y = pos.y - ref.y, z = pos.z - ref.z} - local dir = mist.utils.getDir(vec, ref) - local dist = mist.utils.get2DDist(pos, ref) - if alt then - alt = pos.y - end - return mist.tostringBR(dir, dist, alt, metric) - end -end - ---[[ vars for mist.message.add - vars.text = 'Hello World' - vars.displayTime = 20 - vars.msgFor = {coa = {'red'}, countries = {'Ukraine', 'Georgia'}, unitTypes = {'A-10C'}} - -]] - ---[[ vars for mist.msgMGRS + --[[ vars for mist.msgMGRS vars.units - table of unit names (NOT unitNameTable- maybe this should change). vars.acc - integer between 0 and 5, inclusive vars.text - text in the message vars.displayTime - self explanatory vars.msgFor - scope ]] -mist.msgMGRS = function(vars) - local units = vars.units - local acc = vars.acc - local text = vars.text - local displayTime = vars.displayTime - local msgFor = vars.msgFor - - local s = mist.getMGRSString{units = units, acc = acc} - local newText - if text then - if string.find(text, '%%s') then -- look for %s - newText = string.format(text, s) -- insert the coordinates into the message - else -- else, just append to the end. - newText = text .. s - end - else - newText = s - end - mist.message.add{ - text = newText, - displayTime = displayTime, - msgFor = msgFor - } -end + function mist.msgMGRS(vars) + local units = vars.units + local acc = vars.acc + local text = vars.text + local displayTime = vars.displayTime + local msgFor = vars.msgFor ---[[ vars for mist.msgLL + local s = mist.getMGRSString{units = units, acc = acc} + local newText + if text then + if string.find(text, '%%s') then -- look for %s + newText = string.format(text, s) -- insert the coordinates into the message + else + -- just append to the end. + newText = text .. s + end + else + newText = s + end + mist.message.add{ + text = newText, + displayTime = displayTime, + msgFor = msgFor + } + end + + --[[ vars for mist.msgLL vars.units - table of unit names (NOT unitNameTable- maybe this should change) (Yes). vars.acc - integer, number of numbers after decimal place -vars.DMS - if true, output in degrees, minutes, seconds. Otherwise, output in degrees, minutes. +vars.DMS - if true, output in degrees, minutes, seconds. Otherwise, output in degrees, minutes. vars.text - text in the message vars.displayTime - self explanatory vars.msgFor - scope ]] -mist.msgLL = function(vars) - local units = vars.units -- technically, I don't really need to do this, but it helps readability. - local acc = vars.acc - local DMS = vars.DMS - local text = vars.text - local displayTime = vars.displayTime - local msgFor = vars.msgFor - - local s = mist.getLLString{units = units, acc = acc, DMS = DMS} - local newText - if text then - if string.find(text, '%%s') then -- look for %s - newText = string.format(text, s) -- insert the coordinates into the message - else -- else, just append to the end. - newText = text .. s + function mist.msgLL(vars) + local units = vars.units -- technically, I don't really need to do this, but it helps readability. + local acc = vars.acc + local DMS = vars.DMS + local text = vars.text + local displayTime = vars.displayTime + local msgFor = vars.msgFor + + local s = mist.getLLString{units = units, acc = acc, DMS = DMS} + local newText + if text then + if string.find(text, '%%s') then -- look for %s + newText = string.format(text, s) -- insert the coordinates into the message + else + -- just append to the end. + newText = text .. s + end + else + newText = s end - else - newText = s + + mist.message.add{ + text = newText, + displayTime = displayTime, + msgFor = msgFor + } + end - - mist.message.add{ - text = newText, - displayTime = displayTime, - msgFor = msgFor - } -end - - ---[[ + --[[ vars.units- table of unit names (NOT unitNameTable- maybe this should change). -vars.ref - vec3 ref point, maybe overload for vec2 as well? +vars.ref - vec3 ref point, maybe overload for vec2 as well? vars.alt - boolean, if used, includes altitude in string vars.metric - boolean, gives distance in km instead of NM. vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgBR = function(vars) - local units = vars.units -- technically, I don't really need to do this, but it helps readability. - local ref = vars.ref -- vec2/vec3 will be handled in mist.getBRString - local alt = vars.alt - local metric = vars.metric - local text = vars.text - local displayTime = vars.displayTime - local msgFor = vars.msgFor - - local s = mist.getBRString{units = units, ref = ref, alt = alt, metric = metric} - local newText - if text then - if string.find(text, '%%s') then -- look for %s - newText = string.format(text, s) -- insert the coordinates into the message - else -- else, just append to the end. - newText = text .. s + function mist.msgBR(vars) + local units = vars.units -- technically, I don't really need to do this, but it helps readability. + local ref = vars.ref -- vec2/vec3 will be handled in mist.getBRString + local alt = vars.alt + local metric = vars.metric + local text = vars.text + local displayTime = vars.displayTime + local msgFor = vars.msgFor + + local s = mist.getBRString{units = units, ref = ref, alt = alt, metric = metric} + local newText + if text then + if string.find(text, '%%s') then -- look for %s + newText = string.format(text, s) -- insert the coordinates into the message + else + -- just append to the end. + newText = text .. s + end + else + newText = s end - else - newText = s + + mist.message.add{ + text = newText, + displayTime = displayTime, + msgFor = msgFor + } + end - - mist.message.add{ - text = newText, - displayTime = displayTime, - msgFor = msgFor - } -end - - --------------------------------------------------------------------------------------------- --- basically, just sub-types of mist.msgBR... saves folks the work of getting the ref point. ---[[ + -- basically, just sub-types of mist.msgBR... saves folks the work of getting the ref point. + --[[ vars.units- table of unit names (NOT unitNameTable- maybe this should change). -vars.ref - string red, blue +vars.ref - string red, blue vars.alt - boolean, if used, includes altitude in string vars.metric - boolean, gives distance in km instead of NM. vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgBullseye = function(vars) - if string.lower(vars.ref) == 'red' then - vars.ref = mist.DBs.missionData.bullseye.red - mist.msgBR(vars) - elseif string.lower(vars.ref) == 'blue' then - vars.ref = mist.DBs.missionData.bullseye.blue - mist.msgBR(vars) + function mist.msgBullseye(vars) + if string.lower(vars.ref) == 'red' then + vars.ref = mist.DBs.missionData.bullseye.red + mist.msgBR(vars) + elseif string.lower(vars.ref) == 'blue' then + vars.ref = mist.DBs.missionData.bullseye.blue + mist.msgBR(vars) + end end -end ---[[ + --[[ vars.units- table of unit names (NOT unitNameTable- maybe this should change). -vars.ref - unit name of reference point +vars.ref - unit name of reference point vars.alt - boolean, if used, includes altitude in string vars.metric - boolean, gives distance in km instead of NM. vars.text - text of the message vars.displayTime vars.msgFor - scope ]] - -mist.msgBRA = function(vars) - if Unit.getByName(vars.ref) and Unit.getByName(vars.ref):isExist() == true then - vars.ref = Unit.getByName(vars.ref):getPosition().p - if not vars.alt then - vars.alt = true + function mist.msgBRA(vars) + if Unit.getByName(vars.ref) and Unit.getByName(vars.ref):isExist() == true then + vars.ref = Unit.getByName(vars.ref):getPosition().p + if not vars.alt then + vars.alt = true + end + mist.msgBR(vars) end - mist.msgBR(vars) end -end --------------------------------------------------------------------------------------------- ---[[ vars for mist.msgLeadingMGRS: + --[[ vars for mist.msgLeadingMGRS: vars.units - table of unit names vars.heading - direction vars.radius - number @@ -4894,84 +5489,87 @@ vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgLeadingMGRS = function(vars) - local units = vars.units -- technically, I don't really need to do this, but it helps readability. - local heading = vars.heading - local radius = vars.radius - local headingDegrees = vars.headingDegrees - local acc = vars.acc - local text = vars.text - local displayTime = vars.displayTime - local msgFor = vars.msgFor - - local s = mist.getLeadingMGRSString{units = units, heading = heading, radius = radius, headingDegrees = headingDegrees, acc = acc} - local newText - if text then - if string.find(text, '%%s') then -- look for %s - newText = string.format(text, s) -- insert the coordinates into the message - else -- else, just append to the end. - newText = text .. s + function mist.msgLeadingMGRS(vars) + local units = vars.units -- technically, I don't really need to do this, but it helps readability. + local heading = vars.heading + local radius = vars.radius + local headingDegrees = vars.headingDegrees + local acc = vars.acc + local text = vars.text + local displayTime = vars.displayTime + local msgFor = vars.msgFor + + local s = mist.getLeadingMGRSString{units = units, heading = heading, radius = radius, headingDegrees = headingDegrees, acc = acc} + local newText + if text then + if string.find(text, '%%s') then -- look for %s + newText = string.format(text, s) -- insert the coordinates into the message + else + -- just append to the end. + newText = text .. s + end + else + newText = s end - else - newText = s + + mist.message.add{ + text = newText, + displayTime = displayTime, + msgFor = msgFor + } + + end - - mist.message.add{ - text = newText, - displayTime = displayTime, - msgFor = msgFor - } - -end ---[[ vars for mist.msgLeadingLL: + --[[ vars for mist.msgLeadingLL: vars.units - table of unit names vars.heading - direction, number vars.radius - number vars.headingDegrees - boolean, switches heading to degrees (optional) vars.acc - number of digits after decimal point (can be negative) -vars.DMS - boolean, true if you want DMS. (optional) +vars.DMS - boolean, true if you want DMS. (optional) vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgLeadingLL = function(vars) - local units = vars.units -- technically, I don't really need to do this, but it helps readability. - local heading = vars.heading - local radius = vars.radius - local headingDegrees = vars.headingDegrees - local acc = vars.acc - local DMS = vars.DMS - local text = vars.text - local displayTime = vars.displayTime - local msgFor = vars.msgFor - - local s = mist.getLeadingLLString{units = units, heading = heading, radius = radius, headingDegrees = headingDegrees, acc = acc, DMS = DMS} - local newText - - if text then - if string.find(text, '%%s') then -- look for %s - newText = string.format(text, s) -- insert the coordinates into the message - else -- else, just append to the end. - newText = text .. s + function mist.msgLeadingLL(vars) + local units = vars.units -- technically, I don't really need to do this, but it helps readability. + local heading = vars.heading + local radius = vars.radius + local headingDegrees = vars.headingDegrees + local acc = vars.acc + local DMS = vars.DMS + local text = vars.text + local displayTime = vars.displayTime + local msgFor = vars.msgFor + + local s = mist.getLeadingLLString{units = units, heading = heading, radius = radius, headingDegrees = headingDegrees, acc = acc, DMS = DMS} + local newText + + if text then + if string.find(text, '%%s') then -- look for %s + newText = string.format(text, s) -- insert the coordinates into the message + else + -- just append to the end. + newText = text .. s + end + else + newText = s end - else - newText = s + + mist.message.add{ + text = newText, + displayTime = displayTime, + msgFor = msgFor + } + end - - mist.message.add{ - text = newText, - displayTime = displayTime, - msgFor = msgFor - } -end - ---[[ + --[[ vars.units - table of unit names vars.heading - direction, number vars.radius - number -vars.headingDegrees - boolean, switches heading to degrees (optional) +vars.headingDegrees - boolean, switches heading to degrees (optional) vars.metric - boolean, if true, use km instead of NM. (optional) vars.alt - boolean, if true, include altitude. (optional) vars.ref - vec3/vec2 reference point. @@ -4979,874 +5577,191 @@ vars.text - text of the message vars.displayTime vars.msgFor - scope ]] -mist.msgLeadingBR = function(vars) - local units = vars.units -- technically, I don't really need to do this, but it helps readability. - local heading = vars.heading - local radius = vars.radius - local headingDegrees = vars.headingDegrees - local metric = vars.metric - local alt = vars.alt - local ref = vars.ref -- vec2/vec3 will be handled in mist.getBRString - local text = vars.text - local displayTime = vars.displayTime - local msgFor = vars.msgFor - - local s = mist.getLeadingBRString{units = units, heading = heading, radius = radius, headingDegrees = headingDegrees, metric = metric, alt = alt, ref = ref} - local newText - - if text then - if string.find(text, '%%s') then -- look for %s - newText = string.format(text, s) -- insert the coordinates into the message - else -- else, just append to the end. - newText = text .. s - end - else - newText = s - end - - mist.message.add{ - text = newText, - displayTime = displayTime, - msgFor = msgFor - } -end + function mist.msgLeadingBR(vars) + local units = vars.units -- technically, I don't really need to do this, but it helps readability. + local heading = vars.heading + local radius = vars.radius + local headingDegrees = vars.headingDegrees + local metric = vars.metric + local alt = vars.alt + local ref = vars.ref -- vec2/vec3 will be handled in mist.getBRString + local text = vars.text + local displayTime = vars.displayTime + local msgFor = vars.msgFor + local s = mist.getLeadingBRString{units = units, heading = heading, radius = radius, headingDegrees = headingDegrees, metric = metric, alt = alt, ref = ref} + local newText --- end of coordinate messages --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------- --- start of sct Merge - -do -- all function uses of group and unit Ids must be in this do statement - - -mist.groupTableCheck = function(groupData) - local isOk = false - - if groupData.country then - isOk = true - end - if groupData.category then - isOk = true - else - isOk = false - end - if groupData.units then - for unitId, unitData in pairs(groupData.units) do - if unitData.x and unitData.y and unitData.type then - isOk = true - end - end - else - isOk = false - end - - return isOk -end - -mist.getCurrentGroupData = function(gpName) - local dbData = mist.getGroupData(gpName) - - if Group.getByName(gpName) and Group.getByName(gpName):isExist() == true then - local newGroup = Group.getByName(gpName) - local newData = {} - newData.name = gpName - newData.groupId = tonumber(newGroup:getID()) - newData.category = newGroup:getCategory() - newData.groupName = gpName - newData.hidden = dbData.hidden - - if newData.category == 2 then - newData.category = 'vehicle' - elseif newData.category == 3 then - newData.category = 'ship' - end - - newData.units = {} - local newUnits = newGroup:getUnits() - for unitNum, unitData in pairs(newGroup:getUnits()) do - newData.units[unitNum] = {} - newData.units[unitNum]["unitId"] = tonumber(unitData:getID()) - newData.units[unitNum]['point'] = unitData.point - newData.units[unitNum]['x'] = unitData:getPosition().p.x - newData.units[unitNum]['y'] = unitData:getPosition().p.z - newData.units[unitNum]["type"] = unitData:getTypeName() - newData.units[unitNum]["skill"] = mist.getUnitSkill(unitData:getName()) - - -- get velocity needed - newData.units[unitNum]["unitName"] = unitData:getName() - newData.units[unitNum]["heading"] = mist.getHeading(unitData, true) -- added to DBs - newData.units[unitNum]['alt'] = unitData:getPosition().p.y - newData.country = string.lower(country.name[unitData:getCountry()]) - newData.units[unitNum]['callsign'] = unitData:getCallsign() - end - - return newData - elseif StaticObject.getByName(gpName) and StaticObject.getByName(gpName):isExist() == true then - local staticObj = StaticObject.getByName(gpName) - dbData.units[1].x = staticObj:getPosition().p.x - dbData.units[1].y = staticObj:getPosition().p.z - dbData.units[1].alt = staticObj:getPosition().p.y - dbData.units[1].heading = mist.getHeading(staticObj, true) - - return dbData - end - -end - -mist.getGroupData = function(gpName) - local found = false - local newData = {} - if mist.DBs.groupsByName[gpName] then - newData = mist.utils.deepCopy(mist.DBs.groupsByName[gpName]) - found = true - end - - if found == false then - for groupName, groupData in pairs(mist.DBs.groupsByName) do - if mist.stringMatch(groupName, gpName) == true then - newData = mist.utils.deepCopy(groupData) - newData.groupName = groupName - found = true - break - end - end - end - - local payloads - if newData.category == 'plane' or newData.category == 'helicopter' then - payloads = mist.getGroupPayload(newData.groupName) - end - if found == true then - --newData.hidden = false -- maybe add this to DBs - - for unitNum, unitData in pairs(newData.units) do - newData.units[unitNum] = {} - - newData.units[unitNum]["unitId"] = unitData.unitId - --newData.units[unitNum]['point'] = unitData.point - newData.units[unitNum]['x'] = unitData.point.x - newData.units[unitNum]['y'] = unitData.point.y - newData.units[unitNum]['alt'] = unitData.alt - newData.units[unitNum]['alt_type'] = unitData.alt_type - newData.units[unitNum]['speed'] = unitData.speed - newData.units[unitNum]["type"] = unitData.type - newData.units[unitNum]["skill"] = unitData.skill - newData.units[unitNum]["unitName"] = unitData.unitName - newData.units[unitNum]["heading"] = unitData.heading -- added to DBs - newData.units[unitNum]["playerCanDrive"] = unitData.playerCanDrive -- added to DBs - - - if newData.category == 'plane' or newData.category == 'helicopter' then - newData.units[unitNum]["payload"] = payloads[unitNum] - newData.units[unitNum]['livery_id'] = unitData.livery_id - newData.units[unitNum]['onboard_num'] = unitData.onboard_num - newData.units[unitNum]['callsign'] = unitData.callsign - newData.units[unitNum]['AddPropAircraft'] = unitData.AddPropAircraft - end - if newData.category == 'static' then - newData.units[unitNum]['categoryStatic'] = unitData.categoryStatic - newData.units[unitNum]['mass'] = unitData.mass - newData.units[unitNum]['canCargo'] = unitData.canCargo - newData.units[unitNum]['shape_name'] = unitData.shape_name - end - end - - return newData - else - env.info(gpName .. ' not found in mist.getGroupData') - return - end -end - -mist.getPayload = function(unitIdent) - -- refactor to search by groupId and allow groupId and groupName as inputs - local unitId = unitIdent - if type(unitIdent) == 'string' and not tonumber(unitIdent) then - unitId = mist.DBs.MEunitsByName[unitIdent].unitId - end - local gpId = mist.DBs.MEunitsById[unitId].groupId - - if gpId and unitId then - for coa_name, coa_data in pairs(env.mission.coalition) do - if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then - if coa_data.country then --there is a country table - for cntry_id, cntry_data in pairs(coa_data.country) do - for obj_type_name, obj_type_data in pairs(cntry_data) do - if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" then -- only these types have points - if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! - for group_num, group_data in pairs(obj_type_data.group) do - if group_data and group_data.groupId == gpId then - for unitIndex, unitData in pairs(group_data.units) do --group index - if unitData.unitId == unitId then - return unitData.payload - end - end - end - end - end - end - end - end - end - end - end - else - env.info('mist.getPayload got ' .. type(unitIdent)) - return false - end - env.info('mist.getPayload, payload not found') - return -end - -mist.getGroupPayload = function(groupIdent) - local gpId = groupIdent - if type(groupIdent) == 'string' and not tonumber(groupIdent) then - gpId = mist.DBs.MEgroupsByName[groupIdent].groupId - end - - if gpId then - for coa_name, coa_data in pairs(env.mission.coalition) do - if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then - if coa_data.country then --there is a country table - for cntry_id, cntry_data in pairs(coa_data.country) do - for obj_type_name, obj_type_data in pairs(cntry_data) do - if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" then -- only these types have points - if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! - for group_num, group_data in pairs(obj_type_data.group) do - if group_data and group_data.groupId == gpId then - local payloads = {} - for unitIndex, unitData in pairs(group_data.units) do --group index - payloads[unitIndex] = unitData.payload - end - return payloads - end - end - end - end - end - end - end - end - end - else - env.info('mist.getGroupPayload got ' .. type(groupName)) - return false - end - env.info('mist.getGroupPayload, payload not found') - return - -end - -mist.teleportToPoint = function(vars) -- main teleport function that all of teleport/respawn functions call - local point = vars.point - - local gpName - if vars.gpName then - gpName = vars.gpName - elseif vars.groupName then - gpName = vars.groupName - else - env.info('teleportToPoint missing either vars.groupName or vars.gpName') - end - - local action = vars.action - - local disperse = vars.disperse or false - local maxDisp = vars.maxDisp - if not vars.maxDisp then - maxDisp = 200 - else - maxDisp = vars.maxDisp - end - local radius = vars.radius or 0 - local innerRadius = vars.innerRadius - - local route = vars.route - local dbData = false - - local newGroupData - if gpName and not vars.groupData then - if string.lower(action) == 'teleport' or string.lower(action) == 'tele' then - newGroupData = mist.getCurrentGroupData(gpName) - elseif string.lower(action) == 'respawn' then - newGroupData = mist.getGroupData(gpName) - dbData = true - elseif string.lower(action) == 'clone' then - newGroupData = mist.getGroupData(gpName) - newGroupData.clone = 'order66' - dbData = true - else - action = 'tele' - newGroupData = mist.getCurrentGroupData(gpName) - end - else - action = 'tele' - newGroupData = vars.groupData - end - - local diff = {['x'] = 0, ['y'] = 0} - local newCoord, origCoord - if point then - local valid = false - - local validTerrain - if string.lower(newGroupData.category) == 'ship' then - validTerrain = {'SHALLOW_WATER' , 'WATER'} - elseif string.lower(newGroupData.category) == 'vehicle' then - validTerrain = {'LAND', 'ROAD'} - else - validTerrain = {'LAND', 'ROAD', 'SHALLOW_WATER', 'WATER', 'RUNWAY'} - end - - for i = 1, 100 do - newCoord = mist.getRandPointInCircle(point, radius, innerRadius) - if mist.isTerrainValid(newCoord, validTerrain) then - origCoord = mist.utils.deepCopy(newCoord) - diff = {['x'] = (newCoord.x - newGroupData.units[1].x), ['y'] = (newCoord.y - newGroupData.units[1].y)} - valid = true - break - end - end - if valid == false then - env.info('mist.teleportToPoint; vars.point not a valid coordinate') - return false - end - end - if not newGroupData.country and mist.DBs.groupsByName[newGroupData.groupName].country then - newGroupData.country = mist.DBs.groupsByName[newGroupData.groupName].country - end - if not newGroupData.category and mist.DBs.groupsByName[newGroupData.groupName].category then - newGroupData.category = mist.DBs.groupsByName[newGroupData.groupName].category - end - - for unitNum, unitData in pairs(newGroupData.units) do - if disperse then - if maxDisp and type(maxDisp) == 'number' and unitNum ~= 1 then - newCoord = mist.getRandPointInCircle(origCoord, maxDisp) - --else - --newCoord = mist.getRandPointInCircle(zone.point, zone.radius) - end - - newGroupData.units[unitNum]['x'] = newCoord.x - newGroupData.units[unitNum]['y'] = newCoord.y - else - newGroupData.units[unitNum]["x"] = unitData.x + diff.x - newGroupData.units[unitNum]["y"] = unitData.y + diff.y - end - if point then - if (newGroupData.category == 'plane' or newGroupData.category == 'helicopter') then - if point.z and point.y > 0 and point.y > land.getHeight({newGroupData.units[unitNum]["x"], newGroupData.units[unitNum]["y"]}) + 10 then - newGroupData.units[unitNum]["alt"] = point.y - else - if newGroupData.category == 'plane' then - newGroupData.units[unitNum]["alt"] = land.getHeight({newGroupData.units[unitNum]["x"], newGroupData.units[unitNum]["y"]}) + math.random(300, 9000) - else - newGroupData.units[unitNum]["alt"] = land.getHeight({newGroupData.units[unitNum]["x"], newGroupData.units[unitNum]["y"]}) + math.random(200, 3000) - end - end - end - end - end - - if newGroupData.start_time then - newGroupData.startTime = newGroupData.start_time - end - - if newGroupData.startTime and newGroupData.startTime ~= 0 and dbData == true then - local timeDif = timer.getAbsTime() - timer.getTime0() - if timeDif > newGroupData.startTime then - newGroupData.startTime = 0 - else - newGroupData.startTime = newGroupData.startTime - timeDif - end - - end - - if route then - newGroupData.route = route - end - --mist.debug.writeData(mist.utils.serialize,{'teleportToPoint', newGroupData}, 'newGroupData.lua') - if string.lower(newGroupData.category) == 'static' then - return mist.dynAddStatic(newGroupData) - end - return mist.dynAdd(newGroupData) - -end - -mist.respawnInZone = function(gpName, zone, disperse, maxDisp) - - if type(gpName) == 'table' and gpName:getName() then - gpName = gpName:getName() - elseif type(gpName) == 'table' and gpName[1]:getName() then - gpName = math.random(#gpName) - else - gpName = tostring(gpName) - end - - if type(zone) == 'string' then - zone = trigger.misc.getZone(zone) - elseif type(zone) == 'table' and not zone.radius then - zone = trigger.misc.getZone(zone[math.random(1, #zone)]) - end - local vars = {} - vars.gpName = gpName - vars.action = 'respawn' - vars.point = zone.point - vars.radius = zone.radius - vars.disperse = disperse - vars.maxDisp = maxDisp - return mist.teleportToPoint(vars) -end - -mist.cloneInZone = function(gpName, zone, disperse, maxDisp) - - if type(gpName) == 'table' then - gpName = gpName:getName() - else - gpName = tostring(gpName) - end - - if type(zone) == 'string' then - zone = trigger.misc.getZone(zone) - elseif type(zone) == 'table' and not zone.radius then - zone = trigger.misc.getZone(zone[math.random(1, #zone)]) - end - local vars = {} - vars.gpName = gpName - vars.action = 'clone' - vars.point = zone.point - vars.radius = zone.radius - vars.disperse = disperse - vars.maxDisp = maxDisp - return mist.teleportToPoint(vars) -end - -mist.teleportInZone = function(gpName, zone, disperse, maxDisp) -- groupName, zoneName or table of Zone Names, keepForm is a boolean - if type(gpName) == 'table' and gpName:getName() then - gpName = gpName:getName() - else - gpName = tostring(gpName) - end - - if type(zone) == 'string' then - zone = trigger.misc.getZone(zone) - elseif type(zone) == 'table' and not zone.radius then - zone = trigger.misc.getZone(zone[math.random(1, #zone)]) - end - - local vars = {} - vars.gpName = gpName - vars.action = 'tele' - vars.point = zone.point - vars.radius = zone.radius - vars.disperse = disperse - vars.maxDisp = maxDisp - return mist.teleportToPoint(vars) -end - -mist.respawnGroup = function(gpName, task) - local vars = {} - vars.gpName = gpName - vars.action = 'respawn' - if task and type(task) ~= 'number' then - vars.route = mist.getGroupRoute(gpName, 'task') - end - local newGroup = mist.teleportToPoint(vars) - if task and type(task) == 'number' then - local newRoute = mist.getGroupRoute(gpName, 'task') - mist.scheduleFunction(mist.goRoute, {newGroup, newRoute}, timer.getTime() + task) - end - return newGroup -end - -mist.cloneGroup = function(gpName, task) - local vars = {} - vars.gpName = gpName - vars.action = 'clone' - if task and type(task) ~= 'number' then - vars.route = mist.getGroupRoute(gpName, 'task') - end - local newGroup = mist.teleportToPoint(vars) - if task and type(task) == 'number' then - local newRoute = mist.getGroupRoute(gpName, 'task') - mist.scheduleFunction(mist.goRoute, {newGroup, newRoute}, timer.getTime() + task) - end - return newGroup -end - -mist.teleportGroup = function(gpName, task) - local vars = {} - vars.gpName = gpName - vars.action = 'teleport' - if task and type(task) ~= 'number' then - vars.route = mist.getGroupRoute(gpName, 'task') - end - local newGroup = mist.teleportToPoint(vars) - if task and type(task) == 'number' then - local newRoute = mist.getGroupRoute(gpName, 'task') - mist.scheduleFunction(mist.goRoute, {newGroup, newRoute}, timer.getTime() + task) - end - return newGroup -end - -mist.spawnRandomizedGroup = function(groupName, vars) -- need to debug - if Group.getByName(groupName) and Group.getByName(groupName):isExist() == true then - local gpData = mist.getGroupData(groupName) - gpData.units = mist.randomizeGroupOrder(gpData.units, vars) - gpData.route = mist.getGroupRoute(groupName, 'task') - - mist.dynAdd(gpData) - end - - return true -end - -mist.randomizeNumTable = function(vars) - local newTable = {} - - local excludeIndex = {} - local randomTable = {} - - if vars and vars.exclude and type(vars.exclude) == 'table' then - for index, data in pairs(vars.exclude) do - excludeIndex[data] = true - end - end - - local low, hi, size - - if vars.size then - size = vars.size - end - - if vars and vars.lowerLimit and type(vars.lowerLimit) == 'number' then - low = mist.utils.round(vars.lowerLimit) - else - low = 1 - end - - if vars and vars.upperLimit and type(vars.upperLimit) == 'number' then - hi = mist.utils.round(vars.upperLimit) - else - hi = size - end - - local choices = {} - -- add to exclude list and create list of what to randomize - for i = 1, size do - if not (i >= low and i <= hi) then - - excludeIndex[i] = true - end - if not excludeIndex[i] then - table.insert(choices, i) - else - newTable[i] = i - end - end - - for ind, num in pairs(choices) do - local found = false - local x = 0 - while found == false do - x = mist.random(size) -- get random number from list - local addNew = true - for index, _ in pairs(excludeIndex) do - if index == x then - addNew = false - break - end - end - if addNew == true then - excludeIndex[x] = true - found = true - end - excludeIndex[x] = true - - end - newTable[num] = x - end - --[[ - for i = 1, #newTable do - env.info(newTable[i]) - end - ]] - return newTable -end - -mist.randomizeGroupOrder = function(passedUnits, vars) - -- figure out what to exclude, and send data to other func - local units = passedUnits - - if passedUnits.units then - units = passUnits.units - end - - local exclude = {} - local excludeNum = {} - if vars and vars.excludeType and type(vars.excludeType) == 'table' then - exclude = vars.excludeType - end - - if vars and vars.excludeNum and type(vars.excludeNum) == 'table' then - excludeNum = vars.excludeNum - end - - local low, hi - - if vars and vars.lowerLimit and type(vars.lowerLimit) == 'number' then - low = mist.utils.round(vars.lowerLimit) - else - low = 1 - end - - if vars and vars.upperLimit and type(vars.upperLimit) == 'number' then - hi = mist.utils.round(vars.upperLimit) - else - hi = #units - end - - - local excludeNum = {} - for unitIndex, unitData in pairs(units) do - if unitIndex >= low and unitIndex <= hi then -- if within range - local found = false - if #exclude > 0 then - for excludeType, index in pairs(exclude) do -- check if excluded - if mist.stringMatch(excludeType, unitData.type) then -- if excluded - excludeNum[unitIndex] = unitIndex - found = true - end - end - end - else -- unitIndex is either to low, or to high: added to exclude list - excludeNum[unitIndex] = unitId - end - end - - local newGroup = {} - local newOrder = mist.randomizeNumTable({exclude = excludeNum, size = #units}) - - for unitIndex, unitData in pairs(units) do - for i = 1, #newOrder do - if newOrder[i] == unitIndex then - newGroup[i] = mist.utils.deepCopy(units[i]) -- gets all of the unit data - newGroup[i].type = mist.utils.deepCopy(unitData.type) - newGroup[i].skill = mist.utils.deepCopy(unitData.skill) - newGroup[i].unitName = mist.utils.deepCopy(unitData.unitName) - newGroup[i].unitIndex = mist.utils.deepCopy(unitData.unitIndex) -- replaces the units data with a new type - end - end - end - return newGroup -end - -mist.ground.patrolRoute = function(vars) - - - local tempRoute = {} - local useRoute = {} - local gpData = vars.gpData - if type(gpData) == 'string' then - gpData = Group.getByName(gpData) - end - - local useGroupRoute - if not vars.useGroupRoute then - useGroupRoute = vars.gpData - else - useGroupRoute = vars.useGroupRoute - end - local routeProvided = false - if not vars.route then - if useGroupRoute then - tempRoute = mist.getGroupRoute(useGroupRoute) - end - else - useRoute = vars.route - local posStart = mist.getLeadPos(gpData) - useRoute[1] = mist.ground.buildWP(posStart, useRoute[1].action, useRoute[1].speed) - routeProvided = true - end - - - local overRideSpeed = vars.speed or 'default' - local pType = vars.pType - local offRoadForm = vars.offRoadForm or 'default' - local onRoadForm = vars.onRoadForm or 'default' - - if routeProvided == false and #tempRoute > 0 then - local posStart = mist.getLeadPos(gpData) - - - useRoute[#useRoute + 1] = mist.ground.buildWP(posStart, offRoadForm, overRideSpeed) - for i = 1, #tempRoute do - local tempForm = tempRoute[i].action - local tempSpeed = tempRoute[i].speed - - if offRoadForm == 'default' then - tempForm = tempRoute[i].action - end - if onRoadForm == 'default' then - onRoadForm = 'On Road' - end - if (string.lower(tempRoute[i].action) == 'on road' or string.lower(tempRoute[i].action) == 'onroad' or string.lower(tempRoute[i].action) == 'on_road') then - tempForm = onRoadForm + if text then + if string.find(text, '%%s') then -- look for %s + newText = string.format(text, s) -- insert the coordinates into the message else - tempForm = offRoadForm + -- just append to the end. + newText = text .. s end - - if type(overRideSpeed) == 'number' then - tempSpeed = overRideSpeed - end - - - useRoute[#useRoute + 1] = mist.ground.buildWP(tempRoute[i], tempForm, tempSpeed) - end - - if pType and string.lower(pType) == 'doubleback' then - local curRoute = mist.utils.deepCopy(useRoute) - for i = #curRoute, 2, -1 do - useRoute[#useRoute + 1] = mist.ground.buildWP(curRoute[i], curRoute[i].action, curRoute[i].speed) - end - end - - useRoute[1].action = useRoute[#useRoute].action -- make it so the first WP matches the last WP - end - - local cTask3 = {} - local newPatrol = {} - newPatrol.route = useRoute - newPatrol.gpData = gpData:getName() - cTask3[#cTask3 + 1] = 'mist.ground.patrolRoute(' - cTask3[#cTask3 + 1] = mist.utils.oneLineSerialize(newPatrol) - cTask3[#cTask3 + 1] = ')' - cTask3 = table.concat(cTask3) - local tempTask = { - id = 'WrappedAction', - params = { - action = { - id = 'Script', - params = { - command = cTask3, - - }, - }, - }, - } - - - useRoute[#useRoute].task = tempTask - mist.goRoute(gpData, useRoute) - - return -end - -mist.ground.patrol = function(gpData, pType, form, speed) - local vars = {} - - if type(gpData) == 'table' and gpData:getName() then - gpData = gpData:getName() - end - - vars.useGroupRoute = gpData - vars.gpData = gpData - vars.pType = pType - vars.offRoadForm = form - vars.speed = speed - - mist.ground.patrolRoute(vars) - - return -end - - -mist.random = function(firstNum, secondNum) -- no support for decimals - local lowNum, highNum - if not secondNum then - highNum = firstNum - lowNum = 1 - else - lowNum = firstNum - highNum = secondNum - end - local total = 1 - if math.abs(highNum - lowNum + 1) < 50 then -- if total values is less than 50 - total = math.modf(50/math.abs(highNum - lowNum + 1)) -- make x copies required to be above 50 - end - local choices = {} - for i = 1, total do -- iterate required number of times - for x = lowNum, highNum do -- iterate between the range - choices[#choices +1] = x -- add each entry to a table - end - end - local rtnVal = math.random(#choices) -- will now do a math.random of at least 50 choices - for i = 1, 10 do - rtnVal = math.random(#choices) -- iterate a few times for giggles - end - return choices[rtnVal] -end - - - -mist.stringMatch = function(s1, s2, bool) - local exclude = {'%-', '%(', '%)', '%_', '%[', '%]', '%.', '%#', '% ', '%{', '%}', '%$', '%%', '%?', '%+', '%^'} - if type(s1) == 'string' and type(s2) == 'string' then - for i , str in pairs(exclude) do - s1 = string.gsub(s1, str, '') - s2 = string.gsub(s2, str, '') - end - if not bool then - s1 = string.lower(s1) - s2 = string.lower(s2) - end - - if s1 == s2 then - return true else - return false + newText = s end - else - env.info('mist.stringMatch; Either the first or second variable were not a string') - return false + + mist.message.add{ + text = newText, + displayTime = displayTime, + msgFor = msgFor + } end end -mist.matchString = mist.stringMatch -- both commands work because order out type of I +--- Demo functions. +-- @section mist.demos +do -- mist.demos scope + mist.demos = {} + + function mist.demos.printFlightData(unit) + if unit:isExist() then + local function printData(unit, prevVel, prevE, prevTime) + local angles = mist.getAttitude(unit) + if angles then + local Heading = angles.Heading + local Pitch = angles.Pitch + local Roll = angles.Roll + local Yaw = angles.Yaw + local AoA = angles.AoA + local ClimbAngle = angles.ClimbAngle + + if not Heading then + Heading = 'NA' + else + Heading = string.format('%12.2f', mist.utils.toDegree(Heading)) + end + + if not Pitch then + Pitch = 'NA' + else + Pitch = string.format('%12.2f', mist.utils.toDegree(Pitch)) + end + + if not Roll then + Roll = 'NA' + else + Roll = string.format('%12.2f', mist.utils.toDegree(Roll)) + end + + local AoAplusYaw = 'NA' + if AoA and Yaw then + AoAplusYaw = string.format('%12.2f', mist.utils.toDegree((AoA^2 + Yaw^2)^0.5)) + end + + if not Yaw then + Yaw = 'NA' + else + Yaw = string.format('%12.2f', mist.utils.toDegree(Yaw)) + end + + if not AoA then + AoA = 'NA' + else + AoA = string.format('%12.2f', mist.utils.toDegree(AoA)) + end + + if not ClimbAngle then + ClimbAngle = 'NA' + else + ClimbAngle = string.format('%12.2f', mist.utils.toDegree(ClimbAngle)) + end + local unitPos = unit:getPosition() + local unitVel = unit:getVelocity() + local curTime = timer.getTime() + local absVel = string.format('%12.2f', mist.vec.mag(unitVel)) + + + local unitAcc = 'NA' + local Gs = 'NA' + local axialGs = 'NA' + local transGs = 'NA' + if prevVel and prevTime then + local xAcc = (unitVel.x - prevVel.x)/(curTime - prevTime) + local yAcc = (unitVel.y - prevVel.y)/(curTime - prevTime) + local zAcc = (unitVel.z - prevVel.z)/(curTime - prevTime) + + unitAcc = string.format('%12.2f', mist.vec.mag({x = xAcc, y = yAcc, z = zAcc})) + Gs = string.format('%12.2f', mist.vec.mag({x = xAcc, y = yAcc + 9.81, z = zAcc})/9.81) + axialGs = string.format('%12.2f', mist.vec.dp({x = xAcc, y = yAcc + 9.81, z = zAcc}, unitPos.x)/9.81) + transGs = string.format('%12.2f', mist.vec.mag(mist.vec.cp({x = xAcc, y = yAcc + 9.81, z = zAcc}, unitPos.x))/9.81) + end + + local E = 0.5*mist.vec.mag(unitVel)^2 + 9.81*unitPos.p.y + + local energy = string.format('%12.2e', E) + + local dEdt = 'NA' + if prevE and prevTime then + dEdt = string.format('%12.2e', (E - prevE)/(curTime - prevTime)) + end + + trigger.action.outText(string.format('%-25s', 'Heading: ') .. Heading .. ' degrees\n' .. string.format('%-25s', 'Roll: ') .. Roll .. ' degrees\n' .. string.format('%-25s', 'Pitch: ') .. Pitch + .. ' degrees\n' .. string.format('%-25s', 'Yaw: ') .. Yaw .. ' degrees\n' .. string.format('%-25s', 'AoA: ') .. AoA .. ' degrees\n' .. string.format('%-25s', 'AoA plus Yaw: ') .. AoAplusYaw .. ' degrees\n' .. string.format('%-25s', 'Climb Angle: ') .. + ClimbAngle .. ' degrees\n' .. string.format('%-25s', 'Absolute Velocity: ') .. absVel .. ' m/s\n' .. string.format('%-25s', 'Absolute Acceleration: ') .. unitAcc ..' m/s^2\n' + .. string.format('%-25s', 'Axial G loading: ') .. axialGs .. ' g\n' .. string.format('%-25s', 'Transverse G loading: ') .. transGs .. ' g\n' .. string.format('%-25s', 'Absolute G loading: ') .. Gs .. ' g\n' .. string.format('%-25s', 'Energy: ') .. energy .. ' J/kg\n' .. string.format('%-25s', 'dE/dt: ') .. dEdt ..' J/(kg*s)', 1) + return unitVel, E, curTime + end + end + + local function frameFinder(unit, prevVel, prevE, prevTime) + if unit:isExist() then + local currVel = unit:getVelocity() + if prevVel and (prevVel.x ~= currVel.x or prevVel.y ~= currVel.y or prevVel.z ~= currVel.z) or (prevTime and (timer.getTime() - prevTime) > 0.25) then + prevVel, prevE, prevTime = printData(unit, prevVel, prevE, prevTime) + end + mist.scheduleFunction(frameFinder, {unit, prevVel, prevE, prevTime}, timer.getTime() + 0.005) -- it can't go this fast, limited to the 100 times a sec check right now. + end + end + + + local curVel = unit:getVelocity() + local curTime = timer.getTime() + local curE = 0.5*mist.vec.mag(curVel)^2 + 9.81*unit:getPosition().p.y + frameFinder(unit, curVel, curE, curTime) -mist.time = {} --- returns a string for specified military time --- theTime is optional --- if present current time in mil time is returned --- if number or table the time is converted into mil tim -mist.time.convertToSec = function(timeTable) - - timeInSec = 0 - if timeTable and type(timeTable) == 'number' then - timeInSec = timeTable - elseif timeTable and type(timeTable) == 'table' and (timeTable.d or timeTable.h or timeTable.m or timeTable.s) then - if timeTable.d and type(timeTable.d) == 'number' then - timeInSec = timeInSec + (timeTable.d*86400) end - if timeTable.h and type(timeTable.h) == 'number' then - timeInSec = timeInSec + (timeTable.h*3600) - end - if timeTable.m and type(timeTable.m) == 'number' then - timeInSec = timeInSec + (timeTable.m*60) - end - if timeTable.s and type(timeTable.s) == 'number' then - timeInSec = timeInSec + timeTable.s - end - + end - return timeInSec + end -mist.time.getDHMS = function(timeInSec) - if timeInSec and type(timeInSec) == 'number' then - local tbl = {d = 0, h = 0, m = 0, s = 0} +--- Time conversion functions. +-- @section mist.time +do -- mist.time scope + mist.time = {} + -- returns a string for specified military time + -- theTime is optional + -- if present current time in mil time is returned + -- if number or table the time is converted into mil tim + function mist.time.convertToSec(timeTable) + + timeInSec = 0 + if timeTable and type(timeTable) == 'number' then + timeInSec = timeTable + elseif timeTable and type(timeTable) == 'table' and (timeTable.d or timeTable.h or timeTable.m or timeTable.s) then + if timeTable.d and type(timeTable.d) == 'number' then + timeInSec = timeInSec + (timeTable.d*86400) + end + if timeTable.h and type(timeTable.h) == 'number' then + timeInSec = timeInSec + (timeTable.h*3600) + end + if timeTable.m and type(timeTable.m) == 'number' then + timeInSec = timeInSec + (timeTable.m*60) + end + if timeTable.s and type(timeTable.s) == 'number' then + timeInSec = timeInSec + timeTable.s + end + + end + return timeInSec + end + + function mist.time.getDHMS(timeInSec) + if timeInSec and type(timeInSec) == 'number' then + local tbl = {d = 0, h = 0, m = 0, s = 0} if timeInSec > 86400 then while timeInSec > 86400 do tbl.d = tbl.d + 1 @@ -5866,251 +5781,1042 @@ mist.time.getDHMS = function(timeInSec) end end tbl.s = timeInSec - return tbl - else - env.info('mist.time.getDHMS didnt recieve number') - return - end -end - -mist.getMilString = function(theTime) - local timeInSec = 0 - if theTime then - timeInSec = mist.time.convertToSec(theTime) - else - timeInSec = mist.utils.round(timer.getAbsTime(), 0) - end - - local DHMS = mist.time.getDHMS(timeInSec) - - return tostring(string.format('%02d', DHMS.h) .. string.format('%02d',DHMS.m)) -end - -mist.getClockString = function(theTime, hour) - local timeInSec = 0 - if theTime then - timeInSec = mist.time.convertToSec(theTime) - else - timeInSec = mist.utils.round(timer.getAbsTime(), 0) - end - local DHMS = mist.time.getDHMS(timeInSec) - if hour then - if DHMS.h > 12 then - DHMS.h = DHMS.h - 12 - return tostring(string.format('%02d', DHMS.h) .. ':' .. string.format('%02d',DHMS.m) .. ':' .. string.format('%02d',DHMS.s) .. ' PM') - else - return tostring(string.format('%02d', DHMS.h) .. ':' .. string.format('%02d',DHMS.m) .. ':' .. string.format('%02d',DHMS.s) .. ' AM') + return tbl + else + log:error("Didn't recieve number") + return end - else - return tostring(string.format('%02d', DHMS.h) .. ':' .. string.format('%02d',DHMS.m) .. ':' .. string.format('%02d',DHMS.s)) end -end --- returns the date in string format --- both variables optional --- first val returns with the month as a string --- 2nd val defins if it should be written the American way or the wrong way. -mist.time.getDate = function(convert) - local cal = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} -- starts at june. 2011. 2012 is leap year, sigh. add a simple check for leap year - local date = {} - date.d = 0 - date.m = 6 - date.y = 2011 + function mist.getMilString(theTime) + local timeInSec = 0 + if theTime then + timeInSec = mist.time.convertToSec(theTime) + else + timeInSec = mist.utils.round(timer.getAbsTime(), 0) + end - local start = 0 - local timeInSec = mist.utils.round(timer.getAbsTime()) - if convert and type(convert) == 'number' then - timeInSec = convert + local DHMS = mist.time.getDHMS(timeInSec) + + return tostring(string.format('%02d', DHMS.h) .. string.format('%02d',DHMS.m)) end - - while start < timeInSec do + + function mist.getClockString(theTime, hour) + local timeInSec = 0 + if theTime then + timeInSec = mist.time.convertToSec(theTime) + else + timeInSec = mist.utils.round(timer.getAbsTime(), 0) + end + local DHMS = mist.time.getDHMS(timeInSec) + if hour then + if DHMS.h > 12 then + DHMS.h = DHMS.h - 12 + return tostring(string.format('%02d', DHMS.h) .. ':' .. string.format('%02d',DHMS.m) .. ':' .. string.format('%02d',DHMS.s) .. ' PM') + else + return tostring(string.format('%02d', DHMS.h) .. ':' .. string.format('%02d',DHMS.m) .. ':' .. string.format('%02d',DHMS.s) .. ' AM') + end + else + return tostring(string.format('%02d', DHMS.h) .. ':' .. string.format('%02d',DHMS.m) .. ':' .. string.format('%02d',DHMS.s)) + end + end + + -- returns the date in string format + -- both variables optional + -- first val returns with the month as a string + -- 2nd val defins if it should be written the American way or the wrong way. + function mist.time.getDate(convert) + local cal = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} -- + local date = {} - if date.d == cal[date.m] then - --if y % 4 >= 0 and i == 2 then -- for leap year. DCS doesnt do leapyear, but I am keeping the code dormant because maybe with WW2 the mission year may become relevant - - --else - date.m = date.m + 1 + if not env.mission.date then -- Not likely to happen. Resaving mission auto updates this to remove it. date.d = 0 - --end + date.m = 6 + date.y = 2011 + else + date.d = env.mission.date.Day + date.m = env.mission.date.Month + date.y = env.mission.date.Year end - if date.m == 13 then - date.m = 1 - date.y = date.y + 1 + local start = 86400 + local timeInSec = mist.utils.round(timer.getAbsTime()) + if convert and type(convert) == 'number' then + timeInSec = convert end - date.d = date.d + 1 - start = start + 86400 + if timeInSec > 86400 then + while start < timeInSec do + if date.d >= cal[date.m] then + if date.m == 2 and date.d == 28 then -- HOLY COW we can edit years now. Gotta re-add this! + if date.y % 4 == 0 and date.y % 100 == 0 and date.y % 400 ~= 0 or date.y % 4 > 0 then + date.m = date.m + 1 + date.d = 0 + end + --date.d = 29 + else + date.m = date.m + 1 + date.d = 0 + end + end + if date.m == 13 then + date.m = 1 + date.y = date.y + 1 + end + date.d = date.d + 1 + start = start + 86400 + + end + end + return date end - return date -end -mist.time.relativeToStart = function(time) - if type(time) == 'number' then - return time - timer.getTime0() + function mist.time.relativeToStart(time) + if type(time) == 'number' then + return time - timer.getTime0() + end end -end -mist.getDateString = function(rtnType, murica, oTime) -- returns date based on time - local word = {'January', 'Feburary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' } -- 'etc - local curTime = 0 - if oTime then - curTime = oTime - else - curTime = mist.utils.round(timer.getAbsTime()) - end - local tbl = mist.time.getDate(curTime) - - if rtnType then - if murica then - return tostring(word[tbl.m] .. ' ' .. tbl.d .. ' ' .. tbl.y) + function mist.getDateString(rtnType, murica, oTime) -- returns date based on time + local word = {'January', 'Feburary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' } -- 'etc + local curTime = 0 + if oTime then + curTime = oTime else - return tostring(tbl.d .. ' ' .. word[tbl.m] .. ' ' .. tbl.y) + curTime = mist.utils.round(timer.getAbsTime()) end - else - if murica then - return tostring(tbl.m .. '.' .. tbl.d .. '.' .. tbl.y) + local tbl = mist.time.getDate(curTime) + + if rtnType then + if murica then + return tostring(word[tbl.m] .. ' ' .. tbl.d .. ' ' .. tbl.y) + else + return tostring(tbl.d .. ' ' .. word[tbl.m] .. ' ' .. tbl.y) + end else - return tostring(tbl.d .. '.' .. tbl.m .. '.' .. tbl.y) + if murica then + return tostring(tbl.m .. '.' .. tbl.d .. '.' .. tbl.y) + else + return tostring(tbl.d .. '.' .. tbl.m .. '.' .. tbl.y) + end end end -end ---WIP -mist.time.milToGame = function(milString, rtnType) --converts a military time. By default returns the abosolute time that event would occur. With optional value it returns how many seconds from time of call till that time. - local curTime = mist.utils.round(timer.getAbsTime()) - local milTimeInSec = 0 + --WIP + function mist.time.milToGame(milString, rtnType) --converts a military time. By default returns the abosolute time that event would occur. With optional value it returns how many seconds from time of call till that time. + local curTime = mist.utils.round(timer.getAbsTime()) + local milTimeInSec = 0 - if milString and type(milString) == 'string' and string.len(milString) >= 4 then - local hr = tonumber(string.sub(milString, 1, 2)) - local mi = tonumber(string.sub(milString, 3)) - milTimeInSec = milTimeInSec + (mi*60) + (hr*3600) - elseif milString and type(milString) == 'table' and (milString.d or milString.h or milString.m or milString.s) then - milTimeInSec = mist.time.convertToSec(milString) - end - - local startTime = timer.getTime0() - local daysOffset = 0 - if startTime > 86400 then - daysOffset = mist.utils.round(startTime/86400) - if daysOffset > 0 then - milTimeInSec = milTimeInSec *daysOffset + if milString and type(milString) == 'string' and string.len(milString) >= 4 then + local hr = tonumber(string.sub(milString, 1, 2)) + local mi = tonumber(string.sub(milString, 3)) + milTimeInSec = milTimeInSec + (mi*60) + (hr*3600) + elseif milString and type(milString) == 'table' and (milString.d or milString.h or milString.m or milString.s) then + milTimeInSec = mist.time.convertToSec(milString) end + + local startTime = timer.getTime0() + local daysOffset = 0 + if startTime > 86400 then + daysOffset = mist.utils.round(startTime/86400) + if daysOffset > 0 then + milTimeInSec = milTimeInSec *daysOffset + end + end + + if curTime > milTimeInSec then + milTimeInSec = milTimeInSec + 86400 + end + if rtnType then + milTimeInSec = milTimeInSec - startTime + end + return milTimeInSec end - - if curTime > milTimeInSec then - milTimeInSec = milTimeInSec + 86400 - end - if rtnType then - milTimeInSec = milTimeInSec - startTime - end - return milTimeInSec + + end -mist.DBs.const = {} +--- Group task functions. +-- @section tasks +do -- group tasks scope + mist.ground = {} + mist.fixedWing = {} + mist.heli = {} + mist.air = {} + mist.air.fixedWing = {} + mist.air.heli = {} ---[[ - ['LAND'] = 1, - ['SHALLOW_WATER'] = 2, - ['WATER'] = 3, - ['ROAD'] = 4, - ['RUNWAY'] = 5 -]] ---[[mist.DBs.const.ME_SSE_terms = { - ['ME'] = { - ['vehicle'] = {'GROUND', 'GROUND_UNIT'}, - ['plane'] = {'AIRPLANE'}, - }, - ['SSE'] = { - }, + --- Tasks group to follow a route. + -- This sets the mission task for the given group. + -- Any wrapped actions inside the path (like enroute + -- tasks) will be executed. + -- @tparam Group group group to task. + -- @tparam table path containing + -- points defining a route. + function mist.goRoute(group, path) + local misTask = { + id = 'Mission', + params = { + route = { + points = mist.utils.deepCopy(path), + }, + }, + } + if type(group) == 'string' then + group = Group.getByName(group) + end + if group then + local groupCon = group:getController() + if groupCon then + groupCon:setTask(misTask) + return true + end + end + return false + end -}]] + -- same as getGroupPoints but returns speed and formation type along with vec2 of point} + function mist.getGroupRoute(groupIdent, task) + -- refactor to search by groupId and allow groupId and groupName as inputs + local gpId = groupIdent + if mist.DBs.MEgroupsByName[groupIdent] then + gpId = mist.DBs.MEgroupsByName[groupIdent].groupId + else + log:error('$1 not found in mist.DBs.MEgroupsByName', groupIdent) + end + + for coa_name, coa_data in pairs(env.mission.coalition) do + if (coa_name == 'red' or coa_name == 'blue') and type(coa_data) == 'table' then + if coa_data.country then --there is a country table + for cntry_id, cntry_data in pairs(coa_data.country) do + for obj_type_name, obj_type_data in pairs(cntry_data) do + if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" then -- only these types have points + if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then --there's a group! + for group_num, group_data in pairs(obj_type_data.group) do + if group_data and group_data.groupId == gpId then -- this is the group we are looking for + if group_data.route and group_data.route.points and #group_data.route.points > 0 then + local points = {} + + for point_num, point in pairs(group_data.route.points) do + local routeData = {} + if not point.point then + routeData.x = point.x + routeData.y = point.y + else + routeData.point = point.point --it's possible that the ME could move to the point = Vec2 notation. + end + routeData.form = point.action + routeData.speed = point.speed + routeData.alt = point.alt + routeData.alt_type = point.alt_type + routeData.airdromeId = point.airdromeId + routeData.helipadId = point.helipadId + routeData.type = point.type + routeData.action = point.action + if task then + routeData.task = point.task + end + points[point_num] = routeData + end + + return points + end + log:error('Group route not defined in mission editor for groupId: $1', gpId) + return + end --if group_data and group_data.name and group_data.name == 'groupname' + end --for group_num, group_data in pairs(obj_type_data.group) do + end --if ((type(obj_type_data) == 'table') and obj_type_data.group and (type(obj_type_data.group) == 'table') and (#obj_type_data.group > 0)) then + end --if obj_type_name == "helicopter" or obj_type_name == "ship" or obj_type_name == "plane" or obj_type_name == "vehicle" or obj_type_name == "static" then + end --for obj_type_name, obj_type_data in pairs(cntry_data) do + end --for cntry_id, cntry_data in pairs(coa_data.country) do + end --if coa_data.country then --there is a country table + end --if coa_name == 'red' or coa_name == 'blue' and type(coa_data) == 'table' then + end --for coa_name, coa_data in pairs(mission.coalition) do + end + + -- function mist.ground.buildPath() end -- ???? + + function mist.ground.patrolRoute(vars) + log:info('patrol') + local tempRoute = {} + local useRoute = {} + local gpData = vars.gpData + if type(gpData) == 'string' then + gpData = Group.getByName(gpData) + end + + local useGroupRoute + if not vars.useGroupRoute then + useGroupRoute = vars.gpData + else + useGroupRoute = vars.useGroupRoute + end + local routeProvided = false + if not vars.route then + if useGroupRoute then + tempRoute = mist.getGroupRoute(useGroupRoute) + end + else + useRoute = vars.route + local posStart = mist.getLeadPos(gpData) + useRoute[1] = mist.ground.buildWP(posStart, useRoute[1].action, useRoute[1].speed) + routeProvided = true + end -mist.DBs.const.callsigns = { -- not accessible by SSE, must use static list :-/ - ['NATO'] = { - ['rules'] = { - ['groupLimit'] = 9, - }, - ['AWACS'] = { - ['Overlord'] = 1, - ['Magic'] = 2, - ['Wizard'] = 3, - ['Focus'] = 4, - ['Darkstar'] = 5, - }, - ['TANKER'] = { - ['Texaco'] = 1, - ['Arco'] = 2, - ['Shell'] = 3, - }, - ['JTAC'] = { - ['Axeman'] = 1, - ['Darknight'] = 2, - ['Warrior'] = 3, - ['Pointer'] = 4, - ['Eyeball'] = 5, - ['Moonbeam'] = 6, - ['Whiplash'] = 7, - ['Finger'] = 8, - ['Pinpoint'] = 9, - ['Ferret'] = 10, - ['Shaba'] = 11, - ['Playboy'] = 12, - ['Hammer'] = 13, - ['Jaguar'] = 14, - ['Deathstar'] = 15, - ['Anvil'] = 16, - ['Firefly'] = 17, - ['Mantis'] = 18, - ['Badger'] = 19, - }, - ['aircraft'] = { - ['Enfield'] = 1, - ['Springfield'] = 2, - ['Uzi'] = 3, - ['Colt'] = 4, - ['Dodge'] = 5, - ['Ford'] = 6, - ['Chevy'] = 7, - ['Pontiac'] = 8, - }, - - ['unique'] = { - ['A10'] = { - ['Hawg'] = 9, - ['Boar'] = 10, - ['Pig'] = 11, - ['Tusk'] = 12, - ['rules'] = { - ['canUseAircraft'] = true, - ['appliesTo'] = { - 'A-10C', - 'A-10A', + local overRideSpeed = vars.speed or 'default' + local pType = vars.pType + local offRoadForm = vars.offRoadForm or 'default' + local onRoadForm = vars.onRoadForm or 'default' + + if routeProvided == false and #tempRoute > 0 then + local posStart = mist.getLeadPos(gpData) + + + useRoute[#useRoute + 1] = mist.ground.buildWP(posStart, offRoadForm, overRideSpeed) + for i = 1, #tempRoute do + local tempForm = tempRoute[i].action + local tempSpeed = tempRoute[i].speed + + if offRoadForm == 'default' then + tempForm = tempRoute[i].action + end + if onRoadForm == 'default' then + onRoadForm = 'On Road' + end + if (string.lower(tempRoute[i].action) == 'on road' or string.lower(tempRoute[i].action) == 'onroad' or string.lower(tempRoute[i].action) == 'on_road') then + tempForm = onRoadForm + else + tempForm = offRoadForm + end + + if type(overRideSpeed) == 'number' then + tempSpeed = overRideSpeed + end + + + useRoute[#useRoute + 1] = mist.ground.buildWP(tempRoute[i], tempForm, tempSpeed) + end + + if pType and string.lower(pType) == 'doubleback' then + local curRoute = mist.utils.deepCopy(useRoute) + for i = #curRoute, 2, -1 do + useRoute[#useRoute + 1] = mist.ground.buildWP(curRoute[i], curRoute[i].action, curRoute[i].speed) + end + end + + useRoute[1].action = useRoute[#useRoute].action -- make it so the first WP matches the last WP + end + + local cTask3 = {} + local newPatrol = {} + newPatrol.route = useRoute + newPatrol.gpData = gpData:getName() + cTask3[#cTask3 + 1] = 'mist.ground.patrolRoute(' + cTask3[#cTask3 + 1] = mist.utils.oneLineSerialize(newPatrol) + cTask3[#cTask3 + 1] = ')' + cTask3 = table.concat(cTask3) + local tempTask = { + id = 'WrappedAction', + params = { + action = { + id = 'Script', + params = { + command = cTask3, + }, }, }, - }, - }, + } + + useRoute[#useRoute].task = tempTask + log:info(useRoute) + mist.goRoute(gpData, useRoute) -} ---[[ scope: - { - units = {...}, -- unit names. - coa = {...}, -- coa names - countries = {...}, -- country names - CA = {...}, -- looks just like coa. - unitTypes = { red = {}, blue = {}, all = {}, Russia = {},} - } - - -scope examples: + return + end -{ units = { 'Hawg11', 'Hawg12' }, CA = {'blue'} } + function mist.ground.patrol(gpData, pType, form, speed) + local vars = {} -{ countries = {'Georgia'}, unitTypes = {blue = {'A-10C', 'A-10A'}}} + if type(gpData) == 'table' and gpData:getName() then + gpData = gpData:getName() + end -{ coa = {'all'}} + vars.useGroupRoute = gpData + vars.gpData = gpData + vars.pType = pType + vars.offRoadForm = form + vars.speed = speed + + mist.ground.patrolRoute(vars) + + return + end + + -- No longer accepts path + function mist.ground.buildWP(point, overRideForm, overRideSpeed) + + local wp = {} + wp.x = point.x + + if point.z then + wp.y = point.z + else + wp.y = point.y + end + local form, speed + + if point.speed and not overRideSpeed then + wp.speed = point.speed + elseif type(overRideSpeed) == 'number' then + wp.speed = overRideSpeed + else + wp.speed = mist.utils.kmphToMps(20) + end + + if point.form and not overRideForm then + form = point.form + else + form = overRideForm + end + + if not form then + wp.action = 'Cone' + else + form = string.lower(form) + if form == 'off_road' or form == 'off road' then + wp.action = 'Off Road' + elseif form == 'on_road' or form == 'on road' then + wp.action = 'On Road' + elseif form == 'rank' or form == 'line_abrest' or form == 'line abrest' or form == 'lineabrest'then + wp.action = 'Rank' + elseif form == 'cone' then + wp.action = 'Cone' + elseif form == 'diamond' then + wp.action = 'Diamond' + elseif form == 'vee' then + wp.action = 'Vee' + elseif form == 'echelon_left' or form == 'echelon left' or form == 'echelonl' then + wp.action = 'EchelonL' + elseif form == 'echelon_right' or form == 'echelon right' or form == 'echelonr' then + wp.action = 'EchelonR' + else + wp.action = 'Cone' -- if nothing matched + end + end + + wp.type = 'Turning Point' + + return wp + + end + + function mist.fixedWing.buildWP(point, WPtype, speed, alt, altType) + + local wp = {} + wp.x = point.x + + if point.z then + wp.y = point.z + else + wp.y = point.y + end + + if alt and type(alt) == 'number' then + wp.alt = alt + else + wp.alt = 2000 + end + + if altType then + altType = string.lower(altType) + if altType == 'radio' or altType == 'agl' then + wp.alt_type = 'RADIO' + elseif altType == 'baro' or altType == 'asl' then + wp.alt_type = 'BARO' + end + else + wp.alt_type = 'RADIO' + end + + if point.speed then + speed = point.speed + end + + if point.type then + WPtype = point.type + end + + if not speed then + wp.speed = mist.utils.kmphToMps(500) + else + wp.speed = speed + end + + if not WPtype then + wp.action = 'Turning Point' + else + WPtype = string.lower(WPtype) + if WPtype == 'flyover' or WPtype == 'fly over' or WPtype == 'fly_over' then + wp.action = 'Fly Over Point' + elseif WPtype == 'turningpoint' or WPtype == 'turning point' or WPtype == 'turning_point' then + wp.action = 'Turning Point' + else + wp.action = 'Turning Point' + end + end + + wp.type = 'Turning Point' + return wp + end + + function mist.heli.buildWP(point, WPtype, speed, alt, altType) + + local wp = {} + wp.x = point.x + + if point.z then + wp.y = point.z + else + wp.y = point.y + end + + if alt and type(alt) == 'number' then + wp.alt = alt + else + wp.alt = 500 + end + + if altType then + altType = string.lower(altType) + if altType == 'radio' or altType == 'agl' then + wp.alt_type = 'RADIO' + elseif altType == 'baro' or altType == 'asl' then + wp.alt_type = 'BARO' + end + else + wp.alt_type = 'RADIO' + end + + if point.speed then + speed = point.speed + end + + if point.type then + WPtype = point.type + end + + if not speed then + wp.speed = mist.utils.kmphToMps(200) + else + wp.speed = speed + end + + if not WPtype then + wp.action = 'Turning Point' + else + WPtype = string.lower(WPtype) + if WPtype == 'flyover' or WPtype == 'fly over' or WPtype == 'fly_over' then + wp.action = 'Fly Over Point' + elseif WPtype == 'turningpoint' or WPtype == 'turning point' or WPtype == 'turning_point' then + wp.action = 'Turning Point' + else + wp.action = 'Turning Point' + end + end + + wp.type = 'Turning Point' + return wp + end + + -- need to return a Vec3 or Vec2? + function mist.getRandPointInCircle(point, radius, innerRadius) + local theta = 2*math.pi*math.random() + local rad = math.random() + math.random() + if rad > 1 then + rad = 2 - rad + end + + local radMult + if innerRadius and innerRadius <= radius then + radMult = (radius - innerRadius)*rad + innerRadius + else + radMult = radius*rad + end + + if not point.z then --might as well work with vec2/3 + point.z = point.y + end + + local rndCoord + if radius > 0 then + rndCoord = {x = math.cos(theta)*radMult + point.x, y = math.sin(theta)*radMult + point.z} + else + rndCoord = {x = point.x, y = point.z} + end + return rndCoord + end + + function mist.getRandomPointInZone(zoneName, innerRadius) + if type(zoneName) == 'string' and type(trigger.misc.getZone(zoneName)) == 'table' then + return mist.getRandPointInCircle(trigger.misc.getZone(zoneName).point, trigger.misc.getZone(zoneName).radius, innerRadius) + end + return false + end + + function mist.groupToRandomPoint(vars) + local group = vars.group --Required + local point = vars.point --required + local radius = vars.radius or 0 + local innerRadius = vars.innerRadius + local form = vars.form or 'Cone' + local heading = vars.heading or math.random()*2*math.pi + local headingDegrees = vars.headingDegrees + local speed = vars.speed or mist.utils.kmphToMps(20) + + + local useRoads + if not vars.disableRoads then + useRoads = true + else + useRoads = false + end + + local path = {} + + if headingDegrees then + heading = headingDegrees*math.pi/180 + end + + if heading >= 2*math.pi then + heading = heading - 2*math.pi + end + + local rndCoord = mist.getRandPointInCircle(point, radius, innerRadius) + + local offset = {} + local posStart = mist.getLeadPos(group) + + offset.x = mist.utils.round(math.sin(heading - (math.pi/2)) * 50 + rndCoord.x, 3) + offset.z = mist.utils.round(math.cos(heading + (math.pi/2)) * 50 + rndCoord.y, 3) + path[#path + 1] = mist.ground.buildWP(posStart, form, speed) + + + if useRoads == true and ((point.x - posStart.x)^2 + (point.z - posStart.z)^2)^0.5 > radius * 1.3 then + path[#path + 1] = mist.ground.buildWP({x = posStart.x + 11, z = posStart.z + 11}, 'off_road', speed) + path[#path + 1] = mist.ground.buildWP(posStart, 'on_road', speed) + path[#path + 1] = mist.ground.buildWP(offset, 'on_road', speed) + else + path[#path + 1] = mist.ground.buildWP({x = posStart.x + 25, z = posStart.z + 25}, form, speed) + end + + path[#path + 1] = mist.ground.buildWP(offset, form, speed) + path[#path + 1] = mist.ground.buildWP(rndCoord, form, speed) + + mist.goRoute(group, path) + + return + end + + function mist.groupRandomDistSelf(gpData, dist, form, heading, speed) + local pos = mist.getLeadPos(gpData) + local fakeZone = {} + fakeZone.radius = dist or math.random(300, 1000) + fakeZone.point = {x = pos.x, y = pos.y, z = pos.z} + mist.groupToRandomZone(gpData, fakeZone, form, heading, speed) + + return + end + + function mist.groupToRandomZone(gpData, zone, form, heading, speed) + if type(gpData) == 'string' then + gpData = Group.getByName(gpData) + end + + if type(zone) == 'string' then + zone = trigger.misc.getZone(zone) + elseif type(zone) == 'table' and not zone.radius then + zone = trigger.misc.getZone(zone[math.random(1, #zone)]) + end + + if speed then + speed = mist.utils.kmphToMps(speed) + end + + local vars = {} + vars.group = gpData + vars.radius = zone.radius + vars.form = form + vars.headingDegrees = heading + vars.speed = speed + vars.point = mist.utils.zoneToVec3(zone) + + mist.groupToRandomPoint(vars) + + return + end + + function mist.isTerrainValid(coord, terrainTypes) -- vec2/3 and enum or table of acceptable terrain types + if coord.z then + coord.y = coord.z + end + local typeConverted = {} + + if type(terrainTypes) == 'string' then -- if its a string it does this check + for constId, constData in pairs(land.SurfaceType) do + if string.lower(constId) == string.lower(terrainTypes) or string.lower(constData) == string.lower(terrainTypes) then + table.insert(typeConverted, constId) + end + end + elseif type(terrainTypes) == 'table' then -- if its a table it does this check + for typeId, typeData in pairs(terrainTypes) do + for constId, constData in pairs(land.SurfaceType) do + if string.lower(constId) == string.lower(typeData) or string.lower(constData) == string.lower(typeId) then + table.insert(typeConverted, constId) + end + end + end + end + for validIndex, validData in pairs(typeConverted) do + if land.getSurfaceType(coord) == land.SurfaceType[validData] then + return true + end + end + return false + end + + function mist.terrainHeightDiff(coord, searchSize) + local samples = {} + local searchRadius = 5 + if searchSize then + searchRadius = searchSize + end + if type(coord) == 'string' then + coord = mist.utils.zoneToVec3(coord) + end + + coord = mist.utils.makeVec2(coord) + + samples[#samples + 1] = land.getHeight(coord) + for i = 0, 360, 30 do + samples[#samples + 1] = land.getHeight({x = (coord.x + (math.sin(math.rad(i))*searchRadius)), y = (coord.y + (math.cos(math.rad(i))*searchRadius))}) + if searchRadius >= 20 then -- if search radius is sorta large, take a sample halfway between center and outer edge + samples[#samples + 1] = land.getHeight({x = (coord.x + (math.sin(math.rad(i))*(searchRadius/2))), y = (coord.y + (math.cos(math.rad(i))*(searchRadius/2)))}) + end + end + local tMax, tMin = 0, 1000000 + for index, height in pairs(samples) do + if height > tMax then + tMax = height + end + if height < tMin then + tMin = height + end + end + return mist.utils.round(tMax - tMin, 2) + end + + function mist.groupToPoint(gpData, point, form, heading, speed, useRoads) + if type(point) == 'string' then + point = trigger.misc.getZone(point) + end + if speed then + speed = mist.utils.kmphToMps(speed) + end + + local vars = {} + vars.group = gpData + vars.form = form + vars.headingDegrees = heading + vars.speed = speed + vars.disableRoads = useRoads + vars.point = mist.utils.zoneToVec3(point) + mist.groupToRandomPoint(vars) + + return + end + + function mist.getLeadPos(group) + if type(group) == 'string' then -- group name + group = Group.getByName(group) + end + + local units = group:getUnits() + + local leader = units[1] + if not Unit.isExist(leader) then -- SHOULD be good, but if there is a bug, this code future-proofs it then. + local lowestInd = math.huge + for ind, unit in pairs(units) do + if Unit.isExist(unit) and ind < lowestInd then + lowestInd = ind + return unit:getPosition().p + end + end + end + if leader and Unit.isExist(leader) then -- maybe a little too paranoid now... + return leader:getPosition().p + end + end -{unitTypes = { blue = {'A-10C'}}} -]] end -mist.main() -env.info(('Mist version ' .. mist.majorVersion .. '.' .. mist.minorVersion .. '.' .. mist.build .. ' loaded.')) \ No newline at end of file + +--- Database tables. +-- @section mist.DBs + +--- Mission data +-- @table mist.DBs.missionData +-- @field startTime mission start time +-- @field theatre mission theatre/map e.g. Caucasus +-- @field version mission version +-- @field files mission resources + +--- Tables used as parameters. +-- @section varTables + +--- mist.flagFunc.units_in_polygon parameter table. +-- @table unitsInPolygonVars +-- @tfield table unit name table @{UnitNameTable}. +-- @tfield table zone table defining a polygon. +-- @tfield number|string flag flag to set to true. +-- @tfield[opt] number|string stopflag if set to true the function +-- will stop evaluating. +-- @tfield[opt] number maxalt maximum altitude (MSL) for the +-- polygon. +-- @tfield[opt] number req_num minimum number of units that have +-- to be in the polygon. +-- @tfield[opt] number interval sets the interval for +-- checking if units are inside of the polygon in seconds. Default: 1. +-- @tfield[opt] boolean toggle switch the flag to false if required +-- conditions are not met. Default: false. +-- @tfield[opt] table unitTableDef + +--- Logger class. +-- @type mist.Logger +do -- mist.Logger scope + mist.Logger = {} + + --- parses text and substitutes keywords with values from given array. + -- @param text string containing keywords to substitute with values + -- or a variable. + -- @param ... variables to use for substitution in string. + -- @treturn string new string with keywords substituted or + -- value of variable as string. + local function formatText(text, ...) + if type(text) ~= 'string' then + if type(text) == 'table' then + text = mist.utils.oneLineSerialize(text) + else + text = tostring(text) + end + else + for index,value in ipairs(arg) do + -- TODO: check for getmetatabel(value).__tostring + if type(value) == 'table' then + value = mist.utils.oneLineSerialize(value) + else + value = tostring(value) + end + text = text:gsub('$' .. index, value) + end + end + local fName = nil + local cLine = nil + if debug then + local dInfo = debug.getinfo(3) + fName = dInfo.name + cLine = dInfo.currentline + -- local fsrc = dinfo.short_src + --local fLine = dInfo.linedefined + end + if fName and cLine then + return fName .. '|' .. cLine .. ': ' .. text + elseif cLine then + return cLine .. ': ' .. text + else + return ' ' .. text + end + end + + local function splitText(text) + local tbl = {} + while text:len() > 4000 do + local sub = text:sub(1, 4000) + text = text:sub(4001) + table.insert(tbl, sub) + end + table.insert(tbl, text) + return tbl + end + + --- Creates a new logger. + -- Each logger has it's own tag and log level. + -- @tparam string tag tag which appears at the start of + -- every log line produced by this logger. + -- @tparam[opt] number|string level the log level defines which messages + -- will be logged and which will be omitted. Log level 3 beeing the most verbose + -- and 0 disabling all output. This can also be a string. Allowed strings are: + -- "none" (0), "error" (1), "warning" (2) and "info" (3). + -- @usage myLogger = mist.Logger:new("MyScript") + -- @usage myLogger = mist.Logger:new("MyScript", 2) + -- @usage myLogger = mist.Logger:new("MyScript", "info") + -- @treturn mist.Logger + function mist.Logger:new(tag, level) + local l = {} + l.tag = tag + setmetatable(l, self) + self.__index = self + self:setLevel(level) + return l + end + + --- Sets the level of verbosity for this logger. + -- @tparam[opt] number|string level the log level defines which messages + -- will be logged and which will be omitted. Log level 3 beeing the most verbose + -- and 0 disabling all output. This can also be a string. Allowed strings are: + -- "none" (0), "error" (1), "warning" (2) and "info" (3). + -- @usage myLogger:setLevel("info") + -- @usage -- log everything + --myLogger:setLevel(3) + function mist.Logger:setLevel(level) + if not level then + self.level = 2 + else + if type(level) == 'string' then + if level == 'none' or level == 'off' then + self.level = 0 + elseif level == 'error' then + self.level = 1 + elseif level == 'warning' or level == 'warn' then + self.level = 2 + elseif level == 'info' then + self.level = 3 + end + elseif type(level) == 'number' then + self.level = level + else + self.level = 2 + end + end + end + + --- Logs error and shows alert window. + -- This logs an error to the dcs.log and shows a popup window, + -- pausing the simulation. This works always even if logging is + -- disabled by setting a log level of "none" or 0. + -- @tparam string text the text with keywords to substitute. + -- @param ... variables to be used for substitution. + -- @usage myLogger:alert("Shit just hit the fan! WEEEE!!!11") + function mist.Logger:alert(text, ...) + text = formatText(text, unpack(arg)) + if text:len() > 4000 then + local texts = splitText(text) + for i = 1, #texts do + if i == 1 then + env.error(self.tag .. '|' .. texts[i], true) + else + env.error(texts[i]) + end + end + else + env.error(self.tag .. '|' .. text, true) + end + end + + --- Logs a message, disregarding the log level. + -- @tparam string text the text with keywords to substitute. + -- @param ... variables to be used for substitution. + -- @usage myLogger:msg("Always logged!") + function mist.Logger:msg(text, ...) + text = formatText(text, unpack(arg)) + if text:len() > 4000 then + local texts = splitText(text) + for i = 1, #texts do + if i == 1 then + env.info(self.tag .. '|' .. texts[i]) + else + env.info(texts[i]) + end + end + else + env.info(self.tag .. '|' .. text) + end + end + + --- Logs an error. + -- logs a message prefixed with this loggers tag to dcs.log as + -- long as at least the "error" log level (1) is set. + -- @tparam string text the text with keywords to substitute. + -- @param ... variables to be used for substitution. + -- @usage myLogger:error("Just an error!") + -- @usage myLogger:error("Foo is $1 instead of $2", foo, "bar") + function mist.Logger:error(text, ...) + if self.level >= 1 then + text = formatText(text, unpack(arg)) + if text:len() > 4000 then + local texts = splitText(text) + for i = 1, #texts do + if i == 1 then + env.error(self.tag .. '|' .. texts[i]) + else + env.error(texts[i]) + end + end + else + env.error(self.tag .. '|' .. text) + end + end + end + + --- Logs a warning. + -- logs a message prefixed with this loggers tag to dcs.log as + -- long as at least the "warning" log level (2) is set. + -- @tparam string text the text with keywords to substitute. + -- @param ... variables to be used for substitution. + -- @usage myLogger:warn("Mother warned you! Those $1 from the interwebs are $2", {"geeks", 1337}) + function mist.Logger:warn(text, ...) + if self.level >= 2 then + text = formatText(text, unpack(arg)) + if text:len() > 4000 then + local texts = splitText(text) + for i = 1, #texts do + if i == 1 then + env.warning(self.tag .. '|' .. texts[i]) + else + env.warning(texts[i]) + end + end + else + env.warning(self.tag .. '|' .. text) + end + end + end + + --- Logs a info. + -- logs a message prefixed with this loggers tag to dcs.log as + -- long as the highest log level (3) "info" is set. + -- @tparam string text the text with keywords to substitute. + -- @param ... variables to be used for substitution. + -- @see warn + function mist.Logger:info(text, ...) + if self.level >= 3 then + text = formatText(text, unpack(arg)) + if text:len() > 4000 then + local texts = splitText(text) + for i = 1, #texts do + if i == 1 then + env.info(self.tag .. '|' .. texts[i]) + else + env.info(texts[i]) + end + end + else + env.info(self.tag .. '|' .. text) + end + end + end + +end + +-- initialize mist +mist.init() +env.info(('Mist version ' .. mist.majorVersion .. '.' .. mist.minorVersion .. '.' .. mist.build .. ' loaded.')) + +-- vim: noet:ts=2:sw=2 \ No newline at end of file diff --git a/test-fob.miz b/test-fob.miz index 4f393ab08cfcd8148b0c84551289295b985ef98e..0ac531092dadfc85905de52a416a7895107a86c8 100644 GIT binary patch delta 86181 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