Commit graph

375 commits

Author SHA1 Message Date
Ozkan Sezer
c443de78cc added -nomusic command line switch to turn off playing external music files.
added new cvar bgm_extmusic to enable/disable playing of external music files.
added a new menu entry to control bgm_extmusic.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@384 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-10 08:33:22 +00:00
Steven
64e52ea80c Doco update
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@383 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-10 03:09:09 +00:00
Steven
7164ac8dc5 Author name change
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@382 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-06 20:19:37 +00:00
Ozkan Sezer
d286c4d48f applied a modified version of heritage & quit message by Sander van Dijk
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@381 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-06 20:05:49 +00:00
Ozkan Sezer
810141f297 updated the darwin makefile after music streaming changes. it probably needs
further updating, though...

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@380 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-05 23:05:17 +00:00
Ozkan Sezer
63e9db8355 updated codeblocks project files after the streaming music changes.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@379 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-05 22:27:33 +00:00
Ozkan Sezer
25c2e2b3c8 menu.c: allow proper music volume adjustment for windows.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@378 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-05 21:30:37 +00:00
Ozkan Sezer
9bb413d4aa snd_mp3.c: fixed windows build.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@377 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-05 21:29:00 +00:00
Ozkan Sezer
766c2a7f2f updated windows makefiles and visual studio project files after streaming
music changes.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@376 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-05 21:27:37 +00:00
Ozkan Sezer
f1f5deca34 added libmad, libogg and libvorbis headers and x86 and x64 import
libraries for windows builds.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@375 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-05 19:55:57 +00:00
Ozkan Sezer
cbb7eb0428 Backported external music files support using decoder libraries and the
new raw samples interface from Hammer of Thyrion (uhexen2) :
- bgmusic.c, bgmusic.h: New BGM interface for background music handling.
  Handles streaming music as raw sound samples.
- bgmnull.c: BGM source for cases where the engine is configured for no
  sound.
- cl_main.c: Include bgmusic.h. Call BGM_Stop() and CDAudio_Stop() in
  CL_Disconnect().
- cd_sdl.c: Moved bgmvolume boundary checking to bgmusic.c upon value
  changes.
- gl_vidnt.c, gl_vidsdl.c, cl_parse.c: Include bgmusic.h. Add BGM_Pause()
  and BGM_Resume() calls along with CDAudio_ counterparts.
- cl_parse.c: Replace CDAudio_Play() call by the new BGM_PlayCDtrack()
  which first tries CDAudio_Play() and then streaming music if it fails.
- host.c: Include bgmusic.h. Call BGM_Update() just before S_Update()
  in Host_Frame(). In Host_Init(), call BGM_Init() after other audio init
  calls. In Host_Shutdown(), call BGM_Shutdown() before all other audio
  shutdown calls.
- snd_dma.c: Include snd_codec.h and bgmusic.h. Call S_CodecInit() from
  S_Init(). Call S_CodecShutdown() from S_Shutdown().
- snd_codec.c, snd_codec.h: New public codec interface for streaming
  music as raw samples. Adapted from quake2 and ioquake3 with changes.
  Individual codecs are responsible for handling any necessary byte swap
  operations.
- snd_codeci.h: New header for snd_codec internals.
- snd_wave.c, snd_wave.h: Codec for WAV format streaming music. Adapted
  from ioquake3 with changes.
- snd_vorbis.c, snd_vorbis.h: Codec for Ogg/Vorbis format streaming music.
- snd_mp3.c, snd_mp3.h: Codec for MP3 format streaming music using libmad.
  Adapted from the SoX project with changes.
- Makefile: Adjusted for the new sources. Added switches USE_CODEC_WAVE,
  USE_CODEC_MP3, USE_CODEC_VORBIS for enabling and disabling individual
  codecs.
- Windows makefiles and project files as well as other CodeBlocks project
  files will be updated shortly.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@374 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-05 19:50:43 +00:00
