Refactoring of building scripts

This commit is contained in:
Pax1601
2024-01-03 17:48:38 +01:00
parent 8024db9579
commit 4e7c8ef856
92 changed files with 17403 additions and 284876 deletions

5
.gitignore vendored
View File

@@ -1,7 +1,7 @@
bin bin
.vs .vs
x64 x64
/src/vcpkg_installed /backend/vcpkg_installed
*.user *.user
Output Output
*.aps *.aps
@@ -28,4 +28,5 @@ L.Path.Drag.js
leaflet-gesture-handling.css leaflet-gesture-handling.css
package-lock.json package-lock.json
/package /package
/build

View File

@@ -110,26 +110,26 @@
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>.\..\..\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>.\..\..\bin\$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>.\..\..\bin\</OutDir> <OutDir>.\..\..\build\backend\bin\</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
@@ -212,4 +212,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
</Project> </Project>

View File

@@ -77,23 +77,23 @@
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>.\..\..\bin\</OutDir> <OutDir>.\..\..\build\backend\bin\</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
@@ -172,4 +172,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
</Project> </Project>

View File

@@ -76,23 +76,23 @@
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>.\..\..\bin\</OutDir> <OutDir>.\..\..\build\backend\bin\</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
@@ -169,4 +169,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
</Project> </Project>

View File

@@ -60,23 +60,23 @@
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>.\..\..\bin\</OutDir> <OutDir>.\..\..\build\backend\bin\</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
@@ -173,4 +173,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
</Project> </Project>

View File

@@ -62,11 +62,11 @@
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\DCSOlympus.props" /> <Import Project="..\DCSOlympus.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -75,7 +75,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>.\..\..\bin\</OutDir> <OutDir>.\..\..\build\backend\bin\</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
@@ -127,4 +127,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
</Project> </Project>

View File

@@ -85,7 +85,7 @@
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>.\..\..\bin\</OutDir> <OutDir>.\..\..\build\backend\bin\</OutDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>.\..\..\bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>.\..\..\bin\$(Platform)\$(Configuration)\</OutDir>

View File

@@ -1,2 +1,3 @@
call build.bat call node .scripts\batch\increase_version.js
call package.bat call .scripts\batch\build.bat
call .scripts\batch\package.bat

View File

@@ -7,7 +7,7 @@
{ {
"type": "chrome", "type": "chrome",
"request": "launch", "request": "launch",
"name": "Launch Chrome against localhost", "name": "Launch Chrome",
"url": "http://localhost:3000", "url": "http://localhost:3000",
"webRoot": "${workspaceFolder}/public/", "webRoot": "${workspaceFolder}/public/",
"sourceMapPathOverrides": { "sourceMapPathOverrides": {
@@ -15,6 +15,18 @@
}, },
"preLaunchTask": "server", "preLaunchTask": "server",
"port": 9222 "port": 9222
},
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome (No DCS)",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}/public/",
"sourceMapPathOverrides": {
"src/*": "${workspaceFolder}/src/*"
},
"preLaunchTask": "server-nodcs",
"port": 9222
} }
] ]
} }

View File

@@ -8,6 +8,12 @@
"type": "shell", "type": "shell",
"command": "npm run debug", "command": "npm run debug",
"isBackground": true "isBackground": true
},
{
"label": "server-nodcs",
"type": "shell",
"command": "npm run debug-nodcs",
"isBackground": true
} }
] ]
} }

View File

@@ -1,167 +0,0 @@
const fs = require('fs')
const path = require('path')
const yargs = require('yargs');
const prompt = require('prompt-sync')({sigint: true});
const sha256 = require('sha256');
var jsonPath = path.join('..', 'olympus.json');
var regedit = require('regedit')
const shellFoldersKey = 'HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders'
const saveGamesKey = '{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}'
/* Set the acceptable values */
yargs.alias('a', 'address').describe('a', 'Backend address').string('a');
yargs.alias('b', 'backendPort').describe('b', 'Backend port').number('b');
yargs.alias('c', 'clientPort').describe('c', 'Client port').number('c');
yargs.alias('p', 'gameMasterPassword').describe('p', 'Game Master password').string('p');
yargs.alias('bp', 'blueCommanderPassword').describe('bp', 'Blue Commander password').string('bp');
yargs.alias('rp', 'redCommanderPassword').describe('rp', 'Red Commander password').string('rp');
yargs.alias('d', 'directory').describe('d', 'Directory where the DCS Olympus configurator is located').string('rp');
args = yargs.argv;
async function run() {
/* Check that we can read the json */
if (fs.existsSync(jsonPath)) {
var json = JSON.parse(fs.readFileSync(jsonPath, 'utf-8'));
var address = args.address ?? json["server"]["address"];
var clientPort = args.clientPort ?? json["client"]["port"];
var backendPort = args.backendPort ?? json["server"]["port"];
var gameMasterPassword = args.gameMasterPassword? sha256(args.gameMasterPassword): json["authentication"]["gameMasterPassword"];
var blueCommanderPassword = args.blueCommanderPassword? sha256(args.blueCommanderPassword): json["authentication"]["blueCommanderPassword"];
var redCommanderPassword = args.redCommanderPassword? sha256(args.redCommanderPassword): json["authentication"]["redCommanderPassword"];
/* Run in interactive mode */
if (args.address === undefined && args.clientPort === undefined && args.backendPort === undefined &&
args.gameMasterPassword === undefined && args.blueCommanderPassword === undefined && args.redCommanderPassword === undefined) {
var newValue;
var result;
/* Get the new address */
newValue = prompt(`Insert an address or press Enter to keep current value ${address}. Use * for any address: `);
address = newValue !== ""? newValue: address;
/* Get the new client port */
while (true) {
newValue = prompt(`Insert a client port or press Enter to keep current value ${clientPort}. Integers between 1025 and 65535: `);
if (newValue === "")
break;
result = Number(newValue);
if (!isNaN(result) && Number.isInteger(result) && result > 1024 && result <= 65535)
break;
}
clientPort = newValue? result: clientPort;
/* Get the new backend port */
while (true) {
newValue = prompt(`Insert a backend port or press Enter to keep current value ${backendPort}. Integers between 1025 and 65535: `);
if (newValue === "")
break;
result = Number(newValue);
if (!isNaN(result) && Number.isInteger(result) && result > 1024 && result <= 65535 && result != clientPort)
break;
if (result === clientPort)
console.log("Client port and backend port must be different.");
}
backendPort = newValue? result: backendPort;
/* Get the new Game Master password */
newValue = prompt(`Insert a new Game Master password or press Enter to keep current value: `, {echo: "*"});
gameMasterPassword = newValue !== ""? sha256(newValue): gameMasterPassword;
/* Get the new Blue Commander password */
newValue = prompt(`Insert a new Blue Commander password or press Enter to keep current value: `, {echo: "*"});
blueCommanderPassword = newValue !== ""? sha256(newValue): blueCommanderPassword;
/* Get the new Red Commander password */
newValue = prompt(`Insert a new Red Commander password or press Enter to keep current value: `, {echo: "*"});
redCommanderPassword = newValue !== ""? sha256(newValue): redCommanderPassword;
}
/* Apply the inputs */
json["server"]["address"] = address;
json["client"]["port"] = clientPort;
json["server"]["port"] = backendPort;
json["authentication"]["gameMasterPassword"] = gameMasterPassword;
json["authentication"]["blueCommanderPassword"] = blueCommanderPassword;
json["authentication"]["redCommanderPassword"] = redCommanderPassword;
/* Write the result to disk */
const serialized = JSON.stringify(json, null, 4);
fs.writeFileSync(jsonPath, serialized, 'utf8');
console.log("Olympus.json updated correctly, goodbye!");
}
else {
console.error("Error, could not read olympus.json file!")
}
/* Wait a bit before closing the window */
await new Promise(resolve => setTimeout(resolve, 3000));
}
console.log('\x1b[36m%s\x1b[0m', "*********************************************************************");
console.log('\x1b[36m%s\x1b[0m', "* _____ _____ _____ ____ _ *");
console.log('\x1b[36m%s\x1b[0m', "* | __ \\ / ____|/ ____| / __ \\| | *");
console.log('\x1b[36m%s\x1b[0m', "* | | | | | | (___ | | | | |_ _ _ __ ___ _ __ _ _ ___ *");
console.log('\x1b[36m%s\x1b[0m', "* | | | | | \\___ \\ | | | | | | | | '_ ` _ \\| '_ \\| | | / __| *");
console.log('\x1b[36m%s\x1b[0m', "* | |__| | |____ ____) | | |__| | | |_| | | | | | | |_) | |_| \\__ \\ *");
console.log('\x1b[36m%s\x1b[0m', "* |_____/ \\_____|_____/ \\____/|_|\\__, |_| |_| |_| .__/ \\__,_|___/ *");
console.log('\x1b[36m%s\x1b[0m', "* __/ | | | *");
console.log('\x1b[36m%s\x1b[0m', "* |___/ |_| *");
console.log('\x1b[36m%s\x1b[0m', "*********************************************************************");
console.log('\x1b[36m%s\x1b[0m', "");
console.log("DCS Olympus configurator {{OLYMPUS_VERSION_NUMBER}}.{{OLYMPUS_COMMIT_HASH}}");
console.log("");
/* Run the configurator */
if (args.directory) {
jsonPath = path.join(args.directory, "olympus.json");
}
else {
/* Automatically detect possible DCS installation folders */
regedit.list(shellFoldersKey, function(err, result) {
if (err) {
console.log(err);
}
else {
if (result[shellFoldersKey] !== undefined && result[shellFoldersKey]["exists"] && result[shellFoldersKey]['values'][saveGamesKey] !== undefined && result[shellFoldersKey]['values'][saveGamesKey]['value'] !== undefined)
{
const searchpath = result[shellFoldersKey]['values'][saveGamesKey]['value'];
const folders = fs.readdirSync(searchpath);
var options = [];
folders.forEach((folder) => {
if (fs.existsSync(path.join(searchpath, folder, "Logs", "dcs.log"))) {
options.push(folder);
}
})
console.log("The following DCS Saved Games folders have been automatically detected.")
options.forEach((folder, index) => {
console.log(`(${index + 1}) ${folder}`)
});
while (true) {
var newValue = prompt(`Please choose a folder onto which the configurator shall operate by typing the associated number: `)
result = Number(newValue);
if (!isNaN(result) && Number.isInteger(result) && result > 0 && result <= options.length) {
jsonPath = path.join(searchpath, options[result - 1], "Config", "olympus.json");
break;
}
else {
console.log(`Please type a number between 1 and ${options.length}`);
}
}
} else {
console.error("An error occured while trying to fetch the location of the DCS folder. Please type the folder location manually.")
jsonPath = path.join(prompt(`DCS Saved Games folder location: `), "olympus.json");
}
console.log(`Configurator will run on ${jsonPath}, if this is incorrect please restart the configurator`)
run();
}
})
}

View File

@@ -1,4 +0,0 @@
echo F|xcopy /S /Q /Y /F .\\node_modules\\leaflet\\dist\\leaflet.css .\\public\\stylesheets\\leaflet\\leaflet.css
echo F|xcopy /S /Q /Y /F .\\node_modules\\leaflet-gesture-handling\\dist\\leaflet-gesture-handling.css .\\public\\stylesheets\\leaflet\\leaflet-gesture-handling.css
echo F|xcopy /S /Q /Y /F .\\node_modules\\leaflet.nauticscale\\dist\\leaflet.nauticscale.js .\\public\\javascripts\\leaflet.nauticscale.js
echo F|xcopy /S /Q /Y /F .\\node_modules\\leaflet-path-drag\\dist\\L.Path.Drag.js .\\public\\javascripts\\L.Path.Drag.js

View File

@@ -1 +0,0 @@
npm install --omit=dev

View File

