`ScenarioFileIndex`'s `Serialize` and `Deserialize` now read and write each
individual value of a `scenario_index_entry` instead of the entire struct
at once. Thus the difference in pointer sizes of `highscore` on different
architecture builds will not cause issues with `scenarios.idx`.
This uses a previously unused S6 flag to save this option persistently.
This should not make S6 import much harder, but should reduce the amount of questions about S4 import.
Also refactor the checks whether the user can ask money for rides or entry. This should make it a lot easier
when our own save format comes around.
Mistake made during refactoring. Apply flag was not being passed to the game command and this meant that only the query to check if a maze element could be placed was called.
Issue caused by using max where min was intended.
This also reverts an earlier change in capping the energy target, since it seems to max out at 255, unlike energy itself.
Older clang would expand the macros and spot that clamping unsigned
values to [0, MAX] is a tautological operation and produce an error.
As these are tautological operations, no network version change should
be needed.
* Reintroduce error messages when trying to open invalid rides
Mistake made during action refactor. I've added the ability to specify the error title and error args as well in the result constructor. In addition the set status will now perform a query to check if it is valid preventing error messages hitting the server.
* Bring error message setting into the function
This prevents any other function corrupting the message args. Looking at you update ride window.
* Increment network version for error message fix on set status
* Reintroduce the error title to set ride name
* Try not to introduce bugs due to inverting logic