Age | Commit message (Collapse) | Author |
|
It was pointed out to me recently that vldoor_e has enum values
named 'open' and 'close'. These can potentially conflict with POSIX
standard functions that have the same names, if the right header
files are included.
This doesn't currently cause any problems. However, to avoid any
possibility of a conflict occurring if a different compiler is used,
add a vld_ prefix to all the enum values, to namespace them.
|
|
If using one of the Freedoom IWADs, detect it by checking for the
FREEDOOM lump, and then load its DEHACKED lump to apply the
cosmetic string changes that it includes. In case we're using an old
version of one of the Freedoom IWADs, don't bomb out with an error
while parsing the DEHACKED lump.
|
|
Magic comments allow some of the Vanilla limits to be overridden, but
they should only apply to the files in which they were defined. Reset
the flag variables that control these overrides before every new
Dehacked file is parsed, so that a flag set in one file cannot spill
over into other files that are parsed subsequently.
|
|
The Dehacked code must pass a special flag to DEH_ReadLine() when
parsing the [STRINGS] section, so that lines can be escaped onto
following lines. However, this flag value was calculated incorrectly.
The BEX [STRINGS] section cannot be looked up at the start of
parsing a Dehacked file, because GetSectionByName() will return
NULL for it (extended strings are not available yet). Instead,
simplify the logic to look at the name of the current section and
check that way.
|
|
Boom added an alternate method for overriding Dehacked strings, using
the [STRINGS] section with special symbolic names for each of the
strings that can possibly be replaced.
This format is used in the Freedoom DEHACKED lump (deliberately, so
that the Freedoom WAD does not include the original text to be
replaced). As we want to have support for the Freedoom IWADs with
Chocolate Doom, add support for the BEX [STRINGS] section, but
protected by a magic comment that must be included in Dehacked/BEX
files that use it.
Thanks to Fabian Greffrath for implementing this.
|
|
|
|
- restructure DEH_ReadLine() to avoid use of "goto"
- bex_string_t type name ends in "_t"
- declare constant table as "static const"
- add magic comment *allow-extended-strings* and corresponding
variable deh_allow_extended_strings
- fix logical error when no [STRINGS] section is registered to which
corrent_section could be compared
|
|
|
|
Update setup.vcproj
|
|
Need to include the missing files in the setup project: txt_joyaxis.h and txt_joyaxis.c.
Without this, setup won't compile, complain about unresolved external symbol.
|
|
The Buffalo Classic USB Gamepad is a USB gamepad that resembles the
classic SNES controller. Thansk to Fabian Greffrath for sending in
the report.
|
|
Thanks to "Absolute Zero" for the report with the gamepad settings.
|
|
|
|
The XBOX One controller apparently appears identical to the Xbox
360 controller. Thanks Brad Harding.
|
|
Somebody broke this by using sizeof() on a malloc'd char *
|
|
|
|
|
|
|
|
apparently, this has been forgotten before, so DEH_PointerInit()
was not executed which meant that *some* DEHACKED patches
would not work when loaded from within a PWAD but would work
when extracted from that WAD and loaded via -deh.
fixes #421
|
|
Thanks valgrind!
|
|
This fixes conflicting array sizes for the variable "spechit" as
reported in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748393.
Fixes #414
|
|
Ignore some more autogenerated files
|
|
Add desktop entries for all the games, make the Setup launch generic
|
|
|
|
The same icon is used for all four games, even though it's designed to
resemble Doom's logo and looks a bit silly with all of them lined up.
Also the Setup Desktop Entry now only launches chocolate-setup, which
then prompts for the game to configure. This avoids cluttering up a
DE's Preferences menu, control panel, or however it will be displayed.
|
|
Max optimization settings for release that were derived from Eternity
are now effective for all 4 games. In addition, generate map files for
debugging purposes.
|
|
The Xbox360 controller is handled differently by different
operating systems, and the layout is different on Linux to Windows.
Detect the Linux layout and set some appropriate defaults.
|
|
Reduce the width slightly (the previous size was excessively wide) and
tweak "none" string to match the joystick button widget.
|
|
Only init the joystick subsystem when we need to call the joystick
API functions, and quit the subsystem when we are finished. This avoids
conflicts with the joystick widgets that quit the subsystem while the
main code relies on it running.
This fixes a bug where trying to calibrate the joystick twice would
fail on the second attempt.
|
|
Move code for configuring joystick axes into a separate widget, and
add axis widgets to the configuration window for all possible movement.
|
|
Add a section that discusses the different ways in which Chocolate
Doom aims for Vanilla compatibility (expanded version of the brief
description in README). Perform some minor rewording of the existing
text and add a reference to the philosophy file in README.
|
|
Add reference to PHILOSOPHY file.
|
|
A negative time division file indicates the MIDI file uses SMPTE time
rather than the normal time system. This is not supported yet, but for
the time being, return a sensible time division value that doesn't
cause the sound to stutter and the game to become unplayable.
This fixes #352, although the affected MIDIs do not yet play properly.
|
|
This is a summary of changes since v2.0.0.
|
|
Fix build with MSVC2008
|
|
|
|
|
|
Fix compilation error with Clang
|
|
hexen: Fix desync of demo1 on some platforms/compilers
|
|
|
|
Multi-track MIDI files are played back using separate callback chains
for each track, and this introduces the possibility of one track
becoming out of sync with the others. This was noticeable in WADs
that use multi-track MIDIs, such as Alien Vendetta. Increase the
timing resolution to microsecond precision to fix this.
|
|
When the tempo is changed, the times on all active timers must be
adjusted to match the new timing values. Add an API to do this and
invoke it when a tempo change meta event is read.
|
|
Official release of Hexen's source code relies on unspecified behavior the in order of function's argument evaluation, see ISO-IEC 9899-1999, [6.5.2.2.10]
P_Random() are called in different parameters of P_SpawnMobj() within A_LeafSpawn()
|
|
No more 'control may reach end of non-void function' error
|
|
For substitute music files we want to be able to specify relative
paths in a platform-independent way using Unix path separators.
Replace Unix-style / separators in the path that was read with the
path separator for the native system.
|
|
'strife' is a valid game for chocolate-setup too!
|
|
|
|
The MIDI format includes a special meta event to set the tempo of
playback, and some WADs depend on this - notably the music in Alien
Vendetta. Move the variables controlling tempo to the global scope
(they are not per-track as I previously thought) and set when the
tempo events are encountered.
This is some progress towards resolving #334, but that bug is not
yet completely fixed, because the tempo change does not
retroactively apply to OPL timers that have already been set.
|
|
Some MIDI files, such as the music tracks in AV.wad, use a second
"key on" event with a volume of zero to mean "key off". Handle this
case correctly.
|
|
Recognise the Xbox360 controller and Logitech Dual Action controllers
and set defaults as appropriate. Thanks to Brad Harding for the
information about these controllers.
|