Commit graph

3381 commits

Author SHA1 Message Date
Simon Howard
38eb80a7dc pcsound: Remove Win9x TODO().
We're not going to pretend to support Win9x any more so this isn't
going to get done. Part of #834.
2017-01-02 14:56:59 +01:00
Simon Howard
002179525d README.Music: Remove reference to Win9x.
With Chocolate Doom 3.x we won't pretend to support Win9x any more
since it won't run anyway. Part of #834.
2017-01-02 14:54:57 +01:00
Simon Howard
6f48bab893 Merge remote-tracking branch 'origin/master' into sdl2-branch 2017-01-02 14:42:49 +01:00
Simon Howard
939cbfeb11 Bump version number to 2.3.0, update NEWS. 2016-12-29 17:54:42 +01:00
Simon Howard
30f853b658 textscreen: Fix input of Unicode characters.
For non-ASCII characters we map into a higher range to avoid conflict
with special keys. Restore this behavior.
2016-12-21 15:11:22 +00:00
Simon Howard
d3cb02d810 textscreen: Use SDL API for getting key names.
SDL2 has an API for getting a string description of a key. Change the
textscreen API which does the same to use it. This has the added bonus
that the setup tool will now adjust to show key descriptions that match
the system keyboard layout.
2016-12-18 01:41:21 -05:00
Simon Howard
4e3ab57537 textscreen: Decode UTF8 of character from event.
It's not enough to simply return the first byte from the buffer, since
it may be a non-ASCII character. Decode the whole first character using
the UTF8 library.
2016-12-18 01:13:36 -05:00
Simon Howard
afe0c97234 textscreen: Stop tracking modifier state.
SDL2 has an API to read the current modifier state, so we can just
use this and eliminate the code for tracking state based on key
presses.
2016-12-17 21:21:23 -05:00
Simon Howard
c1ff9bfd5b textscreen: Add input mode switching.
This replaces the old control over whether key mapping is enabled. We
have three different modes used in different situations: "normal" (used
when navigating windows, etc.); "raw" (used when configuring a key and
we want something derived from the scancode) and "text" (used when typing
something into an input box widget).
2016-12-17 21:14:13 -05:00
Simon Howard
5d3c0e0a82 Merge pull request #820 from nukeykt/opl-miscfix
OPL driver bug fixes
2016-12-14 09:33:15 -08:00
Simon Howard
a70231731a Merge pull request #829 from nukeykt/hereticfix
hexen: fix random value order in function arguments to match disassembly
2016-12-09 10:21:50 -05:00
nukeykt
cd260be97f raven: move P_Random calls to variables 2016-12-09 17:01:30 +09:00
nukeykt
d2ce4d3eeb hexen: fix random value order in function arguments to match disassembly 2016-12-09 04:04:20 +09:00
Simon Howard
72e92d3bd0 Merge pull request #828 from nukeykt/hereticfix
heretic: fix random value order in function arguments to match disassembly
2016-12-06 12:43:14 -05:00
nukeykt
dcfb67dadb heretic: fix random value order in function arguments to match disassembly
Fixes #827
2016-12-07 00:54:23 +09:00
Simon Howard
37d108a5ab PHILOSOPHY: Minor formatting fixes 2016-11-26 21:35:08 -05:00
nukeykt
8c8016300e opl: OPL driver bug fixes 2016-11-25 15:38:10 +09:00
Simon Howard
d9fa2c3a16 PHILOSOPHY: format command-line args as code. 2016-11-25 00:18:34 -05:00
Simon Howard
7a140df7c0 hexen: Convert demo code to use new demo API.
The vvHeretic bits are non-vanilla extensions and we should be able
to disable these entirely either when recording or playing back.
2016-11-25 00:12:31 -05:00
Simon Howard
e913d920dc heretic: Convert vvHeretic code to new demo API.
The vvHeretic bits are non-vanilla extensions and we should be able
to disable these entirely either when recording or playing back.
2016-11-25 00:03:29 -05:00
Simon Howard
45e57dd270 Add API for handling non-vanilla demo extensions.
As per the recent change to PHILOSOPHY, we now support non-vanilla
demo format extensions provided that warnings are given and there is
an option to disable them (#817). Add an API for handling such
extensions in a consistent way across games.
2016-11-24 21:33:03 -05:00
Simon Howard
76dd7ccbc3 PHILOSOPHY: Add exception for demo format extensions.
This follows some recent discussions around the project's philosophy
and which fan-made hacks are supported (specifically the Doom
v1.91 / -longtics feature). It's worth providing some explicit
guidance as to why this feature is supported, while other executable
hacks are not.

Some of the features of this new clause are not yet implemented (the
-strictdemos flag and the warnings when playing non-vanilla demos).

This is part of #817. Thanks to @AXDOOMER for challenging some of the
perceived inconsistencies in the project philosophy and inspiring me
to explain this in a more rational/structured way.
2016-11-24 20:40:57 -05:00
Simon Howard
4f5b2b8a2f hexen: Forbid demo extensions in WAD files.
Save and restore of these extension bits is a convenience for demo
playback purposes and not intended as an editing feature. If a demo
with such bits set is found inside a WAD file, we ignore them as
Vanilla Hexen would do.

Part of #817.
2016-11-24 20:20:28 -05:00
Simon Howard
1ae0fe6984 NEWS: Add some missing items. 2016-11-24 20:17:37 -05:00
Simon Howard
23f5b06c78 NEWS: Reformat to consistent past tense. 2016-11-24 19:44:19 -05:00
Simon Howard
2c55acf403 Change email address for feedback to dev list.
This address is intended for bug reports. It's better if this is sent
to the dev team's mailing list rather than to me directly.
2016-11-24 19:27:12 -05:00
Simon Howard
297e10ae2b PHILOSOPHY: Clarify "vanilla" section.
We are now working to emulate older (pre-v1.9) Doom versions, so it
is worth clarifying the goals of the project slightly.

Also add Chex Quest to the list of games.
2016-11-23 00:50:09 -05:00
Simon Howard
89fc8d8991 heretic: Forbid vvHeretic options in WAD files.
As with the Doom v1.91 format, parsing of vvHeretic extension bits is
a convenience for demo playback purposes and not intended as an
editing feature. If a demo with such bits set is found inside a WAD
file, we ignore them as Vanilla Heretic would do.

Part of #817.
2016-11-23 00:38:01 -05:00
Simon Howard
e92f889b71 doom: Forbid longtics demos in WAD files.
As per reasoning on #817, we only allow longtics demos as a feature for
users to cleanly record vanilla gameplay without affecting the turning
resolution. When playing back demos, we detect the different header byte
(111) that indicates a longtics demo file and proceed accordingly.

However, we should only support such demos when they are played manually
on the command line by the user. Longtics demo playback support should
not be a feature that WAD authors can use to break from Vanilla
behavior. If such a demo is encountered inside a WAD, treat it as
Vanilla would treat it and exit accordingly.
2016-11-23 00:26:49 -05:00
Simon Howard
999f56818b doom: Load IWAD DEHs after setting gamevariant.
Certain IWADs (Freedoom and Hacx) contain DEHACKED lumps that must be
loaded to be played properly. This is conditional on the value of
gamevariant, but this variable was only being initialized for these
IWADs after the code to load the DEHACKED lumps. Reorder to correct.
2016-11-22 23:45:14 -05:00
Simon Howard
805c671891 Merge remote-tracking branch 'origin/master' into sdl2-branch 2016-11-22 23:06:25 -05:00
Fabian Greffrath
533e3726f0 Try multiple capitalizations when searching for WADs.
Add M_FileCaseExists() that checks if a file exists by trying
multiple different capitalization formats, and change WAD
search code to use this when locating WAD files.
2016-11-22 17:53:48 -05:00
Fabian Greffrath
8f95671864 Merge pull request #818 from CapnClever/hexen-copyfile
hexen/sv_save.c: revert 9e71dbb, fix fwrite check
2016-11-22 14:31:30 +01:00
Thomas A. Birkel
01038bc020 hexen/sv_save.c: revert 9e71dbb, fix fwrite check
The condition and message under fwrite() was a near-copy of the
corresponding fread() case: it now checks and displays correctly.
2016-11-22 07:03:42 -05:00
Fabian Greffrath
9e71dbbd21 hexen/sv_save.c: fix variable 'write_count' set but not used 2016-11-22 11:19:07 +01:00
Fabian Greffrath
40b2fed7e5 hexen/p_acs.c: fix redundant redeclaration of CheckACSPresent() 2016-11-22 11:17:02 +01:00
Simon Howard
152e5c01d2 Merge pull request #814 from CapnClever/hexen-mousecontrols
hexen/g_game.c: Include miscellaneous mouse functionality
2016-11-20 21:53:49 -05:00
Simon Howard
02fd356266 Merge pull request #812 from CapnClever/raven-demoplayback-args
g_game.c: Don't overwrite Heretic/Hexen timedemo arguments
2016-11-20 21:50:12 -05:00
Thomas A. Birkel
84a2e9f0f9 hexen/g_game.c: Include miscellaneous mouse functionality
Strafe left, strafe right, and move backward mouse commands work.
'Double click acts as "use"' option works, where previously it was
always enabled.

Fix for #813
2016-11-20 13:22:43 -05:00
Thomas A. Birkel
089ab59dff g_game.c: Don't overwrite Heretic/Hexen timedemo arguments
Same as commit 621a8d8 but changing G_TimeDemo().

Additional fix for #803
2016-11-20 11:13:50 -05:00
Simon Howard
dc4eb0ba8d Merge pull request #805 from AXDOOMER/master
Fix number of joystick buttons so Chocolate-Setup doesn't crash
2016-11-13 00:36:02 -05:00
Alexandre-Xavier Labonté-Lamoureux
8c282de8f9 Fix number of joystick buttons so Chocolate-Setup doesn't crash
This fixes #799. Made the size of 'static int *all_joystick_buttons[]'
explicit so the compiler will know if there is something wrong.
2016-11-12 23:08:19 -05:00
Simon Howard
226a67f8bf Merge pull request #804 from CapnClever/raven-demoplayback-args
g_game.c: Don't overwrite Heretic/Hexen demo playback arguments
2016-11-11 10:10:54 -05:00
Thomas A. Birkel
621a8d8362 g_game.c: Don't overwrite Heretic/Hexen demo playback arguments
-nomonsters and -respawn need to be read for vanilla demo playback: this
fix allows either command line or special bits to enable them.

Fix for #803
2016-11-10 23:44:06 -05:00
Simon Howard
406a15b840 Merge pull request #797 from CapnClever/setup-testmouse-thresholdzero
v_video.c: Enhance V_DrawMouseSpeedBox in non-acceleration cases
2016-11-10 18:15:23 -05:00
Thomas A. Birkel
61fbb8bcf7 v_video.c: Enhance V_DrawMouseSpeedBox in non-acceleration cases
Display speed box when acceleration settings are inconsequential.
Additionally, show as direct mouse input and adjust if input exceeds box
length by decreasing resolution.

Fix for #791
2016-11-10 03:21:58 -05:00
Simon Howard
dc2d1d6229 Merge pull request #800 from fabiangreffrath/issue794
p_saveg.c: initialize result in saveg_read8()
2016-11-08 11:59:35 -05:00
Fabian Greffrath
b0c0fb1500 p_saveg.c: initialize result in saveg_read8()
When Choco has reaches the end of a savegame file, further attempts to
read from this file with fread() will fail and the result variable
will not get set set. Since the result variable does not get initialized
either, saveg_read8() will return some "random" value.

However, as it turns out, the uninitlaized value of the result
variable isn't that random at all, but most often 0. Unfortunately, 0
has a specific meaning in the context of p_saveg.c, as it is the value
of tc_ceiling in enum specials_e. As a result, the tclass variable in
P_UnArchiveSpecials() will get interpreted as tc_ceiling and lead to
the construction of ceiling thinkers until Choco runs out of zone
memory.

What this little change does is initialize the result variable
returned by saveg_read8() to some arbitrary value that has no further
meaning in any of the enums in p_save.c. This will lead to Choco
erroring out with an "unknown tclass" message, which is consistent
with Vanilla. The actual tclass value may be different, but since it
is expected to be somehow "random" this isn't something I plan to
emulate any further at this point.

Fixes #794, #658, #85.
2016-11-08 08:43:44 +01:00
Simon Howard
48e19c69bf Merge pull request #790 from CapnClever/raven-compat-setup
Compatibility options in Heretic and Hexen
2016-11-01 15:27:21 -04:00
Thomas A. Birkel
1e15f89231 Update branch with requested changes
Whitespace error; string-compare handling; rewording of NEWS description;
removed useless variables.
2016-10-31 13:29:15 -04:00