Commit graph

5544 commits

Author SHA1 Message Date
coelckers
a83d189a9c Merge pull request #461 from alexey-lysiuk/fix_zerodiv_random
Fixed division by zero in RNG
2016-01-04 11:25:04 +01:00
alexey.lysiuk
02ff3291bd Fixed division by zero in RNG
Random number generator now returns zero for range [0, 0)
2016-01-04 12:16:09 +02:00
coelckers
f1cd22ef34 Merge pull request #460 from alexey-lysiuk/fix_center_cursor
[OSX] Fixed mouse cursor centering in fullscreen mode
2016-01-04 10:16:34 +01:00
alexey.lysiuk
699f274b06 Fixed mouse cursor centering in fullscreen mode
Native OS X backed didn't center mouse cursor in fullscreen mode with Retina/HiDPI support enabled
Incorrect size of content view led to placement of cursor in upper right corner of the screen upon releasing of mouse capture
When some action is assigned to this corner using system Hot Corners feature, the given action was triggered on acquiring mouse capture
2016-01-04 10:51:54 +02:00
Christoph Oelckers
772a572431 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-03 11:32:39 +01:00
Christoph Oelckers
a75e65a3d8 - added BLOCKF_SOUND to flag list supported by Line_SetBlocking, 2016-01-03 11:32:23 +01:00
coelckers
bb45a7162a Merge pull request #459 from MajorCooke/WeaponReadyFix
A_WeaponReady Fix
2016-01-02 19:40:26 +01:00
MajorCooke
77013877d1 A_WeaponReady Fix
- Zoom and Reload keys triggered the other states instead of themselves (i.e. zoom keybind triggered reload states instead of zoom)
2016-01-02 11:27:02 -06:00
Randy Heit
bb10a10458 Merge branch 'crimsondusk-master' 2015-12-31 20:20:58 -06:00
Randy Heit
c86cd53753 Merge branch 'master' of https://github.com/crimsondusk/zdoom into crimsondusk-master
Conflicts:
	src/am_map.cpp
2015-12-31 20:18:54 -06:00
Randy Heit
1d759283c0 Cleanup the zoom/reload/userX handling for A_WeaponReady
- There was lots of code duplication. Consolidated it.
- Renamed WRF_UserX to WRF_AllowUserX for consistancy.
2015-12-31 16:46:19 -06:00
Randy Heit
afbf88cc63 Remove WRF_ALLUSER. 2015-12-31 16:46:18 -06:00
Randy Heit
4931c90839 Bump save version for bigger WeaponState property 2015-12-31 16:46:18 -06:00
MajorCooke
3566d3157a Use | instead of +. 2015-12-31 16:46:17 -06:00
MajorCooke
6478b98eea Update serialization to BYTE from WORD for older save games. 2015-12-31 16:46:17 -06:00
MajorCooke
b09a81126f - Changed WeaponState from 8-bit to 16-bit integer.
- Because the flags for WF_USER#OK are 256 on up, this is required in order to work.
2015-12-31 16:46:17 -06:00
MajorCooke
eed6680a67 Added support for weapon states User#.
- Added keybinds for the user state triggering.
- Added WRF_USER# flags which must be specified in order to use.
- # can be 1-4.
2015-12-31 16:46:16 -06:00
Christoph Oelckers
addd059410 Merge branch 'master' of https://github.com/rheit/zdoom 2015-12-31 23:05:13 +01:00
Christoph Oelckers
5e975ac9f6 - extended $mididevice to add an optional parameter, which has the following meaning for the different MIDI devices:
* OPL: specify the core to use for playing this song
* FluidSynth: specify a soundfont that should be used for playing the song.
* WildMidi: specify a config file that should be used for playing the song.
* Timidity++: specify an executable that should be used for playing the song. At least under Windows this allows using Timidity++ with different configs if the executable and each single config are placed in different directories.
* GUS: currently not operational, but should later also specify the config. This will need some work, because right now this is initialized only when the sound system is initialized.
* all other: no function.

These options should mainly be for end users who want to fine-tune how to play the music.
2015-12-31 23:03:53 +01:00
Randy Heit
d8af2e558f Fix potentiol buffer overrun in MUSSong2::Precache() 2015-12-31 15:28:18 -06:00
Christoph Oelckers
1316120fe4 - fixed: The MUS precacher did not handle invalid patches well.
- increased the valid range of patch values for MUS. According to the original MIDI2MUS code it can handle numbers up to 188, not 181, and at least one track from Eternal Doom uses #183.
2015-12-31 14:35:34 +01:00
Christoph Oelckers
c88ed426a8 - oops, this somehow lost the shift operator... 2015-12-30 20:39:38 +01:00
Christoph Oelckers
3c40d71c20 - hopefully fixed the MUS precaching for good.
According to blzut3, it looks like it is a byte followed by a variable length field. It can be any value 0-15 and will be followed by that many bytes one for each bank used. If the bank count is 0 then it is shorthand for using one bank (bank 0).
2015-12-30 20:32:19 +01:00
Christoph Oelckers
be6daf5d78 - changed instrument lookup in MUS files.
Based on evidence from several songs in Eternal Doom the description in all known documents is wrong. The instruments are not stored in a 16-bit word but in an 8-bit byte, followed by some variable size data.

Known variations are:

