Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
Allow comments to be attached to the end of configuration lines, as
well as being specified on a line on their own.
|
|
The Wii remote is not a HID device, meaning it cannot be supported in
a proper cross-platform way. However, it can be supported for
individual platforms. Add a fingerprint and configuration for a Wii
remote under OS X using the WJoy tool.
|
|
When setting a joystick button binding to -1 to disable it, set it
directly; do not go through to the physical button mapping layer.
Also add a quick note to encourage users to send in details of their
gamepads.
|
|
Detect certain gamepads by name and automatically configure defaults
for buttons and axes, to minimize setup time. Supported so far are
the PS3 controller and AIRFLO gamepad.
|
|
setup: fix usejoystick/use_joystick typo in the previous commit
|
|
|
|
If the user has just successfully calibrated the joystick, then
turn on use_joystick as a convenience feature.
|
|
The previous change to add the poll method to the music module
interface introduced a crash, as the OPL music struct does not
define a poll method.
|
|
The code is already in place for this but there was no control in
the setup tool to configure it.
|
|
Re-word some of the documentation for the joystick button config
variables, to avoid confusion between physical/virtual joystick
buttons.
|
|
Refactor how joystick buttons are reassigned. Define a fixed
mapping from joyb* variables to virtual buttons, and change the
button assignments at the virtual->physical mapping level.
|
|
The solution to solving #386 is to add a layer of indirection: the
game code can only support up to ~20 joystick buttons, but this
doesn't matter as long as we never want to bind more than 20 buttons
to actions anyway. Redefine the game's notion of buttons to be based
on "virtual" joystick buttons, and map these buttons to physical
(SDL) buttons based on configuration file variables.
|
|
When showing error message via Zenity, show the expanded (sprintf'ed)
error, not the format string. Refactor the sprintf part to be part of
the common code to avoid duplication.
|
|
When a "button" is actually used as part of a button axis, don't
include presses on the button as part of the buttons field posted
in joystick events. This avoids situations where button 1 or 2
are part of a D-pad, breaking menu navigation (related to #389).
|
|
The code to handle the joystick jump button variable was not
implemented. Check the jump button on the joystick as well as the
keyboard and mouse button equivalents when deciding whether to set
the jump bit.
|
|
When invoking Zenity to display an error message, some characters can
have special meanings to the shell. Escape these properly so that the
error message is always shown correctly.
This fixes #355.
|
|
|
|
Add native notification box for errors on linux.
|
|
In some cases a joystick axis can be "stuck" and have a large
uncentered value. These must be detected and ignored, otherwise the
axis can be chosen during calibration instead of the user's actual
desired axis.
|
|
Errors will now be shown as a message box, instead of
only a console message. This fixes the user not seeing
error messages, like if the IWAD is not provided.
- Add zenity notification box call on I_Error
|