A bugfix is a change. And in this thread it actually doesn't matter since the bugfix did in fact CHANGE the behavior and broke profiles.
Sure it's a change, but it's not a change that is supposed to be communicated in advance, because it would just make the program to work as documented, when it wasn't before.
As for the upcoming airport data API usage I really hope that either it doesn't break profiles or it comes with some migration support or at least an early access for people to test against.
That's a good point.
Of course it will have some effect on profiles creation, but for entirely different reasons: now profiles are "tied" to a specific .BGL, because GSX "knew" which .BGL was active when that profile was created, which came as a result of GSX having scanned all the MSFS content for airports, to be placed in the airport cache so, GSX knows which .BGL is active when you enter an airport.
Using the new Navdata API will change all of this, which will of course make GSX so much more reliable, because it won't have to read .BGL files, but the downside of it, is precisely that GSX will no longer "know" which .BGL was in use, and the Navdata API doesn't provide that information, because is not really important to know which .BGL contains an airport, when you can just ask all data from it to the sim.
It's clearly a major change, and it would be the first time ever we could get data about an airport without having to open its .BGL, which is a massive improvement in simplifying our code and reduce problems.
So, how do we tie a custom profile to a specific variation of an airport ? Assume an hypothetical user wanting to edit KORD going through the following steps:
- Started with MSFS Standard version, editing the bare default KORD
- Later upgraded to MSFS Deluxe version, which has an Asobo handcrafted ( and encrypted ) version. The old .INI file is no longer valid, so we should start a new one
- Later upgraded to the FSDT KORD. A 3rd .INI file should be created.
The current GSX will work in this situation (not entirely, because it couldn't read the encrypted KORD), because each time the .BGL changes, a different .INI file will be associated with it, but what to do when we don't have the .BGL file anymore, because of the usage of the new Navdata API ?
We are considering several possible solutions:
- A check to match parking spots names. To be loaded, all parking spots in the .INI should match the ones obtained from the Navdata API for that airport, otherwise the .INI won't be considered valid. It won't be a problem if the airport has more parking spots than the .INI but, all the ones in the .INI should match the ones in the airport. This solution is less likely to be affected by bugs, but it's more restrictive in case, for example, a 3rd party developer updated a scenery and changed the name of a single parking spot which was customized, it might result in the whole file being rejected.
- A partial matching system, loading all parking spots that found a match in the airport data, and discarding the ones that didn't. This will ease the loading, but it will potentially result in losing data about non-matching spots that have been discarded.
Both solutions have advantages and disadvantages, but assuming we are doing everything right, they shouldn't require actual *work* by the profile creator, because once the .INI is considered valid, all data in it should work as before.