* second byte is 0 - no additional data follows
* second byte is 1 - a third byte for the 'bank' value follows.
2015-12-30 19:13:28 +01:00
coelckers
8f149d9048 Merge pull request #455 from edward-san/more_wildmidi_fixes
- Fixed Clang errors/warnings on wildMIDI code.
2015-12-30 12:27:56 +01:00
Edoardo Prezioso
a2b377c580 - Fixed Clang errors/warnings on wildMIDI code. 2015-12-30 10:58:52 +01:00
Christoph Oelckers
aff42a6186 - don't look up a lump name in PathExpander if we are only looking for real files. 2015-12-30 10:21:17 +01:00
Christoph Oelckers
1def61e3e3 - allow changing the reverb and resampling mode setting for WildMidi.
- fixed: WildMidi did not initialize the reverb data structures.
- removed the menu option for midi_timiditylike.
2015-12-30 10:14:18 +01:00
coelckers
2b1730deae Merge pull request #454 from kevans91/timidity-instrum-fix
Fix for __unix__ compilation -- section not changed with the rest of …
2015-12-30 09:16:46 +01:00
Kyle Evans
6c13ba40ac Fix for __unix__ compilation -- section not changed with the rest of fe2dcfd588 2015-12-30 01:09:11 -06:00
Randy Heit
3ec6ad5018 Add SysEx retrieval to the MIDI file reader 2015-12-29 22:39:38 -06:00
Randy Heit
92e0bbeee9 Handle WildMidi's supported SysEx messages 2015-12-29 18:25:13 -06:00
Randy Heit
6d2e93254f Fix CreateSMF's SysEx writing
- It was wrong before. It might still be wrong, but at least it doesn't
  look obviously wrong anymore.
2015-12-29 17:55:20 -06:00
Randy Heit
545e2f7c69 Slap WildMidi onto snd_listmididevices's output for Windows 2015-12-29 17:55:20 -06:00
Randy Heit
900937929e Use critical sections for WildMidi locking
...because when you're trying to be thread-safe, it's generally a good
idea to use mechanisms that work across multiple processor cores.
2015-12-29 17:55:19 -06:00
Randy Heit
14361d9313 Remove midi_timiditylike
- Did anybody actually use this? Use WildMidi instead if you want
  something that sounds more like Timidity++ without actually being
  Timidity++, since not even the old Timidity manages that.
2015-12-29 17:51:08 -06:00
Christoph Oelckers
0cc4bd56d1 - removed the original WildMidi loader and the main playback function because none of those is actually being used anymore. 2015-12-29 23:18:39 +01:00
Christoph Oelckers
e0f9a59a9a - add WildMidi config file CVAR to menu. 2015-12-29 22:14:40 +01:00
Christoph Oelckers
c3862d9101 - use PathExpander class for WildMidi's file access functions so that it can find Timdity's data on its own. 2015-12-29 21:18:46 +01:00
Christoph Oelckers
fe2dcfd588 - refactored the GUS/Timidity player's path building code so that it can also be used by WildMidi.
- fixed crash during sound reset - in this case I_ShutdownMusic should not close the WildMidi player.
2015-12-29 20:38:08 +01:00
Christoph Oelckers
0634205d7f - let WildMidi tokenizer handle quoted strings. 2015-12-29 18:01:15 +01:00
Christoph Oelckers
7fa289109b - removed all uses of __builtin_expect from WildMidi code. 2015-12-29 11:36:56 +01:00
Christoph Oelckers
944360557f - removed unused header stuff. 2015-12-29 11:23:43 +01:00
coelckers
83ef036c03 Merge pull request #452 from edward-san/wildmidi_linux_compilation
- Fixed Linux compiler errors and snd_mididevice.
2015-12-29 10:58:54 +01:00
Edoardo Prezioso
7c82c576a3 - Fixed Linux compiler errors and snd_mididevice.
-- errno.h is required for 'errno';
-- don't use str(n)casecmp and rely on ZDoom CMake handling;
-- add a missing parenthesis around a 'signed char' cast;
-- remove an unneeded GNU_SOURCE redefinition;
-- the non-MSVC side of snd_mididevice was not adapted to the new code, making wildmidi unavailable through the menu.
2015-12-29 10:33:20 +01:00
Randy Heit
afc36544b7 Add a WildMidi softsynth device
- This removes the preceding psuedo MIDI device for WildMidi.
2015-12-28 22:16:35 -06:00
Randy Heit
ee46799d9e Fix WM_DoGetOutput for big-endian machines
- Besides being little-endian centric, this bit shifting madness
  was unneccessary since the values were already clamped to a 16-bit
  range, so all we need to do is cast them to a short.
2015-12-28 20:51:53 -06:00
Randy Heit
b1405921bf Merged WM_GetOutput_Linear and WM_GetOutput_Gauss into WM_DoGetOutput
- With mixing moved into separate functions, these two functions became
  identical except for the function they called to do mixing.
2015-12-28 20:44:10 -06:00
Randy Heit
635b496165 Separate WildMidi mixing from event handling
- In order to use ZDoom's own MIDI sequencer event handling must be
  completely separate from mixing, but WildMidi had them intertwined
  because it wasn't designed for external sequencers.
- Also remove all 'long's defining the output buffers to avoid having
  something that's 32 bits wide on Windows and 64 bits wide on Linux.
2015-12-28 20:33:41 -06:00
Randy Heit
a2ebf771d3 Remove '\r' character from beginning of WildMidi error messages 2015-12-28 19:13:34 -06:00