How to regenerate planetinfo?

For test results, bug reports, announcements of new builds etc.

Moderators: winston, another_commander, Getafix

Post Reply
nicolasb
Harmless
Harmless
Posts: 1
Joined: Mon Aug 24, 2015 1:08 pm

How to regenerate planetinfo?

Post by nicolasb » Mon Aug 24, 2015 1:38 pm

Hello.
In 1.82, Resources/Config/planetinfo.plist is generated by tools/planetinfo-source/planetlog.pl from tools/planetinfo-source/1.80-planetinfo-data-extract.log, tools/planetinfo-source/radii.txt and tools/planetinfo-source/seeds.txt. If I understand well tools/planetinfo-source/README.md, these three files are generated by running oolite with specific options.
Could someone explain, ideally in the README, the exact process to regenerate these files, and especially why running the full oolite executable is mandatory?
It would be great to regenerate them at build time instead of embedding 7Mb of redundant data in tarballs/VCS/etc.

Thanks.
Please duplicate your answer to nicolas@debian.org, as I do not read the whole oolitebb.

User avatar
cim
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 4018
Joined: Fri Nov 11, 2011 6:19 pm

Re: How to regenerate planetinfo?

Post by cim » Mon Aug 24, 2015 6:38 pm

Essentially, the Resources/Config/planetinfo.plist file is the sole planet data file in 1.82 and is highly likely to be edited manually in future should that be necessary. Regenerating it is not part of the build process. If you want to save space in tarballs or VCS, the entire tools/planetinfo-source folder can safely be skipped. (In fact, I think all of tools pretty much is unused by the build process)

If you really want to re-do it, the process as followed the first and only time this was done was:
1) Checkout the specified git revision in the README (no others will work and this feature has never been in a released build), build with the compiler build option documented there. This sets Oolite up to dump particular log information to the Latest.log on entering systems, allows unlimited range jumps without fuel, disables random misjumps, and maybe does a few other things I forgot. You can then use the debug console to cycle through the systems, generating them each time. 2048 system generation cycles takes about four hours to run this way, but that was far less time than coding a proper mini app to just run system generation to the same RNG would have taken (it would have run in seconds, but would have taken days to verify it was actually giving the right answers)...
2) Pull the information out of the Latest.log file and use it to make 1.80-planetinfo-data-extract.log which will now contain the values of certain system generation parameters for every system as it was in 1.80(ish)
3) Realise you forgot to log the planet radii and initial system seed values in that four hour process; rather than repeating it, extract the planet radii from [wiki]Oolite_planet_list[/wiki] and generate the seeds from the original seed algorithm described on that page (I think I modified one of the spreadsheets linked from there to do that). That's the only reason there's three files rather than one.
4) Run the Perl script to merge the three files
5) Commit the final result as the new 1.82 planetinfo.plist (the point of the process being to get a static file rather than generating properties on system entry), save the tools and log output just in case another parameter has been forgotten.
There are shortcuts that could be taken a second time, but they're untested.

(Copied by email as requested)

Post Reply