staphen
2759eb130b
Update player's spell target when using quick cast on gamepad
4 years ago
Gleb Mazovetskiy
787bc54310
Only query cbutton state for button events
...
Similar to https://github.com/diasurgical/devilutionX/pull/4374
4 years ago
staphen
a0bc3f218f
Only query jbutton state for button events
4 years ago
Gleb Mazovetskiy
4c2fa76e49
Controller mouse emulation fixes
...
1. Do not interrupt mouse mode on virtual clicks.
2. Handle virtual clicks directly instead of sending an SDL event.
3. Fix D-Pad mouse emulation state handling.
4. Hides the modifier hints during D-Pad mouse emulation.
4 years ago
Gleb Mazovetskiy
56de0a6566
Fix modifier + D-Pad triggering a D-Pad event
...
Also fixes build with `HAS_KBCTRL=1`
Fixes #1977
4 years ago
Felipe Wannmacher
889cc04f95
Enhanced attack using controllers ( #4019 )
4 years ago
Gleb Mazovetskiy
79c7eee10a
Mouse/Gamepad fixes
...
Introduces a `ControlDevice` global which is distinct from `ControlMode`
in that it is set to `Gamepad` even when simulating a mouse.
This allows us to avoid a number of edge cases related to mode changes.
Fixes #4242
4 years ago
staphen
e6182709d1
Allow casting Town Portal, Teleport, and Guardian scrolls from inventory
4 years ago
Gleb Mazovetskiy
40b1cd6d8a
Fix a negative shift exponent sanitizer warning
...
Source/spells.h:53:14: runtime error: shift exponent -1 is negative
Fixes #4319
4 years ago
staphen
6250067283
Touchscreen navigation for stash
4 years ago
staphen
6a30cd3950
Add gamepad support for stash
4 years ago
Anders Jenbo
9226f1435c
Clean up PotionButtonRenderer
4 years ago
Anders Jenbo
0f44da5487
[gamepad] Fix using quick spells with rebound keys
4 years ago
Anders Jenbo
8235380ef9
[gamepad] Avoid OOB on empty belt
4 years ago
Anders Jenbo
9d65580294
[gamepad] Fix managing belt
4 years ago
obligaron
481f15ded5
Introduce StashStruct.GetPage/SetPage
4 years ago
Anders Jenbo
6d28810dc7
Change infostr from char[128] to std::string
4 years ago
Anders Jenbo
1409e604f5
Reduce string conversions
4 years ago
Anders Jenbo
fbabb96464
[gamepad] Align cursor after using item
4 years ago
Anders Jenbo
a48f89007d
Implement stash
4 years ago
Gleb Mazovetskiy
7fede6c4cb
Clean up owned/unowned CelSprite ambiguity
...
Makes `CelSprite` unowned and adds a new `OwnedCelSprite` class for
owned sprites.
This clarifies ownership and makes the code cleaner in a number of
places.
Additionally, because the `CelSprite` class is now tiny (1 less
pointer), we can pass it by-value instead of by-reference, removing a
pointer indirection in the rendering functions.
4 years ago
qndel
48f102eff1
Chat log
4 years ago
Felipe Wannmacher
6a6fd404dc
improved hints and added icons
4 years ago
ephphatha
db1d776539
Deduplicate PItem and DItem
4 years ago
obligaron
234a053863
Change Missiles Array to std::list
4 years ago
ephphatha
3bc2eb8471
Use ObjectAtPosition when highlighting from gamepad movement
4 years ago
ephphatha
5c4f6d80e8
Use Point/range iterator in FindItemOrObject
...
This addresses a todo comment, though not in the way that was originally intended as we no longer use Direction::Omni
4 years ago
Felipe Wannmacher
6e32bf9794
changed spell circle ui ( #3963 )
4 years ago
Anders Jenbo
2e0a73e967
Disable stand button when in town
...
Fixes #3290
4 years ago
staphen
d193b90101
Don't deactivate gamepad when graphics settings change
4 years ago
Anders Jenbo
b0252b3339
Make Gamepad cursor independant of hardware mouse
...
The gamepad cursor (inventory, spells etc) no longer relies on warping a
real mouse cursor. This should make things work better on platforms that
do not support this, like Wayland.
4 years ago
Anders Jenbo
576d946581
Allow use of touch to select world objects
4 years ago
Anders Jenbo
6b2481a76c
Touch support on all SDL2 platforms
4 years ago
staphen
74a77666b9
Improve behavior of ToControllerButtonEvent()
4 years ago
obligaron
419fe7b7ec
Change Keymapper to OptionCategory/OptionEntry
4 years ago
Gleb Mazovetskiy
fee39d46fa
DiabloUI: Handle mouse back button in menus
4 years ago
qndel
be0b79f9f5
Add IsWallSpell helper
4 years ago
Anders Jenbo
28ad032a2f
🐛 [gamepad] Fix casting lightningwalls
...
Fixes #3694
4 years ago
Anders Jenbo
d3a7c36d1d
Correct DPI on devices that apply extra scaling
4 years ago
Vladimir Olteanu
861fb99e9d
Quick cast
4 years ago
Gleb Mazovetskiy
c57644970f
Move `UiFlags` and `UiPanels` into their own files
...
The first breaks circular dependency between `DiabloUI` and `text_render`.
The latter one moves `UiPanels` to a more appropriate place.
4 years ago
Gleb Mazovetskiy
7e1fea6f76
clang-format all files in {Source,test}/
...
Also includes a few manual tweaks to comments and newlines for better results.
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
4 years ago
Gleb Mazovetskiy
8d1708358f
Extract spell list and book into separate files
...
Moves the spell list/book UI from `control.cpp` code into separate files.
4 years ago
obligaron
677303cba9
Reduce use of view globals in game menu
4 years ago
staphen
08e4e8c254
Implement virtual gamepad activation/deactivation
4 years ago
staphen
40cc894630
Force VIRTUAL_GAMEPAD=OFF when USE_SDL1=ON
4 years ago
Anders Jenbo
56170b3372
Clean up id normalization
4 years ago
Andrew James
796e2813cf
Use scoped enums for DungeonFlags/BFLAG ( #3135 )
4 years ago
Gleb Mazovetskiy
3d308983a8
Migrate to libmpq
...
libmpq is a much simpler alternative to StormLib for reading MPQ archives.
We use our own fork of libmpq: https://github.com/diasurgical/libmpq
Impact:
* DevilutionX is now a lot more portable. Unlike StormLib, libmpq only
needs platform-specific code for Windows.
* Locks around file access **removed** (instead we duplicate the file descriptor for streamed audio only).
* RAM usage is **300 KiB** lower than StormLib.
* Stripped release linux_x86_64 binary is **32 KiB** smaller.
* Amiga build now hangs instead of crashing.
4 years ago
Gleb Mazovetskiy
12b73076b8
Fix build error in plrctrl.cpp ( #3374 )
...
Follow-up to #3370
4 years ago