@@ -1,17 +1,16 @@
{ {
"name": "DCSOlympus", "name": "DCSOlympus",
"node-main": "./bin/www",
"main": "client.js", "main": "client.js",
"version": "{{OLYMPUS_VERSION_NUMBER}}", "version": "{{OLYMPUS_VERSION_NUMBER}}",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "browserify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat", "build-debug": "call ./scripts/build-debug.bat",
"build-release": "browserify .\\src\\index.ts -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat", "build-release": "call ./scripts/build-release.bat",
"emit-declarations": "tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile ./@types/olympus/index.d.ts", "emit-declarations": "call ./scripts/emit-declarations.bat",
"copy": "copy.bat", "server": "node ./bin/www",
"start": "node ./bin/www", "debug": "call ./scripts/debug.bat",
"debug": "npm run copy & concurrently --kill-others \"npm run watch\" \"nodemon --ignore ./public/databases/ ./bin/www -- --config ../moc_dcs/Config/olympus.json\"", "debug-nodcs": "call ./scripts/debug-nodcs.bat",
"watch": "watchify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]", "watch": "call ./scripts/watch.bat",
"client": "electron ." "client": "electron ."
}, },
"dependencies": { "dependencies": {
@@ -27,7 +26,6 @@
"js-sha256": "^0.10.1", "js-sha256": "^0.10.1",
"morgan": "~1.9.1", "morgan": "~1.9.1",
"open": "^10.0.0", "open": "^10.0.0",
"prompt-sync": "^4.2.0",
"regedit": "^5.1.2", "regedit": "^5.1.2",
"save": "^2.9.0", "save": "^2.9.0",
"sha256": "^0.2.0", "sha256": "^0.2.0",

View File

@@ -1,466 +0,0 @@
{
"airfields": {
"Anapa-Vityazevo": {
"ICAO": "URKA",
"elevation": "141",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "9000"
}
]
},
"Batumi": {
"ICAO": "UGSB",
"elevation": "33",
"TACAN": "16X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "119",
"ILS": ""
},
"31": {
"magHeading": "299",
"ILS": ""
}
}
],
"length": "7500"
}
]
},
"Beslan": {
"ICAO": "URMO",
"elevation": "1722",
"TACAN": "",
"runways": [
{
"headings": [
{
"10": {
"magHeading": "086",
"ILS": "110.50"
},
"28": {
"magHeading": "266",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Gelendzhik": {
"ICAO": "URKG",
"elevation": "72",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "212",
"ILS": ""
},
"01": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Gudauta": {
"ICAO": "UG23",
"elevation": "69",
"TACAN": "",
"runways": [
{
"headings": [
{
"15": {
"magHeading": "144",
"ILS": ""
},
"33": {
"magHeading": "324",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Kobuleti": {
"ICAO": "UG5X",
"elevation": "69",
"TACAN": "67X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "243",
"ILS": ""
},
"07": {
"magHeading": "063",
"ILS": "111.50"
}
}
],
"length": "7400"
}
]
},
"Krasnodar-Center": {
"ICAO": "URKL",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "259",
"ILS": ""
},
"09": {
"magHeading": "079",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Krasnodar-Pashkovsky": {
"ICAO": "URKK",
"elevation": "112",
"TACAN": "",
"runways": [
{
"headings": [
{
"23": {
"magHeading": "219",
"ILS": ""
},
"05": {
"magHeading": "039",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Krymsk": {
"ICAO": "URKW",
"elevation": "66",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "212",
"ILS": ""
},
"04": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "8000"
}
]
},
"Kutaisi": {
"ICAO": "UGKO",
"elevation": "148",
"TACAN": "44X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "247",
"ILS": ""
},
"07": {
"magHeading": "067'",
"ILS": "109.75"
}
}
],
"length": "7700"
}
]
},
"Maykop-Khanskaya": {
"ICAO": "URKH",
"elevation": "591",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "211",
"ILS": ""
},
"04": {
"magHeading": "031",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Mineralnye Vody": {
"ICAO": "URMM",
"elevation": "1050",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "108",
"ILS": "111.70"
},
"30": {
"magHeading": "288",
"ILS": "109.30"
}
}
],
"length": "12700"
}
]
},
"Mozdok": {
"ICAO": "XRMF",
"elevation": "507",
"TACAN": "",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "255",
"ILS": ""
},
"08": {
"magHeading": "075",
"ILS": ""
}
}
],
"length": "9400"
}
]
},
"Nalchik": {
"ICAO": "URMN",
"elevation": "1411",
"TACAN": "",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "228",
"ILS": "110.50"
},
"06": {
"magHeading": "048'",
"ILS": ""
}
}
],
"length": "7000"
}
]
},
"Novorossiysk": {
"ICAO": "URKN",
"elevation": "131",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Senaki-Kolkhi": {
"ICAO": "UGKS",
"elevation": "43",
"TACAN": "31X",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "268",
"ILS": ""
},
"09": {
"magHeading": "088'",
"ILS": "108.90"
}
}
],
"length": "7400"
}
]
},
"Sochi-Adler": {
"ICAO": "URSS",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "235",
"ILS": ""
},
"06": {
"magHeading": "055",
"ILS": "111.10"
}
}
],
"length": "9700"
}
]
},
"Tbilisi-Lochini": {
"ICAO": "UGTB",
"elevation": "1574",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "121",
"ILS": "110.30"
},
"31": {
"magHeading": "301",
"ILS": "108.90"
}
}
],
"length": "9300"
}
]
},
"Soganlug": {
"ICAO": "UG24",
"elevation": "1500",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"14": {
"magHeading": "125",
"ILS": ""
},
"32": {
"magHeading": "305",
"ILS": ""
}
}
],
"length": "6500"
}
]
},
"Sukhumi-Babushara": {
"ICAO": "UGSS",
"elevation": "43",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "109",
"ILS": ""
},
"30": {
"magHeading": "289",
"ILS": ""
}
}
],
"length": "11400"
}
]
},
"Vaziani": {
"ICAO": "UG27",
"elevation": "1524",
"TACAN": "22X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "129",
"ILS": "108.75"
},
"31": {
"magHeading": "309",
"ILS": "108.75"
}
}
],
"length": "7700"
}
]
}
}
}

View File

@@ -1,838 +0,0 @@
{
"airfields": {
"Aerodromo De Tolhuin": {
"runways": [
{
"headings": [
{
"07": {
"magHeading": "66",
"Heading": "77",
"ILS": ""
}
},
{
"25": {
"magHeading": "246",
"Heading": "257",
"ILS": ""
}
}
],
"length": "3297"
}
],
"TACAN": "",
"ICAO": "SAWL",
"elevation": "355"
},
"Almirante Schroeders": {
"runways": [
{
"headings": [
{
"12": {
"magHeading": "114",
"Heading": "127",
"ILS": ""
}
},
{
"30": {
"magHeading": "294",
"Heading": "307",
"ILS": ""
}
}
],
"length": "4628"
},
{
"headings": [
{
"22": {
"magHeading": "208",
"Heading": "221",
"ILS": ""
}
},
{
"04": {
"magHeading": "28",
"Heading": "41",
"ILS": ""
}
}
],
"length": "3931"
}
],
"TACAN": "",
"ICAO": "SCDW",
"elevation": "160"
},
"Rio Chico": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "73",
"Heading": "84",
"ILS": ""
}
},
{
"26": {
"magHeading": "253",
"Heading": "264",
"ILS": ""
}
}
],
"length": "3239"
}
],
"TACAN": "",
"ICAO": "RGR",
"elevation": "74"
},
"Puerto Natales": {
"runways": [
{
"headings": [
{
"28": {
"magHeading": "274",
"Heading": "287",
"ILS": ""
}
},
{
"10": {
"magHeading": "94",
"Heading": "107",
"ILS": ""
}
}
],
"length": "5281"
}
],
"TACAN": "",
"ICAO": "SCNT",
"elevation": "216"
},
"Mount Pleasant": {
"runways": [
{
"headings": [
{
"10": {
"magHeading": "101",
"Heading": "104",
"ILS": ""
}
},
{
"28": {
"magHeading": "281",
"Heading": "284",
"ILS": "111.90"
}
}
],
"length": "6763"
},
{
"headings": [
{
"23": {
"magHeading": "231",
"Heading": "234",
"ILS": ""
}
},
{
"05": {
"magHeading": "51",
"Heading": "54",
"ILS": ""
}
}
],
"length": "6763"
}
],
"TACAN": "59X",
"ICAO": "EGYP",
"elevation": "243"
},
"Aerodromo O'Higgins": {
"runways": [
{
"headings": [
{
"34": {
"magHeading": "326",
"Heading": "338",
"ILS": ""
}
},
{
"16": {
"magHeading": "146",
"Heading": "158",
"ILS": ""
}
}
],
"length": "3968"
}
],
"TACAN": "",
"ICAO": "SCOH",
"elevation": "900"
},
"Ushuaia Helo Port": {
"runways": [
{
"headings": [
{
"16": {
"magHeading": "157",
"Heading": "170",
"ILS": ""
}
},
{
"34": {
"magHeading": "337",
"Heading": "350",
"ILS": ""
}
}
],
"length": "5076"
}
],
"TACAN": "",
"ICAO": "SAWO",
"elevation": "42"
},
"Franco Bianco": {
"runways": [
{
"headings": [
{
"07": {
"magHeading": "65",
"Heading": "77",
"ILS": ""
}
},
{
"25": {
"magHeading": "245",
"Heading": "257",
"ILS": ""
}
}
],
"length": "5008"
},
{
"headings": [
{
"20": {
"magHeading": "185",
"Heading": "196",
"ILS": ""
}
},
{
"02": {
"magHeading": "5",
"Heading": "16",
"ILS": ""
}
}
],
"length": "5008"
}
],
"TACAN": "",
"ICAO": "SCSB",
"elevation": "104"
},
"Pampa Guanaco": {
"runways": [
{
"headings": [
{
"26": {
"magHeading": "248",
"Heading": "260",
"ILS": ""
}
},
{
"08": {
"magHeading": "68",
"Heading": "80",
"ILS": ""
}
}
],
"length": "2349"
}
],
"TACAN": "",
"ICAO": "SCBI",
"elevation": "519"
},
"Puerto Santa Cruz": {
"runways": [
{
"headings": [
{
"07": {
"magHeading": "81",
"Heading": "69",
"ILS": ""
}
},
{
"25": {
"magHeading": "261",
"Heading": "249",
"ILS": ""
}
}
],
"length": "5638"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "365"
},
"San Carlos FOB": {
"runways": [
{
"headings": [
{
"11": {
"magHeading": "285",
"Heading": "288",
"ILS": ""
}
},
{
"29": {
"magHeading": "105",
"Heading": "108",
"ILS": ""
}
}
],
"length": "1079"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "65"
},
"Goose Green": {
"runways": [
{
"headings": [
{
"14": {
"magHeading": "135",
"Heading": "139",
"ILS": ""
}
},
{
"32": {
"magHeading": "315",
"Heading": "319",
"ILS": ""
}
}
],
"length": "1976"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "57"
},
"Rio Turbio": {
"runways": [
{
"headings": [
{
"24": {
"magHeading": "225",
"Heading": "239",
"ILS": ""
}
},
{
"06": {
"magHeading": "45",
"Heading": "59",
"ILS": ""
}
}
],
"length": "5057"
}
],
"TACAN": "",
"ICAO": "SAWT",
"elevation": "895"
},
"Porvenir Airfield": {
"runways": [
{
"headings": [
{
"09": {
"magHeading": "87",
"Heading": "99",
"ILS": ""
}
},
{
"27": {
"magHeading": "266",
"Heading": "279",
"ILS": ""
}
}
],
"length": "7821"
},
{
"headings": [
{
"21": {
"magHeading": "203",
"Heading": "216",
"ILS": ""
}
},
{
"03": {
"magHeading": "23",
"Heading": "36",
"ILS": ""
}
}
],
"length": "3220"
}
],
"TACAN": "",
"ICAO": "SCFM",
"elevation": "56"
},
"Punta Arenas": {
"runways": [
{
"headings": [
{
"30": {
"magHeading": "295",
"Heading": "308",
"ILS": ""
}
},
{
"12": {
"magHeading": "140",
"Heading": "128",
"ILS": ""
}
}
],
"length": "6834"
},
{
"headings": [
{
"25": {
"magHeading": "270",
"Heading": "258",
"ILS": ""
}
},
{
"07": {
"magHeading": "90",
"Heading": "78",
"ILS": ""
}
}
],
"length": "9360"
},
{
"headings": [
{
"19": {
"magHeading": "210",
"Heading": "198",
"ILS": ""
}
}
],
"length": "5160"
}
],
"TACAN": "",
"ICAO": "SCCI",
"elevation": "122"
},
"Gull Point": {
"runways": [
{
"headings": [
{
"15": {
"magHeading": "149",
"Heading": "152",
"ILS": ""
}
},
{
"33": {
"magHeading": "329",
"Heading": "332",
"ILS": ""
}
}
],
"length": "1521"
},
{
"headings": [
{
"23": {
"magHeading": "212",
"Heading": "216",
"ILS": ""
}
},
{
"05": {
"magHeading": "33",
"Heading": "36",
"ILS": ""
}
}
],
"length": "1352"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "4"
},
"Caleta Tortel Airport": {
"runways": [
{
"headings": [
{
"04": {
"magHeading": "235",
"Heading": "223",
"ILS": ""
}
},
{
"22": {
"magHeading": "55",
"Heading": "43",
"ILS": ""
}
}
],
"length": "1770"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "3"
},
"Comandante Luis Piedrabuena": {
"runways": [
{
"headings": [
{
"26": {
"magHeading": "272",
"Heading": "260",
"ILS": ""
}
},
{
"08": {
"magHeading": "92",
"Heading": "80",
"ILS": ""
}
}
],
"length": "3505"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "69"
},
"Hipico Flying Club": {
"runways": [
{
"headings": [
{
"02": {
"magHeading": "1",
"Heading": "11",
"ILS": ""
}
},
{
"19": {
"magHeading": "180",
"Heading": "191",
"ILS": ""
}
}
],
"length": "2304"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "934"
},
"Cullen Airport": {
"runways": [],
"TACAN": "",
"ICAO": "",
"elevation": "0"
},
"Aeropuerto de Gobernador Gregores": {
"runways": [
{
"headings": [
{
"28": {
"magHeading": "263",
"Heading": "274",
"ILS": ""
}
},
{
"10": {
"magHeading": "84",
"Heading": "94",
"ILS": ""
}
}
],
"length": "8672"
}
],
"TACAN": "",
"ICAO": "SAWR",
"elevation": "1168"
},
"San Julian": {
"runways": [
{
"headings": [
{
"25": {
"magHeading": "242",
"Heading": "251",
"ILS": ""
}
},
{
"07": {
"magHeading": "62",
"Heading": "71",
"ILS": ""
}
}
],
"length": "6218"
}
],
"TACAN": "",
"ICAO": "SAWJ",
"elevation": "144"
},
"Puerto Williams": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "70",
"Heading": "82",
"ILS": ""
}
},
{
"26": {
"magHeading": "250",
"Heading": "262",
"ILS": ""
}
}
],
"length": "4312"
}
],
"TACAN": "",
"ICAO": "SCGZ",
"elevation": "83"
},
"Ushuaia": {
"runways": [
{
"headings": [
{
"07": {
"magHeading": "65",
"Heading": "77",
"ILS": ""
}
},
{
"25": {
"magHeading": "245",
"Heading": "257",
"ILS": "111.30"
}
}
],
"length": "7631"
}
],
"TACAN": "",
"ICAO": "SAWH",
"elevation": "60"
},
"Rio Gallegos": {
"runways": [
{
"headings": [
{
"25": {
"magHeading": "245",
"Heading": "256",
"ILS": "110.30"
}
},
{
"07": {
"magHeading": "65",
"Heading": "76",
"ILS": ""
}
}
],
"length": "10585"
}
],
"TACAN": "",
"ICAO": "SAWG",
"elevation": "50"
},
"Rio Grande": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "68",
"Heading": "79",
"ILS": ""
}
},
{
"26": {
"magHeading": "247",
"Heading": "259",
"ILS": "109.50"
}
}
],
"length": "5922"
}
],
"TACAN": "31X",
"ICAO": "SAWE",
"elevation": "60"
},
"Port Stanley": {
"runways": [
{
"headings": [
{
"27": {
"magHeading": "266",
"Heading": "269",
"ILS": ""
}
},
{
"09": {
"magHeading": "101",
"Heading": "86",
"ILS": ""
}
}
],
"length": "4388"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "67"
},
"El Calafate": {
"runways": [
{
"headings": [
{
"25": {
"magHeading": "241",
"Heading": "253",
"ILS": "108.90"
}
},
{
"07": {
"magHeading": "61",
"Heading": "73",
"ILS": ""
}
}
],
"length": "7579"
}
],
"TACAN": "",
"ICAO": "SAWC",
"elevation": "654"
}
}
}

View File

@@ -1,466 +0,0 @@
{
"airfields": {
"Anapa-Vityazevo": {
"ICAO": "URKA",
"elevation": "141",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "9000"
}
]
},
"Batumi": {
"ICAO": "UGSB",
"elevation": "33",
"TACAN": "16X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "119",
"ILS": ""
},
"31": {
"magHeading": "299",
"ILS": ""
}
}
],
"length": "7500"
}
]
},
"Beslan": {
"ICAO": "URMO",
"elevation": "1722",
"TACAN": "",
"runways": [
{
"headings": [
{
"10": {
"magHeading": "086",
"ILS": "110.50"
},
"28": {
"magHeading": "266",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Gelendzhik": {
"ICAO": "URKG",
"elevation": "72",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "212",
"ILS": ""
},
"01": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Gudauta": {
"ICAO": "UG23",
"elevation": "69",
"TACAN": "",
"runways": [
{
"headings": [
{
"15": {
"magHeading": "144",
"ILS": ""
},
"33": {
"magHeading": "324",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Kobuleti": {
"ICAO": "UG5X",
"elevation": "69",
"TACAN": "67X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "243",
"ILS": ""
},
"07": {
"magHeading": "063",
"ILS": "111.50"
}
}
],
"length": "7400"
}
]
},
"Krasnodar-Center": {
"ICAO": "URKL",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "259",
"ILS": ""
},
"09": {
"magHeading": "079",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Krasnodar-Pashkovsky": {
"ICAO": "URKK",
"elevation": "112",
"TACAN": "",
"runways": [
{
"headings": [
{
"23": {
"magHeading": "219",
"ILS": ""
},
"05": {
"magHeading": "039",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Krymsk": {
"ICAO": "URKW",
"elevation": "66",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "212",
"ILS": ""
},
"04": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "8000"
}
]
},
"Kutaisi": {
"ICAO": "UGKO",
"elevation": "148",
"TACAN": "44X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "247",
"ILS": ""
},
"07": {
"magHeading": "067'",
"ILS": "109.75"
}
}
],
"length": "7700"
}
]
},
"Maykop-Khanskaya": {
"ICAO": "URKH",
"elevation": "591",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "211",
"ILS": ""
},
"04": {
"magHeading": "031",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Mineralnye Vody": {
"ICAO": "URMM",
"elevation": "1050",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "108",
"ILS": "111.70"
},
"30": {
"magHeading": "288",
"ILS": "109.30"
}
}
],
"length": "12700"
}
]
},
"Mozdok": {
"ICAO": "XRMF",
"elevation": "507",
"TACAN": "",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "255",
"ILS": ""
},
"08": {
"magHeading": "075",
"ILS": ""
}
}
],
"length": "9400"
}
]
},
"Nalchik": {
"ICAO": "URMN",
"elevation": "1411",
"TACAN": "",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "228",
"ILS": "110.50"
},
"06": {
"magHeading": "048'",
"ILS": ""
}
}
],
"length": "7000"
}
]
},
"Novorossiysk": {
"ICAO": "URKN",
"elevation": "131",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Senaki-Kolkhi": {
"ICAO": "UGKS",
"elevation": "43",
"TACAN": "31X",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "268",
"ILS": ""
},
"09": {
"magHeading": "088'",
"ILS": "108.90"
}
}
],
"length": "7400"
}
]
},
"Sochi-Adler": {
"ICAO": "URSS",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "235",
"ILS": ""
},
"06": {
"magHeading": "055",
"ILS": "111.10"
}
}
],
"length": "9700"
}
]
},
"Tbilisi-Lochini": {
"ICAO": "UGTB",
"elevation": "1574",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "121",
"ILS": "110.30"
},
"31": {
"magHeading": "301",
"ILS": "108.90"
}
}
],
"length": "9300"
}
]
},
"Soganlug": {
"ICAO": "UG24",
"elevation": "1500",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"14": {
"magHeading": "125",
"ILS": ""
},
"32": {
"magHeading": "305",
"ILS": ""
}
}
],
"length": "6500"
}
]
},
"Sukhumi-Babushara": {
"ICAO": "UGSS",
"elevation": "43",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "109",
"ILS": ""
},
"30": {
"magHeading": "289",
"ILS": ""
}
}
],
"length": "11400"
}
]
},
"Vaziani": {
"ICAO": "UG27",
"elevation": "1524",
"TACAN": "22X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "129",
"ILS": "108.75"
},
"31": {
"magHeading": "309",
"ILS": "108.75"
}
}
],
"length": "7700"
}
]
}
}
}

