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.
On some platforms, editing command-line flags is difficult.
This adds a `Show FPS` option to the ini file.
If set, FPS is shown even without the `-f` flag.
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
In multiplayer, the hash and block tables are kept around between the
saves (presumably to improve performance).
When leaving the game, they should be cleared.
Clearing of the tables is handled by `Archive::Close` in `mpqapi.cpp`.
After 135f5e03c7,
which moved the archive closing inside `pfile_write_hero`, the tables
were no longer cleared on `pfile_flush_W` (because the archive was
already closed when it was called).
To fix the issue, this commit adds a `clear_tables` argument
to `pfile_write_hero` and removes the `pfile_flush_W` method.
Bug reported and root cause found by @Eider-McDuck:
> Example to reproduce: Have 2 vanilla savegames, join a game with the first,
> then leave, then join a game with the second, then drop an item on the floor.
Previously, the allocation size was the maximum size over all the classes.
RAM usage per player:
* Before: 2.2 MiB (any class)
* After:
* Warrior: 2.0 MiB
* Rogue: 1.5 MiB
* Sorcerer: 1.6 MiB
* Monk: 1.7 MiB
We now also only allocate memory in multi-player as needed.
This means the game will only use as much RAM for player graphics
as there are players currently in the game.
Less RAM is used for each player because class is now taken into account.