Commit graph

4654 commits

Author SHA1 Message Date
Christoph Oelckers
4294b94728 - since Wads.ReopenLumpNum already performs caching on the lump data it is not really necessary anymore to maintain a separate musiccache, so this code can be removed. 2015-04-26 22:09:19 +02:00
Christoph Oelckers
aecff68a4d - cleanup of sound system startup and menu handling:
* added global functions that check whether FMod and OpenAL are present, without initializing the sound backend.
* make sound init code more fault tolerant. It will now try to switch between FMod and OpenAL if the currently active one cannot be found but the other one can.
* added 'ifoption' checks for sound backend to menu code.
* only show sound backends which are present and hide the options for the ones which are not.
2015-04-26 12:13:21 +02:00
Christoph Oelckers
8e70a9b894 - added a NULL check to FMODStreamCapsule destructor, just to be safe. 2015-04-26 09:58:10 +02:00
Christoph Oelckers
a23afbd7ce Merge branch 'master' into openal 2015-04-26 09:37:49 +02:00
Christoph Oelckers
46e975418d - fixeed: Sound sequence overrides took the parameter from the wrong data structure. 2015-04-26 08:48:49 +02:00
Christoph Oelckers
6bb79be85c - got rid of std::auto_ptr, courtesy of Blzut3's patch. 2015-04-25 17:50:57 +02:00
coelckers
b9fdc21547 Merge pull request #317 from Edward850/master
Slightly more information on ACS serialize errors
2015-04-25 13:14:58 +02:00
Christoph Oelckers
d880783784 - make OpenAL and the decoder libraries delay loaded so that ZDoom can still start without them being present.
This required the addition of a few exception handlers so to avoid #ifdef overuse I also added some #defines for non-Windows systems that allow using __try and __except directly in the code without #ifdef'ing them out.
2015-04-25 12:25:10 +02:00
Christoph Oelckers
12118550d2 - fixed some warnings in OpenAL code. 2015-04-25 10:34:47 +02:00
Christoph Oelckers
dccd35ef29 - uncoupled OpenAL music updates from UpdateSounds.
UpdateSounds will not be called during screen wipes and the entire setup of this function suggests that this is not advisable at all.
The OpenAL stream updates were done deep inside this function implicitly.
This caused music to stop while a wipe was in progress. So in order to allow uninterrupted music playback during screen wipes the music updates need to be handled separately from sound updates and be called both in the main loop and the wipe loop.

I think that the OpenAL music updating should be offloaded to a separate thread but at least it's working now without causing interruptions during wipes.
2015-04-25 10:26:14 +02:00
Christoph Oelckers
54c2a14145 Merge branch 'master' into openal 2015-04-25 09:13:11 +02:00
Christoph Oelckers
682f3e230a - fixed: We should not try calling unicode functions on ASCII strings.
Should ZDoom ever switch to unicode I_GetLongPathName will have to be adjusted, but for now it must call GetLongPathNameA, not GetLongPathNameW.
2015-04-25 09:08:59 +02:00
Edward Richardson
0fd93cc033 Slightly more information on ACS serialize errors 2015-04-25 18:10:26 +12:00
Braden Obrzut
75471df787 - Made a few Win32 calls optional in order to restore capatibility with Windows NT 4.0 (not that anyone is using NT 4, but it was a trivial fix) 2015-04-24 23:07:32 -04:00
Christoph Oelckers
0da6939e84 - unmark OpenAL as 'advanced' in CMake so we can set its include and library paths in the IDE without having to enable the advanced display which isn't really helpful. 2015-04-24 22:30:28 +02:00
Christoph Oelckers
c91745c714 - some fixes to make OpenAL branch compile with VC++ 2013 and OpenAL support. 2015-04-24 17:42:56 +02:00
Christoph Oelckers
1f2a431d15 Merge branch 'master' into openal 2015-04-24 09:21:06 +02:00
Christoph Oelckers
920a4fbf45 - fixed: The HashTags function considered sector and line #0 invalid. 2015-04-23 21:27:36 +02:00
coelckers
45b006252a Merge pull request #316 from Doom2fan/RailgunSpiralOffset
Added SpiralOffset parameter to railgun functions.
2015-04-23 21:17:41 +02:00
Chronos Ouroboros
6a6836b1e7 Added SpiralOffset to railgun functions. 2015-04-23 15:11:54 -03:00
Christoph Oelckers
a54404074a - fixed: IDs that map to nothing must be removed from the spawn/conversation ID maps. 2015-04-23 20:09:12 +02:00
Randy Heit
8d501fdb9f Fix some issues with changing player viewheight at runtime
- Viewheight change was delayed: Viewheight must be copied to player
  structure as well as the PlayerPawn. Not sure if should actually use
  deltaviewheight to spread the change out over a few tics instead of
  being instant.
- Viewheight not preserved when travelling: player->viewheight must be
  restored from pawn->ViewHeight, because the temporary player set it back
  to the default viewheight.
2015-04-22 23:22:27 -05:00
Randy Heit
ca16d99445 Fixed: FOptionMenuItem::GetIndent() did not handle localized strings 2015-04-22 22:57:15 -05:00
Randy Heit
0cbb3132e6 Don't spam Dropped packet messages for disconnected players 2015-04-22 22:35:38 -05:00
Randy Heit
d6b8603cb6 Ignore sv_unlimited_pickup on items that stay
- See http://forum.zdoom.org/viewtopic.php?f=2&t=47790
2015-04-22 22:27:56 -05:00
Randy Heit
03c3621bb4 Use a different var to track unset DTA_FillColor instead of a default value
- If palette index 255 happens to be white (e.g. as in Hexen), trying to
  use white with DTA_FillColor would treat it as if you had never passed
  it to DrawTexture().
