Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is inspired by
A3_Data_F_XXX_Loadorder
and restores whatcba_main(_a3)
once did.In vanilla every bigger update X (e.g. Orange, Tanks) works like this:
Where (X-1) is the last big update before X.
This ensures that the config patches of big updates are loaded in chunks (everything update 1 first, then everything update 2, etc.), which makes the master config predictable and setting up requiredAddons easier.
It is similar of how CBA is supposed to work (we did it first!), but our
A3_Data_F_X
is namedcba_common
and ourA3_Data_F_X_Loadorder
cba_main
.Problem is that over the years this wasn't maintained properly (partly due to
_Loadorder
not being a thing for years), so many cba patches use vanilla game patches as required addons instead of justcba_common
,cba_main
not properly waiting for every cba patch, and some weird almost circular dependencies.With this pull request
cba_common
now requires the latest big update of Arma 3 (A3_Data_F_Tanks_Loadorder
) andcba_main
/cba_main_a3
waits for every config patch from cba (bar optionals but w/e).I also put every config patch into one config.cpp file, and some of these inside sub-folders of the PBO folders. I think this is cleaner, but if someone has a problem with that I can revert it for this pull request.
Note that
ace_main
works differently thancba_main
.ace_main
is responsible for waiting for every base game patch and thenace_common
requiresace_main
. Which makesace_main
kind of redundant in this regard but w/e.ace_main
is always the first config loaded of the mod instead of the last.An addon like
A3_Data_F_X_Loadorder
doesn't make much sense for x = ACE, because of the modular nature of ACE3.Every addon X relying on CBA can now just safely use
cba_main
(orcba_main_a3
) as requiredAddon in theirx_common
equivalent.The names
cba_common
andcba_main
are not very descriptive, which is regretable and something I'll hopefully fix for A4 (bwc)!'
A list of all config patches created by cba can be generated by using:
assuming that the addons folder is placed inside a folder named "cba".
After this PR, the addons are loaded in this order: