summaryrefslogtreecommitdiff
path: root/src/doom/g_game.c
AgeCommit message (Collapse)Author
2015-08-24doom: Avoid overflow for spawn angle calculation.Simon Howard
Integer overflow is undefined and this breaks when using Clang with -O2 optimization turned on. This fixes #572 (thanks to David Majnemer for insight into fixing this bug).
2015-05-12doom: the sky changes in final2 map11->12 and map20->21 transitions.Mike Swanson
The id Anthology version of doom2.exe with Final Doom fixed the "Sky never changes in Doom II" bug. The original Doom source release included the repaired code, but it was re-bugged in an early Chocolate Doom version to emulate the behavior of the better-known versions of vanilla. Thanks to @fabiangreffrath for demonstrating how he (more-generically) fixed the bug in Crispy Doom. Closes #533
2015-01-19Add extra checks to weapon cycling loops.Simon Howard
Ensure that the loops to find the next weapon always terminate - even if there are somehow no weapons equipped. Also, only ever do weapon cycling when in the GS_LEVEL gamestate. This fixes #503 - thanks to Fabian and raithe on Doomworld.
2014-10-08Allow -warp to episodes beyond episode 4.Simon Howard
Vanilla Doom's -warp parameter allows warping to episodes beyond E4. This didn't work in Chocolate Doom because of some changes made to the G_InitNew code before the source release. Actual decompilation of that function in Vanilla Doom shows that the episode/map sanity checking is not present: http://pastie.org/8140437 There is at least one known WAD (2002ado) that has a map on E5M1 that is playable in Vanilla, and this stops that map from being possible to play. Comment out that code because it obviously doesn't deserve to be there. This fixes #426. Thanks plumsinus.
2014-05-05Clean up file headers.Simon Howard
This change rewrites and simplifies the copyright headers at the top of all source files: * Remove "Emacs style mode select" line; this line was included in the headers for the originally released source files and appears to be to set the file type for old versions of Emacs. I'm not sure entirely why it was required but I don't think it is any more. * Remove "You should have received a copy of..." text from copyright header. This refers to the old 59 Temple Place address where the FSF headquarters used to be located and is no longer correct. Rather than change to the new address, just remove the paragraph as it is superfluous anyway. This fixes #311. * Remove ---- separator lines so that the file headers are barer and more simplified.
2014-04-19joystick: Add an axis to allow strafing.Simon Howard
Modern gamepads typically have 2-3 D-pads and joysticks. This means that it's desirable to be able to use one joystick for turning and another for strafing. Add another axis in addition to the current X and y axes that performs strafe movement.
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-29doom: Eliminate use of unsafe string functions.Simon Howard
Eliminate use of strcpy, strcat, strncpy, and use the new safe alternatives.
2014-03-24Fix various Clang compiler warnings.Simon Howard
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-17Allow for PNG screenshots.Fabian Greffrath
2013-11-03Merge from trunk.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2742
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-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-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-13Split out common main loop code into separate file, d_loop.c.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2413
2011-09-24Rework mouse speed box drawing code and move to common code, so that itSimon Howard
can be added to other games. Subversion-branch: /branches/v2-branch Subversion-revision: 2395
2011-09-20Add dedicated pack_chex and pack_hacx values for the Chex Quest and HacxSimon Howard
IWADs. Subversion-branch: /branches/v2-branch Subversion-revision: 2390
2011-06-13Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 2347
2011-02-12Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 2258
2010-12-10Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 2214
2010-09-26Restructure player quit code to take place on the first tic after theSimon Howard
player quit, to avoid possible desyncs. Further refactoring to split game-specific code from generic code. Subversion-branch: /branches/raven-branch Subversion-revision: 2141
2010-08-31Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1987
2010-05-03Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1931
2010-02-05Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1845
2009-06-12Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1596
2009-06-09Move menu/map/weapon key variables into common code, and bind variables.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1581
2009-06-09Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1579
2008-09-28Move novert support into common i_video.c code.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1302
2008-09-20Remove bits from heretic/m_misc.c that are in common; changeSimon Howard
V_ScreenShot to take a format string describing the format of the filename for the screen shot file. Subversion-branch: /branches/raven-branch Subversion-revision: 1255
2008-09-20Replace all use of screens[0] by I_VideoBuffer.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1249
2008-09-20Remove screen parameter from V_DrawPatch functions; update code to useSimon Howard
V_UseBuffer where necessary. Subversion-branch: /branches/raven-branch Subversion-revision: 1248
2008-09-17Remove definitions from heretic/doomdef.h that are in common code.Simon Howard
Replace "shareware" variable with gamemode, as in doom code. Merge angle definitions into common code. Subversion-branch: /branches/raven-branch Subversion-revision: 1240
2008-09-10Split out variables for controls into common m_controls.c.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1219
2008-09-06Remove dependencies of i_video.c on doom/ code.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1205
2008-09-06Remove includes of doomdef.h where possible, move generic parts into topSimon Howard
level. Subversion-branch: /branches/raven-branch Subversion-revision: 1204
2008-09-06Move doom-specific files to a separate directory.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1201