2015-04-22 22:18:44 -05:00
Randy Heit
a7ff9478a7 Fixed: S_PrecacheLevel() could create orphan channels
- S_PrecacheLevel() must also mark currently playing sounds as
  used. If we don't, the sound could be unloaded and the underlying
  channel stopped without triggering a channel callback. That would leave
  the code in s_sound.cpp thinking the sound is still playing even though
  it isn't.
- Added an invalid channel check to FMODSoundRenderer::StopChannel() so
  that orphan channels passed to it will be returned at least when
  S_StopAllChannels() is called.
2015-04-22 20:33:08 -05:00
Randy Heit
7ee1853403 Remove OpenAL and Sound Manager output options for FMOD
- OpenAL never actualy worked properly and was removed in later FMODs.
- Sound Manager was deprecated by Apple long ago and is not supported for
  64-bit applications. It was also removed in later FMODs.
2015-04-22 19:09:33 -05:00
Randy Heit
dba76c1aea Disable PCM-8 output when not using DirectSound
- PCM-8 sounds like garbage with WASAPI and WaveOut, so force anything not
  DirectSound to use PCM-16 if PCM-8 is selected.
2015-04-22 18:32:45 -05:00
Randy Heit
f7bd3acec4 Add OpenString to FScanner class 2015-04-22 17:34:36 -05:00
Christoph Oelckers
3300817d65 - removed some leftover code from initial development in the DoomEdNum parser. 2015-04-20 23:20:56 +02:00
Christoph Oelckers
cad282142d - fixed some last issues with the tag manager. 2015-04-19 18:22:39 +02:00
Christoph Oelckers
db61c1cb57 - allow multiple line IDs as well using the same method as for sector tags. 2015-04-19 17:51:34 +02:00
Christoph Oelckers
b921157f57 - uncouple sector tag storage from the sector data to allow multiple tags per sector.
Tags are now handled by a tag manager class which stores sector/tag pairs. This way multiple entries can be added per sector.
Since UDMF does not have any arrays the additional tags are stored as a space separated string as 'MoreIDs'.
2015-04-19 12:33:27 +02:00
Christoph Oelckers
6326cd74b4 - moved tag iterators to their own file. 2015-04-19 09:07:05 +02:00
Christoph Oelckers
2719ce86dc Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-19 08:48:41 +02:00
Christoph Oelckers
f65a07c952 - minor bit of cleanup of tags code. 2015-04-19 08:48:20 +02:00
Randy Heit
b3c7b9679a Fixed: writeopl broke when the OPL3 cores were added
- When the OPL3 cores were added, DiskWriterIO was never updated to take
  into account things like more than two OPL2 chips can be configured.
- DiskWriterIO no longer does any file writing directly. That function has
  been split off into an OPLDump class, which has two specializations: one
  for RDOS Play, and the other for DOSBox. If one chip is configured, it
  dumps for a single OPL2, otherwise it dumps for an OPL3 (effectively
  dual OPL2).
- TODO: Figure out why playback of raw OPL files doesn't sound nearly as
  good as playing MIDI with the OPL emulation. It's probably something
  simple I overlooked.
2015-04-18 22:51:28 -05:00
Christoph Oelckers
f983f778f2 - moved ScaleCoordsFromWindow to the BaseWinFB base class to eliminate two identical implementations.
(GZDoom would have had to implement a third identical copy in its GL framebuffer as well.)
2015-04-17 21:39:07 +02:00
Christoph Oelckers
f57e08102c Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-17 19:41:08 +02:00
Christoph Oelckers
6e28963141 - added a sanity check to GL nodes loader for a potential crash. 2015-04-17 19:40:45 +02:00
Braden Obrzut
1fa1e26cf9 - SDL backend could use the new ScaleCoordsFromWindow since it does similarly for fullscreen. 2015-04-17 00:24:33 -04:00
Randy Heit
9b6756114b Scale mouse coordinates based on window size
- Fixed: If you enlarged the game window (in windowed mode) so that the
  window is bigger than the selected resolution, the menu would still take
  its inputs from the portion in the upper left that matched the
  resolution.
2015-04-16 17:45:57 -05:00
Christoph Oelckers
d166211ce0 - reverted changes from copying over p_3dfloors.cpp with GZDoom's version. 2015-04-16 19:55:46 +02:00
Christoph Oelckers
e30958f443 - fixed: The check for completely invisible 3D floor in the sorting code checked the wrong flags. 2015-04-16 18:07:45 +02:00
Christoph Oelckers
3cb4eb44a8 - fixed: APowerRegeneration::DoEffect did not call the super method. 2015-04-16 08:29:21 +02:00
Christoph Oelckers
203f88ce6e - some sanitizing of sector tag/line id management:
* make setting the line ID with P_TranslateLineDef explicit because there's one FraggleScript function that needs to work around the changes caused by this. There's also some functions setting only a temporary linedef. These would inevitably cause problems if the underlying data gets changed.
* remove FS function 'ChangeTag'. Fortunately this was just some long forgotten test stuff that can be removed without affecting any maps, but the feature would cause some serious problems in a more complex system.

With these changes it is guaranteed that after map setup the tag/ids won't change anymore.
2015-04-15 20:10:27 +02:00
Christoph Oelckers
5d819036b3 Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-15 09:45:09 +02:00
Christoph Oelckers
418e6a16b8 - fixed UDMF user variables could be set for the base namespaces which do not define them. 2015-04-15 09:43:43 +02:00
Christoph Oelckers
902593198b - wrapped all line ID accesss just like sector tags 2015-04-15 09:37:06 +02:00