* Add `WITH_FLUIDSYNTH` option and disable it by default.
FluidSynth has a lot of dependencies. On Windows, it takes up about 90% of the
build time with vcpkg. Disabling it by default would speed up the build process
for new developers.
* Disable GCC checks for MSVC (clang-cl) to speed up the configuration step.
* Move CMDLINE and COPYING to docs, remove README.md from distribution.
* Remove "woof.com" hack for console output on Windows.
The console still works in debug builds.
* Always search FluidSynth, update README.md.
* complevel/demo_version checks now de-macroized
* new `side` arg on ShootSpecialLine for two-sided activations
* new `rotation` floors and ceiling property
* 6 new W/S/G inventory-restting exits
* 24 new W/S/G music changer specials
* 9 new static rotation and offset specials
* 5 new static two-sided scroller specials
---------
Co-authored-by: Roman Fomin <rfomin@gmail.com>
* Don't use Boom logic for next/prev buttons
* Darken disabled icons in complevel vanilla
* Restore menu item for vanilla weapon cycle
* Restore menu item for vanilla weapon cycle, "off" by default
* Reset carousel when resetting status bar
When starting a new game, loading a save game, loading next level, etc.
* Reset carousel when paused or menu is active
* Reset carousel when dead
* Animate switching
* Decouple next weapon selection from ready/pending state
* Reset `nextweapon` state when weapon change command is discarded
* Set `nextweapon` in P_GiveWeapon
* Reset carousel when standard automap is activated
* Reset the carousel if the nextweapon cmd is not sent
---------
Co-authored-by: ceski <56656010+ceski-1@users.noreply.github.com>
* implement SBARDEF parsing
* add default sbardef.lmp to base
* add support for Boom colors
* implement widescreen mode, F5 switches to fullscreen HUD
* update dig* font
* load defaults from sbhuddef.lmp
* remove hu_stuff.* and hu_lib.*
* add support for translucency, introduce -dumptranmap
* apply Fabian Greffrath's patch, fixes
* build woof.pk3 only if the base files have been modified
* remove key blinking
* 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.
* move V_LinearToTransPatch function to v_fmt.c
* add simplified V_LinearToPatch function
* rename the appropriate W_CacheLump* to V_CachePatch* or V_CacheFlatNum
* 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>
* 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
* 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>
* 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
* 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
* 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+
* 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