For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
Common::MacResMan is now able to open files from a specified
Common::Archive. This is a bit hacky as dynamic_cast is used to break
the Archive encapsulation to retreive the underlying FSNode. It should
however be more correct than the previous code that assumed files were
at the root of the currently running game's path.
AdvancedDetector constructs a Common::Archive from its FileMap based
filesystem cache and uses it to detect the mac resource fork files.
This cuts the time it takes to run the detection code with all the
engines enabled as dynamic plugins on the 3DS to 30 s from 280 s.
When launching the game, AdvancedDetector was overwriting the custom
extra languages from the configuration file with the detection entry,
resulting in all the languages known to ScummVM being offered in the
edit game dialog.
* Unify the custom options dialog (previously accessed through F5), and
the in-game options dialog accessed through the Global Main Menu.
* Change the default keybinding for F5 to show the GMM for the non-25th
anniversary editions of the game. This allows easy access to
the load and save functionality. With the 25th anniversary edition,
the main menu accessed through ESC should be used instead.
* Unify the custom options dialog (previously accessed through F5), the
engine options tab and the in-game options dialog accessed through the
Global Main Menu.
* Change the default keybinding for F5 to show the GMM for the non-25th
anniversary editions of the game. This allows easy access to
the load and save functionality. With the 25th anniversary edition,
the main menu accessed through ESC should be used instead.
* Change the Quit button in the Global Main Menu to show the credits
before quitting. This is to reproduce the original game behavior.
Because our build system does not allow recursive dependencies, inserting
#error for incorrect configuration. For enabling mystme, myst target must
be enabled as well
Myst previously used the user provided description as the save filename.
This was not working when the user entered chacacters forbidden by the
filesystem.
The actual save format has not changed. Old saves are still compatible,
but must be renamed to 'myst-###.mys' and 'myst-###.mym'.
Fixes 7106.
This unifies the engine names in MetaEngine::getName() and the
credits. In particular drop "Engine" or "engine" from the names when
it was present and use expanded names in credits when the
MetaEngine uses it (e.g. "Beneath a Steel Sky" instead of "BASS").