Test release SDL3 clients
Pre-release
Pre-release
Working SDL3 clients (linux, mingw)
- Increased vesion to 4.9.3.0.2.0.
- Add USE_SDL3 macros thorough the code.
- Add OS_SUB_SDL3 and OS_SUB_GCU_SDL3 and use it in VERSION_OS_SUB.
- Add Unified makefile.sdl3 for linux compiling and windows cross compiling.
- Compile windows sdl3 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 SDL3 client.
- Add automatic header-dependency tracking with -MMD/-MP.
- Update .gitignore.
- Introducing SDL3_GAME_PATH, SDL3_USER_PATH and SDL3_PATH_SEP variables.
- Introduce SDL3 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 SDL3 client file I/O to the SDL3 user directory.
- Store temporary files and logs in the SDL3 temp folder.
- Rename copy_file to my_fcopy.
- Edit my_fopen to open files with fallback and use instead of fopen in SDL3 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_SDL3_USER_PATH environment variable.
- Using a dir in sdl3 user path as tmpdir when no env value is set.
- Add common/net-sdl3.c using the SDL3 SDL_net library and use it with sdl3 clients.
- Add main-sdl3.c based on main-x11.c and use it in SDL3 client.
- Add multi-layer multi-masks tiles support.
- Add tile cache support, but turn it off (not needed, it is fast).
- Hide disable_tile_cache into TILE_CACHE_SIZE ifdef macro.
- Set terminal index during initialization.
- Defer graphics until windows are initialized.
- Graphic tiles are initialized after pref file is loaded.
- Print warnings when pref file is not loaded into msg window when possible.
- 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 SDL3 fonts menu, handle PCF fonts as graphical.
- Add pcf fonts to lib/xtra/font for sdl3 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.
- Draw only borders with SDL3_DEFAULT_BORDER_WIDTH width.
- 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.
- For keyboard handling use only key press events (no text input).
- Startup logo is graphic only when all used solid tiles are loaded.
- Reset raw graphics definitions before pref load
- Store raw graphics in their source tileset
- Cache scaled tilesets to disk and reuse them when needed
- Hide all disable_tileset_caching into USE_GRAPHICS macro guard
- Fix casino display functions to consider use_graphics and rawpict_hook.
- Using tomenet.cfg in sdl3 user path as config (based on .tomenetrc).
- Make check_guide_checksums work for sdl3 with curl & ssl.
- Removing goto from client/client.c in mangrc read function.
- Use SDL3_image library for screenshots, but it is optional.
- If not using SDL3_image, save screenshots to BMP instead of PNG.
- Add SDL3_STICKY_KEYS macro and disable by default.
- Create snd-sdl3.c file based on snd-sdl.c.
- Switch SDL2 client sound to SDL3.
- Allow sound code to compile with either `SOUND_SDL` or `SOUND_SDL3`.
- Fix sdl3 quit on music quit, add debug logs to sdl3 unarchive.
- Guard SDL mixer shutdown.
- Don't use file descriptors (FD) and music caching.
- Cache only currently played track without decoding.
- 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.
- Fix 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 SDL3 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.sdl3 via pkg-config and link when available.
- Notify when unpacking unsupprted 7z encrypted archive.
- More archives support in sdl3 clients (.zip, .tar, .tar.gz).
- Use SDL_OpenURL for file and link opening.
- Fix double separator in lua scripts.
- Treating the SDL3 Delete key separately from Backspace so prompts.
- In knowledge menu, open last screenshot instead of conversion.
- Open user folders in in-game knowledge menu too.
- Make macroset scan OS independent for SDL3 test clients.
- Create fake but deterministic MAC depending on PC stats.
- Add basic player sounds according to sound.cfg.default content.
- Add .prf files to lib/user for sdl3 clients.
- Get rid of most compiler warnings.
- Build sdl3 linux client to prefer .so beside the binary.
- Make SDL3 ip_iface return IPv4 string like Windows client (Can't make
work like windows client, returns different string).
- Add optional GCU support for SDL3 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 sdl3 clients how to build them.
- Add mask color documentation for sdl3 clients tileset bitmap.
- Default to x11 video driver in sdl3 linux client
- Fix: stop -X from enabling log redirection.
- Quit cleanly on window close.
- Save live window layout before config