summaryrefslogtreecommitdiff
path: root/src/hexen/h2_main.c
AgeCommit message (Collapse)Author
2015-06-08hexen: Replace v1.0 warning with an error.Simon Howard
The warning message would have been missed by anyone not running from the console (ie. a good portion of all Windows and Mac users), so replace the warning message with an error instead (I_Error calls produce a GUI message popup). Allow this behavior to be overridden by using a special command line flag.
2015-05-05hexen: Don't show v1.0 message for demo version.Simon Howard
The Hexen demo IWAD is "detected" as v1.0 because it's missing the same lumps that the commercial v1.0 IWAD is missing, but we don't want to show the warning message if we're playing the demo; it is supported.
2015-05-05hexen: Show a startup warning if using v1.0 IWAD.Simon Howard
The Hexen v1.0 IWAD file differs too much from the v1.1 IWAD file and can't be reasonably supported by us. Show a warning message on startup if the user appears to be trying to play using the v1.0 IWAD file. This fixes #537.
2015-05-05warnings: fix "address of array .. will always evaluate to 'true'"Fabian Greffrath
Remove a redundant check from an ORer condition. Unlike in Doom, in Hexen the player->message element is not a pointer, but a char[80] array. Its address will never be NULL and thus will never get interpreted as "false". Hence, the check for "!player->message" will never be "true" and a check for "|| false)" is a no-op. Thanks to @edward-san for finding this with clang-3.6!
2015-05-01Perform case-insensitive check for .lmp extension.Simon Howard
When using the -playdemo parameter, we support a convenience feature where the .lmp extension is not appended if it is already part of the filename. This makes tab completion much nicer. But if the .lmp file has a filename that is in all-caps (.LMP) we were still appending the extension because the check was case sensitive. Change the check to be case insensitive. This fixes #501 (thanks Ioan Chera).
2015-03-30Turn maxplayers into a global variableFabian Greffrath
... and decrease its value from MAXPLAYERS (i.e. 8) to 4 if (gamemode == shareware). It seems that it was hard-coded to this value until some time between the releases of the Demo and the Full version. Arrays are still declared with their full width of 8, though, they are just not iterated over the whole range anymore. This fixes playback of the IWAD demos.
2015-03-26Merge branch 'master' of https://github.com/chocolate-doom/chocolate-doom ↵Fabian Greffrath
into hexndemo
2015-02-20Refactor config file API.Simon Howard
The config file API previously relied on binding config variables using M_BindVariable() which took a void pointer. It occurred to me that if used on a boolean variable, this would be erroneous, but the void pointer would make it impossible to tell. Split this into separate M_Bind{Foo}Variable() functions based on type, which allows for proper type checking on the pointers that are passed. Vaguely related to #509.
2015-02-13Identify the "shareware" version early on.Fabian Greffrath
Following the concept of Chocolate Doom, D_IdentifyVersion and D_SetGameDescription are introduced and called right after loading the IWAD. The first one checks for the characteristics of the "shareware" IWAD and sets gamemode accordingly, whereas the latter sets the gamedescription string according to gamemode. This string is then used in I_PrintStartupBanner() and I_SetWindowTitle(). So, the "shareware" version identifies itself properly now. I consider support for the 4 Level Hexen Demo pretty complete by now.
2015-02-02currently, no separate startup banner for the demo version :(Fabian Greffrath
2014-10-01hexen: Add workaround for Mac Hexen IWAD.Simon Howard
The Mac version of hexen.wad is slightly different from the normal DOS one: it contains a bunch of extra lumps but more importantly, the GENMIDI and DMXGUS lumps are missing. This means that Chocolate Hexen would crash on startup with the default settings (as OPL is the default music output). To work around this problem and allow the game to start up properly, detect if the required lump is missing and adjust the music settings, printing a helpful message to stdout to inform the user.
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-19Exit with error on startup if using the wrong IWAD.Simon Howard
Having multiple binaries can cause some confusion - some users try to run chocolate-doom with hexen.wad, thinking it is supported. Add a startup check that makes sure the user is not trying to start the game using the wrong IWAD file for the binary being run. This fixes #382.
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-30hexen: Eliminate use of sprintf().Simon Howard
Use snprintf() in place of sprintf(). This is part of 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-29heretic: Eliminate use of unsafe string functions.Simon Howard
Eliminate use of strcpy, strcat, strncpy, and use the new safe alternatives.
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.
2013-11-06Show package string on Hexen startup, to match other games.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2746
2013-10-15Remove gamemission variables for Heretic and Hexen and hard-code to theSimon Howard
appropriate values. Subversion-branch: /branches/v2-branch Subversion-revision: 2708
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-08-10Add documentation comments for Heretic and Hexen command line arguments.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2611
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
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-22Fix Heretic and Hexen multiplayer chat.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2455
2011-10-17Rearrange Hexen startup to fix crash when starting a deathmatch game.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2439
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-14Convert Hexen to use common main loop code. Working multiplayer!Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2423
2011-09-24Add -testcontrols to Hexen.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2398
2011-09-05Place Hexen savegames in configdir/savegames/hexen.wad/ rather thanSimon Howard
configdir/hexndata/, to be in line with Doom / Heretic behavior. Subversion-branch: /branches/raven-branch Subversion-revision: 2362
2011-02-24Load response files from main() before calling D_DoomMain, so that allSimon Howard
executables load response files, including the setup tool. Subversion-branch: /branches/raven-branch Subversion-revision: 2276
2010-08-31Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1987
2010-04-18Split out WAD command line parsing code into common code shared betweenSimon Howard
games. Subversion-branch: /branches/raven-branch Subversion-revision: 1910
2009-06-13Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1601
2009-06-10Remove setbuf() call from Heretic/Hexen code.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1588
2009-06-10Make Hexen weapon and map keys reconfigurable.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1587
2009-06-09Make Hexen menu keys reconfigurable.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1585
2009-03-09Remove WATCOMC usage (thanks Quasar)Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1453
2009-03-08Fix -cdrom command line parameter to work with Heretic and Hexen;Simon Howard
compiles now work on Windows. Subversion-branch: /branches/raven-branch Subversion-revision: 1452
2008-12-20Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1423
2008-12-03Centralise the list of IWAD files and use bitmasks to select whichSimon Howard
mission types are valid. Subversion-branch: /branches/raven-branch Subversion-revision: 1405
2008-11-21Move setup/ into src/ and merge with main codebase. Remove duplicatedSimon Howard
code. Split out I_Endoom to separate i_endoom.c file. Subversion-branch: /branches/raven-branch Subversion-revision: 1384
2008-11-09Recreate Hexen graphical startup in SDL.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1380
2008-11-02Fix up raven-branch copyright notices.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1375
2008-11-02Remove Hexen TIMEBOMB code.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1374
2008-10-30Factor out Heretic and Hexen versions of m_misc.c. Make -file forSimon Howard
Heretic and Hexen use WAD path lookup. Subversion-branch: /branches/raven-branch Subversion-revision: 1368
2008-10-13Set window title for chocolate-hexen.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1359
2008-10-13Perform necessary shutdown tasks on exit of Hexen.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1357
2008-10-10Set SavePath correctly and create the directory if necessary.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1350
2008-10-09Add mouse grab callback for Hexen.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1347