summaryrefslogtreecommitdiff
path: root/src/doom
AgeCommit message (Collapse)Author
2014-04-10doom: Allow warp up to MAP40 to match Vanilla.Simon Howard
Vanilla Doom allows warp with the IDCLEV cheat up to MAP40, though it normally crashes. Match this behavior and set MAP40 as the maximum rather than MAP34. This fixes #181 (thanks Alexandre Xavier).
2014-04-01Replace all snprintf() calls with M_snprintf().Simon Howard
The Windows API has an _snprintf function that is not the same as Unix's snprintf(): if the string is truncated then no trailing NUL character is appended. This makes the function unsafe. Define a replacement/wrapper called M_snprintf that works the same but always appends a trailing NUL, for safety on Windows and other OSes that behave like this. Do the same thing for vsnprintf(), and update HACKING to list snprintf/vsnprintf as forbidden functions. This fixes #375; thanks to Quasar for pointing out the different behavior of these functions.
2014-03-30doom: Eliminate use of sprintf().Simon Howard
Use snprintf() or other functions in place of sprintf(). This is part of fixing #371.
2014-03-30Eliminate some uses of sprintf() from common code.Simon Howard
As part of this, add DIR_SEPARATOR_S as a string version of the DIR_SEPARATOR macro. Change M_TempFile() to return a string allocated on the C heap rather than the zone heap. This is a first step towards fixing #371.
2014-03-30hexen: Make -playdemo cope with paths.Simon Howard
Vanilla Hexen makes you specify the demo name to play by giving the plain lump name, eg. heretic -playdemo mydemo to load mydemo.lmp. It doesn't work if you specify the extension or the full file path. As a convenience and to match the behavior of Chocolate Doom, allow paths and extensions. Also rework the code for other games so that they're slightly more consistent. This fixes #301.
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-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-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-24Fix various Clang compiler warnings.Simon Howard
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-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-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-18Add a dedicated key for taking screenshots.Fabian Greffrath
2014-03-17Allow for PNG screenshots.Fabian Greffrath
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-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-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).
2014-01-19doom: Add support for Freedoom IWAD names.Simon Howard
Freedoom has new IWAD names. Support these as fallbacks if no other IWAD file can be found, but prefer FreeDM as it has Vanilla- compatible levels. Show a warning on startup if running using the main Freedoom IWADs.
2013-11-17Change names of Doom II MAP31/MAP32 when using the BFG edition (thanksSimon Howard
Fabian Greffrath). Subversion-branch: /branches/v2-branch Subversion-revision: 2747
2013-11-03Merge from trunk.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2742
2013-10-28Fix Vanilla behavior of shift key when entering savegame names in theSimon Howard
menu (thanks Alexandre Xavier). Subversion-branch: /branches/v2-branch Subversion-revision: 2723
2013-10-12Tweak mouse grab behavior: don't arbitrarily warp the mouse at gameSimon Howard
startup. Subversion-branch: /branches/v2-branch Subversion-revision: 2699
2013-09-04Don't show ENDOOM screen when aborting netgame startup (thanks AlexandreSimon Howard
Xavier). Subversion-branch: /branches/v2-branch Subversion-revision: 2635
2013-09-04Extend "emulation" of menu pause key behavior to caps/num/scroll lockSimon Howard
keys, which cause the same behavior. Subversion-branch: /branches/v2-branch Subversion-revision: 2632
2013-08-17Fix Chocolate Doom/Strife to emulate weird Vanilla behavior when theSimon Howard
pause key is pressed in a menu with a scroll-bar (thanks Alexandre Xavier). Subversion-branch: /branches/v2-branch Subversion-revision: 2620
2013-04-05Use two-stage startup for Hexen, and add netgame startup callback forSimon Howard
the spinal loading screen. Subversion-branch: /branches/v2-branch Subversion-revision: 2585
2013-04-05Split Doom netgame startup into two stages.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2583
2013-04-05Split D_InitNetGame() into two separate functions for startup.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2582
2012-12-24Fix compiler warnings by removing variables that are set but not used.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2555
2012-12-24Merge from trunk.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2553
2012-12-23Fix Doom episode 4 par time selection.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2550
2012-10-28Merge from trunk.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2537
2011-11-26Add "statistics captured" message on exit when the using -statdumpSimon Howard
parameter, to match statdump.exe (thanks Alexandre Xavier). Subversion-branch: /branches/v2-branch Subversion-revision: 2479
2011-10-29Enable gcc warning to detect redundant declarations, and clean upSimon Howard
instances of this within the code (thanks Edward-san). Subversion-branch: /branches/v2-branch Subversion-revision: 2468
2011-10-22Merge from trunk.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2458
2011-10-22Fix percentage output to match that of statdump.exe.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2452
2011-10-21Add -statdump command line parameter, to generate the same output asSimon Howard
statdump.exe does with Vanilla Doom. Subversion-branch: /branches/v2-branch Subversion-revision: 2450
2011-10-20Confirm quit game when the window close button is clicked a second time.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2449
2011-10-19Send MAXPLAYERS value for game on connect to server. Make server adaptSimon Howard
its player limit to match. Update GUI code to adjust waiting screen list size appropriately. Subversion-branch: /branches/v2-branch Subversion-revision: 2442
2011-10-19Change MAXPLAYERS to NET_MAXPLAYERS and add back individual MAXPLAYERSSimon Howard
defines for each game. Refactor "waiting screen" data code. Subversion-branch: /branches/v2-branch Subversion-revision: 2441
2011-10-17Always show the Strife intro splash screen in windowed mode, and finishSimon Howard
the splash screen before network startup. Subversion-branch: /branches/v2-branch Subversion-revision: 2435
2011-10-17Rework net_connect_data_t structure to include WAD and DehackedSimon Howard
checksums, plus the is_freedoom flag. Subversion-branch: /branches/v2-branch Subversion-revision: 2434