ephphatha
24a20ce8e2
Extract uses of MyPlayer to prevent future crashes in tests/game init
3 years ago
ephphatha
bd8aab0aff
handle stash item swapping using the gamepad a bit better
3 years ago
Gleb Mazovetskiy
5355146d51
Use structured bindings
3 years ago
ephphatha
dd296d25e0
Find the closest point when pasting items on the edge of the stash
3 years ago
Stephen C. Wills
45dbe6aa61
Shift software cursor graphic and remove special casing ( #6512 )
3 years ago
ephphatha
996841e82e
Restore level 50 experience cap from Diablo
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
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
8c1a847f41
Remove utils/stdcompat/string_view.hpp
3 years ago
Gleb Mazovetskiy
c19bfe87fa
Remove utils/stdcompat/algorithm.hpp
3 years ago
Gleb Mazovetskiy
62d067b653
Remove utils/stdcompat/abs.hpp
3 years ago
Gleb Mazovetskiy
8101e2c0ba
Add `c_any_of` and friends
...
Adds handy helpers for performing algorithms on the entire container.
They're prefixed with `c_` for container.
This naming convention is identical to some popular C++ libraries, such
as Abseil.
3 years ago
qndel
1b42a17153
dont show hit indicator for 1 player
3 years ago
qndel
88e7c8feec
get rid of hardcoded ALT in variable/function name
3 years ago
Gleb Mazovetskiy
5bf0b8bc96
Add more missing <cstdint> includes
...
https://github.com/diasurgical/devilutionX/pull/6095 only added includes
for `uint32_t`, this PR also adds the includes for the remaining
integral types.
3 years ago
Gleb Mazovetskiy
4fa3732526
Add missing <cstdint> includes
...
Done with the following script:
```ruby
Dir["Source/**/*.{h,c,cc,cpp,hpp}"].each do |path|
v = File.read(path)
next if !v.include?("uint32_t") || v.include?("cstdint")
lines = v.lines
line_num = if lines[2].start_with?(" *")
lines.index { |l| l.start_with?(" */") } + 3
else
3
end
lines.insert(line_num, "#include <cstdint>\n")
File.write(path, lines.join(""))
end
```
then fixed-up manually
3 years ago
obligaron
b87711bc08
Reintroduce Player::spellFrom to seperate teleport cursor from queued spell
3 years ago
obligaron
b916c8e428
Introduce Open/Close/ToggleCharPanel
3 years ago
obligaron
1522dc7031
Multiplayer: Add arena potions
3 years ago
obligaron
590c990c80
Introduce Item::getName
3 years ago
obligaron
2296bf5625
Use StashStruct::EmptyCell instead for empty stash item check
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
staphen
58b48e17ea
Fix OOB access when accessing stash
3 years ago
ikonomov
49894785b5
Update stash.cpp
3 years ago
obligaron
715e689ecb
Introduce Item::isUsable()
3 years ago
Eric Robinson
f75f66d54b
Add `playerdat` ( #5763 )
3 years ago
KPhoenix
a1fbf5253f
`enum talk_id` -> `enum class TalkID`
3 years ago
Gleb Mazovetskiy
1788d2f8ec
Remove miniwin
...
Event handling code moved to `engine/events.{hpp,cpp}`.
3 years ago
Trihedraf
624d5be3d2
make Floating Numbers an enum for random, vertical or off
3 years ago
Gleb Mazovetskiy
527e876fff
Disable item labels when in store
...
Also disable ground item outlines on hover when in store.
3 years ago
obligaron
b7e2c649cf
Recalculate cursor position after level change
3 years ago
Anders Jenbo
c99f7cf644
Floating numbers ( #5639 )
...
Co-authored-by: qndel <stefan551@o2.pl>
Co-authored-by: Stephen C. Wills <staphen@gmail.com>
3 years ago
Anders Jenbo
bb2463862c
Use Position in AddItemToLabelQueue()
3 years ago
Gleb Mazovetskiy
a7324a15c0
Item labels: Clip to viewport
...
Instead of redrawing the panel to avoid item label clipping, clip the labels themselves.
3 years ago
Gleb Mazovetskiy
972ee091a1
qol/itemlabels: Use a flat set for used X coords
...
The set only contains a handful of elements.
It is faster and more space-efficient to store it as a vector.
3 years ago
Gleb Mazovetskiy
ba56673d55
Only load stash graphics in town
...
Saves 69 KiB in the dungeon
3 years ago
KPhoenix
069ba7f1d4
[QOL] Colored slot backs ( #5266 )
3 years ago
Gleb Mazovetskiy
759ca7f055
`WorldTileRectangle/Size`
...
Adds a custom sized type for the world tile rectagle.
This allows us to better express intent.
It also allows us to make certain globals smaller, e.g. `THEME_LOC`.
3 years ago
staphen
8b6db3a678
Get rid of panelstr, pnumlines, and ClearPanel()
4 years ago
Gleb Mazovetskiy
188dc79f6e
Make `Players` a vector
4 years ago
Gleb Mazovetskiy
d741018fee
Remove more redundant `devilutionx.mpq` checks
4 years ago
Gleb Mazovetskiy
c351acbf7e
Remove redundant devilutionx.mpq check
...
We now check it only once in `CheckArchivesUpToDate`.
We then use `LoadClx` instead of `LoadOptionalClx` throughout.
4 years ago
Gleb Mazovetskiy
5505e830fb
Render XP bar as CLX
...
Missed in #5183 .
Also, the previous conversion command was incorrect (missing
--transparent-color 1), re-converted with:
```
pcx2clx --transparent-color 1 data/xpbar.pcx
```
4 years ago
Gleb Mazovetskiy
17a97450bc
Convert assets to CLX
...
Converted using the following commands:
```
cd Packaging/resources/assets
pcx2clx --transparent-color 1 --num-sprites 256 fonts/*.pcx && rm fonts/*.pcx
pcx2clx --num-sprites 2 ui_art/dvl_but_sml.pcx && rm ui_art/dvl_but_sml.pcx
pcx2clx --transparent-color 1 data/hintbox.pcx data/hintboxbackground.pcx && rm data/hintbox.pcx data/hintboxbackground.pcx
pcx2clx --transparent-color 1 --num-sprites 6 data/hinticons.pcx && rm data/hinticons.pcx
pcx2clx --num-sprites 2 data/panel8buc.pcx data/dirtybuc.pcx data/dirtybucp.pcx && rm data/panel8buc.pcx data/dirtybuc.pcx data/dirtybucp.pcx
pcx2clx --transparent-color 1 data/healthbox.pcx && rm data/healthbox.pcx
pcx2clx --transparent-color 1 --num-sprites 6 data/resistance.pcx && rm data/resistance.pcx
pcx2clx --transparent-color 1 --num-sprites 5 data/monstertags.pcx && rm data/monstertags.pcx
pcx2clx --transparent-color 1 data/stash.pcx && rm data/stash.pcx
pcx2clx --transparent-color 1 --num-sprites 5 data/stashnavbtns.pcx && rm data/stashnavbtns.pcx
pcx2clx **/*.pcx && rm **/*.pcx
git checkout master -- ui_art/black_diablo.pcx ui_art/black_hellfire.pcx data/charbg.pcx data/talkbutton.pcx data/panel8bucp.pcx
rm ui_art/black_diablo.clx ui_art/black_hellfire.clx data/charbg.clx data/talkbutton.clx data/panel8bucp.clx
```
4 years ago
Gleb Mazovetskiy
961866e1c4
CLX: A new graphics format
...
The format is almost identical to CL2, except it uses the frame header
to store frame width and height instead of 5 32-line offsets.
This means we always have access to frame dimensions, so we can use it
as an on-disk format for our graphics as well.
Additionally, we may be able to optimize the rendering even more
in the future now that we have guaranteed knowledge of frame dimensions.
4 years ago