Gleb Mazovetskiy
78af369e6e
net: Remove template parameter for cdwrap
...
1. There is no reason for cdwrap to be templated, it can simply store
the factory function reference instead.
2. Marks overriden virtual functions as `override` instead of `virtual`.
3 years ago
Eric Robinson
0f3c74af33
Avoid rounding issues in automap and allow an extra zoom out step
3 years ago
Gleb Mazovetskiy
e049bbb7a4
Add `AutomapTile#hasAnyFlag`
...
For use in #6555
3 years ago
Gleb Mazovetskiy
cf925d1edc
Replace tuples with structs
...
Structs are more readable because the fields have names.
3 years ago
DakkJaniels
3d3cc31ebb
add missing continue
3 years ago
DakkJaniels
aba9d79a1a
Fix spawn and spawnu ( #6594 )
3 years ago
Gleb Mazovetskiy
43dbd8cb57
Bump libfmt
...
Hopefully we'll be able to get rid of the custom nxdk fork soon.
3 years ago
Gleb Mazovetskiy
b83637add8
Use a C array for transparency LUT for debug perf
...
In a debug build, `std::array` accesses are function calls.
Timedemo on my machine:
* Before: 45.39 seconds 141.3 FPS
* After: 40.20 seconds 159.5 FPS
3 years ago
Gleb Mazovetskiy
b28bbd65ad
Fix some compilation warnings
...
```
data_file_test.cpp:37:20: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else]
37 | if (!result.endOfFile())
| ^
```
```
Source/engine/render/dun_render.cpp:1126:6: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
1126 | void RenderTile(const Surface &out, Point position,
```
3 years ago
Gleb Mazovetskiy
b64ee0e190
Use `if constexpr` in clx/dun_render
3 years ago
Gleb Mazovetskiy
57dbe12915
Remove Debug /O2 for MSVC
...
Fixes: '/RTC1' and '/O2' command-line options are incompatible
3 years ago
Gleb Mazovetskiy
16a6fc62e1
Deduplicate some of the MPQ handling
...
Reuse libmpq functions where possible instead of our own.
3 years ago
Gleb Mazovetskiy
0f77cc3797
Force-inline methods to improve debug build perf
...
This has little or no effect on the optimized build
but significantly improves performance of the headless debug build
`timedemo_test` on my machine goes from 3s to 2s.
3 years ago
Gleb Mazovetskiy
a51abc4826
Compile some files with -O2 even in Debug mode
...
These files are responsible for most of the runtime in Debug mode.
Apply some optimizations to them even in Debug mode to get reasonable performance.
Timedemo on my machine goes from 40s down to 25s.
3 years ago
Anders Jenbo
0a78af4bf8
Show save notification for exactly 1 sec
3 years ago
staphen
7e489a88af
Load stash data based on gbIsHellfire, not gbIsHellfireSaveGame
3 years ago
qndel
a4c4fd6c9b
fix inspect on players where one name is a substring of another
3 years ago
staphen
a151219b9b
Don't validate creation flags on gold
3 years ago
Gleb Mazovetskiy
9bbc138b0f
Simplify `ColumnDefinition` using C++20 features
...
1. Default comparison: https://en.cppreference.com/w/cpp/language/default_comparisons
2. Parentheses initialization for aggregate types
3 years ago
Gleb Mazovetskiy
c2ad6da733
Add DEVILUTIONX_DISPLAY_TEXTURE_FORMAT
...
Some platforms, such as PS2, can benefit from a different texture
format. Makes the texture format a CMake setting.
3 years ago
Vinícius Ferrão
2644ec73af
Add Crippling Shrines from Hellfire ( #6273 )
3 years ago
Gleb Mazovetskiy
70ff515f48
Stream demo messages
...
This entirely eliminates the demo memory overhead.
3 years ago
Gleb Mazovetskiy
65e0ad88d2
Further reduce demo file size
...
The vast majority of events are rendering events:
Type | Count
-------------|------:
Rendering | 58,971
MouseMotion | 19,651
GameTick | 6,414
MouseButton | 516
Key | 7
Custom | 1
Encodes Rendering events in a single byte when possible.
Demo file size: 253,410 bytes -> 194,439 bytes
3 years ago
DakkJaniels
ef87664403
refactor cleaving: added in player method to determine if character can cleave and if an item is equipped.
3 years ago
Gleb Mazovetskiy
d31a7b5c2c
Log Demo settings
3 years ago
Gleb Mazovetskiy
9701101634
Switch to C++20
...
glibc compatibility remains the same.
We now use Clang 18 and static libc++ for the Aarch64 build.
Linux x86 and x86_64 builds now use GCC 13.
3 years ago
Anders Jenbo
1616318bb1
Bump version to 1.5.1
3 years ago
ephphatha
bd8aab0aff
handle stash item swapping using the gamepad a bit better
3 years ago
ephphatha
c85fcbdfb1
fix cursor alignment following gamepad movement in stash
...
align the cursor to the middle of the cell/region when moving through the stash to match the way we simulate mouse movement for inventory cells
3 years ago
ephphatha
0d292b10c4
Move to the first inventory column from the left hand while holding wide items
3 years ago
ephphatha
070a11901f
Fix handling of gamepad cursor movement following item cursor change
3 years ago
Eric Robinson
d4682082e2
Add duration parameter to InitDiabloMsg() ( #6514 )
3 years ago
Andrew James
ed9bdd7ae5
Remove duplicated HeadlessMode check in LoadPlrGfx
...
Already checked at the start of the function, none of the sprite data lookups change that global.
3 years ago
Gleb Mazovetskiy
62e9aa0448
`MissilePosition`: Use `WorldTilePosition`
...
Reduces struct size and makes the types of coordinates more obvious.
3 years ago
ephphatha
5f6e5ae9fb
Refactor iterator parsing to allow more reuse
3 years ago
KPhoenix
cf4d88936b
Change InitMissileGFX()
3 years ago
Gleb Mazovetskiy
5355146d51
Use structured bindings
3 years ago
Stephen C. Wills
5e778431c3
Deterministic timer simulation for shrine messages in demo mode ( #6516 )
3 years ago
Eric Robinson
e3d79ae1c1
Fix automap ( #6513 )
3 years ago
staphen
4deae11871
Fix PlayerNetPack validation and tests
3 years ago
Eric Robinson
9995c00323
Validate Item Locations ( #6427 )
3 years ago
qndel
be1d87fd29
fix selecting monsters outside of vision range
3 years ago
ephphatha
fb97eb7114
Clean up hit detection for inventory slots when pasting large items
3 years ago
ephphatha
dd296d25e0
Find the closest point when pasting items on the edge of the stash
3 years ago
Gleb Mazovetskiy
eb51a8beb3
Reduce demo message size
...
`DemoMsg` struct and event data are now kept separately.
RAM usage for the timedemo messages: -85% (1.8 MiB -> 261 KiB)
Demo (`.dmo`) file size: -57% (590,790 bytes -> 253,410 bytes)
3 years ago
Gleb Mazovetskiy
a3bf01f57b
LoggedFread: Do not log EOF as an error
...
Usually we call fread in a loop until reaching EOF.
Reaching EOF is not an error, so we should not log it as such.
The error message was previously seen when loading demo files.
3 years ago
Stephen C. Wills
45dbe6aa61
Shift software cursor graphic and remove special casing ( #6512 )
3 years ago
Anders Jenbo
c91e69384a
Revert "Fix cursor jitter when clicking inv items ( #6510 )"
...
This reverts commit 2a393397a1 .
3 years ago
Eric Robinson
2a393397a1
Fix cursor jitter when clicking inv items ( #6510 )
3 years ago
KPhoenix
00e8d8d75b
Add Save Game confirmation
3 years ago