2679 Commits

Author SHA1 Message Date
ceski
49634df73d
Disable mouse acceleration by default (#1838) 2024-08-14 07:09:43 -07:00
Roman Fomin
5b4f27b5be
add more places to find IWADs (from Doom Retro) (#1831) 2024-08-12 17:24:29 +07:00
ceski
31d7a39490 Enable bluetooth gyro support for DualShock 4 and DualSense 2024-08-11 12:49:22 -07:00
ceski
9b91cec258
Add gamepad gyro and flick stick support (#1800)
* Remove obsolete camera update check

No longer needed since mouse and gamepad "prep" were separated.

* Use `MIN_F` constant

* Rename "swap" to "southpaw"

* Reorganize gamepad settings and menu items

* Update defaults

* Use consistent gamepad naming

A few exceptions made for joystick names.

* Simplify `deltatics` calculation

* Simplify `I_CalcGamepadAxes()`

* Track axis update time

* Use axis update time for `CalcExtraScale()`

* Extra sensitivity improvements, refactoring

* Add flick stick feature

* Flush gamepad events on reset

* Add separate touchpad touch and press inputs

* Add `joy_flick_mode`

* Add `joy_flick_rotation_speed`

* Enable float data type for events

* Add gyro support

* Update README.md

* Add option to disable analog sticks

Rename setting to be more descriptive and force new default value. Analog sticks can always navigate menus, regardless of this setting.

* Don't scale flick stick by regular stick sensitivity

When in flick stick mode and holding strafe modifier, regular stick sensitivity still applies.

* Add local space turn/lean options

* Add player space turn/lean options

* Add calibration option

* Remove "clear calibration" menu item

* Fix DisableItem and DisableItemFunc checks

* Add back gyro "tightening" menu item

Set a recommended default. Power users will want to disable this.

* Add gyro "steadying" menu item to combine smoothing and tightening

* Combine gyro space/enable into one setting

* Load gyro calibration once

* Lower max steadying and use 0.1 increments

Also update default steadying threshold to 3.0 degrees/second.

* Cosmetic changes

* Use degrees/second for analog stick speed

A default of 240 degrees/second is an unofficial standard used in many FPS games.

* Disable menu items if joy_enable is set to 0

* Show raw value dot on thermos for deadzone and steadying

Similar to the concept featured in Ironwail. Also reduce scope for some variables.

* Fix opening/closing a gamepad multiple times

SDL_CONTROLLERDEVICEREMOVED events send the instance ID, not the index.

* Enable/disable menu items when gamepad is opened/closed

* Cosmetic change

* Use button names that match gamepad platform

Can be overridden with `joy_platform`. Config read/write always uses Xbox-centric naming, as before.

* Improve touchpad key binding response

* Use sensor state for gyro data instead of events

Read the sensor state instead of using SDL_CONTROLLERSENSORUPDATE events as a workaround for low update rate gyro devices (e.g. Switch controllers). When the menu is active, temporarily enable SDL_CONTROLLERSENSORUPDATE events to capture as many samples as possible for calibration.

* Allow more actions to confirm/cancel "restore defaults"

So that gamepad users can confirm/cancel.

* Let MENU_BACKSPACE back out of menu item selection

Except for binding an input. This allows gamepad users to press B/circle to back out of menu items.

* Reduce scope for `motion`

* Reduce scope for `flick`

* Cosmetic changes

* Change menu item dots to meters with color

* Add "invert" gyro button action

* Use separate gyro space/enable (again)

Let players toggle gyro aiming on/off quickly without affecting the desired gyro space, which is an abstract concept.
2024-08-11 00:43:02 -07:00
Fabian Greffrath
2d48a6eca7 always print full weapon command in HUD widget 2024-08-09 17:20:34 +02:00
Roman Fomin
46f9050489
use actions/setup-python (#1827) 2024-08-09 20:03:06 +07:00
Roman Fomin
539f69b17d use PIP_BREAK_SYSTEM_PACKAGES=1 2024-08-09 19:18:08 +07:00
Fabian Greffrath
14b8b356d7
run pip --break-system-packages 2024-08-09 13:17:00 +02:00
Fabian Greffrath
012162d8ba
do not allow direct SSG switches in Vanilla demos (#1824)
Fixes desync in b109xm-00463.lmp
2024-08-09 12:51:05 +02:00
Roman Fomin
24bbf539b3
use std memory functions in memio.c (#1822) 2024-08-09 14:31:44 +07:00
Fabian Greffrath
778baf3813
UMAPINFO: allow up to 10 episodes (#1823)
Fixes #1821

This could as well be achieved by dynamically allocating the arrays,
but we'd have to restrict to 10 episodes anyway, because more won't
fit on the episode selection menu screen.
2024-08-09 09:03:10 +02:00
ceski
e0c080d67e
Fix freelook toggles (#1819)
* Fix freelook toggles

* Ignore freelook input when centering view
2024-08-05 07:03:59 -07:00
Roman Fomin
fac7cf789f
remove GCC variant of div64_32 (#1818) 2024-08-04 11:33:40 +07:00
Fabian Greffrath
bf163d8f3e
fix crosshair target lock-on on voxel models (#1812)
Fixes #1811
2024-08-02 17:32:56 +02:00
gendlin
60d9deae96
Use native texture format (#1810)
* Init palette alpha
2024-08-02 19:51:53 +07:00
Roman Fomin
b2ee08b2aa
fix sound origin for huge levels (taken from PrBoom+) (#1815) 2024-08-02 19:37:39 +07:00
Roman Fomin
1a3addd0d9
fix setup menu highlight when using non-menu key (#1813) 2024-08-02 01:54:35 +07:00
Fabian Greffrath
6eb4413fb8
Protect against invalid readyweapon (#1807)
Co-authored-by: kraflab <kraflab@gmail.com>
2024-07-31 14:42:41 +02:00
Fabian Greffrath
29d3fabef0
Fix bossaction walkover specials (#1806)
Co-authored-by: kraflab <kraflab@gmail.com>
2024-07-31 14:42:13 +02:00
Fabian Greffrath
b7f1eba406
Short circuit friend list error (#1805)
Co-authored-by: kraflab <kraflab@gmail.com>
2024-07-30 11:49:29 +02:00
Fabian Greffrath
296198196c
fix resolution affecting automap min/max scale (#1804)
Fixes #1802
2024-07-30 11:49:08 +02:00
Xemonix
1b3f85731e
Center setup menu title patches (#1801)
* Center setup menu title patches

* Use M_X_CENTER macro for consistency
2024-07-25 19:50:10 +02:00
Fabian Greffrath
cb53e63083 Merge branch 'master' of github.com:fabiangreffrath/woof 2024-07-24 13:21:09 +02:00
Fabian Greffrath
fa62ed23ac allocate one more element in the weaponinfo[] array 2024-07-24 13:20:58 +02:00
Fabian Greffrath
bf31da0b7d
suppress pause when a new game is started (#1799)
https://www.doomworld.com/forum/topic/112333-this-is-woof-1450-apr-30-2024/?page=94&tab=comments#comment-2822927
2024-07-24 12:57:34 +02:00
Roman Fomin
411267ebaa fix GCC check for div64_32 function 2024-07-23 13:09:14 +07:00
Fabian Greffrath
d98a8476eb
check for existing savegame files ignoring case (#1797)
* check for existing savegame files ignoring case

* variable naming
2024-07-20 12:53:53 +02:00
ceski
8649af73c4
Block cheats in strict mode when recording demos (#1796)
* Revert "don't disable cheats in strict mode"

This reverts commit 3741b89a0d6b93bdfe4f1cab77da2a21df1a4987.

* Add `demorecording` condition

* Fix cheat flags

* Fix speedometer conditions
2024-07-18 07:16:03 -07:00
Roman Fomin
395feb24dd
fix interpolation of floor/ceil scrollers (#1793) 2024-07-15 19:22:32 +07:00
Roman Fomin
7ce3a50625
add GCC/Clang div64_32 function, check _div64 in CMake (#1791) 2024-07-15 16:17:29 +07:00
gendlin
3040d384b6
Pump events while waiting in fps limiter (#1770) 2024-07-13 22:40:24 -07:00
gendlin
4b1a859f95
Use _div64 intrinsic if available (#1790) 2024-07-14 00:48:55 +07:00
Roman Fomin
c5587720b8
fix next weapon key with doom_weapon_toggles == 0 (#1785) 2024-07-13 20:51:46 +07:00
Fabian Greffrath
f7f77f2b40
print the gamemode in the window title (#1788)
As requested on Discord
2024-07-13 10:14:49 +02:00
Fabian Greffrath
2782539b0d
try to load soundfonts from a local user directory first (#1787)
Fixes #1781
2024-07-13 10:13:20 +02:00
Roman Fomin
c447781a13
add DivRoundClosest function, formatting (#1786) 2024-07-13 09:07:49 +07:00
Roman Fomin
80740b0b1f
fix things interpolation with FREEZE cheat in automap (#1784) 2024-07-12 17:52:01 +07:00
Roman Fomin
df6c08873e
fix bunny scroll for 32:9 aspect ratio (#1783) 2024-07-12 17:51:38 +07:00
ceski
ff6c43e238
Bring back 32:9 aspect ratio (#1774)
* Add FixedMul64

* Skip xscale calculation if not needed

* Improve sprite/voxel culling at screen edges

Calculates an ideal limit instead of using vanilla Doom's fixed value, which was only intended for an FOV of 90. Reduces missing sprites/voxels at edges with high aspect ratios and FOVs.

Co-authored-by: Julia Nechaevskaya <julia.nechaevskaya@live.com>

* Bring back 32:9 aspect ratio

* Fix borders

Co-authored-by: Roman Fomin <rfomin@gmail.com>

* Center save/load menus

Co-authored-by: Roman Fomin <rfomin@gmail.com>

---------

Co-authored-by: Julia Nechaevskaya <julia.nechaevskaya@live.com>
Co-authored-by: Roman Fomin <rfomin@gmail.com>
2024-07-09 07:31:32 -07:00
ceski
8fffd55fb0
Add SDL version check for disabled event (#1777) 2024-07-04 20:48:54 -07:00
ceski
82bc0e839a
Add speedometer widget, speed cheat (#1775) 2024-07-04 19:28:40 -07:00
Fabian Greffrath
835603dbaa fix potential string buffer overflows 2024-07-04 09:14:28 +02:00
ceski
20db64bff2
Refresh status bar background when cycling automap overlay in fullscreen (#1766) 2024-07-02 08:25:54 -07:00
Fabian Greffrath
43be8580c8
factor equalizer code out into its own source file (#1767)
* factor equalizer code out into its own source file

* add new source files to CMake

* comments
2024-07-02 10:44:35 +02:00
Fabian Greffrath
bce642c75c
factor crosshair code out into its own source file (#1765)
* factor crosshair code out into its own source file

Fixes #1764

* comments

* initialize the plr pointer

* HU_ prefix for non-static function ColorByHealth()

* check if crosshair patch lump is from a PWAD

* run clang-format over hu_crosshair.\*
2024-07-02 10:42:39 +02:00
gendlin
49979ae78a
Help fullscreen optimizations work better (#1761) 2024-06-28 17:56:09 +02:00
ceski
7b2c0d8bec
Use FRACMASK macro (#1763) 2024-06-27 22:36:01 -07:00
ceski
eaf36e3516
Add advanced version of coordinates widget (#1760)
Adapted from DSDA-Doom.
2024-06-27 12:09:28 -07:00
Fabian Greffrath
ed888d43ac undef str[n]casecmp() before redefining them 2024-06-27 11:10:05 +02:00
Fabian Greffrath
bb584c3ba1
use the same global string buffer for all widgets (#1759)
* use the same global string buffer for all widgets

* simplify

* avoid using compound literals
2024-06-27 06:27:04 +02:00