Gleb Mazovetskiy
3e6b501d82
Fix pathfinding and increase player path limit
...
The previous implementation didn't behave quite like A-* is supposed to.
After trying to figure out what's causing it and giving up,
I've reimplemented it in a straightforward manner.
Now it seems to work a lot better.
Also increases maximum player path length to 100 steps.
We still only store the first 25 steps in the save file for vanilla
compatibility.
1 year ago
Gleb Mazovetskiy
ee16071761
Untangle pathfinding dependencies
...
1. Makes `path.cpp` concerned solely with the pathfinding algorithm.
2. Turns `path_test` into a standalone test.
1 year ago
Gleb Mazovetskiy
3bb1d685af
Extract current input mode into its own library
...
Removes a transitive dependency on the entire plrctrl from options.
1 year ago
Gleb Mazovetskiy
4113805237
Options: Remove dependency on gbRunGame
1 year ago
Gleb Mazovetskiy
d94bc424df
`sgOptions` -> `GetOptions()`
...
In C++, globals initialization order accross translation units is not
defined. Accessing a global via a function ensures that it is initialized.
This will be needed for #7638 , which will statically initialize change
handlers after the Options object has been initialized.
1 year ago
Gleb Mazovetskiy
a49b1f2d58
Extract Is{Any,None}Of out of engine.hpp
...
Untangles some of the dependencies
1 year ago
Andrew James
aec1769858
account for held items in ResetInvCursorPosition
1 year ago
Andrew James
9c1a3b7b55
improve movement to body slots
1 year ago
Andrew James
99014d4ce7
allow moving from stash to inv from left side of wide items
1 year ago
Andrew James
3a3498f766
dedupe code for moving from inv to stash
...
also reorganising belt to stash checks to match
1 year ago
Sophie Alberti
21b12f7632
improve gamepad stash control, fix #7019
1 year ago
Gleb Mazovetskiy
e692acb049
Pathfinding: Rename functions
...
Rename functions to better reflect what they do.
1 year ago
Eric Robinson
e90855b3c4
Rename stores.cpp global variables ( #7425 )
2 years ago
Anders Jenbo
974f517fd9
Make belt_item_type in to an enum class
2 years ago
Eric Robinson
6396af1ff5
Cleanup panel code (Part 2) ( #7421 )
2 years ago
Eric Robinson
8970eaa410
Cleanup panel code (Part 1) ( #7417 )
...
HPPer changed from 80 to 81. The globes have 81 rows of pixels that can be filled.
2 years ago
Anders Jenbo
e949f41d83
Clean up selection type
2 years ago
qndel
24f108f193
fix many typos ( #7322 )
2 years ago
Gleb Mazovetskiy
56342126bf
Log: Avoid making strings that won't be printed
...
When we switched to `fmt` for logging, the log functions were
implemented in such a way that the strings were always constructed,
even if log priority was such that they weren't ever logged.
2 years ago
matheusgomes28
7848ab731e
Splitting CheckInvPaste() into smaller functions ( #6984 )
2 years ago
Eric Robinson
bd89e2f7a0
Bugfix: Celia Infostring displaying after quest ( #7009 )
2 years ago
qndel
d907ee230d
fix typos
...
[skip ci]
2 years ago
obligaron
2da492d203
Change some functions to Player reference
2 years ago
ephphatha
3b458376bb
Use a pointer to a player instance instead of network id for cursor hovering
2 years ago
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
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
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
62d067b653
Remove utils/stdcompat/abs.hpp
3 years ago
Anders Jenbo
01a7966f1d
Empty cursor when closing inventory
...
Fixes #4205
3 years ago
staphen
8b6b898493
Defer d-pad inputs to movement handlers
3 years ago
obligaron
b916c8e428
Introduce Open/Close/ToggleCharPanel
3 years ago
obligaron
c4388b0d41
Remove unused pnum from UseInvItem
3 years ago
obligaron
1522dc7031
Multiplayer: Add arena potions
3 years ago
staphen
d2bc7c10ba
Fix stand ground for gamepad controls
3 years ago
ephphatha
94c646ef8f
Use rectangles for inventory/belt hit areas
3 years ago
obligaron
2296bf5625
Use StashStruct::EmptyCell instead for empty stash item check
3 years ago
Gleb Mazovetskiy
ebcd6b222d
Optimize `SpellData` size: 40 bytes -> 24
3 years ago
KPhoenix
a1fbf5253f
`enum talk_id` -> `enum class TalkID`
3 years ago
Gleb Mazovetskiy
b61dac853b
Add `GetSpellData(SpellID)`
3 years ago
KPhoenix
d813f13700
`enum spell_id` -> `enum class SpellID`
3 years ago
Gleb Mazovetskiy
1788d2f8ec
Remove miniwin
...
Event handling code moved to `engine/events.{hpp,cpp}`.
3 years ago
Eric Robinson
ef3a57b7d9
`enum spell_type` -> `enum class SpellType` ( #5674 )
3 years ago
KPhoenix
8db521727d
`enum missile_id` -> `enum class MissileID`
...
Changes `enum missile_id` to `enum class MissileID`
3 years ago
Anders Jenbo
a29fc3a074
Correct casing for Player::isWalking()
3 years ago
Gleb Mazovetskiy
46e755f680
Simplify spell icon handling
...
Hide the internals of spell icon rendering behind simple functions.
3 years ago
staphen
e1167350a2
Clean up handling for gamepad IGNORE/NONE buttons
3 years ago