- 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
1. Adds RGB888 format support (not used at the moment).
2. Set the alpha mask to 0 for indexed format to fix SRCCOLOR blitting.
(also not used at the moment).
Adds a USE_SDL1 build option to use SDL v1 instead of v2.
This is useful for porting Diablo on devices that don't support SDL2,
such as the RetroFW / OpenDingux devices (e.g. RG300 Retro Gaming Handheld)
Not yet supported:
* Fullscreen
* Upscaling
* Audio
The following build error was observed when compiling with Clang:
In file included from Source/appfat.cpp:1:
In file included from ./Source/diablo.h:5:
In file included from ./Source/../types.h:52:
In file included from ./SourceS/miniwin.h:19:
In file included from /usr/lib/clang/8.0.1/include/x86intrin.h:29:
In file included from /usr/lib/clang/8.0.1/include/immintrin.h:28:
/usr/lib/clang/8.0.1/include/mmintrin.h:81:40: error: cannot initialize a parameter of type
'__attribute__((__vector_size__(2 * sizeof(int)))) int' (vector of 2 'int' values) with an rvalue of type
'__v2si' (aka 'int')
return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
^~~~~~~~~~~
Clang version:
$ clang -v
clang version 8.0.1 (tags/RELEASE_801/final)
First I tried to replace the x86intrin.h include with:
static inline unsigned int _rotl(unsigned int value, int shift)
{
return (value << shift) | (value >> (32 - shift));
}
static inline unsigned int _rotr(unsigned int value, int shift)
{
return (value >> shift) | (value << (32 - shift));
}
But that resulted in an error stating that _rotl and _rotr were
predeclared in Clang:
./SourceS/miniwin.h:20:28: error: definition of builtin function '_rotl'
static inline unsigned int _rotl(unsigned int value, int shift)
Thus, we simply declare but don't define these functions when
using Clang.
Prior to this commit, several keyboard keys would
not be translated, as detailed by the following
debug message:
DUMMY: translate_sdl_key : unknown key: name== sym=0x3D scan=46 mod=0x0
With this commit, all keys on regular US keyboards
should be translated correctly.