SBmpLoadImage tried to get the size of the rest of the file incorrectly
by subtracting the current file position from the total size.
This was incorrect because file positions do not always begin at 0.
The only semi-portable way to get a size from file positions is to
subtract two file positions.
This commit serves 2 purposes:
1. Fixes CMake 3.13 compatibility when using
` -DDEVILUTIONX_SYSTEM_LIBSODIUM=OFF` (fixes#1222).
2. Ensures we do not build targets that are not depended on by us,
by passing `EXCLUDE_FROM_ALL` to `add_subdirectory`.
Adds an option to build libsodium from source instead of using the
system-provided one.
This is useful on systems that do not provide libsodium, or for testing
changes to libsodium along with devilutionx (by specifying
`-DFETCHCONTENT_SOURCE_DIR_LIBSODIUM`).
This also allows us to configure sodium to our liking when building it from source,
such as `SODIUM_MINIMAL`, which reduces the x64 release binary size from 4.3 MiB to 4.1 MiB.
Do not limit filesystem paths to 259 chars for MPQs, save files, and diablo.ini.
The MAX_PATH constant remains but now only limits path lengths within the MPQs.
Tthis code simply logs the save time of a multiplayer game in the
register database, this was likly done as part of an anti cheat scheme
(the key was "Video Player"), but appears to have since been disabled.
Probably to allow moving save games between PC's which was supported
when better Windows 2000 support was added.
- Use UiOkDialog() to display all error messages
- Add SDL simple message, and console fallbacks to UiOkDialog()
- Boot graphics early on to facilitate most error messages with build in
gui
- Some more miniwin clean ups
Belated birthday present for @mewmew
Functions for gettings paths have sensible names
It's using snprintf for safe? string concat
Paths don't use \ as path reporator, or magic marker
Drop code for copying pre 1.09 save games from the windows folder