Gleb Mazovetskiy
5b187e63f6
Use C++20 using enum instead of alias enum members manually
2023-09-03 17:52:40 +00:00
staphen
a151219b9b
Don't validate creation flags on gold
2023-09-03 17:03:25 +02:00
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
2023-09-03 01:13:48 +01:00
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.
2023-09-03 00:48:06 +01:00
Vinícius Ferrão
2644ec73af
Add Crippling Shrines from Hellfire ( #6273 )
2023-09-03 01:42:59 +02:00
Gleb Mazovetskiy
70ff515f48
Stream demo messages
...
This entirely eliminates the demo memory overhead.
2023-09-02 20:54:24 +01:00
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
2023-09-02 16:43:59 +01:00
DakkJaniels
ef87664403
refactor cleaving: added in player method to determine if character can cleave and if an item is equipped.
2023-09-02 06:51:15 +02:00
Gleb Mazovetskiy
d31a7b5c2c
Log Demo settings
2023-09-01 21:59:20 +01:00
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.
2023-09-01 21:56:59 +01:00
Gleb Mazovetskiy
af869ac732
Merge branch 'master' into dev-merged
2023-09-01 20:49:34 +01:00
ephphatha
bd8aab0aff
handle stash item swapping using the gamepad a bit better
2023-09-01 15:26:52 +02:00
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
2023-09-01 15:26:52 +02:00
ephphatha
0d292b10c4
Move to the first inventory column from the left hand while holding wide items
2023-08-31 15:53:43 +02:00
ephphatha
070a11901f
Fix handling of gamepad cursor movement following item cursor change
2023-08-31 15:53:43 +02:00
Eric Robinson
d4682082e2
Add duration parameter to InitDiabloMsg() ( #6514 )
2023-08-31 08:03:46 +02:00
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.
2023-08-30 13:25:26 +02:00
Gleb Mazovetskiy
62e9aa0448
MissilePosition: Use WorldTilePosition
...
Reduces struct size and makes the types of coordinates more obvious.
2023-08-29 20:00:54 +01:00
ephphatha
5f6e5ae9fb
Refactor iterator parsing to allow more reuse
2023-08-29 15:17:54 +02:00
KPhoenix
cf4d88936b
Change InitMissileGFX()
2023-08-29 14:26:17 +02:00
Gleb Mazovetskiy
5355146d51
Use structured bindings
2023-08-29 12:56:49 +01:00
Stephen C. Wills
5e778431c3
Deterministic timer simulation for shrine messages in demo mode ( #6516 )
2023-08-29 13:46:49 +02:00
Eric Robinson
e3d79ae1c1
Fix automap ( #6513 )
2023-08-29 13:43:13 +02:00
staphen
4deae11871
Fix PlayerNetPack validation and tests
2023-08-27 21:34:38 +02:00
Eric Robinson
9995c00323
Validate Item Locations ( #6427 )
2023-08-27 18:22:24 +02:00
qndel
be1d87fd29
fix selecting monsters outside of vision range
2023-08-27 18:20:07 +02:00
ephphatha
fb97eb7114
Clean up hit detection for inventory slots when pasting large items
2023-08-27 18:16:04 +02:00
ephphatha
dd296d25e0
Find the closest point when pasting items on the edge of the stash
2023-08-27 18:11:44 +02:00
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)
2023-08-27 16:49:13 +01:00
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.
2023-08-27 15:59:03 +01:00
Stephen C. Wills
45dbe6aa61
Shift software cursor graphic and remove special casing ( #6512 )
2023-08-26 16:45:36 +02:00
Anders Jenbo
c91e69384a
Revert "Fix cursor jitter when clicking inv items ( #6510 )"
...
This reverts commit 2a393397a1 .
2023-08-26 04:00:38 +02:00
Eric Robinson
2a393397a1
Fix cursor jitter when clicking inv items ( #6510 )
2023-08-26 01:27:48 +02:00
KPhoenix
00e8d8d75b
Add Save Game confirmation
2023-08-26 01:10:27 +02:00
Anders Jenbo
15ed246239
Merge branch 'master' of github.com:diasurgical/devilutionX into development
2023-08-26 01:09:03 +02:00
Eric Robinson
9277aa72de
Fix Floating Numbers after death ( #6505 )
2023-08-26 01:06:10 +02:00
KPhoenix
cb5537083d
Fix right click during dialogue
2023-08-26 01:05:05 +02:00
Eric Robinson
e60a4dca3e
Close Towner window when clicking outside ( #6504 )
2023-08-26 01:04:13 +02:00
ephphatha and Gleb Mazovetskiy
32c3316743
Load experience data from file
...
Also added an iterator based API, though it's not useful for this use-case. Might be nice in the future?
The field/record iterators is single-pass input iterators with shared state.
To avoid rescanning fields unnecessarily parseInt currently can only be called once, it would be possible to make these iterators bidirectional with a bit of extra state (holding onto the start pointer)
Co-authored-by: Gleb Mazovetskiy <[email protected] >
2023-08-24 05:46:44 +02:00
ephphatha
996841e82e
Restore level 50 experience cap from Diablo
2023-08-24 05:46:44 +02:00
ephphatha
8ed451b051
Move AddPlrExperience to class member function of Player
2023-08-24 05:46:44 +02:00
ephphatha
e6890cc5cc
Move MaxCharacterLevel to playerdat and add helpers for the various uses
2023-08-24 05:46:44 +02:00
ephphatha
14639cd096
Replace _pNextExper with getter method
...
No real need to persist this value
2023-08-24 05:46:44 +02:00
ephphatha
da76e131e4
Add getter/setter for character levels to ensure _pNextExper stays synced
2023-08-24 05:46:44 +02:00
ephphatha
d92d152576
Use unsigned type for character levels
2023-08-24 05:46:44 +02:00
ephphatha
486f5ca3e8
Replace ExpLvlsTbl global with helper function
2023-08-24 05:46:44 +02:00
Stephen C. Wills
7b06703842
Add tests for net player validation ( #6492 )
2023-08-21 00:18:03 +02:00
Gleb Mazovetskiy
4a4735e908
string_view-based asset lookup
...
Changes asset lookup functions to use `std::string_view` instead of
`const char *`.
This required new APIs in libmpq, added in
https://github.com/diasurgical/libmpq/pull/13 .
2023-08-20 16:20:08 +09:00
Gleb Mazovetskiy
9ae72f0269
Remove PointsInRectangle factory functions
...
These are no longer needed in C++17 thanks to CTAD.
2023-08-20 15:37:28 +09:00
Anders Jenbo
02ca96ba67
Bump Android build chain to the latest from Google to not upset them
2023-08-19 21:41:23 +02:00