View File

@@ -1,558 +0,0 @@
{
"airfields": {
"Beatty": {
"ICAO": "KBTY",
"elevation": "3173",
"TACAN": "94X",
"runways": [
{
"headings": [
{
"16": {
"magHeading": "168",
"ILS": ""
},
"34": {
"magHeading": "348",
"ILS": ""
}
}
],
"length": "5500"
}
]
},
"Boulder City": {
"ICAO": "KBVU",
"elevation": "2205",
"TACAN": "114X",
"runways": [
{
"headings": [
{
"15": {
"magHeading": "153",
"ILS": ""
},
"33": {
"magHeading": "333",
"ILS": ""
}
}
],
"length": "3700"
},
{
"headings": [
{
"27": {
"magHeading": "267",
"ILS": ""
},
"09": {
"magHeading": "087",
"ILS": ""
}
}
],
"length": "4400"
}
]
},
"Creech": {
"ICAO": "KINS",
"elevation": "3126",
"TACAN": "87X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "134",
"ILS": ""
},
"31": {
"magHeading": "314",
"ILS": ""
}
}
],
"length": "4700"
},
{
"headings": [
{
"26": {
"magHeading": "260",
"ILS": ""
},
"08": {
"magHeading": "080",
"ILS": "108.70"
}
}
],
"length": "8700"
}
]
},
"Echo Bay": {
"ICAO": "0L9",
"elevation": "1549",
"TACAN": "",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "246",
"ILS": ""
},
"06": {
"magHeading": "066",
"ILS": ""
}
}
],
"length": "3300"
}
]
},
"Groom Lake": {
"ICAO": "KXTA",
"elevation": "4495",
"TACAN": "18X",
"runways": [
{
"headings": [
{
"14L": {
"magHeading": "145",
"ILS": ""
},
"32R": {
"magHeading": "325",
"ILS": "109.30"
}
}
],
"length": "11700"
},
{
"headings": [
{
"14R (CLOSED)": {
"magHeading": "145",
"ILS": ""
},
"32L (CLOSED)": {
"magHeading": "325",
"ILS": ""
}
}
],
"length": "17800"
}
]
},
"Henderson Executive": {
"ICAO": "KHND",
"elevation": "2493",
"TACAN": "",
"runways": [
{
"headings": [
{
"17L": {
"magHeading": "168",
"ILS": ""
},
"35R": {
"magHeading": "348",
"ILS": ""
}
}
],
"length": "4600"
},
{
"headings": [
{
"17R": {
"magHeading": "168",
"ILS": ""
},
"35L": {
"magHeading": "348",
"ILS": ""
}
}
],
"length": "6100"
}
]
},
"Jean": {
"ICAO": "",
"elevation": "2825",
"TACAN": "",
"runways": [
{
"headings": [
{
"02L": {
"magHeading": "020",
"ILS": ""
},
"20R": {
"magHeading": "200",
"ILS": ""
}
}
],
"length": "4500"
},
{
"headings": [
{
"02R": {
"magHeading": "020",
"ILS": ""
},
"20L": {
"magHeading": "200",
"ILS": ""
}
}
],
"length": "3600"
}
]
},
"McCarran International": {
"ICAO": "KLAS",
"elevation": "2178",
"TACAN": "116X",
"runways": [
{
"headings": [
{
"01L": {
"magHeading": "013",
"ILS": ""
},
"19R": {
"magHeading": "193",
"ILS": ""
}
}
],
"length": "8000"
},
{
"headings": [
{
"01R": {
"magHeading": "013",
"ILS": ""
},
"19L": {
"magHeading": "193",
"ILS": ""
}
}
],
"length": "8000"
},
{
"headings": [
{
"07L": {
"magHeading": "078",
"ILS": ""
},
"25R": {
"magHeading": "258",
"ILS": "110.30"
}
}
],
"length": "10600"
},
{
"headings": [
{
"07R": {
"magHeading": "078",
"ILS": ""
},
"25L": {
"magHeading": "258",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Laughlin": {
"ICAO": "KIFP",
"elevation": "673",
"TACAN": "",
"runways": [
{
"headings": [
{
"16": {
"magHeading": "164",
"ILS": ""
},
"34": {
"magHeading": "344",
"ILS": ""
}
}
],
"length": "7100"
}
]
},
"Lincoln County": {
"ICAO": "",
"elevation": "4816",
"TACAN": "",
"runways": [
{
"headings": [
{
"17": {
"magHeading": "170",
"ILS": ""
},
"35": {
"magHeading": "350",
"ILS": ""
}
}
],
"length": "4500"
}
]
},
"Mesquite": {
"ICAO": "67L",
"elevation": "1859",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "197",
"ILS": ""
},
"01": {
"magHeading": "017",
"ILS": ""
}
}
],
"length": "5000"
}
]
},
"Mina": {
"ICAO": "",
"elevation": "4560",
"TACAN": "",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "140",
"ILS": ""
},
"31": {
"magHeading": "320",
"ILS": ""
}
}
],
"length": "4100"
}
]
},
"Nellis": {
"ICAO": "KLSV",
"elevation": "1849",
"TACAN": "12X",
"runways": [
{
"headings": [
{
"03L": {
"magHeading": "029",
"ILS": ""
},
"21R": {
"magHeading": "209",
"ILS": ""
}
}
],
"length": "9800"
},
{
"headings": [
{
"03R": {
"magHeading": "029",
"ILS": ""
},
"21L": {
"magHeading": "209",
"ILS": "109.10"
}
}
],
"length": "9800"
}
]
},
"North Las Vegas": {
"ICAO": "KVGT",
"elevation": "2228",
"TACAN": "",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "256",
"ILS": ""
},
"07": {
"magHeading": "076",
"ILS": ""
}
}
],
"length": "4900"
},
{
"headings": [
{
"12L": {
"magHeading": "122",
"ILS": "110.70"
},
"30R": {
"magHeading": "302",
"ILS": "109.10"
}
}
],
"length": "3800"
},
{
"headings": [
{
"12R": {
"magHeading": "122",
"ILS": ""
},
"30L": {
"magHeading": "302",
"ILS": ""
}
}
],
"length": "4600"
}
]
},
"Pahute Mesa": {
"ICAO": "",
"elevation": "5059",
"TACAN": "",
"runways": [
{
"headings": [
{
"18": {
"magHeading": "182",
"ILS": ""
},
"36": {
"magHeading": "002",
"ILS": ""
}
}
],
"length": "5500"
}
]
},
"Tonopah": {
"ICAO": "KTPH",
"elevation": "5390",
"TACAN": "119X",
"runways": [
{
"headings": [
{
"11": {
"magHeading": "113",
"ILS": ""
},
"29": {
"magHeading": "293",
"ILS": ""
}
}
],
"length": "5600"
},
{
"headings": [
{
"15": {
"magHeading": "153",
"ILS": ""
},
"33": {
"magHeading": "333",
"ILS": ""
}
}
],
"length": "6800"
}
]
},
"Tonopah Test Range": {
"ICAO": "KTNX",
"elevation": "5535",
"TACAN": "77X",
"runways": [
{
"headings": [
{
"14": {
"magHeading": "145",
"ILS": "108.30"
},
"32": {
"magHeading": "325",
"ILS": "111.70"
}
}
],
"length": "11700"
}
]
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,769 +0,0 @@
{
"airfields": {
"Abu Dhabi Intl": {
"elevation": "92",
"ICAO": "OMAA",
"runways": [
{
"headings": [
{
"13L": {
"ILS": "",
"magHeading": "127"
},
"31R": {
"ILS": "",
"magHeading": "307"
}
}
],
"length": "13100"
},
{
"headings": [
{
"13R": {
"ILS": "",
"magHeading": "127"
},
"31L": {
"ILS": "",
"magHeading": "307"
}
}
],
"length": "13200"
}
],
"TACAN": ""
},
"Abu Musa Island": {
"elevation": "16",
"ICAO": "OIBA",
"runways": [
{
"headings": [
{
"26": {
"ILS": "",
"magHeading": "262"
},
"08": {
"ILS": "",
"magHeading": "082"
}
}
],
"length": "7800"
}
],
"TACAN": ""
},
"Al Ain Intl": {
"elevation": "814",
"ICAO": "OMAL",
"runways": [
{
"headings": [
{
"19": {
"ILS": "",
"magHeading": "186"
},
"01": {
"ILS": "",
"magHeading": "006"
}
}
],
"length": "12800"
}
],
"TACAN": ""
},
"Al Dhafra AFB": {
"elevation": "52",
"ICAO": "OMAM",
"runways": [
{
"headings": [
{
"13L": {
"ILS": "111.10",
"magHeading": "126"
},
"31R": {
"ILS": "109.10",
"magHeading": "306"
}
}
],
"length": "11700"
},
{
"headings": [
{
"13R": {
"ILS": "108.70",
"magHeading": "16"
},
"31L": {
"ILS": "108.70",
"magHeading": "306"
}
}
],
"length": "11700"
}
],
"TACAN": "96X"
},
"Al Maktoum Intl": {
"elevation": "125",
"ICAO": "OMDW",
"runways": [
{
"headings": [
{
"12": {
"ILS": "111.75",
"magHeading": "120"
},
"30": {
"ILS": "109.75",
"magHeading": "300"
}
}
],
"length": "14400"
}
],
"TACAN": ""
},
"Al Minhad AFB": {
"elevation": "190",
"ICAO": "OMDM",
"runways": [
{
"headings": [
{
"27": {
"ILS": "110.75",
"magHeading": "268"
},
"09": {
"ILS": "110.70",
"magHeading": "088"
}
}
],
"length": "12600"
}
],
"TACAN": "99X"
},
"Al-Bateen": {
"elevation": "12",
"ICAO": "OMAD",
"runways": [
{
"headings": [
{
"13": {
"ILS": "",
"magHeading": "127"
},
"31": {
"ILS": "",
"magHeading": "307"
}
}
],
"length": "7000"
}
],
"TACAN": ""
},
"Bandar Abbas Intl": {
"elevation": "29",
"ICAO": "OIKB",
"runways": [
{
"headings": [
{
"03L": {
"ILS": "",
"magHeading": "25"
},
"21R": {
"ILS": "",
"magHeading": "205"
}
}
],
"length": "11000"
},
{
"headings": [
{
"03R": {
"ILS": "",
"magHeading": "25"
},
"21L": {
"ILS": "109.90",
"magHeading": "205"
}
}
],
"length": "11700"
}
],
"TACAN": "78X"
},
"Bandar Lengeh": {
"elevation": "82",
"ICAO": "OIBL",
"runways": [
{
"headings": [
{
"26": {
"ILS": "",
"magHeading": "259"
},
"08": {
"ILS": "",
"magHeading": "079"
}
}
],
"length": "7900"
}
],
"TACAN": ""
},
"Bandar-e-Jask": {
"elevation": "26",
"ICAO": "OIZJ",
"runways": [
{
"headings": [
{
"24": {
"ILS": "",
"magHeading": "239"
},
"06": {
"ILS": "",
"magHeading": "059"
}
}
],
"length": "7300"
}
],
"TACAN": "110X"
},
"Dubai Intl": {
"elevation": "16",
"ICAO": "OMDB",
"runways": [
{
"headings": [
{
"12L": {
"ILS": "110.10",
"magHeading": "120"
},
"30R": {
"ILS": "110.90",
"magHeading": "300"
}
}
],
"length": "11400"
},
{
"headings": [
{
"12R": {
"ILS": "109.50",
"magHeading": "120"
},
"30L": {
"ILS": "111.30",
"magHeading": "300"
}
}
],
"length": "11400"
}
],
"TACAN": ""
},
"Fujairah Intl": {
"elevation": "121",
"ICAO": "OMFJ",
"runways": [
{
"headings": [
{
"11": {
"ILS": "",
"magHeading": "111"
},
"29": {
"ILS": "111.50",
"magHeading": "291"
}
}
],
"length": "9700"
}
],
"TACAN": ""
},
"Havadarya": {
"elevation": "52",
"ICAO": "OIKP",
"runways": [
{
"headings": [
{
"26": {
"ILS": "",
"magHeading": "257"
},
"08": {
"ILS": "108.90",
"magHeading": "077"
}
}
],
"length": "7200"
}
],
"TACAN": "47X"
},
"Jiroft": {
"elevation": "2664",
"ICAO": "OIKJ",
"runways": [
{
"headings": [
{
"13": {
"ILS": "",
"magHeading": "125"
},
"31": {
"ILS": "",
"magHeading": "305"
}
}
],
"length": "9600"
}
],
"TACAN": ""
},
"Kerman": {
"elevation": "5745",
"ICAO": "OIKK",
"runways": [
{
"headings": [
{
"16": {
"ILS": "",
"magHeading": "155"
},
"34": {
"ILS": "",
"magHeading": "335"
}
}
],
"length": "12400"
}
],
"TACAN": "97X"
},
"Khasab": {
"elevation": "102",
"ICAO": "OOKB",
"runways": [
{
"headings": [
{
"19": {
"ILS": "110.30",
"magHeading": "192"
},
"01": {
"ILS": "",
"magHeading": "012"
}
}
],
"length": "8000"
}
],
"TACAN": ""
},
"Kish Intl": {
"elevation": "115",
"ICAO": "OIBK",
"runways": [
{
"headings": [
{
"10": {
"ILS": "",
"magHeading": "094"
},
"28": {
"ILS": "",
"magHeading": "274"
}
}
],
"length": "11700"
},
{
"headings": [
{
"09R": {
"ILS": "",
"magHeading": "094"
},
"27L": {
"ILS": "",
"magHeading": "274"
}
}
],
"length": "11700"
}
],
"TACAN": "112X"
},
"Lar": {
"elevation": "2635",
"ICAO": "OISL",
"runways": [
{
"headings": [
{
"27": {
"ILS": "",
"magHeading": "268"
},
"09": {
"ILS": "",
"magHeading": "088"
}
}
],
"length": "10100"
}
],
"TACAN": ""
},
"Lavan Island": {
"elevation": "75",
"ICAO": "OIBV",
"runways": [
{
"headings": [
{
"11": {
"ILS": "",
"magHeading": "110"
},
"29": {
"ILS": "",
"magHeading": "290"
}
}
],
"length": "8600"
}
],
"TACAN": ""
},
"Liwa AFB": {
"elevation": "400",
"ICAO": "OMLW",
"runways": [
{
"headings": [
{
"13": {
"ILS": "",
"magHeading": "130"
},
"31": {
"ILS": "",
"magHeading": "310"
}
}
],
"length": "11600"
}
],
"TACAN": "121X"
},
"Qeshm Island": {
"elevation": "26",
"ICAO": "OIKQ",
"runways": [
{
"headings": [
{
"23": {
"ILS": "",
"magHeading": "227"
},
"05": {
"ILS": "",
"magHeading": "047"
}
}
],
"length": "13600"
}
],
"TACAN": ""
},
"Quasoura_airport": {
"elevation": "26",
"ICAO": "OIKQ",
"runways": [
{
"headings": [
{
"23": {
"ILS": "",
"magHeading": "227"
},
"05": {
"ILS": "",
"magHeading": "047"
}
}
],
"length": "13600"
}
],
"TACAN": ""
},
"Ras Al Khaimah Intl": {
"elevation": "330",
"ICAO": "OMRK",
"runways": [
{
"headings": [
{
"17": {
"ILS": "",
"magHeading": "163"
},
"35": {
"ILS": "",
"magHeading": "343"
}
}
],
"length": "12000"
}
],
"TACAN": ""
},
"Sas Al Nakheel": {
"elevation": "10",
"ICAO": "OMNK",
"runways": [
{
"headings": [
{
"16": {
"ILS": "",
"magHeading": "160"
},
"34": {
"ILS": "",
"magHeading": "340"
}
}
],
"length": "6000"
}
],
"TACAN": ""
},
"Sharjah Intl": {
"elevation": "26",
"ICAO": "OMSJ",
"runways": [
{
"headings": [
{
"12L": {
"ILS": "108.55",
"magHeading": "121"
},
"30R": {
"ILS": "111.95",
"magHeading": "301"
}
}
],
"length": "10500"
},
{
"headings": [
{
"12R": {
"ILS": "",
"magHeading": "121"
},
"30L": {
"ILS": "",
"magHeading": "301"
}
}
],
"length": "10500"
}
],
"TACAN": ""
},
"Shiraz Intl": {
"elevation": "4879",
"ICAO": "OISS",
"runways": [
{
"headings": [
{
"11L": {
"ILS": "",
"magHeading": "113"
},
"29R": {
"ILS": "",
"magHeading": "293"
}
}
],
"length": "14000"
},
{
"headings": [
{
"11R": {
"ILS": "",
"magHeading": "113"
},
"29L": {
"ILS": "108.50",
"magHeading": "293"
}
}
],
"length": "13800"
}
],
"TACAN": "94X"
},
"Sir Abu Nuayr": {
"elevation": "26",
"ICAO": "OMSN",
"runways": [
{
"headings": [
{
"10": {
"ILS": "",
"magHeading": "097"
},
"28": {
"ILS": "",
"magHeading": "277"
}
}
],
"length": "2300"
}
],
"TACAN": ""
},
"Sirri Island": {
"elevation": "20",
"ICAO": "OIBS",
"runways": [
{
"headings": [
{
"12": {
"ILS": "",
"magHeading": "125"
},
"30": {
"ILS": "",
"magHeading": "305"
}
}
],
"length": "7900"
}
],
"TACAN": ""
},
"Tunb Island AFB": {
"elevation": "43",
"ICAO": "OIGI",
"runways": [
{
"headings": [
{
"21": {
"ILS": "",
"magHeading": "205"
},
"03": {
"ILS": "",
"magHeading": "025"
}
}
],
"length": "6200"
}
],
"TACAN": ""
},
"Tunb Kochak": {
"elevation": "16",
"ICAO": "OITK",
"runways": [
{
"headings": [
{
"26": {
"ILS": "",
"magHeading": "259"
},
"08": {
"ILS": "",
"magHeading": "079"
}
}
],
"length": "2500"
}
],
"TACAN": "89X"
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,525 +0,0 @@
{
"airfields": {
"High Halden": {
"runways": [
{
"headings": [
{
"11": {
"magHeading": "102",
"Heading": "102",
"ILS": ""
}
},
{
"29": {
"magHeading": "282",
"Heading": "282",
"ILS": ""
}
}
],
"length": "3027"
},
{
"headings": [
{
"21": {
"magHeading": "211",
"Heading": "211",
"ILS": ""
}
},
{
"03": {
"magHeading": "31",
"Heading": "31",
"ILS": ""
}
}
],
"length": "3027"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "104"
},
"Manston": {
"runways": [
{
"headings": [
{
"10": {
"magHeading": "102",
"Heading": "102",
"ILS": ""
}
},
{
"28": {
"magHeading": "282",
"Heading": "282",
"ILS": ""
}
}
],
"length": "9114"
},
{
"headings": [
{
"FIELD N": {
"magHeading": "57",
"Heading": "57",
"ILS": ""
}
},
{
"FIELD S": {
"magHeading": "237",
"Heading": "237",
"ILS": ""
}
}
],
"length": "5261"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "160"
},
"Biggin Hill": {
"runways": [
{
"headings": [
{
"23": {
"magHeading": "227",
"Heading": "228",
"ILS": ""
}
},
{
"05": {
"magHeading": "47",
"Heading": "48",
"ILS": ""
}
}
],
"length": "2430"
},
{
"headings": [
{
"28": {
"magHeading": "287",
"Heading": "288",
"ILS": ""
}
},
{
"10": {
"magHeading": "107",
"Heading": "108",
"ILS": ""
}
}
],
"length": "2594"
},
{
"headings": [
{
"21": {
"magHeading": "208",
"Heading": "208",
"ILS": ""
}
},
{
"03": {
"magHeading": "28",
"Heading": "28",
"ILS": ""
}
}
],
"length": "4939"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "552"
},
"Headcorn": {
"runways": [
{
"headings": [
{
"10": {
"magHeading": "92",
"Heading": "93",
"ILS": ""
}
},
{
"28": {
"magHeading": "272",
"Heading": "273",
"ILS": ""
}
}
],
"length": "3680"
},
{
"headings": [
{
"01": {
"magHeading": "12",
"Heading": "12",
"ILS": ""
}
},
{
"19": {
"magHeading": "192",
"Heading": "192",
"ILS": ""
}
}
],
"length": "3680"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "114"
},
"Detling": {
"runways": [
{
"headings": [
{
"FIELD S": {
"magHeading": "227",
"Heading": "227",
"ILS": ""
}
},
{
"FIELD N": {
"magHeading": "47",
"Heading": "47",
"ILS": ""
}
}
],
"length": "3482"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "623"
},
"Eastchurch": {
"runways": [
{
"headings": [
{
"10": {
"magHeading": "97",
"Heading": "97",
"ILS": ""
}
},
{
"28": {
"magHeading": "277",
"Heading": "277",
"ILS": ""
}
}
],
"length": "2983"
},
{
"headings": [
{
"20": {
"magHeading": "203",
"Heading": "203",
"ILS": ""
}
},
{
"02": {
"magHeading": "23",
"Heading": "23",
"ILS": ""
}
}
],
"length": "2983"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "40"
},
"Abbeville Drucat": {
"runways": [
{
"headings": [
{
"20": {
"magHeading": "203",
"Heading": "203",
"ILS": ""
}
},
{
"2": {
"magHeading": "23",
"Heading": "23",
"ILS": ""
}
}
],
"length": "4877"
},
{
"headings": [
{
"27": {
"magHeading": "270",
"Heading": "270",
"ILS": ""
}
},
{
"09": {
"magHeading": "90",
"Heading": "90",
"ILS": ""
}
}
],
"length": "4877"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "183"
},
"Hawkinge": {
"runways": [
{
"headings": [
{
"FIELD S": {
"magHeading": "180",
"Heading": "180",
"ILS": ""
}
},
{
"FIELD N": {
"magHeading": "0",
"Heading": "0",
"ILS": ""
}
}
],
"length": "2336"
},
{
"headings": [
{
"FIELD W ": {
"magHeading": "218",
"Heading": "219",
"ILS": ""
}
},
{
"FIELD E": {
"magHeading": "38",
"Heading": "39",
"ILS": ""
}
}
],
"length": "2336"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "524"
},
"Lympne": {
"runways": [
{
"headings": [
{
"FIELD E": {
"magHeading": "134",
"Heading": "134",
"ILS": ""
}
},
{
"FIELD W": {
"magHeading": "314",
"Heading": "314",
"ILS": ""
}
}
],
"length": "3054"
},
{
"headings": [
{
"FIELD N": {
"magHeading": "19",
"Heading": "19",
"ILS": ""
}
},
{
"FIELD S": {
"magHeading": "199",
"Heading": "199",
"ILS": ""
}
}
],
"length": "2706"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "351"
},
"Merville Calonne": {
"runways": [
{
"headings": [
{
"32": {
"magHeading": "318",
"Heading": "319",
"ILS": ""
}
},
{
"14": {
"magHeading": "138",
"Heading": "139",
"ILS": ""
}
}
],
"length": "3899"
},
{
"headings": [
{
"26": {
"magHeading": "258",
"Heading": "258",
"ILS": ""
}
},
{
"08": {
"magHeading": "78",
"Heading": "78",
"ILS": ""
}
}
],
"length": "3899"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "52"
},
"Dunkirk Mardyck": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "80",
"Heading": "81",
"ILS": ""
}
},
{
"26": {
"magHeading": "260",
"Heading": "261",
"ILS": ""
}
}
],
"length": "1839"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "16"
},
"Saint Omer Longuenesse": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "86",
"Heading": "87",
"ILS": ""
}
},
{
"26": {
"magHeading": "266",
"Heading": "267",
"ILS": ""
}
}
],
"length": "2001"
},
{
"headings": [
{
"FIELD S": {
"magHeading": "208",
"Heading": "208",
"ILS": ""
}
},
{
"FIELD N": {
"magHeading": "28",
"Heading": "28",
"ILS": ""
}
}
],
"length": "1762"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "219"
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
cd scripts
call copy.bat
cd ..
call browserify ./src/index.ts --debug -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]

View File

@@ -0,0 +1,15 @@
cd scripts
call copy.bat
cd ..
call browserify ./src/index.ts -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]
echo D|xcopy /Y /S /E .\bin ..\build\client\bin
echo D|xcopy /Y /S /E .\public ..\build\client\public
echo D|xcopy /Y /S /E .\routes ..\build\client\routes
echo D|xcopy /Y /S /E .\views ..\build\client\views
echo F|xcopy /Y .\app.js ..\build\client\app.js
echo F|xcopy /Y .\client.js ..\build\client\client.js
echo F|xcopy /Y .\package.json ..\build\client\package.json
echo F|xcopy /Y /I .\*.vbs ..\build\client

6
client/scripts/copy.bat Normal file
View File

@@ -0,0 +1,6 @@
cd ..
echo F|xcopy /Y .\node_modules\leaflet\dist\leaflet.css .\public\stylesheets\leaflet\leaflet.css
echo F|xcopy /Y .\node_modules\leaflet-gesture-handling\dist\leaflet-gesture-handling.css .\public\stylesheets\leaflet\leaflet-gesture-handling.css
echo F|xcopy /Y .\node_modules\leaflet.nauticscale\dist\leaflet.nauticscale.js .\public\javascripts\leaflet.nauticscale.js
echo F|xcopy /Y .\node_modules\leaflet-path-drag\dist\L.Path.Drag.js .\public\javascripts\L.Path.Drag.js
cd scripts

View File

@@ -0,0 +1 @@
concurrently --kill-others "call ./scripts/demo.bat" "npm run watch" "nodemon --ignore ./public/databases/ ./bin/www -- --config ../moc_dcs/Config/olympus.json"

1
client/scripts/debug.bat Normal file
View File

@@ -0,0 +1 @@
concurrently --kill-others "npm run watch" "nodemon --ignore ./public/databases/ ./bin/www -- --config ../moc_dcs/Config/olympus.json"

View File

@@ -0,0 +1 @@
tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile ./@types/olympus/index.d.ts

1
client/scripts/watch.bat Normal file
View File

@@ -0,0 +1 @@
watchify ./src/index.ts --debug -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]

View File

@@ -1 +1 @@
CreateObject("Wscript.Shell").Run "npm run start -- --config """&WScript.Arguments(0)&"""", 1 CreateObject("Wscript.Shell").Run "npm run server -- --config """&WScript.Arguments(0)&"""", 1

View File

@@ -0,0 +1,78 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="./stylesheets/style.css">
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;600;700;800&display=swap" />
<meta charset="UTF-8">
<title>DCS Olympus Manager {{OLYMPUS_VERSION_NUMBER}}</title>
</head>
<body>
<div id="title-bar">
<div>DCS Olympus manager</div>
<button class="title-bar-button minimize"></button>
<button class="title-bar-button restore hide"></button>
<button class="title-bar-button maximize"></button>
<button class="title-bar-button close"></button>
</div>
<div id="header">
<img class="main-icon" src="../img/OlympusLogoFinal_4k.png" \>
<div class="version">
<div> DCS Olympus Manager</div>
<div class="accent-green">{{OLYMPUS_VERSION_NUMBER}}</div>
</div>
<div class="link first" data-link="https://github.com/Pax1601/DCSOlympus">GitHub</div>
<div class="link" data-link="https://discord.gg/pCfCykAdrw">Discord</div>
</div>
<div id="loader" class="manager-page hide">
Loading, please wait...
</div>
<div id="grayout" class="hide"></div>
<div id="popup" class="hide">
<img src="./icons/triangle-exclamation-solid.svg" class="error">
<img src="./icons/circle-question-regular.svg" class="confirm">
<img src="./icons/spinner-solid.svg" class="wait">
<div class="content">
</div>
<div class="footer">
<div class="button accept-popup"> Accept </div>
<div class="button close-popup"> Close </div>
</div>
</div>
</body>
<script>
document.querySelector('.minimize').addEventListener('click', () => {
window.ipcRender.send('window:minimize');
});
document.querySelector('.restore').addEventListener('click', () => {
window.ipcRender.send('window:restore');
});
document.querySelector('.maximize').addEventListener('click', () => {
window.ipcRender.send('window:maximize');
});
document.querySelector('.close').addEventListener('click', () => {
window.ipcRender.send('window:close');
});
window.ipcRender.receive('event:maximized', () => {
document.querySelector('.restore').classList.remove("hide");
document.querySelector('.maximize').classList.add("hide");
})
window.ipcRender.receive('event:unmaximized', () => {
document.querySelector('.restore').classList.add("hide");
document.querySelector('.maximize').classList.remove("hide");
})
</script>
</html>

View File

@@ -0,0 +1,69 @@
const electronApp = require('electron').app;
const electronBrowserWindow = require('electron').BrowserWindow;
const electronIpcMain = require('electron').ipcMain;
const path = require('path');
let window;
/* Add the System32 folder to the environment for the shortcuts creation to work properly */
process.env['PATH'] = process.env['PATH'] + "%WINDIR%\\System32;"
function createWindow() {
const window = new electronBrowserWindow({
width: 1500,
height: 850,
frame: false,
resizable: true,
maximizable: true,
webPreferences: {
contextIsolation: true,
preload: path.join(__dirname, "javascripts", 'preload.js'),
nodeIntegration: true,
},
icon: "./../img/olympus_configurator.ico"
});
window.loadFile('index.html').then(() => { window.show(); });
window.on("maximize", () => {
window.webContents.send('event:maximized')
})
window.on("unmaximize", () => {
window.webContents.send('event:unmaximized')
})
return window;
}
electronApp.on('ready', () => {
window = createWindow();
});
electronApp.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
electronApp.quit();
}
});
electronApp.on('activate', () => {
if (electronBrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
electronIpcMain.on('window:minimize', () => {
window.minimize();
})
electronIpcMain.on('window:maximize', () => {
window.maximize();
})
electronIpcMain.on('window:restore', () => {
window.restore();
})
electronIpcMain.on('window:close', () => {
window.close();
})

View File

@@ -0,0 +1 @@
CreateObject("Wscript.Shell").Run "npm start", 0

View File

@@ -0,0 +1,26 @@
{
"name": "dcsolympus_manager",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"start": "electron .",
"build-release": "call ./scripts/build-release.bat"
},
"author": "",
"license": "ISC",
"dependencies": {
"adm-zip": "^0.5.10",
"create-desktop-shortcuts": "^1.10.1",
"dir-compare": "^4.2.0",
"ejs": "^3.1.9",
"electron": "^28.0.0",
"find-process": "^1.4.7",
"follow-redirects": "^1.15.4",
"octokit": "^3.1.2",
"portfinder": "^1.0.32",
"regedit": "^5.1.2",
"sha256": "^0.2.0",
"win-version-info": "^6.0.1"
}
}

View File

@@ -4,7 +4,8 @@
"description": "", "description": "",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
"start": "electron ." "start": "electron .",
"build-release": "call ./scripts/build-release.bat"
}, },
"author": "", "author": "",
"license": "ISC", "license": "ISC",

View File

@@ -0,0 +1,6 @@
echo D|xcopy /Y /S /E .\icons ..\build\manager\icons
echo D|xcopy /Y /S /E .\ejs ..\build\manager\ejs
echo D|xcopy /Y /S /E .\javascripts ..\build\manager\javascripts
echo D|xcopy /Y /S /E .\stylesheets ..\build\manager\stylesheets
echo F|xcopy /Y /I .\*.* .\build\manager

View File

@@ -1,19 +0,0 @@
{
"server": {
"address": "localhost",
"port": 3001
},
"authentication": {
"gameMasterPassword": "4b8823ed9e5c2392ab4a791913bb8ce41956ea32e308b760eefb97536746dd33",
"blueCommanderPassword": "b0ea4230c1558c5313165eda1bdb7fced008ca7f2ca6b823fb4d26292f309098",
"redCommanderPassword": "302bcbaf2a3fdcf175b689bf102d6cdf9328f68a13d4096101bba806482bfed9"
},
"client": {
"port": 3000,
"elevationProvider": {
"provider": "https://srtm.fasma.org/{lat}{lng}.SRTMGL3S.hgt.zip",
"username": null,
"password": null
}
}
}

View File

@@ -1,466 +0,0 @@
{
"airfields": {
"Anapa-Vityazevo": {
"ICAO": "URKA",
"elevation": "141",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "9000"
}
]
},
"Batumi": {
"ICAO": "UGSB",
"elevation": "33",
"TACAN": "16X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "119",
"ILS": ""
},
"31": {
"magHeading": "299",
"ILS": ""
}
}
],
"length": "7500"
}
]
},
"Beslan": {
"ICAO": "URMO",
"elevation": "1722",
"TACAN": "",
"runways": [
{
"headings": [
{
"10": {
"magHeading": "086",
"ILS": "110.50"
},
"28": {
"magHeading": "266",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Gelendzhik": {
"ICAO": "URKG",
"elevation": "72",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "212",
"ILS": ""
},
"01": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Gudauta": {
"ICAO": "UG23",
"elevation": "69",
"TACAN": "",
"runways": [
{
"headings": [
{
"15": {
"magHeading": "144",
"ILS": ""
},
"33": {
"magHeading": "324",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Kobuleti": {
"ICAO": "UG5X",
"elevation": "69",
"TACAN": "67X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "243",
"ILS": ""
},
"07": {
"magHeading": "063",
"ILS": "111.50"
}
}
],
"length": "7400"
}
]
},
"Krasnodar-Center": {
"ICAO": "URKL",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "259",
"ILS": ""
},
"09": {
"magHeading": "079",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Krasnodar-Pashkovsky": {
"ICAO": "URKK",
"elevation": "112",
"TACAN": "",
"runways": [
{
"headings": [
{
"23": {
"magHeading": "219",
"ILS": ""
},
"05": {
"magHeading": "039",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Krymsk": {
"ICAO": "URKW",
"elevation": "66",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "212",
"ILS": ""
},
"04": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "8000"
}
]
},
"Kutaisi": {
"ICAO": "UGKO",
"elevation": "148",
"TACAN": "44X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "247",
"ILS": ""
},
"07": {
"magHeading": "067'",
"ILS": "109.75"
}
}
],
"length": "7700"
}
]
},
"Maykop-Khanskaya": {
"ICAO": "URKH",
"elevation": "591",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "211",
"ILS": ""
},
"04": {
"magHeading": "031",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Mineralnye Vody": {
"ICAO": "URMM",
"elevation": "1050",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "108",
"ILS": "111.70"
},
"30": {
"magHeading": "288",
"ILS": "109.30"
}
}
],
"length": "12700"
}
]
},
"Mozdok": {
"ICAO": "XRMF",
"elevation": "507",
"TACAN": "",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "255",
"ILS": ""
},
"08": {
"magHeading": "075",
"ILS": ""
}
}
],
"length": "9400"
}
]
},
"Nalchik": {
"ICAO": "URMN",
"elevation": "1411",
"TACAN": "",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "228",
"ILS": "110.50"
},
"06": {
"magHeading": "048'",
"ILS": ""
}
}
],
"length": "7000"
}
]
},
"Novorossiysk": {
"ICAO": "URKN",
"elevation": "131",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Senaki-Kolkhi": {
"ICAO": "UGKS",
"elevation": "43",
"TACAN": "31X",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "268",
"ILS": ""
},
"09": {
"magHeading": "088'",
"ILS": "108.90"
}
}
],
"length": "7400"
}
]
},
"Sochi-Adler": {
"ICAO": "URSS",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "235",
"ILS": ""
},
"06": {
"magHeading": "055",
"ILS": "111.10"
}
}
],
"length": "9700"
}
]
},
"Tbilisi-Lochini": {
"ICAO": "UGTB",
"elevation": "1574",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "121",
"ILS": "110.30"
},
"31": {
"magHeading": "301",
"ILS": "108.90"
}
}
],
"length": "9300"
}
]
},
"Soganlug": {
"ICAO": "UG24",
"elevation": "1500",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"14": {
"magHeading": "125",
"ILS": ""
},
"32": {
"magHeading": "305",
"ILS": ""
}
}
],
"length": "6500"
}
]
},
"Sukhumi-Babushara": {
"ICAO": "UGSS",
"elevation": "43",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "109",
"ILS": ""
},
"30": {
"magHeading": "289",
"ILS": ""
}
}
],
"length": "11400"
}
]
},
"Vaziani": {
"ICAO": "UG27",
"elevation": "1524",
"TACAN": "22X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "129",
"ILS": "108.75"
},
"31": {
"magHeading": "309",
"ILS": "108.75"
}
}
],
"length": "7700"
}
]
}
}
}

View File

@@ -1,838 +0,0 @@
{
"airfields": {
"Aerodromo De Tolhuin": {
"runways": [
{
"headings": [
{
"07": {
"magHeading": "66",
"Heading": "77",
"ILS": ""
}
},
{
"25": {
"magHeading": "246",
"Heading": "257",
"ILS": ""
}
}
],
"length": "3297"
}
],
"TACAN": "",
"ICAO": "SAWL",
"elevation": "355"
},
"Almirante Schroeders": {
"runways": [
{
"headings": [
{
"12": {
"magHeading": "114",
"Heading": "127",
"ILS": ""
}
},
{
"30": {
"magHeading": "294",
"Heading": "307",
"ILS": ""
}
}
],
"length": "4628"
},
{
"headings": [
{
"22": {
"magHeading": "208",
"Heading": "221",
"ILS": ""
}
},
{
"04": {
"magHeading": "28",
"Heading": "41",
"ILS": ""
}
}
],
"length": "3931"
}
],
"TACAN": "",
"ICAO": "SCDW",
"elevation": "160"
},
"Rio Chico": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "73",
"Heading": "84",
"ILS": ""
}
},
{
"26": {
"magHeading": "253",
"Heading": "264",
"ILS": ""
}
}
],
"length": "3239"
}
],
"TACAN": "",
"ICAO": "RGR",
"elevation": "74"
},
"Puerto Natales": {
"runways": [
{
"headings": [
{
"28": {
"magHeading": "274",
"Heading": "287",
"ILS": ""
}
},
{
"10": {
"magHeading": "94",
"Heading": "107",
"ILS": ""
}
}
],
"length": "5281"
}
],
"TACAN": "",
"ICAO": "SCNT",
"elevation": "216"
},
"Mount Pleasant": {
"runways": [
{
"headings": [
{
"10": {
"magHeading": "101",
"Heading": "104",
"ILS": ""
}
},
{
"28": {
"magHeading": "281",
"Heading": "284",
"ILS": "111.90"
}
}
],
"length": "6763"
},
{
"headings": [
{
"23": {
"magHeading": "231",
"Heading": "234",
"ILS": ""
}
},
{
"05": {
"magHeading": "51",
"Heading": "54",
"ILS": ""
}
}
],
"length": "6763"
}
],
"TACAN": "59X",
"ICAO": "EGYP",
"elevation": "243"
},
"Aerodromo O'Higgins": {
"runways": [
{
"headings": [
{
"34": {
"magHeading": "326",
"Heading": "338",
"ILS": ""
}
},
{
"16": {
"magHeading": "146",
"Heading": "158",
"ILS": ""
}
}
],
"length": "3968"
}
],
"TACAN": "",
"ICAO": "SCOH",
"elevation": "900"
},
"Ushuaia Helo Port": {
"runways": [
{
"headings": [
{
"16": {
"magHeading": "157",
"Heading": "170",
"ILS": ""
}
},
{
"34": {
"magHeading": "337",
"Heading": "350",
"ILS": ""
}
}
],
"length": "5076"
}
],
"TACAN": "",
"ICAO": "SAWO",
"elevation": "42"
},
"Franco Bianco": {
"runways": [
{
"headings": [
{
"07": {
"magHeading": "65",
"Heading": "77",
"ILS": ""
}
},
{
"25": {
"magHeading": "245",
"Heading": "257",
"ILS": ""
}
}
],
"length": "5008"
},
{
"headings": [
{
"20": {
"magHeading": "185",
"Heading": "196",
"ILS": ""
}
},
{
"02": {
"magHeading": "5",
"Heading": "16",
"ILS": ""
}
}
],
"length": "5008"
}
],
"TACAN": "",
"ICAO": "SCSB",
"elevation": "104"
},
"Pampa Guanaco": {
"runways": [
{
"headings": [
{
"26": {
"magHeading": "248",
"Heading": "260",
"ILS": ""
}
},
{
"08": {
"magHeading": "68",
"Heading": "80",
"ILS": ""
}
}
],
"length": "2349"
}
],
"TACAN": "",
"ICAO": "SCBI",
"elevation": "519"
},
"Puerto Santa Cruz": {
"runways": [
{
"headings": [
{
"07": {
"magHeading": "81",
"Heading": "69",
"ILS": ""
}
},
{
"25": {
"magHeading": "261",
"Heading": "249",
"ILS": ""
}
}
],
"length": "5638"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "365"
},
"San Carlos FOB": {
"runways": [
{
"headings": [
{
"11": {
"magHeading": "285",
"Heading": "288",
"ILS": ""
}
},
{
"29": {
"magHeading": "105",
"Heading": "108",
"ILS": ""
}
}
],
"length": "1079"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "65"
},
"Goose Green": {
"runways": [
{
"headings": [
{
"14": {
"magHeading": "135",
"Heading": "139",
"ILS": ""
}
},
{
"32": {
"magHeading": "315",
"Heading": "319",
"ILS": ""
}
}
],
"length": "1976"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "57"
},
"Rio Turbio": {
"runways": [
{
"headings": [
{
"24": {
"magHeading": "225",
"Heading": "239",
"ILS": ""
}
},
{
"06": {
"magHeading": "45",
"Heading": "59",
"ILS": ""
}
}
],
"length": "5057"
}
],
"TACAN": "",
"ICAO": "SAWT",
"elevation": "895"
},
"Porvenir Airfield": {
"runways": [
{
"headings": [
{
"09": {
"magHeading": "87",
"Heading": "99",
"ILS": ""
}
},
{
"27": {
"magHeading": "266",
"Heading": "279",
"ILS": ""
}
}
],
"length": "7821"
},
{
"headings": [
{
"21": {
"magHeading": "203",
"Heading": "216",
"ILS": ""
}
},
{
"03": {
"magHeading": "23",
"Heading": "36",
"ILS": ""
}
}
],
"length": "3220"
}
],
"TACAN": "",
"ICAO": "SCFM",
"elevation": "56"
},
"Punta Arenas": {
"runways": [
{
"headings": [
{
"30": {
"magHeading": "295",
"Heading": "308",
"ILS": ""
}
},
{
"12": {
"magHeading": "140",
"Heading": "128",
"ILS": ""
}
}
],
"length": "6834"
},
{
"headings": [
{
"25": {
"magHeading": "270",
"Heading": "258",
"ILS": ""
}
},
{
"07": {
"magHeading": "90",
"Heading": "78",
"ILS": ""
}
}
],
"length": "9360"
},
{
"headings": [
{
"19": {
"magHeading": "210",
"Heading": "198",
"ILS": ""
}
}
],
"length": "5160"
}
],
"TACAN": "",
"ICAO": "SCCI",
"elevation": "122"
},
"Gull Point": {
"runways": [
{
"headings": [
{
"15": {
"magHeading": "149",
"Heading": "152",
"ILS": ""
}
},
{
"33": {
"magHeading": "329",
"Heading": "332",
"ILS": ""
}
}
],
"length": "1521"
},
{
"headings": [
{
"23": {
"magHeading": "212",
"Heading": "216",
"ILS": ""
}
},
{
"05": {
"magHeading": "33",
"Heading": "36",
"ILS": ""
}
}
],
"length": "1352"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "4"
},
"Caleta Tortel Airport": {
"runways": [
{
"headings": [
{
"04": {
"magHeading": "235",
"Heading": "223",
"ILS": ""
}
},
{
"22": {
"magHeading": "55",
"Heading": "43",
"ILS": ""
}
}
],
"length": "1770"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "3"
},
"Comandante Luis Piedrabuena": {
"runways": [
{
"headings": [
{
"26": {
"magHeading": "272",
"Heading": "260",
"ILS": ""
}
},
{
"08": {
"magHeading": "92",
"Heading": "80",
"ILS": ""
}
}
],
"length": "3505"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "69"
},
"Hipico Flying Club": {
"runways": [
{
"headings": [
{
"02": {
"magHeading": "1",
"Heading": "11",
"ILS": ""
}
},
{
"19": {
"magHeading": "180",
"Heading": "191",
"ILS": ""
}
}
],
"length": "2304"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "934"
},
"Cullen Airport": {
"runways": [],
"TACAN": "",
"ICAO": "",
"elevation": "0"
},
"Aeropuerto de Gobernador Gregores": {
"runways": [
{
"headings": [
{
"28": {
"magHeading": "263",
"Heading": "274",
"ILS": ""
}
},
{
"10": {
"magHeading": "84",
"Heading": "94",
"ILS": ""
}
}
],
"length": "8672"
}
],
"TACAN": "",
"ICAO": "SAWR",
"elevation": "1168"
},
"San Julian": {
"runways": [
{
"headings": [
{
"25": {
"magHeading": "242",
"Heading": "251",
"ILS": ""
}
},
{
"07": {
"magHeading": "62",
"Heading": "71",
"ILS": ""
}
}
],
"length": "6218"
}
],
"TACAN": "",
"ICAO": "SAWJ",
"elevation": "144"
},
"Puerto Williams": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "70",
"Heading": "82",
"ILS": ""
}
},
{
"26": {
"magHeading": "250",
"Heading": "262",
"ILS": ""
}
}
],
"length": "4312"
}
],
"TACAN": "",
"ICAO": "SCGZ",
"elevation": "83"
},
"Ushuaia": {
"runways": [
{
"headings": [
{
"07": {
"magHeading": "65",
"Heading": "77",
"ILS": ""
}
},
{
"25": {
"magHeading": "245",
"Heading": "257",
"ILS": "111.30"
}
}
],
"length": "7631"
}
],
"TACAN": "",
"ICAO": "SAWH",
"elevation": "60"
},
"Rio Gallegos": {
"runways": [
{
"headings": [
{
"25": {
"magHeading": "245",
"Heading": "256",
"ILS": "110.30"
}
},
{
"07": {
"magHeading": "65",
"Heading": "76",
"ILS": ""
}
}
],
"length": "10585"
}
],
"TACAN": "",
"ICAO": "SAWG",
"elevation": "50"
},
"Rio Grande": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "68",
"Heading": "79",
"ILS": ""
}
},
{
"26": {
"magHeading": "247",
"Heading": "259",
"ILS": "109.50"
}
}
],
"length": "5922"
}
],
"TACAN": "31X",
"ICAO": "SAWE",
"elevation": "60"
},
"Port Stanley": {
"runways": [
{
"headings": [
{
"27": {
"magHeading": "266",
"Heading": "269",
"ILS": ""
}
},
{
"09": {
"magHeading": "101",
"Heading": "86",
"ILS": ""
}
}
],
"length": "4388"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "67"
},
"El Calafate": {
"runways": [
{
"headings": [
{
"25": {
"magHeading": "241",
"Heading": "253",
"ILS": "108.90"
}
},
{
"07": {
"magHeading": "61",
"Heading": "73",
"ILS": ""
}
}
],
"length": "7579"
}
],
"TACAN": "",
"ICAO": "SAWC",
"elevation": "654"
}
}
}

View File

@@ -1,466 +0,0 @@
{
"airfields": {
"Anapa-Vityazevo": {
"ICAO": "URKA",
"elevation": "141",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "9000"
}
]
},
"Batumi": {
"ICAO": "UGSB",
"elevation": "33",
"TACAN": "16X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "119",
"ILS": ""
},
"31": {
"magHeading": "299",
"ILS": ""
}
}
],
"length": "7500"
}
]
},
"Beslan": {
"ICAO": "URMO",
"elevation": "1722",
"TACAN": "",
"runways": [
{
"headings": [
{
"10": {
"magHeading": "086",
"ILS": "110.50"
},
"28": {
"magHeading": "266",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Gelendzhik": {
"ICAO": "URKG",
"elevation": "72",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "212",
"ILS": ""
},
"01": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Gudauta": {
"ICAO": "UG23",
"elevation": "69",
"TACAN": "",
"runways": [
{
"headings": [
{
"15": {
"magHeading": "144",
"ILS": ""
},
"33": {
"magHeading": "324",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Kobuleti": {
"ICAO": "UG5X",
"elevation": "69",
"TACAN": "67X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "243",
"ILS": ""
},
"07": {
"magHeading": "063",
"ILS": "111.50"
}
}
],
"length": "7400"
}
]
},
"Krasnodar-Center": {
"ICAO": "URKL",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "259",
"ILS": ""
},
"09": {
"magHeading": "079",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Krasnodar-Pashkovsky": {
"ICAO": "URKK",
"elevation": "112",
"TACAN": "",
"runways": [
{
"headings": [
{
"23": {
"magHeading": "219",
"ILS": ""
},
"05": {
"magHeading": "039",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Krymsk": {
"ICAO": "URKW",
"elevation": "66",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "212",
"ILS": ""
},
"04": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "8000"
}
]
},
"Kutaisi": {
"ICAO": "UGKO",
"elevation": "148",
"TACAN": "44X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "247",
"ILS": ""
},
"07": {
"magHeading": "067'",
"ILS": "109.75"
}
}
],
"length": "7700"
}
]
},
"Maykop-Khanskaya": {
"ICAO": "URKH",
"elevation": "591",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "211",
"ILS": ""
},
"04": {
"magHeading": "031",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Mineralnye Vody": {
"ICAO": "URMM",
"elevation": "1050",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "108",
"ILS": "111.70"
},
"30": {
"magHeading": "288",
"ILS": "109.30"
}
}
],
"length": "12700"
}
]
},
"Mozdok": {
"ICAO": "XRMF",
"elevation": "507",
"TACAN": "",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "255",
"ILS": ""
},
"08": {
"magHeading": "075",
"ILS": ""
}
}
],
"length": "9400"
}
]
},
"Nalchik": {
"ICAO": "URMN",
"elevation": "1411",
"TACAN": "",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "228",
"ILS": "110.50"
},
"06": {
"magHeading": "048'",
"ILS": ""
}
}
],
"length": "7000"
}
]
},
"Novorossiysk": {
"ICAO": "URKN",
"elevation": "131",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Senaki-Kolkhi": {
"ICAO": "UGKS",
"elevation": "43",
"TACAN": "31X",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "268",
"ILS": ""
},
"09": {
"magHeading": "088'",
"ILS": "108.90"
}
}
],
"length": "7400"
}
]
},
"Sochi-Adler": {
"ICAO": "URSS",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "235",
"ILS": ""
},
"06": {
"magHeading": "055",
"ILS": "111.10"
}
}
],
"length": "9700"
}
]
},
"Tbilisi-Lochini": {
"ICAO": "UGTB",
"elevation": "1574",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "121",
"ILS": "110.30"
},
"31": {
"magHeading": "301",
"ILS": "108.90"
}
}
],
"length": "9300"
}
]
},
"Soganlug": {
"ICAO": "UG24",
"elevation": "1500",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"14": {
"magHeading": "125",
"ILS": ""
},
"32": {
"magHeading": "305",
"ILS": ""
}
}
],
"length": "6500"
}
]
},
"Sukhumi-Babushara": {
"ICAO": "UGSS",
"elevation": "43",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "109",
"ILS": ""
},
"30": {
"magHeading": "289",
"ILS": ""
}
}
],
"length": "11400"
}
]
},
"Vaziani": {
"ICAO": "UG27",
"elevation": "1524",
"TACAN": "22X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "129",
"ILS": "108.75"
},
"31": {
"magHeading": "309",
"ILS": "108.75"
}
}
],
"length": "7700"
}
]
}
}
}

View File

@@ -1,558 +0,0 @@
{
"airfields": {
"Beatty": {
"ICAO": "KBTY",
"elevation": "3173",
"TACAN": "94X",
"runways": [
{
"headings": [
{
"16": {
"magHeading": "168",
"ILS": ""
},
"34": {
"magHeading": "348",
"ILS": ""
}
}
],
"length": "5500"
}
]
},
"Boulder City": {
"ICAO": "KBVU",
"elevation": "2205",
"TACAN": "114X",
"runways": [
{
"headings": [
{
"15": {
"magHeading": "153",
"ILS": ""
},
"33": {
"magHeading": "333",
"ILS": ""
}
}
],
"length": "3700"
},
{
"headings": [
{
"27": {
"magHeading": "267",
"ILS": ""
},
"09": {
"magHeading": "087",
"ILS": ""
}
}
],
"length": "4400"
}
]
},
"Creech": {
"ICAO": "KINS",
"elevation": "3126",
"TACAN": "87X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "134",
"ILS": ""
},
"31": {
"magHeading": "314",
"ILS": ""
}
}
],
"length": "4700"
},
{
"headings": [
{
"26": {
"magHeading": "260",
"ILS": ""
},
"08": {
"magHeading": "080",
"ILS": "108.70"
}
}
],
"length": "8700"
}
]
},
"Echo Bay": {
"ICAO": "0L9",
"elevation": "1549",
"TACAN": "",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "246",
"ILS": ""
},
"06": {
"magHeading": "066",
"ILS": ""
}
}
],
"length": "3300"
}
]
},
"Groom Lake": {
"ICAO": "KXTA",
"elevation": "4495",
"TACAN": "18X",
"runways": [
{
"headings": [
{
"14L": {
"magHeading": "145",
"ILS": ""
},
"32R": {
"magHeading": "325",
"ILS": "109.30"
}
}
],
"length": "11700"
},
{
"headings": [
{
"14R (CLOSED)": {
"magHeading": "145",
"ILS": ""
},
"32L (CLOSED)": {
"magHeading": "325",
"ILS": ""
}
}
],
"length": "17800"
}
]
},
"Henderson Executive": {
"ICAO": "KHND",
"elevation": "2493",
"TACAN": "",
"runways": [
{
"headings": [
{
"17L": {
"magHeading": "168",
"ILS": ""
},
"35R": {
"magHeading": "348",
"ILS": ""
}
}
],
"length": "4600"
},
{
"headings": [
{
"17R": {
"magHeading": "168",
"ILS": ""
},
"35L": {
"magHeading": "348",
"ILS": ""
}
}
],
"length": "6100"
}
]
},
"Jean": {
"ICAO": "",
"elevation": "2825",
"TACAN": "",
"runways": [
{
"headings": [
{
"02L": {
"magHeading": "020",
"ILS": ""
},
"20R": {
"magHeading": "200",
"ILS": ""
}
}
],
"length": "4500"
},
{
"headings": [
{
"02R": {
"magHeading": "020",
"ILS": ""
},
"20L": {
"magHeading": "200",
"ILS": ""
}
}
],
"length": "3600"
}
]
},
"McCarran International": {
"ICAO": "KLAS",
"elevation": "2178",
"TACAN": "116X",
"runways": [
{
"headings": [
{
"01L": {
"magHeading": "013",
"ILS": ""
},
"19R": {
"magHeading": "193",
"ILS": ""
}
}
],
"length": "8000"
},
{
"headings": [
{
"01R": {
"magHeading": "013",
"ILS": ""
},
"19L": {
"magHeading": "193",
"ILS": ""
}
}
],
"length": "8000"
},
{
"headings": [
{
"07L": {
"magHeading": "078",
"ILS": ""
},
"25R": {
"magHeading": "258",
"ILS": "110.30"
}
}
],
"length": "10600"
},
{
"headings": [
{
"07R": {
"magHeading": "078",
"ILS": ""
},
"25L": {
"magHeading": "258",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Laughlin": {
"ICAO": "KIFP",
"elevation": "673",
"TACAN": "",
"runways": [
{
"headings": [
{
"16": {
"magHeading": "164",
"ILS": ""
},
"34": {
"magHeading": "344",
"ILS": ""
}
}
],
"length": "7100"
}
]
},
"Lincoln County": {
"ICAO": "",
"elevation": "4816",
"TACAN": "",
"runways": [
{
"headings": [
{
"17": {
"magHeading": "170",
"ILS": ""
},
"35": {
"magHeading": "350",
"ILS": ""
}
}
],
"length": "4500"
}
]
},
"Mesquite": {
"ICAO": "67L",
"elevation": "1859",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "197",
"ILS": ""
},
"01": {
"magHeading": "017",
"ILS": ""
}
}
],
"length": "5000"
}
]
},
"Mina": {
"ICAO": "",
"elevation": "4560",
"TACAN": "",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "140",
"ILS": ""
},
"31": {
"magHeading": "320",
"ILS": ""
}
}
],
"length": "4100"
}
]
},
"Nellis": {
"ICAO": "KLSV",
"elevation": "1849",
"TACAN": "12X",
"runways": [
{
"headings": [
{
"03L": {
"magHeading": "029",
"ILS": ""
},
"21R": {
"magHeading": "209",
"ILS": ""
}
}
],
"length": "9800"
},
{
"headings": [
{
"03R": {
"magHeading": "029",
"ILS": ""
},
"21L": {
"magHeading": "209",
"ILS": "109.10"
}
}
],
"length": "9800"
}
]
},
"North Las Vegas": {
"ICAO": "KVGT",
"elevation": "2228",
"TACAN": "",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "256",
"ILS": ""
},
"07": {
"magHeading": "076",
"ILS": ""
}
}
],
"length": "4900"
},
{
"headings": [
{
"12L": {
"magHeading": "122",
"ILS": "110.70"
},
"30R": {
"magHeading": "302",
"ILS": "109.10"
}
}
],
"length": "3800"
},
{
"headings": [
{
"12R": {
"magHeading": "122",
"ILS": ""
},
"30L": {
"magHeading": "302",
"ILS": ""
}
}
],
"length": "4600"
}
]
},
"Pahute Mesa": {
"ICAO": "",
"elevation": "5059",
"TACAN": "",
"runways": [
{
"headings": [
{
"18": {
"magHeading": "182",
"ILS": ""
},
"36": {
"magHeading": "002",
"ILS": ""
}
}
],
"length": "5500"
}
]
},
"Tonopah": {
"ICAO": "KTPH",
"elevation": "5390",
"TACAN": "119X",
"runways": [
{
"headings": [
{
"11": {
"magHeading": "113",
"ILS": ""
},
"29": {
"magHeading": "293",
"ILS": ""
}
}
],
"length": "5600"
},
{
"headings": [
{
"15": {
"magHeading": "153",
"ILS": ""
},
"33": {
"magHeading": "333",
"ILS": ""
}
}
],
"length": "6800"
}
]
},
"Tonopah Test Range": {
"ICAO": "KTNX",
"elevation": "5535",
"TACAN": "77X",
"runways": [
{
"headings": [
{
"14": {
"magHeading": "145",
"ILS": "108.30"
},
"32": {
"magHeading": "325",
"ILS": "111.70"
}
}
],
"length": "11700"
}
]
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,769 +0,0 @@
{
"airfields": {
"Abu Dhabi Intl": {
"elevation": "92",
"ICAO": "OMAA",
"runways": [
{
"headings": [
{
"13L": {
"ILS": "",
"magHeading": "127"
},
"31R": {
"ILS": "",
"magHeading": "307"
}
}
],
"length": "13100"
},
{
"headings": [
{
"13R": {
"ILS": "",
"magHeading": "127"
},
"31L": {
"ILS": "",
"magHeading": "307"
}
}
],
"length": "13200"
}
],
"TACAN": ""
},
"Abu Musa Island": {
"elevation": "16",
"ICAO": "OIBA",
"runways": [
{
"headings": [
{
"26": {
"ILS": "",
"magHeading": "262"
},
"08": {
"ILS": "",
"magHeading": "082"
}
}
],
"length": "7800"
}
],
"TACAN": ""
},
"Al Ain Intl": {
"elevation": "814",
"ICAO": "OMAL",
"runways": [
{
"headings": [
{
"19": {
"ILS": "",
"magHeading": "186"
},
"01": {
"ILS": "",
"magHeading": "006"
}
}
],
"length": "12800"
}
],
"TACAN": ""
},
"Al Dhafra AFB": {
"elevation": "52",
"ICAO": "OMAM",
"runways": [
{
"headings": [
{
"13L": {
"ILS": "111.10",
"magHeading": "126"
},
"31R": {
"ILS": "109.10",
"magHeading": "306"
}
}
],
"length": "11700"
},
{
"headings": [
{
"13R": {
"ILS": "108.70",
"magHeading": "16"
},
"31L": {
"ILS": "108.70",
"magHeading": "306"
}
}
],
"length": "11700"
}
],
"TACAN": "96X"
},
"Al Maktoum Intl": {
"elevation": "125",
"ICAO": "OMDW",
"runways": [
{
"headings": [
{
"12": {
"ILS": "111.75",
"magHeading": "120"
},
"30": {
"ILS": "109.75",
"magHeading": "300"
}
}
],
"length": "14400"
}
],
"TACAN": ""
},
"Al Minhad AFB": {
"elevation": "190",
"ICAO": "OMDM",
"runways": [
{
"headings": [
{
"27": {
"ILS": "110.75",
"magHeading": "268"
},
"09": {
"ILS": "110.70",
"magHeading": "088"
}
}
],
"length": "12600"
}
],
"TACAN": "99X"
},
"Al-Bateen": {
"elevation": "12",
"ICAO": "OMAD",
"runways": [
{
"headings": [
{
"13": {
"ILS": "",
"magHeading": "127"
},
"31": {
"ILS": "",
"magHeading": "307"
}
}
],
"length": "7000"
}
],
"TACAN": ""
},
"Bandar Abbas Intl": {
"elevation": "29",
"ICAO": "OIKB",
"runways": [
{
"headings": [
{
"03L": {
"ILS": "",
"magHeading": "25"
},
"21R": {
"ILS": "",
"magHeading": "205"
}
}
],
"length": "11000"
},
{
"headings": [
{
"03R": {
"ILS": "",
"magHeading": "25"
},
"21L": {
"ILS": "109.90",
"magHeading": "205"
}
}
],
"length": "11700"
}
],
"TACAN": "78X"
},
"Bandar Lengeh": {
"elevation": "82",
"ICAO": "OIBL",
"runways": [
{
"headings": [
{
"26": {
"ILS": "",
"magHeading": "259"
},
"08": {
"ILS": "",
"magHeading": "079"
}
}
],
"length": "7900"
}
],
"TACAN": ""
},
"Bandar-e-Jask": {
"elevation": "26",
"ICAO": "OIZJ",
"runways": [
{
"headings": [
{
"24": {
"ILS": "",
"magHeading": "239"
},
"06": {
"ILS": "",
"magHeading": "059"
}
}
],
"length": "7300"
}
],
"TACAN": "110X"
},
"Dubai Intl": {
"elevation": "16",
"ICAO": "OMDB",
"runways": [
{
"headings": [
{
"12L": {
"ILS": "110.10",
"magHeading": "120"
},
"30R": {
"ILS": "110.90",
"magHeading": "300"
}
}
],
"length": "11400"
},
{
"headings": [
{
"12R": {
"ILS": "109.50",
"magHeading": "120"
},
"30L": {
"ILS": "111.30",
"magHeading": "300"
}
}
],
"length": "11400"
}
],
"TACAN": ""
},
"Fujairah Intl": {
"elevation": "121",
"ICAO": "OMFJ",
"runways": [
{
"headings": [
{
"11": {
"ILS": "",
"magHeading": "111"
},
"29": {
"ILS": "111.50",
"magHeading": "291"
}
}
],
"length": "9700"
}
],
"TACAN": ""
},
"Havadarya": {
"elevation": "52",
"ICAO": "OIKP",
"runways": [
{
"headings": [
{
"26": {
"ILS": "",
"magHeading": "257"
},
"08": {
"ILS": "108.90",
"magHeading": "077"
}
}
],
"length": "7200"
}
],
"TACAN": "47X"
},
"Jiroft": {
"elevation": "2664",
"ICAO": "OIKJ",
"runways": [
{
"headings": [
{
"13": {
"ILS": "",
"magHeading": "125"
},
"31": {
"ILS": "",
"magHeading": "305"
}
}
],
"length": "9600"
}
],
"TACAN": ""
},
"Kerman": {
"elevation": "5745",
"ICAO": "OIKK",
"runways": [
{
"headings": [
{
"16": {
"ILS": "",
"magHeading": "155"
},
"34": {
"ILS": "",
"magHeading": "335"
}
}
],
"length": "12400"
}
],
"TACAN": "97X"
},
"Khasab": {
"elevation": "102",
"ICAO": "OOKB",
"runways": [
{
"headings": [
{
"19": {
"ILS": "110.30",
"magHeading": "192"
},
"01": {
"ILS": "",
"magHeading": "012"
}
}
],
"length": "8000"
}
],
"TACAN": ""
},
"Kish Intl": {
"elevation": "115",
"ICAO": "OIBK",
"runways": [
{
"headings": [
{
"10": {
"ILS": "",
"magHeading": "094"
},
"28": {
"ILS": "",
"magHeading": "274"
}
}
],
"length": "11700"
},
{
"headings": [
{
"09R": {
"ILS": "",
"magHeading": "094"
},
"27L": {
"ILS": "",
"magHeading": "274"
}
}
],
"length": "11700"
}
],
"TACAN": "112X"
},
"Lar": {
"elevation": "2635",
"ICAO": "OISL",
"runways": [
{
"headings": [
{
"27": {
"ILS": "",
"magHeading": "268"
},
"09": {
"ILS": "",
"magHeading": "088"
}
}
],
"length": "10100"
}
],
"TACAN": ""
},
"Lavan Island": {
"elevation": "75",
"ICAO": "OIBV",
"runways": [
{
"headings": [
{
"11": {
"ILS": "",
"magHeading": "110"
},
"29": {
"ILS": "",
"magHeading": "290"
}
}
],
"length": "8600"
}
],
"TACAN": ""
},
"Liwa AFB": {
"elevation": "400",
"ICAO": "OMLW",
"runways": [
{
"headings": [
{
"13": {
"ILS": "",
"magHeading": "130"
},
"31": {
"ILS": "",
"magHeading": "310"
}
}
],
"length": "11600"
}
],
"TACAN": "121X"
},
"Qeshm Island": {
"elevation": "26",
"ICAO": "OIKQ",
"runways": [
{
"headings": [
{
"23": {
"ILS": "",
"magHeading": "227"
},
"05": {
"ILS": "",
"magHeading": "047"
}
}
],
"length": "13600"
}
],
"TACAN": ""
},
"Quasoura_airport": {
"elevation": "26",
"ICAO": "OIKQ",
"runways": [
{
"headings": [
{
"23": {
"ILS": "",
"magHeading": "227"
},
"05": {
"ILS": "",
"magHeading": "047"
}
}
],
"length": "13600"
}
],
"TACAN": ""
},
"Ras Al Khaimah Intl": {
"elevation": "330",
"ICAO": "OMRK",
"runways": [
{
"headings": [
{
"17": {
"ILS": "",
"magHeading": "163"
},
"35": {
"ILS": "",
"magHeading": "343"
}
}
],
"length": "12000"
}
],
"TACAN": ""
},
"Sas Al Nakheel": {
"elevation": "10",
"ICAO": "OMNK",
"runways": [
{
"headings": [
{
"16": {
"ILS": "",
"magHeading": "160"
},
"34": {
"ILS": "",
"magHeading": "340"
}
}
],
"length": "6000"
}
],
"TACAN": ""
},
"Sharjah Intl": {
"elevation": "26",
"ICAO": "OMSJ",
"runways": [
{
"headings": [
{
"12L": {
"ILS": "108.55",
"magHeading": "121"
},
"30R": {
"ILS": "111.95",
"magHeading": "301"
}
}
],
"length": "10500"
},
{
"headings": [
{
"12R": {
"ILS": "",
"magHeading": "121"
},
"30L": {
"ILS": "",
"magHeading": "301"
}
}
],
"length": "10500"
}
],
"TACAN": ""
},
"Shiraz Intl": {
"elevation": "4879",
"ICAO": "OISS",
"runways": [
{
"headings": [
{
"11L": {
"ILS": "",
"magHeading": "113"
},
"29R": {
"ILS": "",
"magHeading": "293"
}
}
],
"length": "14000"
},
{
"headings": [
{
"11R": {
"ILS": "",
"magHeading": "113"
},
"29L": {
"ILS": "108.50",
"magHeading": "293"
}
}
],
"length": "13800"
}
],
"TACAN": "94X"
},
"Sir Abu Nuayr": {
"elevation": "26",
"ICAO": "OMSN",
"runways": [
{
"headings": [
{
"10": {
"ILS": "",
"magHeading": "097"
},
"28": {
"ILS": "",
"magHeading": "277"
}
}
],
"length": "2300"
}
],
"TACAN": ""
},
"Sirri Island": {
"elevation": "20",
"ICAO": "OIBS",
"runways": [
{
"headings": [
{
"12": {
"ILS": "",
"magHeading": "125"
},
"30": {
"ILS": "",
"magHeading": "305"
}
}
],
"length": "7900"
}
],
"TACAN": ""
},
"Tunb Island AFB": {
"elevation": "43",
"ICAO": "OIGI",
"runways": [
{
"headings": [
{
"21": {
"ILS": "",
"magHeading": "205"
},
"03": {
"ILS": "",
"magHeading": "025"
}
}
],
"length": "6200"
}
],
"TACAN": ""
},
"Tunb Kochak": {
"elevation": "16",
"ICAO": "OITK",
"runways": [
{
"headings": [
{
"26": {
"ILS": "",
"magHeading": "259"
},
"08": {
"ILS": "",
"magHeading": "079"
}
}
],
"length": "2500"
}
],
"TACAN": "89X"
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,525 +0,0 @@
{
"airfields": {
"High Halden": {
"runways": [
{
"headings": [
{
"11": {
"magHeading": "102",
"Heading": "102",
"ILS": ""
}
},
{
"29": {
"magHeading": "282",
"Heading": "282",
"ILS": ""
}
}
],
"length": "3027"
},
{
"headings": [
{
"21": {
"magHeading": "211",
"Heading": "211",
"ILS": ""
}
},
{
"03": {
"magHeading": "31",
"Heading": "31",
"ILS": ""
}
}
],
"length": "3027"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "104"
},
"Manston": {
"runways": [
{
"headings": [
{
"10": {
"magHeading": "102",
"Heading": "102",
"ILS": ""
}
},
{
"28": {
"magHeading": "282",
"Heading": "282",
"ILS": ""
}
}
],
"length": "9114"
},
{
"headings": [
{
"FIELD N": {
"magHeading": "57",
"Heading": "57",
"ILS": ""
}
},
{
"FIELD S": {
"magHeading": "237",
"Heading": "237",
"ILS": ""
}
}
],
"length": "5261"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "160"
},
"Biggin Hill": {
"runways": [
{
"headings": [
{
"23": {
"magHeading": "227",
"Heading": "228",
"ILS": ""
}
},
{
"05": {
"magHeading": "47",
"Heading": "48",
"ILS": ""
}
}
],
"length": "2430"
},
{
"headings": [
{
"28": {
"magHeading": "287",
"Heading": "288",
"ILS": ""
}
},
{
"10": {
"magHeading": "107",
"Heading": "108",
"ILS": ""
}
}
],
"length": "2594"
},
{
"headings": [
{
"21": {
"magHeading": "208",
"Heading": "208",
"ILS": ""
}
},
{
"03": {
"magHeading": "28",
"Heading": "28",
"ILS": ""
}
}
],
"length": "4939"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "552"
},
"Headcorn": {
"runways": [
{
"headings": [
{
"10": {
"magHeading": "92",
"Heading": "93",
"ILS": ""
}
},
{
"28": {
"magHeading": "272",
"Heading": "273",
"ILS": ""
}
}
],
"length": "3680"
},
{
"headings": [
{
"01": {
"magHeading": "12",
"Heading": "12",
"ILS": ""
}
},
{
"19": {
"magHeading": "192",
"Heading": "192",
"ILS": ""
}
}
],
"length": "3680"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "114"
},
"Detling": {
"runways": [
{
"headings": [
{
"FIELD S": {
"magHeading": "227",
"Heading": "227",
"ILS": ""
}
},
{
"FIELD N": {
"magHeading": "47",
"Heading": "47",
"ILS": ""
}
}
],
"length": "3482"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "623"
},
"Eastchurch": {
"runways": [
{
"headings": [
{
"10": {
"magHeading": "97",
"Heading": "97",
"ILS": ""
}
},
{
"28": {
"magHeading": "277",
"Heading": "277",
"ILS": ""
}
}
],
"length": "2983"
},
{
"headings": [
{
"20": {
"magHeading": "203",
"Heading": "203",
"ILS": ""
}
},
{
"02": {
"magHeading": "23",
"Heading": "23",
"ILS": ""
}
}
],
"length": "2983"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "40"
},
"Abbeville Drucat": {
"runways": [
{
"headings": [
{
"20": {
"magHeading": "203",
"Heading": "203",
"ILS": ""
}
},
{
"2": {
"magHeading": "23",
"Heading": "23",
"ILS": ""
}
}
],
"length": "4877"
},
{
"headings": [
{
"27": {
"magHeading": "270",
"Heading": "270",
"ILS": ""
}
},
{
"09": {
"magHeading": "90",
"Heading": "90",
"ILS": ""
}
}
],
"length": "4877"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "183"
},
"Hawkinge": {
"runways": [
{
"headings": [
{
"FIELD S": {
"magHeading": "180",
"Heading": "180",
"ILS": ""
}
},
{
"FIELD N": {
"magHeading": "0",
"Heading": "0",
"ILS": ""
}
}
],
"length": "2336"
},
{
"headings": [
{
"FIELD W ": {
"magHeading": "218",
"Heading": "219",
"ILS": ""
}
},
{
"FIELD E": {
"magHeading": "38",
"Heading": "39",
"ILS": ""
}
}
],
"length": "2336"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "524"
},
"Lympne": {
"runways": [
{
"headings": [
{
"FIELD E": {
"magHeading": "134",
"Heading": "134",
"ILS": ""
}
},
{
"FIELD W": {
"magHeading": "314",
"Heading": "314",
"ILS": ""
}
}
],
"length": "3054"
},
{
"headings": [
{
"FIELD N": {
"magHeading": "19",
"Heading": "19",
"ILS": ""
}
},
{
"FIELD S": {
"magHeading": "199",
"Heading": "199",
"ILS": ""
}
}
],
"length": "2706"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "351"
},
"Merville Calonne": {
"runways": [
{
"headings": [
{
"32": {
"magHeading": "318",
"Heading": "319",
"ILS": ""
}
},
{
"14": {
"magHeading": "138",
"Heading": "139",
"ILS": ""
}
}
],
"length": "3899"
},
{
"headings": [
{
"26": {
"magHeading": "258",
"Heading": "258",
"ILS": ""
}
},
{
"08": {
"magHeading": "78",
"Heading": "78",
"ILS": ""
}
}
],
"length": "3899"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "52"
},
"Dunkirk Mardyck": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "80",
"Heading": "81",
"ILS": ""
}
},
{
"26": {
"magHeading": "260",
"Heading": "261",
"ILS": ""
}
}
],
"length": "1839"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "16"
},
"Saint Omer Longuenesse": {
"runways": [
{
"headings": [
{
"08": {
"magHeading": "86",
"Heading": "87",
"ILS": ""
}
},
{
"26": {
"magHeading": "266",
"Heading": "267",
"ILS": ""
}
}
],
"length": "2001"
},
{
"headings": [
{
"FIELD S": {
"magHeading": "208",
"Heading": "208",
"ILS": ""
}
},
{
"FIELD N": {
"magHeading": "28",
"Heading": "28",
"ILS": ""
}
}
],
"length": "1762"
}
],
"TACAN": "",
"ICAO": "",
"elevation": "219"
}
}
}

View File

@@ -1,52 +0,0 @@
rmdir /s /q package
mkdir package
echo F|xcopy /Y .\olympus.json .\package\olympus.json
echo F|xcopy /Y .\scripts\OlympusHook.lua .\package\Scripts\OlympusHook.lua
echo F|xcopy /Y .\scripts\install.bat .\package\Scripts\install.bat
echo F|xcopy /Y .\scripts\OlympusCommand.lua .\package\mod\scripts\OlympusCommand.lua
echo F|xcopy /Y .\scripts\unitPayloads.lua .\package\mod\scripts\unitPayloads.lua
echo F|xcopy /Y .\scripts\templates.lua .\package\mod\scripts\templates.lua
echo F|xcopy /Y .\scripts\mist.lua .\package\mod\scripts\mist.lua
echo F|xcopy /Y .\scripts\mods.lua .\package\mod\scripts\mods.lua
echo D|xcopy /Y /S /E .\mod .\package\mod
echo F|xcopy /Y /I .\bin\*.dll .\package\mod\bin
echo D|xcopy /Y /S /E .\client\public\databases .\package\mod\databases
echo D|xcopy /Y /S /E .\client\bin .\package\client\bin
echo D|xcopy /Y /S /E .\client\public .\package\client\public
echo D|xcopy /Y /S /E .\client\routes .\package\client\routes
echo D|xcopy /Y /S /E .\client\views .\package\client\views
echo F|xcopy /Y .\client\app.js .\package\client\app.js
echo F|xcopy /Y .\client\client.js .\package\client\client.js
echo F|xcopy /Y .\client\package.json .\package\client\package.json
echo F|xcopy /Y .\client\configurator.js .\package\client\configurator.js
echo F|xcopy /Y /I .\client\*.vbs .\package\client
echo D|xcopy /Y /S /E .\manager\icons .\package\manager\icons
echo D|xcopy /Y /S /E .\manager\ejs .\package\manager\ejs
echo D|xcopy /Y /S /E .\manager\javascripts .\package\manager\javascripts
echo D|xcopy /Y /S /E .\manager\stylesheets .\package\manager\stylesheets
echo F|xcopy /Y /I .\manager\*.* .\package\manager
echo F|xcopy /Y .\img\olympus.ico .\package\img\olympus.ico
echo F|xcopy /Y .\img\olympus_server.ico .\package\img\olympus_server.ico
echo F|xcopy /Y .\img\olympus_configurator.ico .\package\img\olympus_configurator.ico
echo F|xcopy /Y .\img\configurator_logo.png .\package\img\configurator_logo.png
echo F|xcopy /Y .\img\OlympusLogoFinal_4k.png .\package\img\OlympusLogoFinal_4k.png
echo F|xcopy /Y .\LEGAL.txt .\package\LEGAL.txt
echo F|xcopy /Y .\INSTRUCTIONS.txt .\package\INSTRUCTIONS.txt
echo F|xcopy /Y .\notes.txt .\package\notes.txt
echo D|xcopy /Y /S /E .\dependencies .\package\dependencies
echo F|xcopy /Y .\install.bat .\package\install.bat

View File

@@ -1,24 +1,25 @@
call node increase_version.js cd backend
cd src
msbuild olympus.sln /t:Build /p:Configuration=Release msbuild olympus.sln /t:Build /p:Configuration=Release
cd .. cd ..
cd client cd client
rmdir /s /q "hgt" rmdir /s /q hgt
call npm install call npm install
call npm run copy
call npm run emit-declarations call npm run emit-declarations
call npm run build-release call npm run build-release
cd "plugins\controltips" cd plugins\controltips
call npm install call npm install
call npm run build-release call npm run build-release
cd "..\.." cd ..\..
cd "plugins\databasemanager" cd plugins\databasemanager
call npm install call npm install
call npm run build-release call npm run build-release
cd "..\.." cd ..\..
cd.. cd ..
cd manager
call npm run build-release
cd ..

39
scripts/batch/package.bat Normal file
View File

@@ -0,0 +1,39 @@
rmdir /s /q package
mkdir package
REM copy the main configuration file
echo F|xcopy /Y .\olympus.json .\package\olympus.json
REM copy the installation scripts
echo F|xcopy /Y .\scripts\batch\install.bat .\package\Scripts\install.bat
echo F|xcopy /Y .\scripts\batch\installer.bat .\package\installer.bat
REM copy the hooks script
echo F|xcopy /Y .\scripts\lua\hooks\OlympusHook.lua .\package\Scripts\OlympusHook.lua
REM copy the lua scripts
echo F|xcopy /Y .\scripts\lua\backend .\package\mod\scripts
REM copy the mod folder
echo D|xcopy /Y /S /E .\mod .\package\mod
REM copy the backend dll
echo F|xcopy /Y /I .\build\backend\bin\*.dll .\package\mod\bin
REM copy the client
echo D|xcopy /Y /S /E .\build\client .\package\client
REM copy the manager
echo D|xcopy /Y /S /E .\build\manager .\package\manager
REM copy the images folder
echo D|xcopy /Y /S /E .\img\ .\package\img
REM copy the instructions and text files
echo F|xcopy /Y .\LEGAL.txt .\package\LEGAL.txt
echo F|xcopy /Y .\INSTRUCTIONS.txt .\package\INSTRUCTIONS.txt
echo F|xcopy /Y .\notes.txt .\package\notes.txt
REM copy the dependencies
echo D|xcopy /Y /S /E .\dependencies .\package\dependencies

View File

@@ -1,24 +1,24 @@
function disableAutoCapture(airbaseName) function disableAutoCapture(airbaseName)
trigger.action.outText("Olympus.disableAutoCapture " .. airbaseName, 2) trigger.action.outText("Olympus.disableAutoCapture " .. airbaseName, 2)
local airbase = Airbase.getByName(airbaseName) local airbase = Airbase.getByName(airbaseName)
if airbase then if airbase then
airbase:autoCapture(false) airbase:autoCapture(false)
trigger.action.outText("Olympus.disableAutoCapture " .. airbaseName .. " completed successfully", 2) trigger.action.outText("Olympus.disableAutoCapture " .. airbaseName .. " completed successfully", 2)
else else
trigger.action.outText("Olympus.disableAutoCapture failed", 2) trigger.action.outText("Olympus.disableAutoCapture failed", 2)
end end
end end
function setAirbaseCoalition(airbaseName, coalitionColor) function setAirbaseCoalition(airbaseName, coalitionColor)
trigger.action.outText("Olympus.setAirbaseCoalition trying to set " .. airbaseName .. " to " .. coalitionColor, 2) trigger.action.outText("Olympus.setAirbaseCoalition trying to set " .. airbaseName .. " to " .. coalitionColor, 2)
local airbase = Airbase.getByName(airbaseName) local airbase = Airbase.getByName(airbaseName)
if airbase then if airbase then
disableAutoCapture(airbaseName) disableAutoCapture(airbaseName)
airbase:setCoalition(coalition.side[coalitionColor]) airbase:setCoalition(coalition.side[coalitionColor])
trigger.action.outText("Olympus.setAirbaseCoalition " .. airbaseName .. " set to " .. coalitionColor .. " completed successfully", 5) trigger.action.outText("Olympus.setAirbaseCoalition " .. airbaseName .. " set to " .. coalitionColor .. " completed successfully", 5)
else else
trigger.action.outText("Olympus.setAirbaseCoalition Airbase not found: " .. airbaseName, 5) trigger.action.outText("Olympus.setAirbaseCoalition Airbase not found: " .. airbaseName, 5)
end end
end end
setAirbaseCoalition("Khasab", "RED") setAirbaseCoalition("Khasab", "RED")