Add it to engines that have MIDI playback.
This essentially compiles the emulator only when an engine that
can potentially use it (e.g. MIDI) is enabled
This class manages a buffer where all data usually stored in detection
plugin will get copied before unloading the plugin and starting the
game.
This class expects that two functions are present in every
GameDescription: sizeBuffer which calculates how many bytes we will need
to store the entry in RAM and toBuffer which copies the data in the
buffer and fix the pointers in the class.
At the end, it is expected that an ADDynamicGameDescription doesn't
depend anymore on data stored in the detection plugin.
The AD_GAME_DESCRIPTION_HELPERS macro allow to implement these functions
in all GameDescription which don't have any pointer except those in
ADGameDescription.
Even if this is a const and Rect is constexpr, this instantiation can't
be done at compile time as the parameters of Rect are defined in another
translation unit.
Using this construct make the compiler emit code at init which is
forbidden as per our rules.
Warning comes from Walloc-size-larger-than
Warning text was:
" warning: argument 1 range [18446744073709551615, 18446744073709551615] exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
_walkOffDR = new Common::Point[dataCount]"
Previously the use of getChild("tdrom") was causing issues in File Systems such as on Android
getChild("tdrom") is "case sensitive" as the name given in the parameter is used for this FSNode,
but that name is not necessarily the actual name of the file or folder in the File System.
This can cause, then, methods such as FSNode::isDirectory() to fail.
Using the addSubDirectoryMatching() directly addresses this, since it can use a case insensitive
pattern to match folders and subfolders of folders, provided that folders are seperated
in the pattern with a forward slash.
The autosave refactoring that was done in
7adad5aaf5 used g_engine for identifying the
autosave slot. This worked for in-game save/load, but doesn't fit when
called from the launcher.
Fix by passing MetaEngine to SaveStateDescriptor ctor and using it for this
query.
Amends 7adad5aaf5.
This employs a "lazy" approach: the "format" for the credits stays
exactly as it was, i.e., perl code. Of course one may want to change
this to another format (e.g. YAML, JSON, XML; or also shell script or
AWK, like `configure.engine` uses). But I deliberately kept it simple,
to get a minimal change that is easy to verify. Any further changes to
e.g. the format can be layered atop this.
I assume we want to use stable language codes in access/resources.cpp
even if language.h keeps changing, so I've used language code "23" for
ES_ESP since this was the enum value in language.h the last time
access.dat was generated.
Note: we still need access.dat to be regenerated for the game to work,
but create_access should now be able to extract the needed info
from the Spanish version of AMAZON.EXE and the game should run fine
afterwards.
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.