These are the rules:
- If the active PC gets an empty shop, iterate from the first to last PC until finding someone who can see a shop item
- If none can shop, show the 'no item' response
- When the active PC buys something, if this clears out the shop, iterate from the first to last PC until finding someone who can see a shop item
- if none can see an item, stay on the empty shop of the PC that was active when the last item was bought.
- When shopping ends, if the shop interface was the last thing to change the player's active PC, it puts it back how it was.
Fix#669
All controls now store a reference to their direct parent,
whether it be the dialog itself or a container control.
Every dialog control now has a guaranteed parent, which abstracts away
the three possible types of parents (dialog, container, and plain window).
The control name is now stored in the control from the moment it is parsed from the XML.
This means that it's set before the parseContent function, though after parseAttribute.
With the new format, Author and Contact info are formatted onto the first line in the scenario picker display. The scenario designer gets 1 line to write a teaser.
Fix#593
Also fix a bug where scenario ratings were appearing as integers ingame instead of the correct "G", "PG", etc.
* Scenarios contain a string map of feature flags. The flag names are the keys, and flag versions are the values, so a typical value might be "fixed" for bug fixes or for evolving features, "V1", "V2", etc.
* The game has a map of flags to lists of supported versions. The game can therefore signal that it supports a legacy behavior for a given feature flag. The last version in the list is considered to be this build version's default behavior.
* When launching a scenario, we check to make sure the game supports the scenario's required versions of its feature flags.
* When launching a replay, we make sure the game supports the feature flags that the version of the game that made the recording did.
Fix#555Close#591