This seems like UI crackrock and the disk icon code is in a good
enough state that we're already turning it on by default. In keeping
with chocolate philosophy, if people really care they can manually
turn it off by editing the config file.
Since this is game-specific there is no real reason for this to be
defined in the common video code. This also fixes the show_diskicon
variable which was broken by recent changes.
Strife has no STCDROM lump; it always uses STDISK. Change the
V_EnableLoadingDisk() function to take the lump name as an argument,
as the lump to use for the loading disk is really game-specific.
Also fix the location where the Strife disk icon is shown on screen;
the vertical position wasn't quite right.
Vanilla {Doom,Strife} show a black background to the disk icons if the
icons are transparent, a side effect of how the disk icon code works
(the commented-out version can be found in Heretic's i_ibm.c). To be
consistent with how the vanilla code works, don't use V_DrawPatch to
draw the loading icon every time, but rather draw it to a buffer on
startup and blit the whole disk region to the screen.
Directions were backwards for these offsets; the STDISK lump has a -1
y offset, so we were grabbing and restoring the background from the
wrong location in the video buffer.
Only draw the disk icon just before doing the SDL blit to the screen,
and restore the background to I_VideoBuffer immediately after doing
so. This avoids the possibility of the disk remaining in the video
buffer and fixes#668.
Also centralize most loading disk code inside v_diskicon.c.
With the combination of freedoom1.wad and -gameversion 1.666 through
1.9, Chocolate Doom would fail to pass the checks against loading
PWADs on the shareware version of Doom.
This has been enforcing an optional part of the FHS that proves
problematic on distributions that do not include /usr/games or
/usr/local/games on the $PATH by default. On the packagers’ side, the
Arch, Fedora, and OpenBSD packages (at least) have been patching the
Makefile.in files in order to get it to install to the bin directory
instead. On the users’ side, this comes as a rather nasty surprise
when neither the terminal nor GUI will launch the games when they have
been installed to a location not in the $PATH.
If desired by packagers or end-users, the old behavior can still be
effectively implemented by using `./configure --bindir=/usr/games`
Chocolate Doom supports different variants that are available of the
IWADs, e.g. for Doom 2 it supports the Vanilla IWAD, the one shipped
with the Doom 3: BFG Edition as well as Freedoom: Phase 2 and FreeDM.
Each of these IWAD variants requires some specific special-casing and
the newly introduced global "gamevariant" variable can be used to keep
track of all of this.
Once the app has been launched at least once, double-clicking upon
an .lmp file should start the Chocolate Doom launcher and add
appropriate "-playdemo" command-line arguments.
Closes: #677.
This reverts commit 59aad53bbd.
Closes#665.
The original commit enhanced the behaviour of Doom to make some of the
pseudo-random behaviour less predictable. Whilst this is a nice feature, it's a
feature that vanilla lacks: replaying a demo would result in those behaviours
(wipe, pitched sound effects) being identical each time. This is not the case
with the above feature.
It could actually be quite useful to ensure that such behaviours are
reproducible to fine-tune our emulation of e.g. Doom/Heretic/Hexen pitch
shifting. Perhaps in the future our testing will be enhanced to compare
multimedia output of Vanilla versus chocolate for demo playback, in which case
we would also need to have reproducibility here.
Doomworld is now available over https: so there's no reason to link
to unencrypted http: URLs (which are just redirect anyway). Also the
idgames interface URLs have changed.