380 Commits
Author SHA1 Message Date
obligaron c8b8996cdd Fix MSVC warnings in controls\* 2023-12-17 15:42:33 +01:00
obligaron dc4cd43e8f Remove duplicate function definitions from control.h 2023-12-14 22:17:57 +01:00
obligaron 2da492d203 Change some functions to Player reference 2023-12-05 20:40:30 +01:00
ephphatha 3b458376bb Use a pointer to a player instance instead of network id for cursor hovering 2023-11-09 17:40:50 +01:00
Gleb Mazovetskiy fdb5738815 Add cursor support to DiabloUI and chat
Supports move left/right/home/end, backspace, delete, and Ctrl+V.
2023-10-24 01:56:54 +01:00
Gleb Mazovetskiy 848f234aed Add automap type cycling controls
Makes cycling the automap type separate from toggling it on/off.

The TAB key can still be used for quick on/off as usual, while
the new Cycle key ("m" by default) can be used to switch between available
display types.

`Get/NextDebugMonster` debug keybind changed to "v" to avoid a conflict.
2023-09-20 04:50:52 +01:00
ephphatha 24a20ce8e2 Extract uses of MyPlayer to prevent future crashes in tests/game init 2023-09-20 05:49:54 +02:00
Gleb Mazovetskiy af869ac732 Merge branch 'master' into dev-merged 2023-09-01 20:49:34 +01:00
ephphatha bd8aab0aff handle stash item swapping using the gamepad a bit better 2023-09-01 15:26:52 +02:00
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
2023-09-01 15:26:52 +02:00
ephphatha 0d292b10c4 Move to the first inventory column from the left hand while holding wide items 2023-08-31 15:53:43 +02:00
ephphatha 070a11901f Fix handling of gamepad cursor movement following item cursor change 2023-08-31 15:53:43 +02:00
Gleb Mazovetskiy 26f42520fa Fix unused variable warnings 2023-08-16 06:02:17 +09:00
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.
2023-08-14 10:55:02 +01:00
Gleb Mazovetskiy 8c1a847f41 Remove utils/stdcompat/string_view.hpp 2023-08-14 09:59:14 +01:00
Gleb Mazovetskiy c19bfe87fa Remove utils/stdcompat/algorithm.hpp 2023-08-14 01:54:29 +01:00
Gleb Mazovetskiy 14540164a7 Remove utils/stdcompat/optional.hpp 2023-08-14 01:54:29 +01:00
Gleb Mazovetskiy 62d067b653 Remove utils/stdcompat/abs.hpp 2023-08-14 01:54:29 +01:00
staphen 11e0ccd854 Invoke padmap release handler in menus 2023-07-09 22:06:38 +02:00
Gleb Mazovetskiy 72d42143a1 Demo: Disable KBCTRL while the demo is running
KBCTRL can interfere with the demo mode.
For example, Escape maps to Select on most KBCTRL platforms.
2023-06-16 18:49:14 +01:00
Anders Jenbo 01a7966f1d Empty cursor when closing inventory
Fixes #4205
2023-06-03 20:25:50 +02:00
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.
2023-05-10 16:29:27 +01:00
qndel 731ad1ada5 use std::rotate (#6019) 2023-04-22 13:53:03 +02:00
staphen 8b6b898493 Defer d-pad inputs to movement handlers 2023-04-21 02:45:10 +02:00
staphen b537f677f9 Improve d-pad handling for in-game menus 2023-04-17 00:55:01 +02:00
staphen 71ccd415c5 Update gamepad motion state regardless of the active event handler 2023-04-16 08:49:30 +02:00
staphen bfc54c9bd3 Add arena potions to the virtual gamepad renderer 2023-04-14 10:26:46 +02:00
qndel ce2ce86070 inspect players command 2023-04-14 02:40:17 +02:00
obligaron b916c8e428 Introduce Open/Close/ToggleCharPanel 2023-04-14 02:40:17 +02:00
obligaron c4388b0d41 Remove unused pnum from UseInvItem 2023-04-14 02:40:17 +02:00
obligaron 1522dc7031 Multiplayer: Add arena potions 2023-04-13 21:20:53 +02:00
staphen d2bc7c10ba Fix stand ground for gamepad controls 2023-04-02 18:31:16 +02:00
Gleb Mazovetskiy c71eb0ff54 Add support for new SDL 2.24.0 gamepad types
Fixes #5878
2023-03-26 13:28:03 +01:00
ephphatha 94c646ef8f Use rectangles for inventory/belt hit areas 2023-03-25 14:22:57 +01:00
obligaron 2296bf5625 Use StashStruct::EmptyCell instead for empty stash item check 2023-03-21 14:15:00 -04:00
Gleb Mazovetskiy ebcd6b222d Optimize SpellData size: 40 bytes -> 24 2023-02-10 10:51:06 +00:00
KPhoenix a1fbf5253f enum talk_id -> enum class TalkID 2023-02-09 13:04:01 +01:00
Gleb Mazovetskiy b61dac853b Add GetSpellData(SpellID) 2023-02-05 12:12:48 +00:00
KPhoenix d813f13700 enum spell_id -> enum class SpellID 2023-02-05 10:24:58 +00:00
Gleb Mazovetskiy 1788d2f8ec Remove miniwin
Event handling code moved to `engine/events.{hpp,cpp}`.
2023-02-01 16:06:57 +00:00
Eric Robinson ef3a57b7d9 enum spell_type -> enum class SpellType (#5674) 2023-01-28 22:25:37 +01:00
KPhoenix 8db521727d enum missile_id -> enum class MissileID
Changes `enum missile_id` to `enum class MissileID`
2023-01-18 17:17:25 +00:00
Anders Jenbo a29fc3a074 Correct casing for Player::isWalking() 2023-01-12 09:42:49 +01:00
staphen b66b6c611b Produce multiple controller button events for SDL_JOYHATMOTION events 2022-12-05 05:05:07 +01:00
staphen f17ea8db98 Implement settings menu for gamepad customization 2022-11-27 18:27:21 +01:00
Gleb Mazovetskiy 46e755f680 Simplify spell icon handling
Hide the internals of spell icon rendering behind simple functions.
2022-11-22 02:37:19 +01:00
Gleb Mazovetskiy 74ca2ab0db Use no-background spell icons with UNPACKED_MPQS
Spell icons size: 200 KiB -> 81 KiB

Fixes #5470
2022-11-22 00:14:18 +00:00
Gleb Mazovetskiy a2a8b1c706 Padmapper: Simplify buttonTo* data structures
Use an `std::array` instead of `std::unordered_map`.
2022-11-07 04:56:50 +00:00
staphen f60f704ecc Reverse A and B in pad button to key translation functions 2022-11-04 11:27:14 +00:00
staphen e1167350a2 Clean up handling for gamepad IGNORE/NONE buttons 2022-11-02 07:41:30 +00:00