Commit graph

12,509 commits

Author SHA1 Message Date
Christoph Oelckers
e1bb14803e - print an error message if the requested MIDI device cannot be started.
This will only be done the first time a given setup fails. Repeated messages will be muted.
2018-03-03 08:52:25 +01:00
Christoph Oelckers
4c0f68bcd4 Merge branch 'master' into timidity++
# Conflicts:
#	src/sound/musicformats/music_midistream.cpp
2018-03-02 00:08:12 +01:00
Christoph Oelckers
bc25ad4136 - fixed a small logic error introduced by fixing the translucent particle sorting.
Due to an unintended swap of two values a few equal comparisons led to incorrect sorting.
2018-03-01 17:10:21 +01:00
Christoph Oelckers
bcc8972356 - fixed: A preincrement of a local variable generated wrong code if passed as a function parameter.
Due to the special nature of this expression the code generator got stuck in 'address' mode and passed the address of the variable instead of its value.
2018-03-01 15:00:18 +01:00
Christoph Oelckers
685e5c1e95 - fixed: Camera textures must always be drawn with texture mode opaque, because the contents of their alpha channels are undefined. 2018-03-01 13:52:23 +01:00
Christoph Oelckers
b39cb4f095 - fixed translucemt sorting for particles.
At least on any semi-modern hardware. On old legacy hardware which lacks some important features this will still glitch.
2018-03-01 13:01:26 +01:00
Christoph Oelckers
bb16e34bf4 - exposed the HUD message interface to ZScript.
Note that this is just the bare abstract interface. It is up to content makers to define usable HUD message classes and optionally contribute them to the engine.
2018-03-01 11:45:19 +01:00
Christoph Oelckers
dd893b6a0c - split off the interface part of DHUDMessage into an abstract base class.
The purpose is to allow creating custom message types in ZScript.
2018-03-01 10:33:03 +01:00
alexey.lysiuk
711471e9dd Fixed potential crash during state validation
https://forum.zdoom.org/viewtopic.php?t=57116

The problem was caused by missing state label in conjunction with incomplete class

actor A : ArmorBonus
{
    Inventory.ForbiddenTo "Missing"
}

actor B : Pistol
{
    states
    {
        TNT1 A 0
        Loop
    }
}
2018-03-01 11:08:38 +02:00
InsanityBringer
bba3027d37 Add option to use Rotation-Center for an actor's normal pitch/angle/roll rotation. 2018-03-01 08:43:59 +01:00
Christoph Oelckers
425f1408f7 - fixed skip_super application fro ZScript.
The order of processing is different here so when the property gets parsed there are no states to delete.
To fix this the property just flags the class and lets the ZScript state compiler deal with this as needed.
2018-02-28 18:10:04 +01:00
alexey.lysiuk
56df88c792 Use 64-bit fixed point for node builder's vertex map
https://forum.zdoom.org/viewtopic.php?t=59368
2018-02-28 16:36:14 +01:00
Christoph Oelckers
e70250425a - fixed: For two-sided midtextures the light lists were always taken from the sector referenced by the rendered sidedef, not the sector in which the line gets renderered.
For polyobjects these two are not identical.
2018-02-28 13:15:04 +01:00
Christoph Oelckers
910a3062c7 - fixed some problems with the stepping up through a portal logic:
* this has to be disabled for missiles which should explode instead of stepping up.
* interpolation adjustment was not correct
* it could crash because the target portal group could be retrieved from a non-portal sector.
2018-02-28 10:12:10 +01:00
Christoph Oelckers
e55bbd7ba3 Merge branch 'master' of https://github.com/coelckers/gzdoom 2018-02-28 09:46:59 +01:00
Christoph Oelckers
4ccbc4ea9e - Send a GM reset SYSEX event when music playback is started. 2018-02-28 09:46:28 +01:00
Major Cooke
7ac8b496f1 Added Distance(2/3)DSquared functions. 2018-02-28 09:28:11 +01:00
Christoph Oelckers
af14609de7 - don't skip empty arrays which are themselves array elements in the ZScript serializer. 2018-02-27 15:42:22 +01:00
Christoph Oelckers
aaaf9aa108 Added 'TeleportSpecial' as an alias for 'Teleport' in ZScript to deconflict from the Actor.Teleport function. 2018-02-27 12:44:00 +01:00
Christoph Oelckers
d873ae75ab - silence all error messages in the state map parser for DEHSUPP when re-reading the data.
The state map will just be skipped and the parser only needs to run to get over the data.
However, due to changes from a previous patch the data cannot be validated so aside from not using the data it may also not abort on errors.
2018-02-27 11:34:44 +01:00
Christoph Oelckers
fd27b22857 - use iswspace to classify whitespace in V_BreakLines.
isspace does not work because it is limited to 8-bit character sets.
2018-02-27 11:10:47 +01:00
Christoph Oelckers
9a8e724761 - added a compatibility setting for Perdition's Gate MAP31 which was having render issues with an unsupported vanilla effect. 2018-02-27 09:53:15 +01:00
Christoph Oelckers
eb124f6160 - made the sound font loading a bit more error resistant.
- implemented a fallback both for sound font lookup and for MIDI device selection so that if some non-working combination is set up, the player will fall back to something that works.
2018-02-26 16:36:30 +01:00
alexey.lysiuk
d45a50b0db Put soundfont to appropriate folder so it can be found by default 2018-02-26 16:45:01 +02:00
alexey.lysiuk
6bc2be1ca4 Fixed GCC 6+ compilation error
In file included from /usr/include/c++/6/math.h:36:0,
                 from src/vectors.h:43,
                 from src/sound/i_soundinternal.h:7,
                 from src/sound/i_sound.h:39,
                 from src/sound/i_musicinterns.h:5,
                 from src/sound/timidity/timidity.cpp:36:
