Commit graph

62 commits

Author SHA1 Message Date
staphen
e0a3c553b4 Add window focus logic for SDL1 2022-01-18 13:13:31 +01:00
obligaron
b3a9760bda Keymapper: Add mouse support 2022-01-15 15:31:48 +01:00
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.
2022-01-02 11:37:38 +01:00
Anders Jenbo
576d946581 Allow use of touch to select world objects 2022-01-02 11:37:38 +01:00
Anders Jenbo
6b2481a76c Touch support on all SDL2 platforms 2022-01-02 11:37:38 +01:00
staphen
74a77666b9 Improve behavior of ToControllerButtonEvent() 2021-12-24 23:08:41 +01:00
obligaron
18fb40ee32 Settingsmenu: Implement KeyInput 2021-12-23 00:26:12 +01:00
Gleb Mazovetskiy
b4afe50dd1 misc_msg.cpp: include order 2021-11-25 12:22:27 +01:00
Gleb Mazovetskiy
db7c9d08f5 Move DoSpeedBook to the right header 2021-11-25 02:15:41 +00:00
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>
2021-11-24 23:44:12 +01:00
staphen
40cc894630 Force VIRTUAL_GAMEPAD=OFF when USE_SDL1=ON 2021-11-15 00:55:32 +01:00
Gleb Mazovetskiy
e9a9daa794 DrawString: Stop allocating
Switch to a state-machine UTF-8 decoder from the branchless one.
This allows us to avoid copying the string on every `DrawString` call.
2021-11-07 04:17:50 +01:00
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.
2021-11-06 23:51:42 +00:00
Stephen C. Wills
423441c3dc
Fix speedbook navigation on gamepad 2021-11-03 10:50:35 +01:00
obligaron
2158faadab Use SDL_StartTextInput for gold drop dialog 2021-10-27 00:06:30 +02:00
Anders Jenbo
b3a9a2ddce [gamepad] Allow for mixed mode navigation in inventory 2021-10-20 05:08:45 +02:00
Yuri Pourre
b8450dc792 Assign ctrl to drop items 2021-09-29 18:15:26 +02:00
Anders Jenbo
7959b04573 SDL1 Unicode input support 2021-09-24 03:03:58 +02:00
Anders Jenbo
704a04ae4d Add support for Unicode fonts 2021-09-24 03:03:58 +02:00
obligaron
98eb863ea1 Use SDL Textinput for ingame chat 2021-09-21 21:03:01 +02:00
staphen
1b2d4d9478 Add comment to logic that skips handling touch-generated mouse events 2021-09-16 19:25:31 +02:00
staphen
3df85b70ce Add virtual gamepad event handlers and implement touch controls 2021-09-16 19:25:31 +02:00
staphen
b29141048a Move existing touch control logic to Vita platform 2021-09-16 19:25:31 +02:00
Juliano Leal Goncalves
b80859c021 ♻️ Leverage 'Rectangle.Center' in 'FocusOnCharInfo' function implementation 2021-08-30 06:45:51 +02:00
Juliano Leal Goncalves
6c21638bee ♻️ Leverage 'Point' in 'SetCursorPos' function 2021-08-30 06:45:51 +02:00
qndel
1ad950e088 FocusOnCharInfo cleanup 2021-08-29 17:53:13 +02:00
obligaron
77f9bded9e Introduce demo namespace 2021-08-19 00:03:58 +02:00
Anders Jenbo
96db759ba2 Disable mouse movment during demo playback 2021-08-14 14:52:39 +02:00
Anders Jenbo
38b1c96150 Control game speed during demo playback 2021-08-14 14:52:39 +02:00
Anders Jenbo
d523fc1e81 Cleanups 2021-08-02 10:12:40 +02:00
obligaron
fb562b29e9 Timedemo: Regard ProcessInput and gfProgressToNextGameTick 2021-07-31 20:12:31 +02:00
Anders Jenbo
eda4a5061e Implement demo recording and playback
This records all keyboard and mouse events to a file and lets you play
it back at a later point with a differen game speed.
2021-07-31 20:12:31 +02:00
Jonathan Bergeron
57d445d32f made pause / unpause safer and fixed issue with autopause when losing focus during the loading screen 2021-07-16 02:19:45 +02:00
JoBergeron
be3f1ba928
Pause game and mute music when game window loses focus (#2337) 2021-07-10 04:21:27 +02:00
Anders Jenbo
2ca6e37c46 Clean up sub folders using clang-tidy/Android Studio 2021-07-08 03:30:25 -07:00
Anders Jenbo
9b8bf92575 Rename quest globals 2021-07-08 02:01:14 -07:00
Anders Jenbo
96bf75b502 Rename player globals 2021-07-08 02:01:14 -07:00
Juliano Leal Goncalves
14429e2b23 ♻️ Leverage 'Point' to represent mouse position warping 2021-06-27 16:37:59 +02:00
Juliano Leal Goncalves
fd9f2099d0 ♻️ Leverage 'Point' to represent mouse position 2021-06-27 16:37:59 +02:00
Anders Jenbo
f167bd4dfb Clang-tidy: llvm-include-order 2021-06-27 01:45:49 +02:00
Anders Jenbo
2bdb6caa07
Cleanup majority of remaning implicit bool conversions (#2234) 2021-06-26 21:05:45 +02:00
Anders Jenbo
22b632f04a ♻️Clean up implicit bool conversions 2021-06-26 08:57:59 -07:00
Anders Jenbo
ee7b32d8f6 Player by reference part 3 2021-06-24 00:53:09 +02:00
Gleb Mazovetskiy
1bc9c3973f 🚚 engine.h: Extract Rectangle 2021-06-21 02:34:28 -07:00
Juliano Leal Goncalves
25eaac78c1 ♻️ Leverage 'Size' to represent a 'Rectangle's width/height 2021-06-20 18:27:45 -07:00
Juliano Leal Goncalves
e3ea6a9042 ♻️ Leverage 'Point' to represent a 'Rectangle's position 2021-06-20 18:27:45 -07:00
Juliano Leal Goncalves
ff147f9280 🚚 Rename 'RECT32' to 'Rectangle' to match naming style of other core structs 2021-06-20 18:27:45 -07:00
Gleb Mazovetskiy
f9d20b44d6 🎉 Hardware cursor (SDL2-only)
Disabled by default because of these known issues:

1. When clicking on inventory item, it briefly appears a bit shifted (in the wrong coordinates).

   This issue can happen with software cursor as well, but is a lot more
   obvious with the hardware cursor.

2. Cursor is scaled with nearest-neighbour scaling, which may look a bit different from
   how the rest of the graphics are scaled.

See also previous attempt: https://github.com/diasurgical/devilutionX/pull/955 by @viciious

Co-authored-by: Victor Luchits <vluchits@gmail.com>
2021-06-19 01:03:40 +02:00
Juliano Leal Goncalves
15c46b9eb0 💬 Rename HeroSpeech members to improve discoverability 2021-05-23 22:01:47 +02:00
Juliano Leal Goncalves
5350250a76 🚚 Rename speech functions to 'Say' variations 2021-05-23 05:32:34 +02:00