Gleb Mazovetskiy
f22d1d0149
Remove uses of deprecated codecvt
...
codecvt is deprecated in C++17 and we don't really need all of its heavy
machinery for simply converting to UTF-8.
4 years ago
Gleb Mazovetskiy
d500886293
Use env or <clocale> to get the locale
...
The C++ `std::locale("")` constructor performs a static
initialization of all the facets on the first call.
For example, this includes things like currency formatting.
Avoid all of that by using the environment variables with a fallback to
the equivalent C locale call.
4 years ago
Anders Jenbo
60856fb724
Clean up ApplyCryptShadowsPatterns
4 years ago
Anders Jenbo
0d5f07d93c
Clean up chamber generation
...
Share soom selection, remove unreachable cases
4 years ago
Anders Jenbo
fd98aff9f1
Move shared dungeon level code to common function
4 years ago
Anders Jenbo
6fa681e567
Clean up level initialization
4 years ago
Anders Jenbo
6fffbb4676
Clean up selecting what chamber to spawn quests in
4 years ago
obligaron
f0b3d9cb5b
pfile: remove savePrefix global
4 years ago
obligaron
7afe7d2a70
Save Methods in loadsave gets MpqWriter passed
4 years ago
Gleb Mazovetskiy
02d448267a
Render fonts as PCX (-420 KiB RAM)
...
Reduces peak memory consuption in game by ~420 KiB.
This is because the PCX renderer applies the palette on the fly while
rendering, meaning we do not need to duplicate the font for different
palettes.
This approach is also a bit slower than precomposed palettes (still
plenty fast).
4 years ago
Anders Jenbo
885d3ef49e
Bump fmt requirement to 8.0.0
...
because of fmt::runtime
4 years ago
Gleb Mazovetskiy
a885df8b21
Bump libmpq
...
Includes https://github.com/diasurgical/libmpq/pull/5
and https://github.com/diasurgical/libmpq/pull/6
4 years ago
Anders Jenbo
d17d7e018d
Use common function for loading .dun tile data
4 years ago
Gleb Mazovetskiy
2386fd12a9
Fix a few warnings
4 years ago
Gleb Mazovetskiy
9d2948c782
Loading screen: Free the background early
...
Frees the background after blitting it once in the loading screen.
This gives the game more RAM for the actual loading.
4 years ago
Gleb Mazovetskiy
fabbb62bb1
OpenDingux: `strip` `.comment` and `.gnu.version`
...
Saves 108 bytes in the binary size
4 years ago
Gleb Mazovetskiy
4a68c3baef
Remove unused and undefined `snd_stop_snd`
4 years ago
Gleb Mazovetskiy
ede7eab7e8
Fix `-wnarrowing` from `SDL_Rect` construction
4 years ago
Gleb Mazovetskiy
7cd9b23c7d
Fix NOSOUND build
...
Follow-up to 9d082389d8
4 years ago
staphen
b363d5d962
Fix order of loop conditions when adding spell missiles
4 years ago
ephphatha
d74e2f2b7e
Tidy up constants used in CreateRoom
4 years ago
ephphatha
8d0afac194
Don't preserve an unreachable vanilla bug
4 years ago
ephphatha
cf956aff96
Use identifiable messages when test cases fail
4 years ago
TheTank20
8ecfd9df2a
Update shareware link
4 years ago
Gleb Mazovetskiy
a4bd44b1cd
Fix MSVC ADL format error
...
fmt::join is required when formatting containers
4 years ago
Gleb Mazovetskiy
ecf4efdf67
CMAKE_CXX_STANDARD: 17 -> 20
...
This allows us to use heterogenous `unordered_map` where available.
4 years ago
Gleb Mazovetskiy
dab48daed6
options.cpp: Remove unnecessary data() calls
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
Anders Jenbo
189eb58247
Add new dependencies
4 years ago
Anders Jenbo
5fcf5ef303
Remove unused quest level code
4 years ago
Anders Jenbo
0205320a1d
Export static transparancy data to .dun files
4 years ago
Gleb Mazovetskiy
8514cc80a9
Migrate embedded button data to PCX
...
It is a bit smaller that way.
Also renders the non-embedded dialogs as PCX.
The embedded dialog is still raw pixel data because it is larger as PCX.
4 years ago
Gleb Mazovetskiy
c380c7fa61
PCX: Add transparency support
4 years ago
Gleb Mazovetskiy
e8c57aae67
Render widescreen cutscene bg as PCX
4 years ago
Gleb Mazovetskiy
5df03f56e3
DiabloUI: Render scrollbar as PCX
4 years ago
Gleb Mazovetskiy
ef45bd258a
-ffile-prefix-map -> -fmacro-prefix-map
...
This fixes debugging in VS Code.
4 years ago
Gleb Mazovetskiy
3d5307e3bd
.clang-tidy: Allow single-char loop variables
...
x, y, i, j, etc
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
Gleb Mazovetskiy
220d38aa5c
Direct PCX rendering
4 years ago
Andrew James
4bd1e06336
Point mega <-> world conversion helpers
4 years ago
Anders Jenbo
98a10d262e
Unify PlaceMiniSet
4 years ago
Anders Jenbo
357d477f65
Update DRLG_L1 to use Miniset
4 years ago
Anders Jenbo
55d93a71f1
Switch to using the Minipice class in drlg_l3
4 years ago
Anders Jenbo
e8ed195ef6
Place Anvil from the .dun rather then a hardcoded array
4 years ago
Anders Jenbo
655e879116
Lable Crypt tiles
4 years ago
ephphatha
3e60b02d50
Move the staff skip bugfix out of PlaceMiniSet
...
This makes the code more similar to other drlg routines so they can be combined more easily.
4 years ago
ephphatha
a6db96da57
Test betrayer portal position is set on dlvl 15
4 years ago
ephphatha
c859ec57d0
Dedupe SP/MP logic when killing archbishop lazarus
4 years ago
Andrew James
129f5b8d02
remove temporary variable in drlg_l4 GenerateLevel
4 years ago