Hi,

> I was reminded a while ago by the problems with the Panel size and
> position options to have another look at the way the client options
> are handled.  This finally got to the top of the pile.

Yes, I was never really happy about how the options got handled, too.
It was difficult to find out what was going on exactly, so I avoided
touching it, just did some additional verification on the panel size
and relied on it saving better values on next save.

> 1. The saved game and options.xml files can (do in my case!) contain
>    outdated options, options in the wrong group, and possibly even
>    incorrect ones if we change an option type (e.g. there are a few
>    IntegerOptions that might be better as Range or Percentage options).
> 
>    To deal with this I have committed a fix that only merges options
>    from these sources if they match what was already loaded from
>    sources #1 and #2, which are considered to be definitive.  This does not
>    help with the case of panel options that contain unfortunate (but not
>    invalid) sizes, but it at least fixes some worse problems.

I thought there were several options not contained in the base options,
which only get added from user changes. If you ignore them now I could
imagine more problems arising.
I'd think the better solution would be another file containing allowed
ranges for _all_ possible options, for verification only.
The base file could then only set some defaults where needed.

> 2. If there is a saved game, its options get merged twice.
> 3. 

It sounds like it should be simplified first before adding on another
feature.

Maybe it could be done this way (no more complicated merging):
* At startup:
  - If there is clientoptions file, load and check against verification data.
  - If not load base file and check against verification data.
* When loading a savegame:
  - Allow loading options from there, but discard other options beforehand.
  - Allow keeping client options (2 buttons, command line or client option).
* If a change to options in RAM is made:
  - Save _everything_, even unchanged options, in client options when
    save button in menu is clicked.
  - Have another button to discard client options and load base options.
* When saving a savegame:
  - Save all options inside. I personally dont like it, but see that it helps
    with BRs (people often dont know when to attach log or savegame already,
    they would forget attaching client options file even more often).

> 4. The commit mentioned above breaks saving of Panel size and position
>    options --- because these options are not mentioned in the base
>    client-options.xml they will be ignored when subsequently merged.
>    They also get added at the top client options level which is a
>    mess, they should have their own subgroup.  However, they should
>    continue to work in-game for now, that is, if they were working at
>    all.  I do not propose to fix this for 0.11.4, partly as adding a
>    new option group requires touching the messages file, and partly
>    because I am not sure what the Right Thing to do is.

Wah, better not touch it before 11.4., possibly revert this new change.
I was hoping for a release soon, as enough new features and bugfixes
have accumulated for it to be worthwhile.
Currently, I'm already just checking for new bug reports and not
touching things.
I have a feeling there is not enough testing, but I guess many people
wont compile themselves.
It might be helpful to just precompile something and put it out as
a release canditate, but am hesitating to suggest it, as that would
be additional work for you for uncertain gain.
Maybe just do the release soon and only if a problematic bug gets
reported follow up with a fast 11.5, as we are technically still in 0.x?

Btw., I think on the changelist for the release there could be separate
categories for new features and bugfixes to make it faster for people
to find what they are interested in.


Greetings,

wintertime

------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Freecol-developers mailing list
Freecol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to