118 Commits

Author SHA1 Message Date
Roman Fomin
388ee0b8ad rewrite win_opendir.c (from Chocolate Doom) 2024-09-08 10:47:13 +07:00
ceski
3ee1bb572c
Add gamepad rumble support (#1876) 2024-09-07 07:13:47 -07:00
Fabian Greffrath
a34a6662b9 update README.md 2024-09-06 09:17:18 +02:00
Roman Fomin
cd63e89417
move libraries to "third-party" directory (#1879) 2024-09-04 01:52:17 +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
9d2811382f fix external asset contributors copyrights 2024-06-24 14:00:32 +02:00
ceski
fe9e2d8920 Update README.md 2024-06-01 07:28:36 -07:00
Roman Fomin
e100d5c3f1
add support for 8-bit PNG files (#1708)
* move V_LinearToTransPatch function to v_fmt.c

* add simplified V_LinearToPatch function

* rename the appropriate W_CacheLump* to V_CachePatch* or V_CacheFlatNum
2024-05-28 08:11:14 +07:00
Fabian Greffrath
1dcef22726 release Woof! 14.3.0 2024-03-15 08:15:40 +01:00
Roman Fomin
5ca3c41045
implement support for DBIGFONT lump in FON2 format (#1575)
* add SLADE copyright

* adapt V_LinearToTransPatch from Eternity Engine

This will be useful for PNG support.

* nit-pick: sort copyright holders in README.md

---------

Co-authored-by: Fabian Greffrath <fabian@greffrath.com>
2024-03-12 09:11:21 +07:00
Fabian Greffrath
8048019e72
update README.md with the newest additions (#1466)
* update README.md with the newest additions

* further overhaul

* fixes

* bump copyright year for all recent contributors

* add Usage section with Cheat Codes and CLI

* there will be no Woof! 12.1.0 --> 13.0.0

* document CMake requirement

* v_video.c takes code from Eternity Engine -> GPL-3
2024-02-16 11:25:45 +01:00
Roman Fomin
1503cfed67
menu and related improvements (#1402)
* Use m_array in m_input, cleanup and formatting.

* M_Responder refactoring, mouse cursor in the menu.

* Windows console exit message.

* Highlight menu patches/strings.

* Convert v_trans.c to double (there were auto conversions due to double
  constants anyway).

* Implement resolution scale thermo.

* Menu items with different heights.

* Mouse support in save/load and volume menu.

* Remove S_STRING, cleanup.

* Remove dynamic help screen.

* Rearrange menus using Ceski's layout.

* Add `static` everywhere.

* Improve help messages.

* Hide mouse cursor when keys or pad buttons are pressed.

* Disable complevel menu item if COMPLVL lump is present.

* Enable mouse capture for exclusive fullscreen.

* Adjust resolution scale thermo:
  - First step is from 100% to 200%
  - 50px steps
  - Last value is native resolution height

* Remove "Mouse Treshhold" from the menu.

* Add autostrafe50 to compat menu.

* Implement S_ONOFF (alias for S_YESNO).

* Remove S_NEXT/S_PREV, implementation of tabs for page switching (thanks Ceski!)

* Add LB/RB for menu Left/Right keys.

* Add color codes support to M_DrawStringCR.

* Shaded help string.

* Cycle pages in Save/Load screen using mouse.

* Reformat and fix M_ResetDefaults function, don't reset MIDI device

---------

Co-authored-by: ceski <56656010+ceski-1@users.noreply.github.com>
2024-02-03 16:27:34 +07:00
Fabian Greffrath
63124579ae
adapt Eternity Engine's smooth Automap line drawing approach (#1388)
* adapt Eternity Engine's smooth Automap line drawing approach

* get rid of flexTranInit
2024-01-12 14:34:38 +01:00
Fabian Greffrath
edd527feb0
NanoBSP integration (#1342)
* WIP: NanoBSP integration

* update to latest nano_bsp HEAD

* update to nano101 as posted on the DW forums

* include p_extnodes.h instead of declaring P_GetOffset()

* one comment

* update copyright information

* introduce W_LumpExistsWithName()/W_LumpLengthWithName()

* use W_LumpExistsWithName()/W_LumpLengthWithName() more thoroughly

* error out if no SECTORS lump found

* report failing map lump name, not number
2023-12-29 10:12:09 +01:00
Fabian Greffrath
3d4e3122cd
add copyrights of LxDoom/LSDLDoom and PrBoom authors 2023-11-29 11:09:02 +01:00
Fabian Greffrath
6b0359b01e mention Voxel in README, update some Copyrights 2023-11-13 10:20:02 +01:00
Fabian Greffrath
38d29534e1
Update README.md 2023-09-14 13:53:12 +02:00
Fabian Greffrath
483e4e7892
add support for XGLN/ZGLN nodes (#1186)
* add support for XGLN/ZGLN nodes

Code taken from DSDA-Doom, thanks @kraflab

Fixes #1185

* docs

* fix typo/forgetto

* document origin

* register new parameter

* add some linedef == NULL checks

* condense P_SetupLevel() logging even further

* cosmetics
2023-08-24 20:11:36 +02:00
Fabian Greffrath
c1d7849266
Update README.md 2023-05-02 15:02:45 +02:00
Fabian Greffrath
ab6b4e1f01
clarify library dependencies in the "Build" section 2023-04-28 13:40:08 +02:00
Fabian Greffrath
3ed6defb4b
Update README.md (#1000)
* Update README.md

* full path to WOOFHUD docs

* clarify build environments

* do not announce static Windows builds yet
2023-04-20 14:41:42 +02:00
Fabian Greffrath
6faaefcc4e
factor out HUD font patches and update with the ones provided by @liPillON (#950)
* factor out HUD font patches and update with the ones provided by @liPillON

* replace only the patches which were actually changed

* add kraflab's copyright

* update copyright holders

Regarding license: derivative work of GPL-2+ (Boom) is still GPL-2+
2023-03-22 11:04:01 +01:00
Fabian Greffrath
0daf278ce4 update copyright information for textscreen fonts 2023-03-21 11:08:23 +01:00
Fabian Greffrath
cd3768ef44 grammar fix: past participle of teach = taught
Thanks @MrAlaux
2023-02-03 08:31:08 +01:00
Fabian Greffrath
95cde386eb
load sound lumps with libsndfile (#864)
* Load sound lumps with libsndfile

* factor out entire sound lump loading into i_sndfile.c

* fix void pointer arithmetics

* fix wav buffer length calculation

* include libsndfile in vcpkg CI
2023-01-11 08:37:45 +01:00
Roman Fomin
b69852fb07
switch to vcpkg for MSVC build (#855)
* switch to vcpkg for MSVC build

* Remove library downloads and install in MSYS2 environment.

* Add vcpkg.json with dependencies.

* add vcpkg to CI

* fix parallel linking conflict (files with the same name)

* use vcpkg targets (fix debug build)

* delete cross compilation toolchain files, update README.md

* switch to ninja for MSVC build

* turn off MSYS2 update

* use binary caching feature, save to GitHub using NuGet backend

* This works much more robust, also it's recommended method:
  https://github.com/microsoft/vcpkg/blob/master/docs/users/binarycaching.md

* move MSVC workflow to separate file, don't run it on pull request
2022-12-30 20:44:59 +07:00
ceski
5734d8b589
winmidi: Fix looping (#823)
* winmidi: Fix looping

* Send NOP event for non-tempo meta events

* Revert "Send NOP event for non-tempo meta events"

This reverts commit 7e71eca6b3d8eec8dfc5a920a40c960c1f0bdc46.

* Ignore unsupported event types

* Update copyright

* Update README.md
2022-12-03 20:45:24 +07:00
Fabian Greffrath
0da1ef78cd some updates to README.md 2022-10-06 09:33:19 +02:00
Fabian Greffrath
6b4ff8fe8c
minor wording fix 2022-08-10 20:36:58 +02:00
Fabian Greffrath
d6fa5e79be
update README.md (#696)
* Sort Releases before Compiling.
* Mention Windows binaries.
* Refer to Changelog instead of quoting it.
* Mention some demo QoL features.
2022-08-10 16:36:01 +02:00
Fabian Greffrath
760e947633 release Woof! 10.1.0 2022-07-18 09:37:39 +02:00
Fabian Greffrath
9aa0dbe1d2
Update README.md 2022-07-06 08:46:59 +02:00
Fabian Greffrath
cc85b9aa63 release Woof! 10.0.3 2022-06-24 07:53:31 +02:00
Roman Fomin
a075557421
remove win32/stdint.h, add CI build compatible with Windows XP (#617)
* remove win32/stdint.h

* add win32 build to CI

* attempt to fix main.yml

* simplify Build step

* fix syntax

* fix syntax again

* fix indent

* fix cpack directory

* build release configuration

* don't upload SDL libs

* download official FluidSynth library for MSVC WIN32 build

* clean up old MSVC #defines/resources

* set FluidSynth_DIR only on MSVC 32-bit build

* set -verbosity:minimal for msbuild

* fix syntax

* cosmetic changes
2022-06-23 11:56:09 +07:00
Fabian Greffrath
30df932a2d
prepare for Woof! 10.0.1 2022-06-21 16:00:53 +02:00
Fabian Greffrath
29b2b9ba67 release Woof! 10.0.0 2022-06-17 11:24:44 +02:00
Fabian Greffrath
061290f222 prepare changelog for the next release 2022-06-14 08:59:53 +02:00
Fabian Greffrath
8e2ae605a8
rename Source/ directory to src/ (#598)
* rename Source/ directory to src/

* adjust cppcheck directories
2022-06-13 12:09:42 +02:00
Fabian Greffrath
eaece73b66
minor rewording 2022-06-10 15:25:37 +02:00
Roman Fomin
08c9046d41
add setup icon (#579)
* add setup icon

* change icon

* update README.md
2022-06-09 06:36:28 +02:00
Fabian Greffrath
ed52ee1a83 clarify license of the mini-thermo artwork 2022-05-25 08:37:08 +02:00
Fabian Greffrath
9a206b9dbb
remove explicit mention of PrBoom+ from demo compatibility statement 2022-05-11 09:28:11 +02:00
Fabian Greffrath
ed93bb4313
a word on demo compatiblity 2022-05-10 14:22:39 +02:00
Fabian Greffrath
a2bc535188
some wording improvements 2022-04-05 11:24:52 +02:00
Fabian Greffrath
fe287a827e release Woof! 9.0.0 2022-02-24 08:45:26 +01:00
Fabian Greffrath
5ab5b8f3b9 fix markdown syntax glitch 2022-02-23 15:16:26 +01:00
Fabian Greffrath
5a4651ac61 prepare for Woof! 9.0.0 2022-02-23 15:14:43 +01:00
Fabian Greffrath
e64384074c
README.md needs an overhaul (#412)
* first smaller changes to README.md

* Add licenses for win32/*

* thinned out and completed

* no know issues, savegame backward compatibility is a feature

* trim build instructions
2022-01-11 14:10:47 +01:00
Fabian Greffrath
9b1bb6ab29 release Woof! 8.1.0 2021-11-26 08:18:06 +01:00
Fabian Greffrath
a8bd6cc1cf release Woof! 8.0.0 2021-11-18 10:36:38 +01:00