Ozkan Sezer
ceb1dd2186 made COM_FindFile to accept both file and handle as NULL. Added
COM_FileExists as a new helper procedure which calls COM_FindFile
with both file and handle parameters as NULL.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@373 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-05 18:01:15 +00:00
Ozkan Sezer
db70c054fa gl_model.c (Mod_LoadLighting): Check the path_id of the lit file and
accept only if it is coming from the same game directory as for the map
itself.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@372 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-02 22:02:11 +00:00
Ozkan Sezer
51301e043c gl_model.h (model_t): Added a path_id member to store the
information about the game directory from where the model is
loaded.
gl_model.c (Mod_LoadModel): Send the path_id member of the
model to FS_Load* function, instead of NULL.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@371 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-02 21:55:26 +00:00
Ozkan Sezer
c583b5b541 common.c (searchpath_t): Added new member `path_id', an unsigned
int identifier assigned to the game directory. Remember that main
<install_dir>/game1 and the unix <userdir>/game1 have the same id.
The id starts as 1 for the first data1 directory. For every new
directory, the value is the left-shifted version of the previous
one.  Made COM_FindFile() to accept a path_id pointer argument
and storing the id in it if it isn't NULL. Made COM_OpenFile(),
COM_FOpenFile() and all COM_Load* functions to accept a path_id
pointer argument similarly. Adjusted callers accordingly.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@370 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-02 21:45:16 +00:00
Ozkan Sezer
e28dfd7d70 Removed support for -proghack and -path. I think no one misses them.
Made COM_FindFile() static to common.c. Removed COM_CopyFile(), no
callers at the moment.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@369 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-02 21:42:54 +00:00
Ozkan Sezer
0e3e259be3 Made CDAudio_Play() to return success (0) or failure (-1) instead of void.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@368 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-02 18:33:21 +00:00
Ozkan Sezer
3281636a96 fixed rest of the strict-aliasing and uninitialized use warnings.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@367 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-01 14:05:20 +00:00
Ozkan Sezer
9289a26a88 whitespace/formatting tidy-up in quakedef.h.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@366 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-01 12:32:16 +00:00
Ozkan Sezer
1dac8dd81d removed the useless msg_suppress_1 thing.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@365 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-01 12:27:02 +00:00
Ozkan Sezer
301ff71325 removed all remaining references to id386 and UNALIGNED_OK because
the fitz engine doesn't use them at all.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@364 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-01 12:24:28 +00:00
Ozkan Sezer
c7c9f1abb3 changed MAX_OSPATH from 128 to 256 for better compatibility everywhere.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@363 af15c1b1-3010-417e-b628-4374ebc0bcbd
2011-01-01 12:20:15 +00:00
Ozkan Sezer
087196844c W_LoadWadFile: Just use COM_LoadMallocFile(). Some minor cleanup.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@362 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-31 10:47:29 +00:00
Ozkan Sezer
9aad4f2759 common.c, common.h: Added LOADFILE_* defines for use with COM_LoadFile,
for easier reading. Added COM_LoadZoneFile(), COM_LoadMallocFile() and
COM_LoadBufFile() from uhexen2. Added comments after their prototypes
in common.h.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@361 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-31 10:29:38 +00:00
Ozkan Sezer
4ccfbc0ec1 Mod_LoadLighting: free the allocated hunk memory in case of broken or
unsupported lit file.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@360 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-31 09:05:44 +00:00
Ozkan Sezer
b94fea30fb applied a better fix for the infamous "SV_TouchLinks: next != l->next" problem.
Fixes "whiteroom" (http://www.quaddicted.com/reviews/whiteroom.html) completely
locking the engine. fix from the quakeforge sources.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@359 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-31 07:55:43 +00:00
Ozkan Sezer
b322f347be W_LoadWadFile: free wad_base only if it isn't NULL.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@358 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 23:30:42 +00:00
Ozkan Sezer
6d2ae18a82 killed all references to Draw_BeginDisc
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@357 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 23:28:08 +00:00
Ozkan Sezer
f157f088d1 sync several sound-related files with uhexen2 a little: move
DEFAULT_SOUND_PACKET_VOLUME and DEFAULT_SOUND_PACKET_ATTENUATION
from sound.h to protocol.h. remove unused gamealive, soundalive
and splitbuffer members from the dma_t structure. make SNDDMA_Init()
to take a dma_t* parameter and make sn static to snd_dma.c. copy
over LordHavoc's S_StartSound skip calculation fixes from uhexen2.
make many functions/data static to their respective files. many
whitespace/formatting clean-ups.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@356 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 21:10:26 +00:00
Ozkan Sezer
bcef8e85f0 backports from uhexen2 source, preparing for streaming music support:
* snd_mix.c: Increased PAINTBUFFER_SIZE from 512 to 2048.
* snd_mix.c: snd_vol is static now. it is calculated in S_PaintChannels and
  only used in SND_PaintChannelFrom16. all its other uses are removed from
  Snd_WriteLinearBlastStereo16, S_TransferStereo16, S_TransferPaintBuffer.
  The way it was, the sound volume was applied to the whole final contents
  of the paint buffer, but with this new quake2+ way we can add raw samples
  to the paint buffer with its own volume, such as bgmvolume. However, this
  makes the snd_scaletable to be recalculated everytime the sfxvolume is,
  changed, therefore it is adjusted that way to incorporate sfxvolume.
* snd_mix.c: In S_PaintChannels, check against s_rawend and copy from the
  streaming sound source if necessary.
* snd_dma.c: Added old_volume to detect sfxvolume changes. Made S_Update to
  compare it to sfxvolume.value and call SND_InitScaletable() if it changed.
* snd_dma.c: Add new globals s_rawsamples and s_rawend. Reset s_rawend to 0
  in S_ClearBuffer. Add new function S_RawSamples, adapted from quake2 with
  its 8 bit stereo playback fixed.
* snd_dma.c (S_FileExtension): Add new function which returns the given
  sound file's extension including the dot, or NULL.
* q_sound.h: Add new macro MAX_RAW_SAMPLES, defined as 8192. Add externs
  for new globals s_rawsamples and s_rawend. Add prototype for the new
  S_RawSamples and S_FileExtension functions.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@355 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 17:11:28 +00:00
Ozkan Sezer
94767a4e6d added windows version detection back from original sources
with extra bits from uhexen2. we may use the information some
day.. (or not..)


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@354 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 17:00:19 +00:00
Ozkan Sezer
165598051c backports from uHexen2 tree:
* common.c, common.h: Added new structure fshandle_t. Added new procedures
  FS_fread, FS_fseek, FS_ftell, FS_rewind, FS_feof, FS_ferror and FS_fclose.
  The new FS_*() stdio replacements are necessary if one is to perform non-
  sequential reads on files reopened on pak files because bookkeeping about
  file start/end positions is needed. Allocating and filling in the fshandle_t
  structure is the users' responsibility when the file is initially opened.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@353 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 16:50:15 +00:00
Ozkan Sezer
56a7b2e6fd added file_from_pak as a new flobal, made COM_FindFile() to set it properly.
from quakeworld sources.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@352 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 16:35:16 +00:00
Ozkan Sezer
b0550eeacd Minor cd_sdl.c cleanups from uhexen2. Reorganized cdaudio volume
handling. If volume is 0, don't bother advancing and pause.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@351 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 14:55:25 +00:00
Ozkan Sezer
f96a8e4d99 snd_mem.c updates from uhexen2 :
* q_sound.h: add WAV_FORMAT_PCM as a new macro, defined as 1.
* snd_mem.c (S_LoadSound): use WAV_FORMAT_PCM. reject wav files which are
  neither 8 nor 16 bit. reject wav files which have zero samples. report
  the wav file name with the error messages so that they mean something.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@350 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 14:39:12 +00:00
Ozkan Sezer
bf49e25d3f renamed sound.h to q_sound.h
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@349 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-30 14:30:52 +00:00
Ozkan Sezer
ed45746547 gl_vidnt.c, gl_vidsdl.c: Reformatted GL_CheckExtensions for better readability,
removed the old unused CheckArrayExtensions.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@348 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-12-26 22:10:44 +00:00
Ozkan Sezer
1dfaee5d49 * sv_main.c (SV_WriteEntitiesToClient): the protocol check must be against
sv.protocol, not sv_protocol.


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@347 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-11-23 06:48:02 +00:00
Ozkan Sezer
d5a2f16883 SDL_putenv() is problematic in versions <= 1.2.9 so replaced it with plain putenv().
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@346 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-11-12 15:51:04 +00:00
Ozkan Sezer
db353f7a19 menu.c: restore the screen size menu item that was removed in rev. 125.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@345 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-10-29 13:03:04 +00:00
Ozkan Sezer
737158283f cmd.c: Fix the unalias command.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@344 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-10-24 14:15:27 +00:00
Steven
94a597c2f3 more max_edicts stuff (from Sander)
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@343 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-10-24 07:57:46 +00:00
Steven
179a9a8599 Bump max_edicts for compatibility with WarpSpasm
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@342 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-10-23 21:50:16 +00:00
Ozkan Sezer
2de33fba8b * snd_mem.c: Remove prototype for non-existant function S_Alloc().
Remove unused global cache_full_cycle. Comment out unused function
DumpChunks().


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@341 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-10-18 20:39:10 +00:00
Ozkan Sezer
0eaca6e6c2 increased default zone memory size to 384kb
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@340 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-10-11 18:06:11 +00:00
Ozkan Sezer
f5ed1bb6fe cmd.c (Cmd_Alias_f): replace another occasion of Z_Malloc() + strcpy() by Z_Strdup().
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@339 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-10-04 07:40:12 +00:00
Steven
5ee4b2437c Add quake retexturing project patch
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@338 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-09-22 09:03:22 +00:00
Ozkan Sezer
7aa88b97a4 * console.c, sbar.c: fixed a few format string issues.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@337 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-09-20 08:27:20 +00:00
Kristian Duske
4251b8dc1e Added version information to launcher window.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@336 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-09-20 08:11:33 +00:00
Kristian Duske
15f1710bc6 Changed signing scripts to use stock openssl over the macports version. Signing and automatic updates now work on OS X.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@335 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-09-20 06:24:15 +00:00