Eric Robinson
e60a4dca3e
Close Towner window when clicking outside ( #6504 )
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
8ed451b051
Move AddPlrExperience to class member function of Player
3 years ago
ephphatha
e6890cc5cc
Move MaxCharacterLevel to playerdat and add helpers for the various uses
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
ephphatha
d92d152576
Use unsigned type for character levels
3 years ago
ephphatha
486f5ca3e8
Replace ExpLvlsTbl global with helper function
3 years ago
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 .
3 years ago
Gleb Mazovetskiy
9ae72f0269
Remove `PointsInRectangle` factory functions
...
These are no longer needed in C++17 thanks to CTAD.
3 years ago
Gleb Mazovetskiy
ba4def9382
Use utils/algorithm/container.hpp in more places
3 years ago
Gleb Mazovetskiy
ebe8c6e576
Add `tl::expected` and use it in `ParseInt`
...
`std::expected` has been standardized for C++23.
3 years ago
Gleb Mazovetskiy
cbf51cd5ab
`DrawStringFormatArg`: Use `std::variant`
3 years ago
Gleb Mazovetskiy
9e8465e152
Clean up spell book rendering
3 years ago
KPhoenix
ba6cc56ae8
None to Empty
3 years ago
KPhoenix
6dde0f8a23
Add enum class for spell icons
3 years ago
Gleb Mazovetskiy
26f42520fa
Fix unused variable warnings
3 years ago
Gleb Mazovetskiy
d262589021
Support `const` inventory iterators
...
Previously, inventory iterators could only be used with non-const
objects, leading to suboptimal const correctness.
Adds support for `const` objects to inventory iterators via
C++17 CTAD.
3 years ago
Gleb Mazovetskiy
ecdf7380a8
PushAulibDecoder: Support 8-bit samples directly
...
Previously, we converted 8-bit audio to 16-bit, and then to float.
Eliminates the 8->16 conversion step.
Also optimizes the 16-bit conversion a bit.
3 years ago
Gleb Mazovetskiy
d5446f2f01
Use `std::variant` in `StringOrView`
...
We also add a direct string move-assignment (`operator=(std::string &&)`),
which results in better codegen.
As a consequence, we have to replace `= {}` assignments with `= StringOrView {}`
because `= {}` is now ambiguous.
3 years ago
Gleb Mazovetskiy
8c1a847f41
Remove utils/stdcompat/string_view.hpp
3 years ago
Gleb Mazovetskiy
8ebe2e0290
Fix -Wsign-compare warnings
3 years ago
Gleb Mazovetskiy
5960b20509
Remove a stray __cplusplus >= 201703L check
3 years ago
Gleb Mazovetskiy
e9b5ec77f9
Remove AppendStrView
3 years ago
Gleb Mazovetskiy
c19bfe87fa
Remove utils/stdcompat/algorithm.hpp
3 years ago
Gleb Mazovetskiy
f2c42924fe
Fix SDL.h includes
3 years ago
Gleb Mazovetskiy
5cc1f98b8d
Remove utils/stdcompat/invoke_result_t.hpp
3 years ago
Gleb Mazovetskiy
14540164a7
Remove utils/stdcompat/optional.hpp
3 years ago
Gleb Mazovetskiy
62d067b653
Remove utils/stdcompat/abs.hpp
3 years ago
Gleb Mazovetskiy
74755c8be7
Remove utils/stdcompat/cstddef.hpp
3 years ago
Gleb Mazovetskiy
53db86ee9a
Use `std::from_chars` instead of `std::stoi`
...
Adds a `ParseInt` function which uses `std::from_chars`.
From `std::from_chars` documentation:
> Unlike other parsing functions in C++ and C libraries,
> std::from_chars is locale-independent, non-allocating, and non-throwing.
Co-authored-by: Andrew James <ephphatha@thelettereph.com>
3 years ago
Gleb Mazovetskiy
703f3c2e6b
Clean up `IsAreaOk`
...
Follow-up to #6403
3 years ago
Gleb Mazovetskiy
2f1290c5d2
Remove C++11 compatibility code
3 years ago
Eric Robinson
7f2010f77b
Level Up Sound ( #6275 )
3 years ago
qndel
728b632960
fix typos
3 years ago
qndel
41adc6a259
rename WarpDrop -> PortalTownPosition
3 years ago
qndel
4884da895c
rename AddWarpMissile -> AddPortalMissile
3 years ago
qndel
398d09477a
rename AddInTownPortal -> AddPortalInTown
3 years ago
qndel
b5ab3a10a2
correct IsTileWalkable to mark tiles out of bounds as not walkable
3 years ago
qndel
1e6277595d
deduplicate NPC sell/buy code
3 years ago
obligaron
97f9045c83
Introduce TrySelectPixelBased
3 years ago
obligaron
f59e3aaffb
Introduce IsPointWithinClx
3 years ago
obligaron
d5642daeb4
Introduce GetScreenPosition
3 years ago
obligaron
ac7c96b33f
Introduce PointOf operator /=
3 years ago
obligaron
578ce01432
Introduce Towner/Player/Object/Item/Monster::currentSprite/getRenderingOffset
3 years ago
obligaron
e8838a73d5
Refactor CheckCursMove()
3 years ago
Anders Jenbo
b25b6a1daa
Fix spawn location when using map debug command
3 years ago
Anders Jenbo
28b26da7fa
Fix spawning shrines on custom levels
3 years ago
Gleb Mazovetskiy
7a5e5f73e6
Support language-specific font variants
...
Refs #3538
3 years ago