2703 Commits

Author SHA1 Message Date
Fabian Greffrath
af359bac43
scan for soundfonts relative to executable and config directory (#1869)
* scan for soundfonts relative to executable and config directory

* fix string concat

* explicitly track recursive calls of ScanDir()

* free() strings early

* track recursion in-function

* scan relative directories recursively only

* back to per-call recursion tracking

* do not traverse up out of the config directory
2024-08-26 18:18:00 +02:00
Fabian Greffrath
387c0deb03
consistently check for _WIN32 macro 2024-08-26 11:34:40 +02:00
Roman Fomin
f34ad25931 remove V_LinearToPatch
It has a limitation: the maximum patch height is 256. Besides, the performance
difference is not that big.
2024-08-25 10:18:39 +07:00
Roman Fomin
dbd79350a8 restore R_IsPatchLump, add V_LumpSize 2024-08-25 01:44:07 +07:00
Roman Fomin
89150be730
remove credits screen, restore original demo loop (#1866) 2024-08-24 23:01:56 +07:00
Roman Fomin
f948d4efbc
add support for 32-bit PNGs, refactoring (#1867)
* speed up I_GetPaletteIndex

* fix patch translation

* cleanup
2024-08-24 23:01:35 +07:00
Roman Fomin
d61a8eb6e0 translate image after error checking 2024-08-23 17:08:47 +07:00
Fabian Greffrath
a34a846ce7 fix clean screenshots on demo and intermission screens 2024-08-23 11:39:59 +02:00
Roman Fomin
bc39a9b1fc
add PNG palette translation (#1865)
* fix m_butt1, m_butt2, m_vbox
2024-08-23 16:23:47 +07:00
ceski
23ae392ed6 Update sensor event state when sensor reporting is set 2024-08-21 17:15:22 -07:00
Julia Nechaevskaya
e67b6bef1c
Remember cursor position in Sound Volume menu (#1863) 2024-08-21 22:36:07 +03:00
Roman Fomin
15fd3af56e
menu cleanup, fix crash when switching tabs with mouse wheel (#1861)
* Restore `desc`.

* Use designators in structs initialization.

* Fix crash when switching tabs with mouse wheel.
2024-08-22 00:30:08 +07:00
Roman Fomin
a9e72109a7
fix crash with S_FUNC item instructions, simplify (#1859)
* cleanup
2024-08-21 21:18:46 +07:00
Roman Fomin
eaef531779
fix the background update of the credits screen, simplify (#1860) 2024-08-21 17:42:38 +07:00
Roman Fomin
a41654b4f1
fix building on Win7 (#1849) 2024-08-19 15:01:06 +07:00
Roman Fomin
8a8a47c29e
don't use SDL_RenderSetLogicalSize (#1847)
Fix the appearance of thin black bars in widescreen “auto” mode. Thanks to Gendlin.
2024-08-19 14:05:52 +07:00
Roman Fomin
7acf418027 rename "maximum"->"max" 2024-08-18 12:49:29 +07:00
Roman Fomin
3ce78778b6
rename last resolution scale option "native"->"maximum", DRS tweak (#1845) 2024-08-17 22:24:46 +07:00
Fabian Greffrath
7a51a2655e
allow to set gamedescription (and thus the window title) with DEHACKED (#1843)
* allow to set gamedescription (and thus the window title) with DEHACKED

* check for lookfor

* comments
2024-08-17 13:34:58 +02:00
Roman Fomin
794af9df85 cosmetic change 2024-08-17 12:43:23 +07:00
Roman Fomin
cfad4e9a35 simplify search in zip file directory
Some zip archives do not have separate entries for directories (hrs.zip).
2024-08-17 10:02:04 +07:00
Roman Fomin
0880d6f52c
umapinfo: fix levelpic for fullscreen patches (#1841) 2024-08-15 13:31:07 +07:00
ceski
5c4ef64c66
Center menu titles (#1839)
Unlike `MN_StringWidth`, `MN_GetPixelWidth` considers font kerning.
2024-08-14 20:25:27 -07:00
ceski
8507a60888
Cosmetic changes for menus (#1837) 2024-08-14 07:46:33 -07:00
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