Set of dev tools for Freelancer Discovery community, in order to help them in their configurational effort;
Main goal is to create classic linter for game files, which can autofix config files.
For tool usage was developed freelancer ini reader/writer with easily mapping variables to access in ORM - object relational mapping fashion. This alone allows quickly accessing any config data with least amont of code effort for additional features.
FEATURES
Processes:
market_commodities.ini
market_misc.ini
market_ships.ini
universe_ini
all system files like universe/systems/**/**.ini
For processed files brings to lower case allowed set of keys, like base = GA06_03_base to base = ga06_03_base
to market_*.ini files it adds to bases human readable name extracted from infocard.txt
to market_*.ini reports if base is recycle_candidate, by checking mismatch in its set system and presence in files + if system is fp7_system or ga13, example:
;%is_recycle_candidate = DARK_ERR_0001 base_good.base=ga06_03_base not in universe.ini->Base.system->System.file->systems\ga13\ga13.ini | universe.ini->Base.system=ga13 in [[ga13 fp7]]
rounding float numbers for set keys to more preferable precision. 45.7465645656 to 45.7
FUTURE DEVELOPMENT
The tool is intended to add additional features in linting configurational files. It is possible adding any other additional rules for checking foreign key data integrity between objects Or adding additional commented strings to objects with helpful information
Cool idea. I had something similar (but much more simple and limited) while in the Story Dev team for processing the DATA/MISSIONS/news.ini and appending similar comments about base names and IFF to news entries.
This tool to format game configs continued its life.
Code is cleaned up greatly.
Logic to parse data was moved into separate library fl-configs for its reusage in building online flstat
Remaining code logic for fl-darklint specifically became very simplified
Added support to utilize not only infocards.txt/xml, but having fallback to reading infocards values directly from dlls.
Added into readme more permament installing instruction
The tool once requested by Groshyr... continues its life just because the common library dependency is used in development of a darkstat.
(No idea why i still develop it, but... whatever)
Changelog:
Different bug fixes + super new feature
When u apply this tool to vanilla bini formatted configs, the tool automatically converts them to txt files now, across entire Freelancer folder