Age | Commit message (Collapse) | Author |
|
gametic and singletics are defined in d_loop.c, but there were still
some duplicate definitions of these variables left over from before
the game code was factored out.
This fixed #561 (thanks edward-san).
|
|
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.
|
|
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.
|
|
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.
|
|
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!
|
|
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).
|
|
... 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.
|
|
into hexndemo
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
Use snprintf() in place of sprintf(). This is part of fixing #371.
|
|
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.
|
|
Eliminate use of strcpy, strcat, strncpy, and use the new safe
alternatives.
|
|
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.
|
|
Subversion-branch: /branches/v2-branch
Subversion-revision: 2746
|
|
appropriate values.
Subversion-branch: /branches/v2-branch
Subversion-revision: 2708
|
|
startup.
Subversion-branch: /branches/v2-branch
Subversion-revision: 2699
|
|
Subversion-branch: /branches/v2-branch
Subversion-revision: 2611
|
|
the spinal loading screen.
Subversion-branch: /branches/v2-branch
Subversion-revision: 2585
|
|
instances of this within the code (thanks Edward-san).
Subversion-branch: /branches/v2-branch
Subversion-revision: 2468
|
|
Subversion-branch: /branches/v2-branch
Subversion-revision: 2455
|
|
Subversion-branch: /branches/v2-branch
Subversion-revision: 2439
|
|
the splash screen before network startup.
Subversion-branch: /branches/v2-branch
Subversion-revision: 2435
|
|
Subversion-branch: /branches/v2-branch
Subversion-revision: 2423
|
|
Subversion-branch: /branches/v2-branch
Subversion-revision: 2398
|
|
configdir/hexndata/, to be in line with Doom / Heretic behavior.
Subversion-branch: /branches/raven-branch
Subversion-revision: 2362
|
|
executables load response files, including the setup tool.
Subversion-branch: /branches/raven-branch
Subversion-revision: 2276
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1987
|
|
games.
Subversion-branch: /branches/raven-branch
Subversion-revision: 1910
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1601
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1588
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1587
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1585
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1453
|
|
compiles now work on Windows.
Subversion-branch: /branches/raven-branch
Subversion-revision: 1452
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1423
|
|
mission types are valid.
Subversion-branch: /branches/raven-branch
Subversion-revision: 1405
|
|
code. Split out I_Endoom to separate i_endoom.c file.
Subversion-branch: /branches/raven-branch
Subversion-revision: 1384
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1380
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1375
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1374
|
|
Heretic and Hexen use WAD path lookup.
Subversion-branch: /branches/raven-branch
Subversion-revision: 1368
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1359
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1357
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1350
|