Gleb Mazovetskiy
2386fd12a9
Fix a few warnings
4 years ago
Gleb Mazovetskiy
1fc8ecb6f6
Add fmt::runtime annotations for C++20 support
...
`fmt` requires non-contexpr format string arguments to be wrapped in
`fmt::runtime` in C++20.
4 years ago
Gleb Mazovetskiy
779ccaca17
Overhaul translation fetching
...
1. Do not modify the map after loading. Instead, return string views
(guaranteed to be null-terminated) from look up functions and return
the key directly if not found.
2. Use an `unorded_map` instead of `map` where available (C++20).
Saves a bit of RAM (~50 KiB) and improves lookup performance.
4 years ago
Gleb Mazovetskiy
5df03f56e3
DiabloUI: Render scrollbar as PCX
4 years ago
Gleb Mazovetskiy
9e9b656b88
DiabloUI: Render backgrounds as PCX
...
The backgrounds can be quite large, for example
the Hellfire title background is a 2.4 MiB PCX file.
Previously, we converted all background to SDL surfaces.
This required extra memory, e.g. the 2.4 MiB Hellfire
title background uses 4.6 MiB as an SDL surface.
Changes the background to render directly from PCX instead
to reduce the allocator pressure.
4 years ago
staphen
9c0ec048b4
Improve refresh behavior in selgame
4 years ago
obligaron
d86c4e5d84
Introduce GetUIRectangle() to distinguish between UI and main panel
4 years ago
staphen
0193ac06fc
Fix player level validation when joining ZT public games
4 years ago
Anders Jenbo
0fb430ebd5
Update translations
4 years ago
Anders Jenbo
1d04ac574a
Make game screen ZeroTier aware
4 years ago
Anders Jenbo
3060a6ee4b
Remove unessesery .c_str() from UiEdit
4 years ago
Anders Jenbo
1409e604f5
Reduce string conversions
4 years ago
obligaron
1f7b0607a6
public game browsing: show difficulty, speed, players and possible incompatibility
4 years ago
obligaron
2d6c602ef5
Show public games only on zero tier
4 years ago
staphen
aeddbb7f98
Reset game info after failing to join game
4 years ago
obligaron
5861340925
ZeroTier Submenu: Show "Loading..." info for public games and display if none are found
4 years ago
obligaron
0888546d62
Make DvlNet_SendInfoRequest non blocking
4 years ago
staphen
af59f7e254
Update fullscreen option in settings menu after Alt+Enter
4 years ago
obligaron
aee8ed3951
Add scrollbar to selgame
4 years ago
obligaron
78c0ec1f49
Pass viewportSize to UiList constructor and calculate height from it
4 years ago
obligaron
e6320090ac
Add OptionEntry Cow Quest
4 years ago
obligaron
a69cd0db2a
Add OptionEntry Theo Quest
4 years ago
obligaron
31f0b91783
Add OptionEntry Run in Town
4 years ago
Anders Jenbo
6e63354cd1
Remove safe guards around strings own the input for
4 years ago
Anders Jenbo
799f1763af
Performce UTF8 aware limited string copies
4 years ago
Gleb Mazovetskiy
c438cc6097
Increase difficulty description buffer size
...
Fixes #3551
4 years ago
Gleb Mazovetskiy
731377aca6
Net: Show "Unknown network error" as intended
4 years ago
Gleb Mazovetskiy
3d308983a8
Migrate to libmpq
...
libmpq is a much simpler alternative to StormLib for reading MPQ archives.
We use our own fork of libmpq: https://github.com/diasurgical/libmpq
Impact:
* DevilutionX is now a lot more portable. Unlike StormLib, libmpq only
needs platform-specific code for Windows.
* Locks around file access **removed** (instead we duplicate the file descriptor for streamed audio only).
* RAM usage is **300 KiB** lower than StormLib.
* Stripped release linux_x86_64 binary is **32 KiB** smaller.
* Amiga build now hangs instead of crashing.
4 years ago
Anders Jenbo
f0cc7adbdf
Show error dialog when ZeroTier fails
...
Fixes #2708
4 years ago
staphen
ffbbcc6d62
Support unencrypted multiplayer games with no password
4 years ago
Anders Jenbo
ae90193136
Game discovery over ZeroTier
4 years ago
ephphatha
67d85dea42
Display hosts version when failed to join game due to mismatch
4 years ago
Gleb Mazovetskiy
0c694edaba
WordWrapString: Wrap on punctuation
...
Useful for Chinese and Japanese, which do not have spaces between words,
nor whitespace after punctuation.
5 years ago
Anders Jenbo
7771a08d03
Translatable mainpanel
5 years ago
Anders Jenbo
7169882b1f
✨ Implement new font rendering
5 years ago
Thomas Christlieb
d06a36ea3c
make menus wrap around. fixes #2605 ( #2607 )
...
In this commit:
- Select Connection Menu
- Create or Join Game Menu
- Choose Class for new hero menu
-> Did not change Select Hero Menu, seems to be deliberately not wrapping around
5 years ago
ephphatha
0575716eac
Rename UiFlags members to group related options
5 years ago
ephphatha
4ad53232a0
Convert the UiFlags enum to a scoped enum type
...
Replace operator&& with named function
5 years ago
Jonathan Bergeron
33ad9fa187
renamed Source/mainmenu.cpp and .h to menu.cpp/.h
5 years ago
obligaron
f5b437dd9c
Use save number to load/save games (instead of hero name)
5 years ago
Vladimir Olteanu
ed9b105299
DiabloUI: make UiArtText follow mutating char*
5 years ago
Vladimir Olteanu
c57560674e
Use smart pointers for UI items
...
vector::push_back(new Foo(...)) leaks if resizing fails
5 years ago
Vladimir Olteanu
2d3ad5e3f0
Main menu: make title char *
5 years ago
Anders Jenbo
8e07ef8fe5
Clang-tidy: misc-unused-parameters
5 years ago
Anders Jenbo
de4ced7e4f
Clang-tidy: readability-qualified-auto
5 years ago
Anders Jenbo
22b632f04a
♻️ Clean up implicit bool conversions
5 years ago
staphen
9ca9de3eba
Add virtual keyboard hints and 3DS keyboard improvements
5 years ago
Jmgr
bbd39aa513
Replace sprintfs with strcpy for translatable strings
5 years ago
Jmgr
6e85cde978
Update format strings
5 years ago
Jmgr
0c27e756f7
Add fmt::format
5 years ago