1456 Commits

Author SHA1 Message Date
Roman Fomin
eb4851dd63 fix clang-cl warnings
This is for clang in MSVC emulation mode (it's ABI compatible)
2022-12-31 14:12:35 +07:00
Roman Fomin
bb938f81fe rename build->windows build in win_msvc.yml 2022-12-30 22:14:38 +07:00
Roman Fomin
4a404d8aae move FindSDL2*.cmake modules to cmake/SDL2 directory
Use our modules only if vcpkg is not present.
2022-12-30 22:11:26 +07: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
Fabian Greffrath
caae08a9a7 release Woof! 10.5.1 woof_10.5.1 2022-12-28 16:38:06 +01:00
ceski
4143e97db2
winmidi: Wait for stream when hot swapping modules (#856)
* winmidi: Wait for stream when hot swapping modules

* Manually unset `MHDR_INQUEUE` flag
2022-12-27 22:02:14 +01:00
Roman Fomin
6a38d3832c
config fixes (#854)
* fix wrong limit for `midi_player` config variable

* increase `MAX_MIDI_PLAYER_MENU_ITEMS` to 128

* increase maximum config parameter length to 256 (MAX_PATH on Windows)

* increase the buffer to 1024, because why not
2022-12-26 18:16:10 +07:00
Roman Fomin
83878a8cd0
fix wrong m_flags checks (#852) 2022-12-24 16:14:52 +07:00
Fabian Greffrath
fd9c870944
de-obfuscate FF_FULLBRIGHT in info.c (#851) 2022-12-22 13:30:31 +01:00
Fabian Greffrath
752f613160
first check if linetarget is set 2022-12-21 15:47:55 +01:00
Fabian Greffrath
13f3539f66 fix crosshair lock on spectre targets
Fixes #850
2022-12-21 14:40:18 +01:00
Fabian Greffrath
79e01421ec release Woof! 10.5.0 woof_10.5.0 2022-12-21 08:08:39 +01:00
Roman Fomin
4ebae19865
game controller updates (#849)
* Ability to invert each axis separately

* Separate sensitivity for movement, turning and looking

* Possibility to disable the axis (choose "None" in the menu)

* New input restrictions in accordance with the DSDA rule

Do not allow simultaneous use of mouse and controller in strictmode when
recording demo.

* Update CHANGELOG.md
2022-12-21 09:08:41 +07:00
Roman Fomin
f29e7a3b9f update CHANGELOG.md 2022-12-20 08:28:35 +07:00
Fabian Greffrath
1956d6e7e4
unify gamma correction concepts (#848)
* unify gamma correction concepts

* fix "gamma correction level" user messages

* pointer constness fix

* fix config help line
2022-12-19 13:54:06 +01:00
Roman Fomin
65f3da8c84 make padlook indepedent of the player's speed too 2022-12-17 15:00:51 +07:00
Roman Fomin
2c46941329 analog turning speed is independent of run enabled
Feature request from DW.
2022-12-17 12:26:14 +07:00
Roman Fomin
b9e1820629 winmidi: fix MS GS Synth detection in Windows XP 2022-12-17 09:56:19 +07:00
Roman Fomin
e75a51d822 fix formatting in CMDLINE.txt 2022-12-17 09:55:34 +07:00
Roman Fomin
f5cd6f2aab add missed DLLs to 32-bit build 2022-12-17 09:50:41 +07:00
Roman Fomin
0a5442aaa8 remove ENABLE_PARAMSGEN option, it doesn't work anyway 2022-12-17 09:05:57 +07:00
Fabian Greffrath
4ac0613549 fixes to SSG availability checks 2022-12-15 11:56:39 +01:00
Roman Fomin
4c105b39d5 update CHANGELOG.md 2022-12-15 11:10:28 +07:00
Roman Fomin
21d61dcd0a sync midifallback.* with Chocolate Doom version 2022-12-15 10:46:53 +07:00
Roman Fomin
fd1d9305e6 fix memory leak 2022-12-14 18:20:20 +07:00
Roman Fomin
9601a2cbdf winmidi: cosmetic changes 2022-12-14 18:15:23 +07:00
Roman Fomin
96dfa368ee remove unused function
It was added for initial i_winmusic.c implementation
2022-12-14 18:09:50 +07:00
Fabian Greffrath
a75c38eda9
Crosshair lock fixes (#844)
* draw crosshair before weapon sprites to make sure they don't overlap

* prevent tracking targets out of view

* restrict crosshair coordinates to view window

* Gosh, widescreen

* fix up signs
2022-12-14 10:05:54 +01:00
Roman Fomin
2f27fa739a
fall back to module 0 device 0 if the music module failed to initialize (#845)
* fall back to `module 0 device 0` if the music module failed to initialize

Remove `music_module_index`, use instead `midi_player` - it's global anyway.

* add fall back to `I_SetMidiPlayer`
2022-12-13 20:34:55 +07:00
Fabian Greffrath
1f39b0dc36
enable doubled card and skull key display on status bar by default 2022-12-13 12:44:02 +01:00
Roman Fomin
b93e6f5c7b
show soundfonts as FluidSynth "devices", save module devices independently (#832)
* show found soundfonts as FluidSynth "devices"

* `soundfont_dir` config variable, scan multiple directories

* save module devices independently, add SNDFONT exception, cosmetic fixes

* support unicode filenames for soundfonts

FluidSynth supports UTF8 filenames on Windows

* remove WOOFSOUNDFONT macro

* don't use SDL iconv, remove unnecessary check

* add default soundfont search paths for Linux

* rename module_index->music_module_index, add comments

Co-authored-by: Fabian Greffrath <fabian@greffrath.com>
2022-12-13 16:25:02 +07:00
Fabian Greffrath
82f85d7e77 update SDL to 2.26.1 2022-12-13 10:05:31 +01:00
Roman Fomin
46119c136b winmidi: apply ceski's patch (fix FF loop restart) 2022-12-13 14:10:14 +07:00
ceski
34012fa633
winmidi: Add custom loop support (EMIDI, Square/FF, RPG Maker) (#841)
* Cosmetic changes

* winmidi: Add custom loop support (EMIDI, Square/FF, RPG Maker)

* Fix typo
2022-12-13 11:42:26 +07:00
Fabian Greffrath
2e97d235f2
add prev/next indicators for multiple-choice menu items (#843)
* add prev/next indicators for multiple-choice menu items

* blinking prev/next indicators
2022-12-12 11:01:21 +01:00
Roman Fomin
ae6a6845bd
allow parsing of cosmetic items in the OPTIONS lump for all complevels (#840) 2022-12-12 16:51:23 +07:00
Fabian Greffrath
1425ed7d50
stop looping sounds after reaching a timeout (#838)
* stop looping sounds after reaching a timeout

* simplify

* re-introduce S_StopLoopSounds()

* cosmetic fix
2022-12-10 09:14:44 +01:00
Fabian Greffrath
e09d446449 fix a crash when using the right key on a thermo menu item 2022-12-10 00:16:11 +01:00
Fabian Greffrath
003d8e2e50 rearrange QOL menu section 2022-12-10 00:05:47 +01:00
Fabian Greffrath
524c96cff0
provide a default map progression if neither nextmap nor endpic are set (#835)
* fix and extend the code to provide a default map progression if neither nextmap nor endpic are set

* use strcasecmp instead of stricmp

* Update u_mapinfo.c

* Update u_mapinfo.c
2022-12-09 19:02:31 +01:00
Roman Fomin
b1ec01f4bf update CHANGELOG.md 2022-12-09 19:30:06 +07:00
Fabian Greffrath
2b6ddd69ac
use MAPNAME() more consistently (#836) 2022-12-09 12:35:44 +01:00
Roman Fomin
fa2398109e
OPL output gain (#829)
* crude OPL volume gain

* replace SDL_MixAudioFormat with MixAudioFormat with added gain

* remove unnecessary code path, set default gain = 2

* fix gain calculation

* apply gain only to `src1`

* cosmetic changes
2022-12-09 17:11:09 +07:00
ceski
72ddbe8ffc
winmidi: Optimize reset messages, change volume control, add instrument fallback support (#834)
* Cosmetic changes.

* Add volume safeguards.

* Use device setting for reverb and chorus by default.

* Clean up volume change behavior.

* Move "all notes off" and "reset all controllers" to reset function.

* Optimize set of reset messages depending on device and reset type.

* Ignore SysEx resets from MIDI files for MS GS Wavetable Synth.

* Check for Roland master volume combined with master tune, etc.

* Check for Yamaha master volume combined with master tune, etc.

* Don't replace master volume message; send a new one.

* Change order of volume check.

* Switch from master volume to channel volume control for better compatibility with MIDI devices.

* Change default `winmm_reset_delay` to 0.

* Change default winmm_reset_delay to 0.

* Remove unused variable.

* Add GS instrument fallback support.

* Cast `event_type` as `int`

* Fix switch/case.

* Fix hot swapping.

* Remove unneeded `return`.

* Add instrument fallback support for all devices in GS mode.

* Assign reset defaults to all devices.

* Fix formatting.
2022-12-09 17:09:49 +07:00
Roman Fomin
61302e811f
fix sound clicking from chaingunners (#837) 2022-12-09 08:12:56 +01:00
Fabian Greffrath
e4ecf2d163
always define a "next" map for a UMAPINFO entry (#833)
* always define a "next" map for a UMAPINFO entry

* use MAPNAME()

* cosmetic change
2022-12-07 21:46:23 +01:00
Fabian Greffrath
7df1465e64
call S_StopLoop() whenever moving plats reach pastdest state (#830) 2022-12-07 21:43:03 +01:00
Fabian Greffrath
735a99b0a2
bump miniz to 3.0.1 (#827) 2022-12-07 09:53:34 +01:00
Roman Fomin
702e5b7be7
fix skull position in help screen for gamemode == commercial (#828) 2022-12-07 15:44:31 +07:00
Roman Fomin
b230c1481f
hot-swappable music modules, list of Windows MIDI devices (#824)
* hot swap of music modules

* get a list of Windows MIDI devices

* move "MIDI Player" menu item only on Windows build

* increase MAX_MIDI_PLAYERS, index fixes

* fix hot swapping with UMAPINFO music, init OPL on song change

* initialize OPL only when necessary

* call I_ShutdownMusic in exit sequence

* don't send SysEx reset for MS GS Synth

* introduce `I_DeviceList` function, rearrange code

* `midi_player_strings` must be NULL at the end
2022-12-07 15:44:05 +07:00