BR#3577185 exposes a weakness in options processing.  In current games
the difficulty levels contain the full option group hierarchy:

<freecol-specification difficultyLevel="model.difficulty.medium" id="freecol">
  ...
  <optionGroup editable="false" id="difficultyLevels">
    <optionGroup editable="false" id="model.difficulty.veryEasy">
      <optionGroup editable="false" id="model.difficulty.immigration">
        ...flat options...
      </optionGroup>
      ...more difficulty levels...

however in older games the difficulty level does not contain optionGroups
(and also seem to be editable, not sure if this is relevant):

<freecol-specification difficultyLevel="model.difficulty.veryHard" id="freecol">
  ...
  <optionGroup editable="true" id="difficultyLevels">
    <optionGroup editable="true" id="model.difficulty.veryEasy">
      ...flattened options...
    </optionGroup>
    ...more dificulty levels...

This is not a problem until we define another option group.  Which is
what I just did with the AI-Cheating options.  Whenever we add a new
option we add fixup hacks in FreeColServer.fixGameOptions, which has
been done including adding an option group.  This appears to work
in-game, except for the "Show Difficulty Level" report (shift-F9).
The hierarchical groups case works as expected but the flattened case
only displays the new option group.  I believe this to be a quirk of
the OptionGroupUI code, which (not unreasonably) assumes that the
option group tree only contains Options/leaves at the bottom level of
the tree, not at the same level as other OptionGroups.

How best to fix this is unclear to me.  Any thoughts folks?

Cheers,
Mike Pope

Attachment: signature.asc
Description: This is a digitally signed message part.

------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
Freecol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to