Make demo loop handling of DEMO4 case depend on the executable version
being emulated: the Vanilla versions did not have any conditional behavior based on gamemode/gamemission. This has the side effect of causing the game to exit with an error when playing with Final Doom, but this is Vanilla behavior. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 2230
This commit is contained in:
parent
fe0eca1d09
commit
fc09dbdf67
3 changed files with 34 additions and 1 deletions
4
NEWS
4
NEWS
|
|
@ -52,6 +52,10 @@
|
|||
messages are actually errors (thanks Proteh).
|
||||
* The setup tool now passes through all command line arguments
|
||||
when launching the game (thanks AlexXav).
|
||||
* Demo loop behavior (ie. whether to play DEMO4) now depends on
|
||||
the version being emulated. When playing Final Doom the game
|
||||
will exit unexpectedly as it tries to play the fourth demo -
|
||||
this is Vanilla behaviour (thanks AlexXav).
|
||||
|
||||
Bugs fixed:
|
||||
* A workaround has been a bug in old versions of SDL_mixer
|
||||
|
|
|
|||
23
NOT-BUGS
23
NOT-BUGS
|
|
@ -31,6 +31,29 @@ upgrade.
|
|||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
== Game exits in demo loop when playing Final Doom ==
|
||||
|
||||
When playing with the Final Doom IWAD files (tnt.wad, plutonia.wad),
|
||||
if you leave the game at the title screen to play through the demo
|
||||
loop, it will eventually exit with the following error message:
|
||||
|
||||
W_GetNumForName: demo4 not found!
|
||||
|
||||
This is the same behavior as the Vanilla executables that were
|
||||
bundled with Final Doom. When Ultimate Doom was developed, a fourth
|
||||
demo was added to the demo loop, and this change was retained in the
|
||||
Final Doom version of the executable. However, the Final Doom IWADs
|
||||
do not include a fourth demo, so the game crashes.
|
||||
|
||||
One way to work around this problem is to make the game emulate the
|
||||
original (pre-Ultimate Doom) v1.9 executable. To do this, add the
|
||||
command line argument "-gameversion 1.9" when running the game.
|
||||
However, be aware this version does have some subtle differences that
|
||||
will affect the playback of Final Doom demos (lost soul bouncing,
|
||||
teleport behavior).
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
== Game exits when accessing the options menu ==
|
||||
|
||||
The game may exit with the message "Bad V_DrawPatch" when accessing
|
||||
|
|
|
|||
|
|
@ -494,7 +494,13 @@ void D_DoAdvanceDemo (void)
|
|||
paused = false;
|
||||
gameaction = ga_nothing;
|
||||
|
||||
if (gamemode == retail && gameversion != exe_chex)
|
||||
// The Ultimate Doom executable changed the demo sequence to add
|
||||
// a DEMO4 demo. Final Doom was based on Ultimate, so also
|
||||
// includes this change; however, the Final Doom IWADs do not
|
||||
// include a DEMO4 lump, so the game bombs out with an error
|
||||
// when it reaches this point in the demo sequence.
|
||||
|
||||
if (gameversion == exe_ultimate || gameversion == exe_final)
|
||||
demosequence = (demosequence+1)%7;
|
||||
else
|
||||
demosequence = (demosequence+1)%6;
|
||||
|
|
|
|||
Loading…
Reference in a new issue