1. Can't use HWSURFACE, as the code doesn't lock it.
Double-buffering with HWSURFACE would be an alternative but the
current game rendering code doesn't play well with it due to how it
updates the UI
2. RG350 screen is RGB, not BGR (my microscope flipped the image),
16-bit is the correct color depth.
This avoids having to run `prep.sh` every time after starting the container.
The container can be run without arguments to build DevilutionX in release mode.
Clean up unnecessary CMake flags
Make CPU and FPU choice more maintainable
Fix some missing include paths for configure based packages
Make sure SDL_ttf has the proper linker path so it finds the necessary libraries when linking
`set -euo pipefail`
With this change, all exported declarations of Devilution are now
compatible with the C-ABI; that is, all declarations of Source/*.h.
This makes it possible to link against DevilutionX from mods written in
other languages than C++, for instance Rust, Go or Python.
Updates #612.
Now diablo.h is treated in the same way as all other header files of
Source, as it only contains the declarations of global variables and
functions of diablo.cpp.
Besides consistency, this also enables mods to include diablo.h just
like any other header file without having to include every header file
(and without having to include C++ specific aspects of the now all.h).
1. Build in `build-amiga` to have a separate Amiga cmake cache.
2. Place downloaded/built dependcies into `build-amiga/deps` instead of the root directory.
3. Instructions for changing file permissions and stack size.
Co-Authored-By: Anders Jenbo <anders@jenbo.dk>
Skip trailing slash when creating dirs and append it afterwards, as
trailing slash gets treated as '..' on Amiga.
Append /.local/share/ only on UNIX systems.
CharisSILB.ttf doesn't load on Amiga, so use LiberationSerif-Bold.ttf
instead as it is more light weight, CharisSILB.ttf still looks better so
it is keept for systems that can handle it.
1. The palette fade level wasn't set, resulting in black on Amiga.
2. Rendering cleared `pal_surface` instead of `GetOutputSurface()`,
resulting in mouse trails.
Also improves performance by only loading the background / palette once.
Set the video mode close to the SVid resolution while preserving aspect ratio.
Restore the video mode once the video has finished playing.
Also avoids allocating a tmp surface unless scaling.
DiabloUI selconn.cp relies on the enum values to be ordered in the same
way as the UI items (e.g. for keyboard navigation).
This restores the order to what it was prior to:
4e29a4b8aa