Set the font path for Android
Do not check for FileExists on CharisSILB.ttf for Android, FileExists
will always fail as it doesn't detect files located in the APK
port
`std::make_unique<T[]>(size)` always zero-initalizes the array.
C++20 has `std::make_unique_for_overwrite` to avoid that, while
older C++ versions can use the approach applied here.
The new approach only makes 2 read calls and does not do any seeks.
It is also less general and is internal to `art.cpp`, allowing us to
simplify it somewhat.
Previously, we always loaded entire videos in memory before playing them.
`libsmacker` does not provide a streaming API but it does provide a
`FILE *` file pointer API.
We now take advantage of the `FILE *` API by streaming the videos on
platforms that support `fopencookie`.
This means faster startup and less memory usage on these platforms.
This option completely disables all audio handling, including audio
loading code and dependencies.
Dialog text length is estimated to be somewhere between
Cain and Griswold speed.
SDL_mixer can only stream a single music track
SDL_audiolib has unlimited streams.
With this change, we finally have streaming sounds (respecting
sfx_STREAM).
Audio options can now also be set via diablo.ini, which should help us
better diagnose the static noise issues.
Fix for Vita
Update to use free functions
Use std::optional to allow setting empty paths
Change header inclusion order
Co-authored-by: Gleb Mazovetskiy <glex.spb@gmail.com>
Use std::optional to allow setting empty paths
Apply clang-format
Temporary commit