-
Notifications
You must be signed in to change notification settings - Fork 15
Development guide
Code is written pretty badly and poorly documented, so, sorry for that in advance.
- Clone the repository
- Fetch submodules
- Verify directory links:
-
./dcsshould point to./submodules/dcs -
./resources/tools/dcsshould point to./submodules/dcs - Copy DCS loadout files from release bundle
./resources/payloads(originally they were scattered around DCS folder)
And, finally, to actually run application from source files, you would need to execute __init__.py and provide two arguments: User profile directory location (usually %UserProfile%) and application version (for the logs and save compatibility check) and --stdout (so that debug output would go into console).
-
--stdout- console output, no exception handler -
--force-stable-DCS- force usingDCSinstead ofDCS.openbeta -
--ignore-save- don't load saved game on startup
-
generate_landmap.py- will generate landmap polygons fromcau|gulf_terrain.mizand save them to `../cau|gulflandmap.p". Polygons are constructed from USA units in the mission files, first being a overall landmap, and others are exclusion zones (like lakes and whatnot). Used to determine units placement (so ground vehicles won't end up in a sea or lake) -
generate_loadout_check.py- will generateloadout_check.mizmission, which would contain all supported planes in all possible configurations. Used to verify that each plane have correct ordinance -
miz_diff.py- debugging tool to compare two luamissionfiles (from.mizfiles). -
generate_goundobjectsmap.py- will generate enemy ground assets map fromcau|gulf_groundobjects.mizand save them to../cau|gulf_groundobjects.p. Those static groups and AA units are used to populate the territory with enemy infrastructure and as a targets in strike type of missions. Only a handful of statics are supported. Contrary to other tools must be run from the root directory -
mkrelease.py- zip up everything into release bundle. Contrary to other tools must be run from the root directory
-
default_options.lua- defaultoptionsfile for missions.
Template map for strike targets (both ground assets and AA) are located at resources/tools/cau|gulf_groundobjects.miz.
Objects are grouped together into single strike objective, if they're less than 2km apart. Strike objectives itself will be assigned to closest control point from the map perspective. Type of the strike objective will be determined by the types of units that are in the group. It's important that particular event would only be a part of one type of objective, for example, "Structures/FARP Tent" is assigned as a part of _"FARP" _strike objective category, so it should only be used with other "FARP" category objects for them to form a complete strike objective (else it'd result in objectives of both types generated at the same location).
Categories go as following:
- AA: any AA unit (it'd be replaced with correct one on mission generation)
- Power: "Structures/Workshop A"
- Warehouse: "Structures/Warehouse"
- Fuel: "Warehouses/Tank"
- Ammo: "Warehouses/Ammunition depot"
- FARP: "Structures/FARP Tent"
- Comms: "Structures/TV tower", "Structures/Comms tower"
- Oil: "Structures/Oil platform"
Running the resources/tools/generate_groundobjectsmap.py would read bothX_groundobjects.miz missions and generate resources/x_groundobjects.p file, which would be used directly by application. After that start a new save, and it should be up do date (check --ignore-save in Arguments section).