1. Removes adjustments to `orig/system_palette`.
They're not needed because videos have a separate render loop.
For an in-game movie, the caller sets the palette after the movie.
2. Splits some of `SVidPlayContinue` code into functions
(`UpdatePalette` and `BlitFrame`).
3. Adds a separate config variable for SDL1 SVid video mode.
E.g. on rg99 there isn't enough video RAM for double-buffering
the main game but we can do it for the videos.
I've spent some time understanding how the `MpqWriter` works
and cleaned it up a bit and renamed some variables for clarity.
1. Fixes all signedness and clang-tidy warnings.
2. Renames variables, structs, and methods for clarity.
3. Marks structs used for I/O as packed.
4. Adds comments in a few places.
5. Eliminates recursion from `MpqWriter::AllocBlock` (a clang-tidy
warning).
Changes how dependency options are handled and moves them out of
`CMakeLists.txt`.
Major changes:
1. The static default now takes `TARGET_SUPPORTS_SHARED_LIBS` into account
2. The `DIST` setting no longer affects the static default.
3. The static option is now visible for system dependencies as well.
(it was previously hidden by `cmake_dependent_option`).
4. The auto-detection mechanism for `libfmt` and `SDL_image` only
applies if the setting has not been set.
5. SDL2 on Android is now also linked statically,
resulting in a 1.1 MiB smaller APK.
When using non-system dependencies, the default should always be static,
as there are 2 main use cases for these:
1. Dependencies that we must currently vendor because our forks have
significant changes that are not yet merged/released upstream.
2. Platforms that have no system packages, such as Android and iOS.
In both cases, static linking is the most appropriate default.