/usr/include/c++/6/cmath:407:11: error: ‘::pow’ has not been declared
2018-02-26 14:46:24 +02:00
alexey.lysiuk
22819e640a Fixed GCC 4.9 compilation error
src/sound/timiditypp/instrum.cpp:45:26: error: array used as initializer
2018-02-26 14:00:29 +02:00
alexey.lysiuk
4fdf488960 Fixed MSVC compilation warning
VC\include\type_traits(1468): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning)
src\sound\musicformats\music_midistream.cpp(832): note: see reference to function template instantiation 'std::function<bool (int)>::function<MIDIStreamer::SetMIDISource::<lambda_...>,int,void>(_Fx)' being compiled
2018-02-26 13:22:36 +02:00
alexey.lysiuk
14802c0547 Fixed GCC compilation error
src/sound/timiditypp/reverb.h:467:6: error: declaration of ‘TimidityPlus::lfo TimidityPlus::<anonymous struct>::lfo’ [-fpermissive]
src/sound/timiditypp/reverb.h:61:8: error: changes meaning of ‘lfo’ from ‘struct TimidityPlus::lfo’ [-fpermissive]
2018-02-26 13:10:32 +02:00
Christoph Oelckers
64354df3c6 - another 'variadic argument' error due to MSVC letting it slip through. 2018-02-26 10:57:35 +01:00
Christoph Oelckers
f405d630df - Redid CVar synchronization for Timidity++. 2018-02-26 09:55:04 +01:00
Christoph Oelckers
47dbbeb65a Revert "- don't let the Timidity++ player directly access the CVARs."
This reverts commit 8f7a503561.

# Conflicts:
#	src/sound/timiditypp/playmidi.cpp

Something in here wasn't working as intended, and since it needs better synchronization let's redo it entirely.
2018-02-26 09:19:10 +01:00
Christoph Oelckers
36e8358763 - use submenus for soundfont selection both for better overview and avoiding a music restart for each selection change. 2018-02-26 08:52:40 +01:00
Christoph Oelckers
918d188263 - This shouldn't have been committed. 2018-02-25 16:15:24 +01:00
Christoph Oelckers
67a6ec01e1 - added a separate section for soundfont search paths. 2018-02-25 09:32:05 +01:00
Christoph Oelckers
2ac101fa51 - removed tmpfileplus, which was only used by the old Timidity++ player. 2018-02-24 23:01:55 +01:00
Rachael Alexanderson
07f168a58b - additional check for tween-tic particle rendering, prevents jitter with timefreeze powerup 2018-02-24 16:04:20 -05:00
Christoph Oelckers
8f7a503561 - don't let the Timidity++ player directly access the CVARs.
This may cause problems because the player runs in a different thread than the input code.
Instead the play thread will now copy their values to local variables when it starts generating output.
2018-02-24 19:36:09 +01:00
Christoph Oelckers
27f9330c81 - reimplemented thr OPL dumoer for MIDI. 2018-02-24 18:55:42 +01:00
Christoph Oelckers
a5316c211d - Moved the MIDI WAVE writer device to its own source file. 2018-02-24 18:25:04 +01:00
Christoph Oelckers
2202a52840 - made the MIDI to WAVE dumper functional again, including the option of choosing the MIDI synth and sound font with which it should be rendered. 2018-02-24 18:19:27 +01:00
alexey.lysiuk
3436b80232 Added SHARE_DIR search path back
https://github.com/coelckers/gzdoom/pull/377#issuecomment-368235506
2018-02-24 17:50:13 +02:00
alexey.lysiuk
76ff1adb28 Disabled reverb editor's test environment by default
https://forum.zdoom.org/viewtopic.php?t=59583
2018-02-24 17:46:04 +02:00
Christoph Oelckers
786f1b34be - did not save everything. 2018-02-24 13:33:28 +01:00
Christoph Oelckers
6e913bb032 - Timidity CVAR cleanup and removal of the more obscure options. 2018-02-24 13:06:17 +01:00
Christoph Oelckers
b1313d533a - changing reverb mode must reallocate the buffers because they are mode-dependent. 2018-02-24 12:41:16 +01:00
Christoph Oelckers
fa8cfa65c0 - fixed incomplete initialization of the chorus data. 2018-02-24 12:30:19 +01:00
Christoph Oelckers
88328b056d - removed 'register' keyword from reverb.cpp. 2018-02-23 22:01:00 +01:00
Christoph Oelckers
39f26028aa - reworked the advanced sound menu to take advantage of the new soundfont handling.
The text input field for the configs have been removed. Instead it will now present a list of soundfonts that are found in specific locations.
For that it will look in the 'soundfont' directories of the FileSearch.Directories entry of the config.
Acceptable file formats here are SF2 and zipped GUS patch sets. These zipped patch sets need to have a timidity.cfg at the root and refer to all containing data by relative path. References to outside files are not allowed here.
It is still possible to refer to sound fonts elsewhere on the hard drive by manually entering a path at the console - but these won't show in the menu and will get lost if one cycles through the list of available options.
Of the available softsynths, FluidSynth will only list SF", Wildmidi will only list GUS patch sets and Timidity++ and GUS will list both.

Please note that although the GUS synth can read SF2, the output appears to be broken die to some old bug.
2018-02-23 19:23:39 +01:00
Christoph Oelckers
5da1433c57 - fixed a memory leak and removed debug output. 2018-02-23 18:57:30 +01:00
Christoph Oelckers
88f9f0982c - fixed Timidity++ playback. 2018-02-23 18:33:54 +01:00