Alexander Kromm
e3baacd9f6
bring minimal save version back, as most of the savegames load fine
...
# Conflicts:
# src/version.h
2020-03-09 00:36:55 +01:00
Alexander Kromm
dee1e6d675
aggregate TMap into Dictionary instead of deriving from it
2020-03-09 00:33:51 +01:00
Alexander Kromm
c91c542c23
fix Dictionary and DictionaryIterator memory leaks
...
# Conflicts:
# src/version.h
2020-03-09 00:33:48 +01:00
drfrag
dde31dcac4
- Forgot the defines.
2020-03-06 15:36:37 +01:00
drfrag
d8d72f5d75
- Blind attempt at fixing wrong mouse position in OpenGLFrameBuffer and OpenGLSWFrameBuffer
2020-03-06 13:57:52 +01:00
alexey.lysiuk
5946744039
- fixed infinite loop reporting '... before first state' errors
...
https://forum.zdoom.org/viewtopic.php?t=67729
2020-03-06 13:38:21 +01:00
Rachael Alexanderson
673e52f02f
- fix debug assertion, cleanup vestigial A_PlaySound addition
2020-03-04 09:46:09 +01:00
Rachael Alexanderson
c72b64790b
- fixed: removed startTime from the wrong function internally.
2020-03-03 10:58:51 +01:00
Rachael Alexanderson
c9476e6188
- remove addition from deprecated A_PlaySound
2020-03-03 10:58:50 +01:00
Rachael Alexanderson
19233e6a82
- add checking in S_StartSound for startTime length
2020-03-03 10:58:48 +01:00
Rachael Alexanderson
4625925a69
- ported over Nash's startTime for A_StartSound
2020-03-03 10:58:46 +01:00
Major Cooke
45c80916bc
Added A_StopSounds(int chanmin, int chanmax).
...
- If both channels are 0, completely silences the actor.
- Adapted A_StopAllSounds to call A_StopSounds(0,0);
2020-03-01 20:27:03 +01:00
Major Cooke
3e77f9a6bd
Added A_StopAllSounds.
2020-02-29 20:02:17 +01:00
drfrag
6fd642ed48
Revert "Revert "Stop sources immediately when the sound is forced to stop""
...
This reverts commit 82c4750710
.
2020-02-29 19:35:22 +01:00
drfrag
767a9b6e1b
- This is 3.85.
2020-02-29 13:35:05 +01:00
drfrag
797037fcde
Oops, fixed default bindings not being loaded from pwads.
...
# Conflicts:
# src/console/c_bind.cpp
2020-02-28 19:14:52 +01:00
drfrag
fa5902b538
- Add support for several control layouts.
2020-02-28 12:44:13 +01:00
Christoph Oelckers
d27d2b0e1c
- fixed: Windows must call the wide version of _mkdir for Unicode support.
2020-02-26 12:49:15 +01:00
alexey.lysiuk
b99da999a5
- stop all sounds after exiting level regardless of intermission screen
...
https://forum.zdoom.org/viewtopic.php?t=67521
# Conflicts:
# src/g_level.cpp
# src/wi_stuff.cpp
2020-02-23 18:46:36 +01:00
alexey.lysiuk
ffc3c4a530
- fixed comparison with uninitialized data in MAPINFO parser
...
This issue was reported by Valgrind
2020-02-23 18:46:34 +01:00
Rachael Alexanderson
dfcd5d1dd5
- use GAMENAMELOWERCASE macro for music config defaults
...
# Conflicts:
# src/sound/music/music_config.cpp
2020-02-23 11:59:04 +01:00
alexey.lysiuk
d1786bc0c0
- fixed arguments order for ZMusic_Start() function
2020-02-23 11:59:02 +01:00
drfrag
82c4750710
Revert "Stop sources immediately when the sound is forced to stop"
...
This reverts commit 6b8cebe979
.
2020-02-18 15:35:03 +01:00
drfrag
f5f766b948
- Rename the soundfont.
2020-02-17 19:46:48 +01:00
Christoph Oelckers
87875a52ba
- backported a few sound code fixes from Raze.
2020-02-15 17:55:42 +01:00
Christoph Oelckers
462368b61d
- use floats for sprite depth sorting in the hardware renderer.
...
Fixed point is clearly insufficient here.
# Conflicts:
# src/hwrenderer/scene/hw_drawlist.cpp
# src/hwrenderer/scene/hw_drawstructs.h
# Conflicts:
# src/hwrenderer/scene/hw_drawlist.cpp
# src/hwrenderer/scene/hw_sprites.cpp
2020-02-15 17:55:41 +01:00
Chronos Ouroboros
2d1e19dc4b
Fixed a crash when trying to include a missing mixin.
2020-02-15 17:55:40 +01:00
Major Cooke
116a935b71
Added source, inflictor and damage flags to AbsorbDamage.
2020-02-11 00:55:21 +01:00
Chronos Ouroboros
0716594437
Mixins now perform a deep copy of the AST. (Fixes default blocks in mixins)
2020-02-11 00:55:19 +01:00
drfrag
71440ac4e8
- Print game version in console at startup, this is for those posting only the startup log.
2020-02-06 20:08:34 +01:00
Braden Obrzut
8e2a21fbfb
- Change updaterevision to a CMake script
...
The benefit to this is fairly small, but it does mean a little less work needs
to be done in the build scripts for cross compiling. The C version wasn't
especially concise so it was not obviously better in any way.
2020-02-02 13:58:10 +01:00
alexey.lysiuk
95f4f38695
- moved showing of start window banner to proper location in Cocoa backend
2020-02-02 13:58:07 +01:00
Christoph Oelckers
16d9da97eb
- backported fix for loading VOC files.
...
In NAM there is one that needed a bit of extra treatment.
2020-02-01 20:34:42 +01:00
Chris Robinson
350d57e8db
Remove FSoundLoadBuffer since it wasn't doing anything
2020-02-01 20:34:40 +01:00
Chris Robinson
c37caf4498
Remove LoadSoundBuffered since its no longer called
2020-02-01 20:34:37 +01:00
Chris Robinson
435a3885ca
Get rid of the LoadSound3D method
...
It no longer does anything since there's no separate buffer for 3D sfx.
2020-02-01 20:34:35 +01:00
Chris Robinson
1065d18bc4
Update a couple comments about monoized sounds
2020-02-01 20:34:33 +01:00
Chris Robinson
6b8cebe979
Stop sources immediately when the sound is forced to stop
...
The reason for the previous delay was to allow OpenAL Soft to fade the sound to
silence and avoid a sudden amplitude change, which can cause a "click" or "pop"
noise. However, with OpenAL Soft 1.20, this is a built-in feature of the mixer
so the extra complexity is unnecessary.
2020-02-01 20:34:30 +01:00
Chris Robinson
e7c035ff81
Remove the 'monoize' option from sound loading
...
Unnecessary with the AL_SOFT_source_spatialize extension, which has been
available for over a year.
2020-02-01 20:34:28 +01:00
Chris Robinson
427b6a0d14
Remove the fallback for lack of AL_EXT_SOURCE_RADIUS
...
It's been available in OpenAL Soft for years and the fallback method wasn't very good.
2020-02-01 20:34:25 +01:00
alexey.lysiuk
c088d1ec01
- fixed usage of floor sound with Plat_DownWaitUpStayLip special
...
https://forum.zdoom.org/viewtopic.php?t=67126
# Conflicts:
# src/p_plats.cpp
# src/playsim/mapthinkers/a_plats.h
2020-01-31 13:37:05 +01:00
alexey.lysiuk
36cb6b7050
- fixed code generation for very special if+switch combination
...
CheckReturn() must be called before emitting code, otherwise it will always return false for switch statements
Redundant jump instruction added because of that will point right after the end of function's code when if statement is the last one in the given function
This wasn't a problem for VM because bytecode in question was unreachable
JIT compiler tries to generate native code for a bogus jump destination, and this leads to out-of-bounds read from labels array
https://forum.zdoom.org/viewtopic.php?t=67149
2020-01-30 23:09:43 +01:00
alexey.lysiuk
8b5131eeaa
- fixed I_FindAttr() to handle symlinks on POSIX platforms
2020-01-28 20:18:27 +01:00
alexey.lysiuk
3b89c2fd34
- put common POSIX system code to a separate file
...
# Conflicts:
# src/posix/sdl/i_system.cpp
# Conflicts:
# src/posix/cocoa/i_system.mm
# src/posix/sdl/i_system.cpp
2020-01-28 20:18:13 +01:00
alexey.lysiuk
7d0df9fe3f
- exposed Level.MusicVolume to ZScript
2020-01-21 12:17:54 +01:00
alexey.lysiuk
a09d8e40f1
- fixed calling a function on string CVar
...
https://forum.zdoom.org/viewtopic.php?t=66768
2020-01-19 20:26:37 +01:00
alexey.lysiuk
f42f20ccd3
- added ability to filter VM disassembly dump
...
Use '-dumpdisasm something' to output functions with 'something' in their printable names
Open and close output file only once when processing code generated by Dehacked, and calculate its sizes as well
2020-01-19 20:26:34 +01:00
Rachael Alexanderson
dd61101193
- add check for unity version of Nerve.wad
...
- infrastructure in place in case Nerve.wad changes again, this can be extended
2020-01-19 01:33:49 +01:00
alexey.lysiuk
63df9b13d0
- customized invulnerability colormap does not interfere with Powerup.ColorMap
...
https://forum.zdoom.org/viewtopic.php?t=66955
2020-01-19 01:33:47 +01:00
Alexander Kromm
dbc91da9c5
save and restore config-only variables from proper sections
2020-01-17 20:41:23 +01:00
Alexander Kromm
0ca1809f3e
make nosave standalone CVar flag, alongside server and user
2020-01-17 13:02:10 +01:00
Alexander Kromm
1f1da5ba31
make nosave cvars set their value bypassing network code
...
This may look as a workaround, it is not.
nosave cvars are meant to be used as a storage for statistical data that doesn't
affect gameplay. That's why this data isn't saved to the savefile in the first
place. Therefore, there is no point in sending this data over network. It would
have no meaning on machines other than local.
2020-01-17 13:02:08 +01:00
drfrag
1fed15efc2
- Fixed crash exiting from the iwad selector.
2020-01-13 13:53:19 +01:00
drfrag
004b48d62f
- Blind attempt at adding support for 4 XInput controllers.
2020-01-13 13:19:34 +01:00
alexey.lysiuk
8a0581481b
- fixed Linux and macOS implementations of I_FindAttr()
...
At the moment, we assume that dirent struct has d_type member, and DT_DIR is defined
This is true for supported versions of macOS, and Linux with glibc
https://forum.zdoom.org/viewtopic.php?t=66945
2020-01-12 22:26:09 +01:00
Christoph Oelckers
a9df2427ca
- compatibility workaround for using Scroll_Texture_Model with a line id of 0.
...
This would do very bad things if not being checked for.
# Conflicts:
# src/maploader/specials.cpp
2020-01-12 16:09:07 +01:00
Christoph Oelckers
ae36003901
- store CVARs non-destructively in savegames.
...
The old method using a single string with a backslash as separator is unable to handle anything with actual backslashes in the data.
It now uses a JSON object with each CVAR being a separate key.
# Conflicts:
# src/version.h
2020-01-12 16:09:05 +01:00
drfrag
c5aa482437
- Fixed compilation with XP toolsets.
2020-01-12 15:22:07 +01:00
alexey.lysiuk
ab4594e2f7
- fixed A_PlaySound() called from Dehacked
...
The recently added argument was missing from PlaySound code pointer handling
Verified other Dehacked functions, and changed one incorrect comment
2020-01-12 12:59:44 +01:00
Christoph Oelckers
2d4accf437
- missed a warning.
2020-01-12 12:59:42 +01:00
Christoph Oelckers
f7ead44168
- fixed: The directory scanner for reading a directory into the WAD file system and ScanDirectory were not Unicode capable on Windows.
...
Both now use the Unicode capable I_Find* interface instead of duplicating all its functionality in multiple platform dependent incarnations.
# Conflicts:
# src/cmdlib.cpp
# src/gamedata/textures/image.cpp
# src/resourcefiles/file_directory.cpp
# Conflicts:
# src/resourcefiles/file_directory.cpp
2020-01-12 12:59:40 +01:00
Kevin Caccamo
db66f78c16
Attempt to optimize check for ML_DRAWFULLHEIGHT
...
It is less likely that a line will have the ML_DRAWFULLHEIGHT flag than its' ceiling will be above the neighbouring sector's ceiling and vice versa.
2020-01-12 11:39:21 +01:00
Kevin Caccamo
c75ec6f59f
Use != 0 after ANDing with the relevant flags
...
This is mostly a "just in case" measure, in case I did something wrong with the previous commits.
# Conflicts:
# src/hwrenderer/scene/hw_sky.cpp
2020-01-12 11:39:18 +01:00
Kevin Caccamo
4335233a49
Fix ML_DRAWFULLHEIGHT flag check
2020-01-12 11:39:16 +01:00
Kevin Caccamo
477381f210
Add handling for drawfullheight flag
...
Parse drawfullheight flag in UDMF
Draw full height for walls if the linedef has this flag
2020-01-12 11:39:03 +01:00
Kevin Caccamo
d69becfa57
Change ML_NOSKYWALLS and add ML_DRAWFULLHEIGHT
...
ML_DRAWFULLHEIGHT will be used to draw walls from the front/back sector's floor to the other sector's ceiling.
2020-01-12 11:38:51 +01:00
Kevin Caccamo
43264d9366
Add more ways to prevent GZDoom from drawing skybox walls
...
Add noskywalls flag to sectors and linedefs
# Conflicts:
# src/hwrenderer/scene/hw_sky.cpp
# src/p_udmf.cpp
2020-01-12 11:37:39 +01:00
alexey.lysiuk
068f0420a8
- restored old values for CHAN_... constants
...
https://forum.zdoom.org/viewtopic.php?t=66929
2020-01-12 00:49:20 +01:00
drfrag
8764f15555
- Set default GL texture filtering mode to none.
2020-01-11 22:54:50 +01:00
drfrag
1ca4e0c98a
- Removed ZScript warning.
2020-01-07 20:27:16 +01:00
Alexander Kromm
c96cdc6c35
fix nosave cvar keyword (saved to config, not saved to savegame)
2020-01-07 19:56:00 +01:00
alexey.lysiuk
fd5889e200
- fixed resolving of music aliases with full filenames
...
https://forum.zdoom.org/viewtopic.php?t=66815
2020-01-07 19:55:59 +01:00
Chronos Ouroboros
fea9814d19
Disabled default blocks in mixins for now.
2020-01-07 19:55:58 +01:00
Alexander Kromm
721faee4d8
add "nosave" cvar token
...
It makes a cvar value not be saved in a save file.
2020-01-07 19:55:58 +01:00
Christoph Oelckers
f9976fbf25
- reverted the clamping when assigning to FScanner::Number.
...
This broke unsigned integer parsing without explicitly declaring the constant unsigned.
2020-01-07 19:55:57 +01:00
Christoph Oelckers
176144e0a1
- cleanup.
...
(The Raven license got removed from sc_man after checking that no Raven code is still present here, this file got a nearly complete overhaul over all those years.)
# Conflicts:
# src/textures/texturemanager.cpp
2020-01-07 19:55:56 +01:00
Petr Mrázek
848438839b
- Run the Alsa MIDI thread every 40ms or so, use non-blocking sequencer
2020-01-07 19:55:55 +01:00
Chronos Ouroboros
24a11f7a9a
Fixed some incorrect parentheses in S_PlaySoundPitch.
2020-01-07 19:55:54 +01:00
Chronos Ouroboros
3c71f23afd
Removed a redundant switch and added a default case to the mixin parsing code to shut GCC up.
2020-01-07 19:55:53 +01:00
drfrag
87bb63a61a
- Bumped ZScript version.
...
# Conflicts:
# src/version.h
2020-01-07 19:55:51 +01:00
Christoph Oelckers
ce1f4427cc
- cleaned up the parameters of A_StartSound.
...
There were two booleans that could be merged into the flag word.
This also fixes a bug with CHAN_NOSTOP not working for local sounds because it checked the wrong sound source for the playing sound.
2020-01-07 19:36:52 +01:00
Christoph Oelckers
ff3606e44e
- refactored the MIDI list code.
...
Let's hope nothing got broken on the Linux side, the recent submission's code was not usable.
# Conflicts:
# libraries/zmusic/zmusic/configuration.cpp
# src/sound/music/i_music.cpp
# src/sound/music/music_midi_base.cpp
2020-01-07 18:36:55 +01:00
Christoph Oelckers
dee8af1902
- made the sound decoding interface DLL friendly and added compile switches to the MIDI players so that different licenses can be uses as compile target.
...
# Conflicts:
# src/sound/backend/i_sound.h
# Conflicts:
# libraries/zmusic/mididevices/music_timiditypp_mididevice.cpp
2020-01-07 18:22:15 +01:00
Christoph Oelckers
e89cc73f80
- rewrote the ZMusic interface so that it is free of C++ constructs.
...
Now it is ready to put in a DLL.
# Conflicts:
# libraries/zmusic/zmusic/mididefs.h
# libraries/zmusic/zmusic/zmusic.h
2020-01-07 18:07:26 +01:00
Christoph Oelckers
f2a3a70aec
- replaced the C++ based file access wrapper in ZMusic with a C compatible version.
2020-01-07 18:07:23 +01:00
Christoph Oelckers
7e01b19753
- there's no need to let the XM Vorbis decoder run through the client - all related functionality is part of ZMusic itself.
2020-01-07 18:07:21 +01:00
Christoph Oelckers
e5faff8cbb
- made adjustments to the remaining parts of the function interface.
2020-01-07 18:07:19 +01:00
Christoph Oelckers
4e8359100f
- made the ZMusic interface more DLL friendly: Reworked all functions not to throw exceptions across the library boundary and made a few definitions internal.
...
Not complete yet.
# Conflicts:
# libraries/zmusic/zmusic/zmusic.h
2020-01-07 18:07:17 +01:00
drfrag
38c1b2e207
Update and clarify the licenses for the postprocess part.
...
(dpJudas)
Cherry-picked from commit fca3da8af4
2020-01-07 18:04:33 +01:00
Petr Mrázek
b07254507a
- Support for MIDI on Linux via alsa sequencer
2020-01-07 18:04:28 +01:00
Rachael Alexanderson
aa6cb4815f
- oops, missed this one
2020-01-06 21:58:51 +01:00
Rachael Alexanderson
b75665983c
- relicense some of my past work under BSD
...
# Conflicts:
# src/rendering/r_videoscale.cpp
2020-01-06 21:58:48 +01:00
Alexander Kromm
032c6a534b
export dictionary iterator
2020-01-06 21:57:02 +01:00
Alexander Kromm
9ca3f98419
dictionary from empty string is not an error, but empty dictionary
2020-01-06 21:56:59 +01:00
Rachael Alexanderson
12f356f24e
- bump version requirement to 219 for defcvars
2020-01-06 21:56:57 +01:00
Rachael Alexanderson
6f24cc29c9
- forbid defcvars from a wadfile
2020-01-06 21:53:05 +01:00
Rachael Alexanderson
93dfdc1c33
- tell the user the game version number when version is not specified as a hint
2020-01-06 21:52:22 +01:00
Rachael Alexanderson
1154207ec0
- implement 'defcvars'
...
# Conflicts:
# src/d_main.cpp
# Conflicts:
# src/d_main.cpp
2020-01-06 21:50:49 +01:00
Cacodemon345
5ed070964c
Add PSPF_PLAYERTRANSLATED flag (makes a PSprite layer translated to the user's color)
...
# Conflicts:
# src/hwrenderer/scene/hw_weapon.cpp
# src/r_data/models/models.cpp
# Conflicts:
# src/gl/scene/gl_weapon.cpp
2020-01-06 21:50:14 +01:00
Alexander Kromm
4f5218cc8f
add Dictionary.Remove(String key) function
2020-01-06 19:49:25 +01:00
Alexander Kromm
81744d5b7a
fix crash with saving null Dictionary
2020-01-06 19:49:23 +01:00
Marisa Kirisame
ebc6fcccd7
Additional CHAN_OVERLAP awareness for StartSound and ChangeSoundVolume/Pitch.
2020-01-06 19:49:21 +01:00
Christoph Oelckers
7919c86f3e
- elimintated all cases from the ZScript code where channel indices and flags were combined into one parameter and removed all remnants of CHAN_PICKUP.
2020-01-06 19:49:18 +01:00
Christoph Oelckers
0d3a62f73a
- fixed: A_StartSound was still masking the sound channel value for checking if it plays something.
2020-01-06 19:49:15 +01:00
Major Cooke
96153e7e7e
- Fixed: Invulnerability checking for rails was done before the various THRU actor flags instead of after, meaning actors could block shots regardless of those flags. This was never intended.
2020-01-06 19:20:44 +01:00
Major Cooke
234e690f77
Added STOPRAILS actor flag.
...
- An actor with this flag will prevent railgun shots from penetrating further.
2020-01-06 19:20:41 +01:00
Alexander Kromm
a7e6552f0f
export TMap<FString, FString> to ZScript
...
# Conflicts:
# src/CMakeLists.txt
# src/serializer.h
2020-01-06 19:18:22 +01:00
Christoph Oelckers
35379e1e5d
- let a sight check that gets lost return failure.
...
This way these cannnot unwantedly wake up monsters.
2020-01-06 19:14:53 +01:00
Cacodemon345
d6a23065d1
Implement renderstyle and transparent actor sprite rendering in automap ( #997 )
...
* Implement renderstyle and transparent actor sprite rendering in automap
* Add "am_advspriterender" CVAR and add invisible actor checks.
* Rename cvar to `am_thingrenderstyles`
# Conflicts:
# src/am_map.cpp
2020-01-06 19:14:51 +01:00
Rachael Alexanderson
528550c4ef
- changing vid_scalefactor now always shows current scaling data unless it gets set to "1"
...
- vid_scaletoheight/width now works in all scaling modes, and can now also scale on custom resolutions directly
# Conflicts:
# src/r_videoscale.cpp
2020-01-06 19:05:13 +01:00
Rachael Alexanderson
278c7db215
- fix vid_showcurrentscaling so that it works even when vid_scalemode is 2 or greater.
...
# Conflicts:
# src/r_videoscale.cpp
2020-01-06 18:53:47 +01:00
alexey.lysiuk
0ee488633b
- fixed compilation warning reported by MSVC
...
src\r_videoscale.cpp(105): warning C4244: 'initializing': conversion from 'float' to 'int', possible loss of data
# Conflicts:
# src/r_videoscale.cpp
2020-01-06 18:51:17 +01:00
Rachael Alexanderson
792871a380
- add 'vid_showcurrentscaling' ccmd, expanded output for 'vid_scaletowidth' and 'vid_scaletoheight' commands
...
- made the vid_scaleto____ commands less hacky - after finding out I could route the calls through screen->, found the correct screen-> commands, and do scaling based on the real screen dimensions
2020-01-06 18:48:49 +01:00
alexey.lysiuk
e4110ded3c
- precache switch textures from ANIMATED lump
...
For example, SW1SKULL and SW2SKULL switches are animated in TNT: Evilution
Their frames are defined in ANIMATED lump which is old BOOM binary format
Textures other than base were not cached because the corresponding switch definitions (in ANIMDEFS lump) have one frame only and BOOM style animations were not taken into account
https://forum.zdoom.org/viewtopic.php?t=66652
# Conflicts:
# src/p_setup.cpp
2020-01-06 18:23:31 +01:00
drfrag
38c5e84b82
- Adjust minimum scaling for 320x200.
2020-01-06 18:23:28 +01:00
Rachael Alexanderson
5906701a7d
- implement vid_scalemode = 6 - sets absolute minimum scaling to fill entire screen - useful for speeding up software rendering
...
# Conflicts:
# src/r_videoscale.cpp
# Conflicts:
# src/r_videoscale.cpp
2020-01-06 18:23:11 +01:00
alexey.lysiuk
b246eb20fa
- upsample texture if width * height is less or equal to gl_texture_hqresize_maxinputsize squared
...
https://forum.zdoom.org/viewtopic.php?t=66652
# Conflicts:
# src/textures/hires/hqresize.cpp
2020-01-06 18:05:54 +01:00
alexey.lysiuk
7dd5d3ce61
- added minimal time profiling of texture precaching
...
# Conflicts:
# src/hwrenderer/textures/hw_precache.cpp
# Conflicts:
# src/hwrenderer/textures/hw_precache.cpp
2020-01-06 18:04:54 +01:00
alexey.lysiuk
d2101bf700
- improved normalNx scaling performance by ~10%
...
Actual boost heavily depends on platform's memory architecture, made it a bit more cache friendly in general
# Conflicts:
# src/textures/hires/hqresize.cpp
2020-01-06 17:53:09 +01:00
alexey.lysiuk
69d39bcd44
- move setting status bar defaults to proper location
...
BaseStatusBar.Init() method isn't suitable for this because it will override SBarInfoWrapper setup done in native code
https://forum.zdoom.org/viewtopic.php?t=66676
https://forum.zdoom.org/viewtopic.php?t=66339
# Conflicts:
# wadsrc/static/zscript/ui/statusbar/statusbar.zs
2020-01-06 17:48:35 +01:00
Christoph Oelckers
1cacd3e3de
- sound engine update.
...
Notable changes:
* IsSourcePlayingSomething had undefined behavior when checking unattached and unpositioned sounds.
* loading Blood RAW sounds with different sample rates but the same backing lump may not use the same hardware sound buffer.
* when playing an unpositioned sound the attenuation is irrelevant and must be ignored. This resulted in a 3D sound being started which was mostly inaudible due to lack of valid origin.
2020-01-06 15:08:32 +01:00
Marisa Kirisame
9e212c3582
Change IsSourcePlayingSomething to handle overlapping sounds.
2020-01-06 15:08:30 +01:00
Christoph Oelckers
bc1d728140
- made FSoundChan::EntChannel a full int and reordered the structure for better packing.
2020-01-06 15:08:28 +01:00
Christoph Oelckers
25288d5cea
- renamed IsActorPlayingSomething to IsActorPlayingSound and made it clearscope.
2020-01-06 15:08:26 +01:00
Christoph Oelckers
35e38bc8eb
- fixed inverted listener check when using compatibility options.
2020-01-06 15:08:24 +01:00
Christoph Oelckers
38aa6c4281
- the old bit masking for the channel needs to go, of course.
2020-01-06 15:08:22 +01:00
Christoph Oelckers
9c825ea090
- fixed VOC loader. Its 16 bit code did not work because it set the variable to -16 instead of 16.
...
- removed a few MAX calls with std::max.
2020-01-06 15:08:20 +01:00
Christoph Oelckers
c3759f389c
- separated the channel number from the flags in the sound interface so that the 8 channel limit can be eliminated.
...
- added Marisa Kirisame's CHAN_OVERLAP flag.
- exported S_IsActorPlayingSomething to ZScript.
The sound API change required deprecating A_PlaySound and S_Sound. There are now new variants S_StartSound and A_StartSound which have two distinct parameters for channel and flags.
# Conflicts:
# src/bbannouncer.cpp
# src/fragglescript/t_func.cpp
# src/g_shared/a_lightning.cpp
# src/p_effect.cpp
# src/p_mobj.cpp
# src/p_switch.cpp
# src/playsim/p_spec.cpp
# src/sound/s_doomsound.cpp
# src/sound/s_doomsound.h
# wadsrc/static/zscript/base.zs
# Conflicts:
# src/intermission/intermission.cpp
# src/sound/s_doomsound.cpp
2020-01-06 15:00:05 +01:00
Christoph Oelckers
ba006cbc5c
- sound engine update.
2020-01-06 14:50:50 +01:00
alexey.lysiuk
7277717b32
- fixed linked sound resolving
...
Hash indices and sound ids were used interchangeably but they are different entities
https://forum.zdoom.org/viewtopic.php?t=66618
2020-01-06 14:50:48 +01:00
Christoph Oelckers
b0d38adb25
- made the sound resolving a virtual method
...
This way the player sounds can be done in the proper place without infesting the core.
# Conflicts:
# src/sound/s_doomsound.cpp
2020-01-06 14:50:46 +01:00
alexey.lysiuk
a7796b8ffb
- fixed debugger visualization for FSoundID
2020-01-06 14:38:54 +01:00
alexey.lysiuk
179c4dd238
- rewrote test for occupied sound channel without special types
...
https://forum.zdoom.org/viewtopic.php?t=66613
2020-01-06 14:38:39 +01:00
alexey.lysiuk
3c157a4f2c
- restored stopping of channel by new sound
...
If source actor/sector/polyobject is playing something on the selected channel, stop it before playing a new sound
https://forum.zdoom.org/viewtopic.php?t=66613
2020-01-06 14:38:37 +01:00
alexey.lysiuk
ea85cd18dd
- remove redundant call to SoundRenderer::UpdateSounds()
...
At that point SoundEngine::StopAllChannels() did this already
2020-01-06 14:38:35 +01:00
alexey.lysiuk
da7515c0ce
- moved sound engine cleanup calls to own function
...
https://forum.zdoom.org/viewtopic.php?t=66605#p1127457
2020-01-06 14:38:33 +01:00
alexey.lysiuk
9b2054ad4d
- fixed crash when exiting before sound engine initialization
...
https://forum.zdoom.org/viewtopic.php?t=66605
2020-01-06 14:38:30 +01:00
alexey.lysiuk
fbe696935d
- removed redundant call to S_StopAllChannels()
...
It's the first thing that S_ClearSoundData() does anyway
2020-01-06 14:38:28 +01:00
Magnus Norddahl
bd80a16312
Fix include error
2020-01-06 14:32:33 +01:00
Christoph Oelckers
6c4a6def62
- cleaned the includes of the sound backend code of unwanted content.
...
Also simplified the sound init decision making. With FMod gone there is no reason to be pedantic here. Even the check of snd_backend for the Null device could be omitted here, its only realistic use is '-nosound'.
# Conflicts:
# src/sound/s_environment.cpp
2020-01-06 13:55:51 +01:00
Christoph Oelckers
fb42e6d92e
- separated reverb data and reverb editor.
...
Again, isolating the part that is game independent from parts that are specific to GZDoom.
2020-01-06 13:45:37 +01:00
Christoph Oelckers
8adf2c34cd
- continued refactoring on sound code.
...
The game independent part of the code has been mostly isolated.
# Conflicts:
# src/sound/s_doomsound.cpp
# src/sound/s_sound.cpp
# src/sound/s_sound.h
# Conflicts:
# src/sound/s_sound.cpp
2020-01-06 13:45:19 +01:00
Christoph Oelckers
89bffd17bc
- reduced the dependency of the sound system on game state.
...
Many of the simple wrappers have been moved to a separate file and the sound source handling has been abstracted.
This is only the first phase, the work is not complete yet.
Also changed the license of the sound code to BSD after verifying that this code bears no similarity to id's original sound code anymore, save for a few function names (which are due to be refactored out anyway.)
# Conflicts:
# src/sound/s_sound.cpp
# src/sound/s_sound.h
2020-01-06 13:35:40 +01:00
Christoph Oelckers
3501ffd743
- started separating the sound engine code from game dependent parts.
...
First step: Split the header. Todo: Abstract listener and sound source specifics out of the sound engine.
2020-01-06 13:35:38 +01:00
alexey.lysiuk
2535b4ef63
- pass master volume to ZMusic library on startup
...
MIDI devices that don't output music through the sound system (like WinMM) ignored master volume setting
https://forum.zdoom.org/viewtopic.php?t=66510
2020-01-06 01:32:08 +01:00
alexey.lysiuk
e5bb66eb4f
- removed unused code from serializer
2020-01-06 01:32:05 +01:00
alexey.lysiuk
505902b141
- fixed selection of system MIDI device on startup
...
https://forum.zdoom.org/viewtopic.php?t=66150
2020-01-06 01:30:51 +01:00
alexey.lysiuk
79b39648d7
- fixed compilation of Cocoa backend with 10.9 SDK
...
src/posix/cocoa/i_video.mm:68:31: error: property 'delegate' not found on object of type 'id'
src/posix/cocoa/st_console.mm:464:37: error: property 'delegate' not found on object of type 'id'
2020-01-06 01:30:50 +01:00
Christoph Oelckers
5544e50ca4
- fixed: ZMusic_Close may not lock the mutex because it will delete it.
...
Here the calling code must ensure that the music object won't be accessible anymore before it gets deleted.
2020-01-06 01:30:47 +01:00
Christoph Oelckers
6b098107ce
- ZMusic interface refactoring.
...
Use global functions instead of the class interface which exposed too many implementation details.
2020-01-06 01:30:43 +01:00
alexey.lysiuk
af321b36a1
- updated Cocoa backend to follow single exit point workflow
2020-01-06 01:11:06 +01:00
alexey.lysiuk
2b4a071b81
- deleted leftovers of exit refactoring
2020-01-06 01:11:04 +01:00
alexey.lysiuk
14b07ee45f
- cleanup SDL fatal error reporting
...
Output error text to terminal if SDL message box cannot be shown
Removed wrong "No IWAD found" message
2020-01-06 01:10:59 +01:00
alexey.lysiuk
ad07c6fcdb
- fixed potential crashes in Linux crash reporter
...
Do not access various global objects at early stage of initialization and late stage of shutdown
# Conflicts:
# src/posix/sdl/i_main.cpp
# Conflicts:
# src/posix/sdl/i_main.cpp
2020-01-06 01:08:16 +01:00
alexey.lysiuk
b5d2cc4778
- call SDL_Quit() from main() instead of atexit()
...
This should help with crash reporting during SDL shutdown
2020-01-06 00:55:51 +01:00
alexey.lysiuk
a5d3be2569
- fixed crash on exiting from IWAD selector
...
https://forum.zdoom.org/viewtopic.php?t=66073
2020-01-06 00:55:49 +01:00
alexey.lysiuk
6c78556c09
- restored command line arguments initialization in SDL backend
2020-01-06 00:55:47 +01:00
drfrag
cfeacc485b
- Try to fix compilation on non windows platforms.
...
# Conflicts:
# src/d_main.cpp
2020-01-06 00:51:04 +01:00
alexey.lysiuk
f334400d48
- fixed compilation of POSIX targets
...
src/posix/cocoa/i_main.mm:152:2: error: use of undeclared identifier 'ShutdownJoysticks'
src/posix/sdl/i_system.cpp:128:3: error: ‘I_FatalError_Gtk’ was not declared in this scope
src/posix/sdl/st_start.cpp:329:8: error: ‘CExitEvent’ was not declared in this scope
2020-01-06 00:48:14 +01:00
drfrag
bda11c6401
- Fixed compilation.
...
# Conflicts:
# src/win32/win32video.cpp
2020-01-06 00:46:30 +01:00
Christoph Oelckers
191b958791
- the big cleanup of the exit cleanup is done!
...
atterm is gone and only a few system-side functions use atexit.
All game side cleanup is performed in D_DoomMain now.
# Conflicts:
# src/CMakeLists.txt
# src/atterm.cpp
# src/atterm.h
# src/d_main.cpp
# src/dobjtype.cpp
# src/g_mapinfo.cpp
# src/g_statusbar/sbarinfo.cpp
# src/gamedata/g_mapinfo.h
# src/i_net.cpp
# src/p_setup.cpp
# src/posix/cocoa/i_video.mm
# src/posix/sdl/hardware.cpp
# src/posix/sdl/i_main.cpp
# src/r_utility.cpp
# src/rendering/v_video.cpp
# src/sound/s_advsound.cpp
# src/sound/s_sound.cpp
# src/swrenderer/r_swcolormaps.cpp
# src/win32/hardware.cpp
# src/win32/i_input.cpp
# Conflicts:
# src/CMakeLists.txt
# src/i_net.cpp
# src/posix/sdl/i_system.cpp
# src/r_utility.cpp
# src/win32/i_system.cpp
2020-01-05 23:57:44 +01:00
drfrag
5b31393b90
- Fixed compilation.
...
# Conflicts:
# src/win32/st_start.cpp
2020-01-05 21:19:07 +01:00
Christoph Oelckers
7221068d68
- fixed compilation on Windows.
2020-01-05 21:14:00 +01:00
Christoph Oelckers
9ee1c88760
replaced all 'exit's with an ExitEvent exception
...
The main exits are initiated from code that cannot filter this back to D_DoomMain easily so the exception is the only way to get there.
The 3 main points of exit are:
* quit/exit CCMD
* quitting the menu through ST_Endoom
* receiving a quit message on the main window.
# Conflicts:
# src/posix/cocoa/st_start.mm
2020-01-05 21:13:56 +01:00
Christoph Oelckers
7a307ff8a9
- don't exit from within a window proc.
...
This should be handled by the message pump evaluating WM_QUIT which is how Windows suggests this to be done.
2020-01-05 21:12:23 +01:00
Christoph Oelckers
dd47803906
- missed one exit.
2020-01-05 21:12:20 +01:00
Christoph Oelckers
abd98688e1
- refactored the exit calls out of the networking code
...
These ones were particularly bad examples of misusing the exit handlers by temporarily installing one themselves and then calling exit to clean stuff up.
Now they just return an error code to D_DoomMain to perform a regular exit.
2020-01-05 21:12:18 +01:00
Christoph Oelckers
f52c217234
- moved all exception handling out of the backends
...
The main catch is now in D_DoomMain, only calling platform specific functions to handle the output for the error.
As a nice side effect, -norun can now be done without an exception, just by exiting D_DoomMain with a special exit code.
# Conflicts:
# src/win32/i_main.cpp
2020-01-05 21:12:16 +01:00
Christoph Oelckers
e8332b299e
- consolidated I_FatalError functions
...
This also removes the handling from thr Posix backend and will not compile on non-Windows.
2020-01-05 21:09:36 +01:00
Christoph Oelckers
f84c0790ea
- consolidated the 3 I_Error implementations
...
Debug output is now being handled by the respective interface functions, not by the Windows I_Error itself.
2020-01-05 21:09:34 +01:00
alexey.lysiuk
4c099300ca
- implemented str(n)icmp function definitions via CMake macro
2020-01-05 21:07:58 +01:00
alexey.lysiuk
a4930f9d8b
- restored ability to link with thirdparty sound libraries explicitly
...
DYN_SNDFILE=NO and DYN_MPG123=NO were ignored while DYN_FLUIDSYNTH=NO broke compilation
These options should be applied to ZMusic target instead of the main executable
As a bonus, it's now possible to build GZDoom without FluidSynth
2020-01-05 21:06:37 +01:00
alexey.lysiuk
875a136b34
- fixed compilation of Cocoa backend
...
src/posix/cocoa/st_start.mm:63:7: error: redefinition of 'FBasicStartupScreen'
2020-01-05 21:04:42 +01:00
Christoph Oelckers
26c435c69e
- split up st_start.cpp into one file with the Windows interface code and a second one which only contains platform independent code.
...
Since this made heavy use of Windows type, those were duplicated to avoid rewriting the entire interface.
This split at least reduces the amount of code needed to refactor for making the screens work on other platforms than Windows.
# Conflicts:
# src/CMakeLists.txt
2020-01-05 21:04:39 +01:00
Christoph Oelckers
ba071d7044
- eliminate a little bit of redundancy.
2020-01-05 21:04:12 +01:00
Christoph Oelckers
89d7330ba9
- cleanup of the sound init/exit code.
...
Now there is only one single entry point for both, instead of previously 2 entry and 4 exit points.
This also eliminates the explicit shutdown of ZMusic. Timidity++'s two buffers have been put in containers that self-destruct on shutdown and calling dumb_exit is not necessary because the only feature requiring it is not used by any code in the music library.
2020-01-05 21:04:09 +01:00
Christoph Oelckers
55831a264a
- some reformatting on exit code, mainly to make searching for the content easier.
...
# Conflicts:
# libraries/asmjit/asmjit/core/compiler.h
# libraries/glslang/spirv/SpvBuilder.h
# src/posix/sdl/hardware.cpp
# src/rendering/v_video.cpp
# src/win32/hardware.cpp
# src/win32/i_main.cpp
2020-01-05 21:03:41 +01:00
Christoph Oelckers
fcfff6f6f6
- sanitized exit code a bit
...
Instead of trying a homegrown way to avoid recursive exceptions, let's do it with the defined procedure C++ has for this case: call std::terminate.
This allowed removing some old hackery inherited from Boom and will now hopefully allow sanitizing the exit procedure to the point that it can be done without depending on exit handlers.
# Conflicts:
# src/files_decompress.cpp
# Conflicts:
# src/d_main.cpp
2020-01-05 21:03:07 +01:00
Christoph Oelckers
1f15bc5b0d
- moced I_DetectOS call into D_DoomMain
...
This requires the console and was the reason for this strange setup.
# Conflicts:
# src/posix/cocoa/i_main.mm
2020-01-05 21:00:19 +01:00
Christoph Oelckers
5293b8b281
- moved the initial C_InitConsole call into D_DoomMain
...
The only difference here were the size values on Windows but for this initial call they have been useless for a long time. When this code was written the console buffer still had a fixed width that needed to be set before adding any text.
2020-01-05 21:00:16 +01:00
Christoph Oelckers
f0d68efb88
- also put the Windows system specific exit handlers into atexit's list
...
Again, these have no place in the game's own uninit code.
2020-01-05 21:00:15 +01:00
Christoph Oelckers
818302e02f
- put SDL_Quit into the atexit queue instead of atterm
...
System exit procedures should not go in there.
2020-01-05 21:00:12 +01:00
Christoph Oelckers
c272315ca3
- new exception class for quitting the game
...
This will eventually replace the atexit mess, right now it isn't used.
# Conflicts:
# src/doomerrors.h
# Conflicts:
# src/doomerrors.h
2020-01-05 20:58:39 +01:00
Christoph Oelckers
62141910a4
- copied the restart cleanup code into its own function
...
# Conflicts:
# src/d_main.cpp
# Conflicts:
# src/d_main.cpp
2020-01-05 20:56:30 +01:00
drfrag
ce31c46d60
Revert "Use signal handler to invoke call_terms() before exit when possible"
...
This reverts commit 457dc8b5a9
.
2020-01-05 19:56:24 +01:00
drfrag
2bf731cfa9
Revert "- Made VMFrameStack GlobalVMStack a non thread_local variable for MinGW since that helps to prevent crashes on exit."
...
This reverts commit 429bd5d843
.
2020-01-05 19:55:15 +01:00
drfrag
b78978fa7b
Revert "- Addressed crash on exit with MinGW. This is a hack and i've reported it as a bug in the MinGW C runtime."
...
This reverts commit 0e25e40deb
.
2020-01-05 19:54:54 +01:00
drfrag
fce7af81af
- Try to fix compilation on POSIX targets, i mean for real compilers thanks again to the broken VS preprocessor.
2020-01-05 19:44:18 +01:00
Christoph Oelckers
44f668c6d9
- added a mapping table from DOS-IBM-437 to Unicode
...
This is for future use, added now so that it won't get lost.
2020-01-05 14:43:59 +01:00
Christoph Oelckers
ed0e671281
- added missing return to the GENMIDI loader.
2020-01-05 14:39:14 +01:00
Braden Obrzut
04ca5946d9
- Document limitation of TArray and silence warnings about non-trivial types being trivially moved
2020-01-05 14:39:12 +01:00
Christoph Oelckers
7bd8abc074
- fixed crash with non-looping music ending.
...
In this case it was the song terminating the stream, with the new setup the main music code has to do this itself.
2020-01-05 14:39:09 +01:00
Christoph Oelckers
1616bc93a7
- fixed compilation on Windows.
...
# Conflicts:
# libraries/zmusic/musicformats/win32/i_cd.cpp
# Conflicts:
# libraries/zmusic/musicformats/win32/i_cd.cpp
2020-01-05 14:39:08 +01:00
alexey.lysiuk
0d3e78f748
- disabled code signing in Xcode by default
...
It’s impossible to build GZDoom without valid code signing identity with Xcode 11 using a project
# Conflicts:
# src/CMakeLists.txt
2020-01-05 14:39:06 +01:00
Christoph Oelckers
555b847323
- removed the remains of the FModEx-style stream implementation
...
FMod had MP3/Ogg playback integrated right into itself, and the OpenAL backend tried to replicate this functionality.
This functionality, however, has been removed over two years ago when FMod started breaking things more and more, it was only this backing implementation that was left in.
2020-01-05 14:39:04 +01:00
Christoph Oelckers
ee4bf9670e
- renamed a few functions in the public interface of ZMusic.
2020-01-05 14:39:03 +01:00
Christoph Oelckers
16212e946b
- moved the music loader code to ZMusic.
...
This was the final piece of code reorganization.
What's left is cleaning up the interface.
2020-01-05 14:39:01 +01:00
Christoph Oelckers
09fe55d462
- cleanup of the remaining music code in the main project
...
# Conflicts:
# src/menu/menudef.cpp
# src/scripting/vmthunks.cpp
# Conflicts:
# src/p_acs.cpp
2020-01-05 14:39:00 +01:00
Christoph Oelckers
d7db010217
- moved the CD Audio code to ZMusic, too.
...
This was the last player class.
This code was also cleaned up for non-Windows systems where CD Audio is not implemented.
Instead of providing an empty implementation, all related code is now explicitly deactivated.
# Conflicts:
# src/CMakeLists.txt
2020-01-05 14:38:27 +01:00
Christoph Oelckers
01de5a071b
- moved the main music classes to ZMusic
...
What's left is the CD-Audio playback and some global functions.
# Conflicts:
# src/CMakeLists.txt
2020-01-05 14:02:12 +01:00
Christoph Oelckers
cf16dc510a
- fixed compilation with XCode and silenced several warnings
2020-01-05 13:38:07 +01:00
Christoph Oelckers
768a7bdd18
- hooked up a few more CVARs and other values the music backend needs to know about and moved the MusInfo base class into zmusic.
...
# Conflicts:
# src/sound/musicformats/music_midistream.cpp
2020-01-05 13:37:50 +01:00
Christoph Oelckers
08d2ac0eee
- moved the sound system's sound stream for the music out of the song objects.
...
It is now being handled by the controlling code.
While of no benefit for GZDoom itself, this finally allows to separate the entire music code into a separate, engine independent project that merely provides streamed music data when not playing on a hardware device (WinMM Midi or CD Audio.)
The tight coupling of the music code with the sound backend made this nearly impossible before
2020-01-05 12:56:39 +01:00
Christoph Oelckers
fce866054e
- reordering code a bit to see where the stream must be started.
2020-01-05 12:56:37 +01:00
Christoph Oelckers
e3bb9332d0
- a bit of cleanup - moving internal class declarations into the sources.
...
Now i_musicinterns.h doesn't bleed the entire implementation everywhere anymore.
2020-01-05 12:56:35 +01:00
Christoph Oelckers
0f7886326d
- renamed the configuration file.
2020-01-05 12:56:33 +01:00
Christoph Oelckers
e76f590df8
- moved all configuration code to zmusic project.
...
The CVARs are now just getting forwarded without any own logic.
2020-01-05 12:56:30 +01:00
Christoph Oelckers
5d73f09ebf
- first state of music configuration refactor.
...
# Conflicts:
# src/sound/music/midi_cvars.cpp
2020-01-05 12:56:28 +01:00
Christoph Oelckers
d44d3b353d
- did a bit of reordering on I_RegisterSong.
...
The way CDDA was treated as an afterthought made handling of stream songs somewhat problematic, because the state could be unclear.
CDDA is an easily identifiable format so it should be tested first.
2020-01-05 12:33:51 +01:00
Christoph Oelckers
eccff92420
- moved MIDI format detection and source creation into zmusic project.
2020-01-05 12:33:48 +01:00
Christoph Oelckers
531a5a8857
- moved the stream sources to zmusic project.
...
# Conflicts:
# src/CMakeLists.txt
2020-01-05 12:32:47 +01:00
Christoph Oelckers
09993ca39b
- removed ZDoom dependencies from music_libsndfile.cpp
...
# Conflicts:
# src/sound/musicformats/music_libsndfile.cpp
2020-01-05 12:32:43 +01:00
Christoph Oelckers
f3f2ec5cb1
- moved the sound decoding code to the zmusic project.
...
Since this gets used by both the sound backend and the music code it needs to be in a place accessible to both.
# Conflicts:
# src/CMakeLists.txt
# Conflicts:
# libraries/zmusic/decoder/mpg123_decoder.cpp
# libraries/zmusic/decoder/sndfile_decoder.cpp
# src/CMakeLists.txt
2020-01-05 12:29:15 +01:00
Christoph Oelckers
fb3b6a0407
- XA, too.
2020-01-05 11:53:06 +01:00
Christoph Oelckers
3837cf8f0f
- ... and the raw OPL format.
2020-01-05 11:53:04 +01:00
Christoph Oelckers
182f48c2c4
- gave music_gme.cpp the treatment.
...
# Conflicts:
# src/sound/musicformats/music_gme.cpp
2020-01-05 11:53:00 +01:00
Christoph Oelckers
e3d9c6a19e
- dependency cleanup in music_dumb.cpp.
...
# Conflicts:
# src/sound/musicformats/music_dumb.cpp
# Conflicts:
# src/sound/musicformats/music_dumb.cpp
2020-01-05 11:50:07 +01:00
Christoph Oelckers
b5ebe264ab
- consolidated the different file access interfaces in the backends into one shared version.
...
This was getting a bit unwieldy. The include path setup is not perfect yet, that's work for later.
(It's about time we're getting C++20 with modules so that this include path madness can be put to an end.)
2020-01-05 11:46:28 +01:00
Christoph Oelckers
c56bf30cc2
- uncoupled the stream sources from the low level implementation. The entire setup had the stream sources depend on the SoundStream class, severely limiting reusability. This was changed that there is one SoundStream class that uses the StreamSources as mere data source that has no knowledge and no connection to the underlying system, similar to how the MIDI system works. With this there are only 3 top level music classes left - MIDIStreamer, StreamSong and CDSong.
...
Also made the decode_vorbis function in DUMB a function pointer so that the library does not depend on high level code and can just ignore the vorbis case if no supported.
2020-01-05 11:46:24 +01:00
Christoph Oelckers
5743a56ef4
- created a new zmusic library which will eventually contain all the music playback code.
...
Currently all it contains are the MIDI sources and the MIDI devices, the rest needs to be reworked first.
# Conflicts:
# libraries/zmusic/i_module.cpp
# libraries/zmusic/i_module.h
# src/CMakeLists.txt
# src/i_module.cpp
# src/i_module.h
# src/sound/music/midi_cvars.cpp
# src/utility/i_module.cpp
# src/utility/i_module.h
# Conflicts:
# src/CMakeLists.txt
# src/sound/musicformats/music_opl.cpp
2020-01-05 11:46:20 +01:00
Christoph Oelckers
c52b516c6f
- more dependency removal, this time from the MIDI devices.
...
# Conflicts:
# src/sound/mididevices/music_win_mididevice.cpp
# Conflicts:
# src/sound/mididevices/music_softsynth_mididevice.cpp
# src/sound/mididevices/music_timidity_mididevice.cpp
# src/sound/mididevices/music_timiditypp_mididevice.cpp
# src/sound/mididevices/music_wavewriter_mididevice.cpp
2020-01-05 02:43:50 +01:00
Christoph Oelckers
d3bfffbdab
- removed all dependencies on ZDoom code from the MIDI sources (including TArray and FileReader.)
2020-01-05 02:36:35 +01:00
Christoph Oelckers
4068febc5e
- fixed typo.
2020-01-05 02:36:32 +01:00
Christoph Oelckers
5460c72ee9
- moved the stream handling out of the MIDI device into the MIDIStreamer class.
...
This isn't the final location but this means that the device is merely a data provider, with the sole exception of the Win32 MIDI device whose unwieldy usage requirements unfortunately dictate much of the needed interface here.
2020-01-05 02:36:30 +01:00
Christoph Oelckers
f15be8b270
- split out the MIDIDevice implementation into its own source file.
2020-01-05 02:36:27 +01:00
Christoph Oelckers
447290aa4f
- WildMidi also done.
2020-01-05 02:31:56 +01:00
Christoph Oelckers
30f23738b3
- Timidity++ done.
2020-01-05 02:31:53 +01:00
Christoph Oelckers
e75da52448
- fixed the GUS MIDI device.
...
The sound font reader may not be deleted because its ownership is transferred to the instrument set.
The gus_patchdir variable was not transferred to the config struct.
2020-01-05 02:31:47 +01:00
Christoph Oelckers
08f3a349e8
- work on GUS MIDI device plus some cleanup
...
This is not tested yet!
2020-01-05 02:31:42 +01:00
Christoph Oelckers
309a45ed48
- Gave OPN device the same treatment
...
Also made some improvements to the interface.
# Conflicts:
# src/sound/mididevices/midi_cvars.cpp
2020-01-05 02:31:38 +01:00
alexey.lysiuk
850975cbc4
- fixed compilation on Linux
...
libraries/oplsynth/oplio.cpp:59:32: error: ‘memset’ was not declared in this scope
src/sound/mididevices/midi_cvars.cpp:43:31: error: expected initializer before ‘GetSystemDirectoryA’
2020-01-05 02:17:59 +01:00
Christoph Oelckers
f6eedb737b
- same treatment for the OPL Midi player.
...
# Conflicts:
# src/sound/mididevices/music_opl_mididevice.cpp
2020-01-05 02:17:53 +01:00
Christoph Oelckers
9585ca5984
- missed an 'else'.
2020-01-05 02:16:33 +01:00
Christoph Oelckers
4aca10e062
- cleared FluidSynthMIDIDevice of most ZDoom dependencies.
...
# Conflicts:
# src/sound/mididevices/music_fluidsynth_mididevice.cpp
# Conflicts:
# src/sound/mididevices/music_fluidsynth_mididevice.cpp
2020-01-05 02:16:30 +01:00
Christoph Oelckers
726f65e91b
- more work on music code
...
- renamed the FluidSetting functions to ChangeSetting so that they can be used as a generic means to change music player options without overloading the virtual function table for each minor thing.
- pass Printf as a parameter to the MIDI renderer to uncouple it from the main GZDoom code.
- throw exceptions when setting up the renderer fails so that this can be handled consistently for all construction errors here.
- delete FluidSynth handles before the constructor aborts.
2020-01-05 02:14:14 +01:00
drfrag
8b6af8726e
Revert "- added dynamic loading of FluidSynth 2.x"
...
This reverts commit 399bc4cffa9401b6ea4b88ff6d2206e80f835efc.
2020-01-05 02:13:44 +01:00
Christoph Oelckers
9437bcda64
- removed most dependencies on ZDoom code in ADL Midi device.
2020-01-05 02:11:52 +01:00
Christoph Oelckers
f2840d4942
- made the OPL synth backend a separate library.
...
# Conflicts:
# src/CMakeLists.txt
# src/sound/mididevices/music_opl_mididevice.cpp
# Conflicts:
# libraries/oplsynth/OPL3.cpp
# libraries/oplsynth/dosbox/opl.cpp
2020-01-05 02:11:51 +01:00
Christoph Oelckers
a63d90034b
- cleaned up the dependencies of the OPL interface layer.
...
This also removes the OPL dumper because I wasn't able to get any non-broken output from it and have no desire to fix such a niche feature.
# Conflicts:
# src/sound/mididevices/music_opldumper_mididevice.cpp
2020-01-05 02:11:49 +01:00
Christoph Oelckers
01624eddf2
- removed all ZDoom dependencies from the OPL backend code.
...
# Conflicts:
# src/sound/oplsynth/opl_mus_player.cpp
2020-01-05 02:11:03 +01:00
Christoph Oelckers
d212c84392
- removed the global current_opl_core variable and pass the needed info as function parameters
...
because using global variables for this is really bad style!
This also removes the unused OPLMUSDumper class.
2020-01-05 02:02:01 +01:00
Christoph Oelckers
cf105c8720
- gave the Timidity error functions better names and hooked up the WildMidi version.
2020-01-05 01:53:54 +01:00
alexey.lysiuk
2428cc4b1e
- fixed compilation with Apple Clang as well
...
src/utility/basictypes.h:39:23: error: unknown type name 'size_t'; did you mean 'time_t'?
2020-01-05 01:53:50 +01:00
Christoph Oelckers
166e390ad9
- changed MIDI sources so that they do not have to include i_musicinterns.h anymore.
...
They were already clean of unwanted external references, but including this file made it hard to keep it that way.
This also moves a few useful definitions around to less 'dirty' headers.
# Conflicts:
# src/rendering/swrenderer/textures/warptexture.cpp
# Conflicts:
# src/doomtype.h
# src/sound/midisources/midisource.cpp
# src/sound/midisources/midisource_smf.cpp
# src/sound/midisources/midisource_xmi.cpp
2020-01-05 01:53:45 +01:00
Christoph Oelckers
3b5e8f8011
- made WildMidi a library.
...
# Conflicts:
# src/CMakeLists.txt
# src/sound/musicformats/music_xa.cpp
2020-01-05 01:40:41 +01:00
Christoph Oelckers
1816c17ffd
- fixed WildMidi.
2020-01-05 01:40:38 +01:00
Christoph Oelckers
f76f3d0e0a
- refactoring of WildMidi to have proper instrument management
...
Not tested yet, it compiles but may not work as-is.
# Conflicts:
# src/sound/wildmidi/file_io.cpp
2020-01-05 01:40:34 +01:00
Christoph Oelckers
00048ddf7e
- started cleanup work on WildMidi code.
...
# Conflicts:
# src/sound/mididevices/music_wildmidi_mididevice.cpp
# Conflicts:
# src/sound/mididevices/music_wildmidi_mididevice.cpp
2020-01-05 01:38:19 +01:00
Christoph Oelckers
2ddc9ee1f3
- made the Timidity(GUS) device a separate library.
...
# Conflicts:
# src/CMakeLists.txt
2020-01-05 01:22:14 +01:00
Christoph Oelckers
f59aa69d95
- cleaned up the includes in timidity.cpp.
...
# Conflicts:
# src/sound/timidity/timidity.cpp
2020-01-05 01:22:12 +01:00