summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-03-29strife: Eliminate use of unsafe string functions.Simon Howard
Eliminate use of strcpy, strcat, strncpy, and use the new safe alternatives.
2014-03-29misc: Make arguments to string functions const.Simon Howard
Where a pointer is to a buffer that does not need to be mutable for the operation of the function, use const char * instead. This avoids some type errors where constant string are passed.
2014-03-29heretic: Eliminate use of unsafe string functions.Simon Howard
Eliminate use of strcpy, strcat, strncpy, and use the new safe alternatives.
2014-03-29heretic: Eliminate use of unsafe string functions.Simon Howard
Eliminate use of strcpy, strcat, strncpy, and use the new safe alternatives.
2014-03-29doom: Eliminate use of unsafe string functions.Simon Howard
Eliminate use of strcpy, strcat, strncpy, and use the new safe alternatives.
2014-03-29Fix erroneous call to M_StringJoinSimon Howard
2014-03-29misc: Add M_StringConcat.Simon Howard
Just as M_StringCopy behaves the same as strlcpy(), M_StringConcat behaves the same as strlcat(). Use this in one location.
2014-03-29misc: Add string utility functions.Simon Howard
It's more readable to write "M_StringEndsWith(..." than doing a bunch of pointer arithmetic, and this is a common pattern. Also add M_StringStartsWith, M_StringJoin and M_StringCopy. The latter is a safe alternative for strcpy() that works the same as OpenBSD's strlcpy(). Use these functions in a few places where it makes sense.
2014-03-28video: Fix calculation of -devparm ticker.Simon Howard
The released linuxdoom source had the devparm ticker dots at a spacing of two pixels rather than four pixels (as used in Vanilla Doom). In commit 4a31ec8fcee20e.. I changed this back to four pixel spacing, but forgot to multiply the number of tics to adjust as appropriate. Fix this so that the dots are calculated just like Vanilla Doom is. Thanks to _bruce_ for pointing this out on Doomworld, and to Alexandre-Xavier for questioning my reasoning when I wasn't convinced that the current behavior was wrong. This fixes #360.
2014-03-27hexen: Allow abort on startup by pressing escape.Simon Howard
Vanilla Hexen allows the game startup to be aborted by pressing the escape key. This can also be used to abort netgame startup. Add back this functionality by polling the SDL event loop; this feature only works if the graphical startup is enabled, but that's good enough.
2014-03-27Fix .rc files so version info shows on Windows 7.Simon Howard
Thanks to Brad Harding for the bug report. This fixes #319.
2014-03-27video: Fix crash when running fullscreen with -2.Simon Howard
Remove special logic for setting a scale factor (2x, 3x, etc.) when running fullscreen instead of windowed. This fixes a crash due to the fact that I_GraphicsCheckCommandLine() is called before SDL's video subsystem is initialized. This makes -2 identical to -geometry 640x480, which is arguably a better (more easily comprehensible) behavior. Thanks to Fabian Greffrath for reporting the bug. This fixes #338.
2014-03-27setup: Make default sound volumes match Vanilla.Simon Howard
Doom, Heretic, Hexen and Strife have different default SFX and music volumes. Make sure the setup tool sets the appropriate default when creating a new configuration file. Thanks to Alexandre-Xavier for reporting this and providing the correct defaults. This fixes #347.
2014-03-27strife: Fix default music volume to match Vanilla.Simon Howard
Strife's default music volume is 13 as opposed to Doom's value of 8. This was apparently not changed during the development of Chocolate Strife. Thanks to Alexandre-Xavier for noticing this and providing the correct value (bug #347).
2014-03-27Define a keyboard scan code for PrintScreen.Simon Howard
There is no real scan code for the PrintScreen key under DOS, but it is convenient to be able to bind it as a screenshot key. Define a "fake" scancode (126) to represent PrintScreen so that it can be represented as a key binding in configuration files. Also add some comments/notes to the scantokey[] lookup table. This fixes #369.
2014-03-26Fix typos in config API usageFabian Greffrath
2014-03-25Set GUS patch path variable using D_SetVariable.Simon Howard
commit 42faefce1fd03 added code to set the GUS patch path automatically when the BFG Edition is installed, but this caused problems because gusconf.c is not included as part of the build for the setup tool. Use D_SetVariable() instead which accomplishes the same thing without a hard dependency.
2014-03-25config: Add API to get/set config variables.Simon Howard
It is useful to be able to set variables through an API provided by the config module; this means that it is possible for one module to set config variables of another in a more loosely-coupled way.
2014-03-24Fix various Clang compiler warnings.Simon Howard
2014-03-23Autodetect GUS patches installed with BFG Edition.Simon Howard
Doom 3: BFG Edition installs copies of the GUS instrument files (patches) that can be used for the GUS pseudo-emulation. Detect these on startup if no GUS patch path has been configured and configure gus_patch_path config variable automatically. This fixes #333.
2014-03-23Rearrange order of SDL sound startup.Simon Howard
Initialize low-level sound startup (calls to I_InitSound) separately from the high-level sound startup (S_Init). In particular, make sure that SDL sound is initialized before the textscreen multiplayer waiting screen is shown. This is an attempt to fix a bug with sound in multiplayer games on Windows; calling SDL_QuitSubSystem(SDL_INIT_VIDEO) (on closedown of the textscreen library) causes subsequent attempts to initialize audio to fail. Big thanks go to Alexandre-Xavier (AXDOOMER) for working out a fix for this bug and James Haley (Quasar) for giving some technical background about the lack of separation between SDL subsystems. This (hopefully) fixes #270.
2014-03-23Set default for key_menu_screenshot to 0.Simon Howard
In #364 I recommended -1 as the default to avoid taking screenshots in some situations where a key event is posted for key 0. It turns out that wasn't such a great idea, as -1 is not parsed properly by the config parser, and is shown as ??-1 in the setup tool. Default to zero instead, and add guards to prevent screenshots being taken by mistake. Thanks to Alexandre-Xavier for pointing this out.
2014-03-23heretic/hexen: Fix -timedemo.Simon Howard
The -timedemo flag is broken in Vanilla Heretic/Hexen, as not all fields are read from the demo headers. Fix it, as there's no utility in having it nonfunctional and plenty of utility in having it functional. This fixes #300.
2014-03-23doom: Add initial support for versions < v1.9.Simon Howard
Add -gameversion options for v1.666, v1.7, v1.8. Set demo and savegame headers appropriately depending on version. Also add an enum entry for Doom v1.2 but no code support for it yet.
2014-03-23doom: Emulate 'no fog on spawn west' Vanilla bug.Simon Howard
A deathmatch player spawning facing directly west does not see the normal teleport fog (or hear it). This is because of an angle that should be unsigned but is actually signed. Import PrBoom's code to emulate this bug. This fixes #186.
2014-03-23pcsound: Extend frequency table to 128 entries.Simon Howard
Extend from 96 to the full 128 entries found in the frequency table in the Vanilla .exes. This was helpfully posted by Gez to the Doom wiki: http://doomwiki.org/wiki/Talk:PC_speaker_sound_effects Change from the current scheme of storing frequency values to using the timer divisor values used by the Vanilla .exes; divide into the PC timer frequency to calculate the frequencies to play. Thanks to Gez for dumping the full list of frequencies; this fixes #336.
2014-03-23setup: Add missing snd_maxslicetime_ms variable.Simon Howard
Preserve the snd_maxslicetime_ms variable when loading/saving configs in the setup tool.
2014-03-23music: Add config var for external music program.Simon Howard
Mix_SetMusicCMD() allows a program to be specified to configure an external program to be invoked for music playback. Add a config variable (snd_musiccmd) to allow this to be set from a configuration file. Thanks to Holering for his comments on Doomworld about how to do this.
2014-03-23sound: Add config variable to control buffer size.Simon Howard
Add snd_maxslicetime_ms variable to control the size of the output sound buffer, and reduce the default from 70ms to 28ms to match Doom's 35fps timer. Thanks to Holering for reporting this (fixes #345).
2014-03-22heretic/hexen: Fix automap background scrolling.Simon Howard
There was a bug where it was possible to keep moving the background when the boundaries of the map were reached. This is because the code to move the background was done in calls to AM_Drawer(), which is fundamentally a bad idea. Some old commented-out code shows that this was previously done in AM_Drawer (same location that scrolls the map itself), but it was moved. Move it back. Thanks to Chris Fielder for the bug report; this fixes #321.
2014-03-20Merge pull request #365 from fabiangreffrath/bfg_warningSimon Howard
Print a warning if the user is attempting to record or playback a demo o...
2014-03-20Remove superfluous dividers.Fabian Greffrath
2014-03-20Print a warning if the user is attempting to record or playback a demo or ↵Fabian Greffrath
connect to a network game using one of the BFG Edition IWADs.
2014-03-19Initialize key_menu_screenshot with -1.Fabian Greffrath
2014-03-18Add a dedicated key for taking screenshots.Fabian Greffrath
2014-03-17Add PNG screenshots to advanced video options menu.Fabian Greffrath
2014-03-17Remove 0 summand.Fabian Greffrath
2014-03-17Add some strictly unnecessary curly braces.Fabian Greffrath
2014-03-17Allow for PNG screenshots.Fabian Greffrath
2014-03-16video: Center mouse when grabbing cursor.Simon Howard
When releasing mouse grab (activating menu etc.) we move the mouse cursor to a non-distracting location at the bottom-right of the screen. But this was causing abrupt jerks in mouse movement when re-grabbing the mouse again. Center the mouse when turning on grab so that this doesn't happen. This fixes #283.
2014-03-16hexen: Increase maximum level number to MAP60.Simon Howard
Hexen: Deathkings of the Dark Citadel uses levels up to MAP60, not MAP40 as used in hexen.wad. Bump up the limit for Hexen to MAP60 so that it is possible to play multiplayer games with hexdd.wad loaded. Thanks to Rhiyo for the bug report. This fixes #312.
2014-03-16doom: Fix behavior of M_EPI4 menu item.Simon Howard
Ultimate Doom's doom.exe will crash when run with an IWAD that doesn't contain M_EPI4 (like the stock v1.9 IWAD). Thanks to Alexandre Xavier for the bug report (fixes #344).
2014-03-16heretic/hexen: Fix pause key remapping.Simon Howard
Heretic and Hexen had the pause key hard-coded to KEY_PAUSE when they should actually use key_pause so that they can be remapped by the user. Thanks to Fabian Greffrath for the bug report (fixes #337).
2014-03-16doom: Add -dehlump parameter to load DEHACKED lumps.Simon Howard
Lots of otherwise Vanilla-compatible WADs contain DEHACKED lumps. Allow these to be loaded by adding a -dehlump command line parameter. Thanks to Fabian Greffrath for the suggestion (fixes #349).
2014-03-16heretic: Fix plat_t read when loading savegames.Simon Howard
The fix-up of the thinker function was (unnecessarily) guarded by an if() condition that meant it was not being reset properly on load. This caused moving platforms to be not restored properly when loading savegames. Fixes #343. Thanks to romeroyakovlev for the bug report.
2014-03-13Allow to rebind artifact keys in Hexen.Fabian Greffrath
2014-03-02doom: Reverse detail graphic for BFG edition.Simon Howard
Use "ON" to mean "high detail", "OFF" for "low detail". The logic was backwards.
2014-02-24Keep (bfgedition) as part of the check for TITLEPIC.Fabian Greffrath
2014-02-24More robust checks for BFG Edition.Fabian Greffrath
1) Move the check for (bfgedition) right behind loading the IWAD, i.e. before any PWADs are loaded that could probably provide a DMENUPIC lump. 2) Instead of checking for a missing TITLEPIC lump (which is only true for the doom2.wad shipped with the BFG Edition) check for the presence of DMENUPIC (which is exclusive to both classic IWADs shipped with the BFG Edition). The M_GDHIGH lumps, however, are incompatibly modified in *both* IWADs. 3) Move the check for the missing TITLEPIC lump to the place where it becomes actually crucial, i.e. D_DoAdvanceDemo() and make it independent of the (bfgedition) check. So, PWADs still have a chance to provide their own TITLEPIC lump.
2014-02-20Add BFG edition workaround for options menu crash.Simon Howard
The BFG edition IWADs have their M_GDHIGH lumps changed to say "Fullscreen:" instead of just "high". This breaks the options menu which assumes a graphic that is not as wide. In the same spirit as the title screen workaround, add a workaround for this as well: use the message "on/off" graphics instead when we are running using a BFG edition IWAD. This fixes #341 (thanks Fabian Greffrath).