Thursday, June 12, 2014

FMod - Slim Config

I'm going to start implementing some of the features suggested in the "Abiathar: what's next?" thread on Keen Modding, but today I focused on other things, mainly college. (Priorities!) However, I did do a little bit of improvement on Abiathar.

One of the things I was very unhappy about in v1.4 was the size of the defaults.aconf (template) config file. Generated new, it was 50KB. Most of that was representing the InfoplaneInspectorEntryData structure, which contains seven almost-always-False fields. By adding a few attributes to the FrofConf fields, I was able to stop it from serializing certain fields if they had a certain value. I applied <FleexConfSaveIfNotEq(False)> to all the fields in that structure, cutting the total size down to 32KB. That's still quite a bit, but it's a lot better. I also used these awesome new attributes to remove the MapDictCommand field from the PatchGenerator structure if it wasn't used.

Another attribute, called FleexConfLoadOnly, will be used for backward compatibility and conversion. I plan on removing the HuffCompressedMaps entry and combining it into a very amazing currently-secret structure. To do this and make it not break existing dependency files, I'll need to continue loading it but not resave it. This will allow me to use it in the AdaptVersion subroutine to modernize it and then delete it.

No comments:

Post a Comment