Test release SDL2 clients
Pre-release
Pre-release
A working SDL2 client - Increased vesion to 4.9.3.0.1.1. - Add USE_SDL2 macros thorough the code. - Add OS_SUB_SDL2 and OS_SUB_GCU_SDL2 and use it in VERSION_OS_SUB. - Add Unified makefile.sdl2 for linux compiling and windows cross compiling. - Compile windows sdl2 client without wine and tolua.exe - Remove unnecessary generation rules for common/z_pack - Refactor the tolua file generation - Make tomenet and tomenet.exe executables in one run in SDL2 client - add automatic header-dependency tracking with -MMD/-MP - Update .gitignore - Introducing SDL2_GAME_PATH, SDL2_USER_PATH and SDL2_PATH_SEP variables. - Introduce SDL2 user directory - Declare and expose new ANGBAND_USER_DIR* pointers based on ANGBAND_DIR* - Inform about creating user directories, refactor - Copy default scripts into `ANGBAND_USER_DIR_SCPT` when it's created - Redirect SDL2 client file I/O to the SDL2 user directory - Store temporary files and logs in the SDL2 temp folder - Rename copy_file to my_fcopy. - Edit my_fopen to open files with fallback and use instead of fopen in SDL2 client - Prefer user dir for fonts/tilesets/macros; install audio packs to user xtra - Use user dir when saving sound/music.cfg files - Override the user storage dir via TOMENET_SDL2_USER_PATH environment variable - Using a dir in sdl2 user path as tmpdir when no env value is set. - Add common/net-sdl2.c using the SDL2 SDL_net library and use it with sdl2 clients. - Add main-sdl2.c based on main-x11.c and use it in SDL2 client. - Add multi-layer multi-masks tiles support. - Add tile cache support, but turn it off (not needed, it is fast). - Graphic tiles are initialized after pref file is loaded. - Graphics pref file now contains information about masks colors. - Per-subtileset mask colors are now loaded from .prf files and used. - Support PCF and TTF fonts in the SDL2 fonts menu, handle PCF fonts as graphical - Add pcf fonts to lib/xtra/font for sdl2 clients - Add window decorations toggle to settings file and in-game window flags menu - On window move, store coordinates considering decorations. - Windows are created with decorations by default. - Using tomenet.cfg in sdl2 user path as config (based on .tomenetrc). - Make check_guide_checksums work for sdl2 with curl & ssl. - Removing goto from client/client.c in mangrc read function. - Use SDL2_image library for screenshots, but it is optional. - If not using SDL2_image, save screenshots to BMP instead of PNG. - Add SDL2_STICKY_KEYS macro and disable by default - Create snd-sdl2.c file based on snd-sdl.c - switch SDL2 client sound to SDL2 - allow sound code to compile with either `SOUND_SDL` or `SOUND_SDL2` - fix sdl2 quit on music quit, add debug logs to sdl2 unarchive - guard SDL mixer shutdown - determine fd availability by opening null files on init - fix SDL2 audio FD accounting for samples vs music - fix wrong mutex unlock when loading music (also in snd-sdl.c) - refactor sound_sdl_init function - fix audio init failure cleanup - Add subset logic - Fix jukebox autoplay finish and destuctive pack-switch - Fix post-autoplay cursor restore - Ix autoplay stop after first song after a/u/e session - Stabilize jukebox restore/fadeout/shutdown state across mixer reloads and previews - Preserve force-disabled and runtime-disabled SDL2 audio state correctly in config and toggles - Ignore transient EMFILE/ENFILE when loading audio events - Add libarchive-based unzipping sound/music pack 7zipped files. - detect libarchive in makefile.sdl2 via pkg-config and link when available - Notify when unpacking unsupprted 7z encrypted archive - More archives support in sdl2 clients (.zip, .tar, .tar.gz). - Use SDL_OpenURL for file and link opening - Hide disable_tile_cache into TILE_CACHE_SIZE ifdef macro - Fix double separator in lua scripts. - Using semi-transparent black as top tile outline color for UG_2MASK mode - Graphics tiles outline layer generation for fg/bg tiles when UG_2MASK mode. Option to force outline generation of specific width. - Graphics tiles preferences on-the-fly change and tiles with layers preview in in-game graphics menu. - Graphic subtiles implemenation. Respects subtiles in preview an cache. - Graphics cache resets subset/index during init and teardown to keep entries clean before reuse. - Loading graphics images of tiles and subtiles from user location first - Add tileset resize modes support, default is NEAREST. - Treating the SDL2 Delete key separately from Backspace so prompts receive '\177' (0x7F), while keeping the Backspace handling unchanged. - In knowledge menu, open last screenshot instead of conversion - Open user folders in in-game knowledge menu too. - Make macroset scan OS independent for SDL2 test clients - Add basic player sounds according to sound.cfg.default content. - Create fake but deterministic MAC depending on PC stats - Add .prf files to lib/user for sdl2 clients - Get rid of most compiler warnings. - Build sdl2 linux client to prefer .so beside the binary. - Make SDL2 ip_iface return IPv4 string like Windows client. - Add optional GCU support for SDL2 Linux client build, default is off - Added build scripts for fedora 41 & 43 distrobox build containers. - Added CI for github with Fedora 41 build image and compile-check workflow - Added CI for building client/server release archives on tag push and append them if release is made. - Updated guide with info about sdl2 clients how to build them - Startup logo is graphic only when all used solid tiles are loaded - Add mask color documentation for sdl2 clients tileset bitmap