staphen
a151219b9b
Don't validate creation flags on gold
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
ephphatha
5f6e5ae9fb
Refactor iterator parsing to allow more reuse
3 years ago
staphen
4deae11871
Fix PlayerNetPack validation and tests
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
Stephen C. Wills
45dbe6aa61
Shift software cursor graphic and remove special casing ( #6512 )
3 years ago
Anders Jenbo
bf7135dd11
Adjust tests to work with data driven levels ( #6509 )
...
Co-authored-by: staphen <staphen@gmail.com>
3 years ago
ephphatha
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 <glex.spb@gmail.com>
3 years ago
ephphatha
996841e82e
Restore level 50 experience cap from Diablo
3 years ago
ephphatha
14639cd096
Replace _pNextExper with getter method
...
No real need to persist this value
3 years ago
ephphatha
da76e131e4
Add getter/setter for character levels to ensure _pNextExper stays synced
3 years ago
Stephen C. Wills
7b06703842
Add tests for net player validation ( #6492 )
3 years ago
Gleb Mazovetskiy
8c1a847f41
Remove utils/stdcompat/string_view.hpp
3 years ago
Gleb Mazovetskiy
62d067b653
Remove utils/stdcompat/abs.hpp
3 years ago
ephphatha
4e3f46603a
Remove unused attribute _pMaxLvl
3 years ago
Anders Jenbo
1af58fa4de
Update CI test demo recording
3 years ago
Anders Jenbo
8e7c29ecd3
Remove unused player property _pISplDur
3 years ago
Anders Jenbo
63277a842d
Clean up player packing
3 years ago
Anders Jenbo
efa51993e3
Split network player sync and hero save file
3 years ago
Anders Jenbo
8f74f86a6e
🐛 Use the alternate stairs up banner is active
3 years ago
qndel
3500dc1861
code cleanup
3 years ago
ephphatha
328a65424d
Add cases for non-arrow missiles
3 years ago
ephphatha
f90e969108
Use multiple samples instead of specific seeds to test missile rotations
...
This is a visual effect, shouldn't need to be repeatable from a specific starting seed (even in multiplayer?)
3 years ago
ephphatha
3bbb80d849
Introduce temporary function to advance the global rng state and discard results
3 years ago
ephphatha
b98e5fcfad
split logic responsible for advancing global generator state to a dedicated function
...
Exposing this also allows updating the engine test case to avoid peeking at the engine state after a roll, also will be useful for setting item/object seeds
3 years ago
Anders Jenbo
b38efb6ccf
Fix code style
3 years ago
Anders Jenbo
6e7ed13336
Add missing Hellfire healing potions to test data
3 years ago
Anders Jenbo
116bd3f626
Decompose iCreateInfo fixture table
3 years ago
Anders Jenbo
261776b255
Correct OOB check in PrepareInnerBorders()
3 years ago
obligaron
7985a9211d
Change Player::_pSplLvl to uint8_t
3 years ago
Anders Jenbo
13c5c09990
Clean up Light related naming
...
A few are left unchanged as they will be removed in a later commit
3 years ago
obligaron
abcea9853c
Update timedemo test to include improved lightning
3 years ago
Anders Jenbo
ec9d1b5550
Rename _oLight to applyLighting
3 years ago
DakkJaniels
24bb409086
Remove extra entry in experience level table and cap experience at level 50 requirement ( #5782 )
3 years ago
obligaron
b87711bc08
Reintroduce Player::spellFrom to seperate teleport cursor from queued spell
3 years ago
obligaron
eeca953615
Introduce UpdateHellfireFlag to set missing CF_HELLFIRE flag
3 years ago
obligaron
0426908988
Introduce GetTranslatedItemName/GetTranslatedItemNameMagical
3 years ago
obligaron
6f9453c00e
Introduce GenerateStaffName/GenerateStaffNameMagical
3 years ago
Gleb Mazovetskiy
e35595a1eb
StrCat improvements
...
1. Use `fmt::format_int` directly instead of parsing a format string.
2. Use `AppendStrView`.
3. Define the varargs versions using fold expressions when available.
4. Add tests.
3 years ago
obligaron
4cdd7ff2d9
Replace ReturnLevel/LevelTyp/LvlPosition
3 years ago
Gleb Mazovetskiy
f2cb9f0fa0
file_util: Implement `RecursivelyCreateDir`
...
With this, we no longer require `std::filesystem` support to create the
save file directory when it does not exist.
Note that by default the save file directory exists because it is
created by SDL, so this is mostly useful on platforms that override the
save directory or use `UNPACKED_SAVES`.
3 years ago
obligaron
adeeae2c52
Add option to enable singleplayer quests in multiplayer
3 years ago
obligaron
4fde59a494
drlg_test: Add TestInitGame helper
3 years ago
Gleb Mazovetskiy
1a1a282d9a
Use C FILE instead of C++ streams throughout
...
Reduces binary size by ~2 KiB and may improve compatibility with oddball
systems (e.g. PS2).
3 years ago
KPhoenix
d813f13700
`enum spell_id` -> `enum class SpellID`
3 years ago
ikonomov
d05992da75
Remove "Zen" hit recovery ( #5724 )
...
The description of Harmony says "Fastest", clearly implying that this is the fastest recovery bonus that is attainable for a given character and also an indication that the bonus is not cumulative with other items.
3 years ago
Eric Robinson
ef3a57b7d9
`enum spell_type` -> `enum class SpellType` ( #5674 )
3 years ago
ikonomov
7e11d63004
Update CMakeLists.txt
3 years ago
KPhoenix
8db521727d
`enum missile_id` -> `enum class MissileID`
...
Changes `enum missile_id` to `enum class MissileID`
3 years ago
staphen
0d43f468e5
Improve missile collision interpolation logic
3 years ago