head 1.5; access; symbols pkgsrc-2021Q4:1.4.0.10 pkgsrc-2021Q4-base:1.4 pkgsrc-2021Q3:1.4.0.8 pkgsrc-2021Q3-base:1.4 pkgsrc-2021Q2:1.4.0.6 pkgsrc-2021Q2-base:1.4 pkgsrc-2021Q1:1.4.0.4 pkgsrc-2021Q1-base:1.4 pkgsrc-2020Q4:1.4.0.2 pkgsrc-2020Q4-base:1.4 pkgsrc-2020Q3:1.3.0.4 pkgsrc-2020Q3-base:1.3 pkgsrc-2020Q2:1.3.0.2 pkgsrc-2020Q2-base:1.3 pkgsrc-2020Q1:1.1.0.6 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.8 pkgsrc-2019Q4-base:1.1 pkgsrc-2019Q3:1.1.0.4 pkgsrc-2019Q3-base:1.1 pkgsrc-2019Q2:1.1.0.2 pkgsrc-2019Q2-base:1.1; locks; strict; comment @# @; 1.5 date 2022.01.17.15.10.15; author micha; state dead; branches; next 1.4; commitid X4ukPTDHr1gZYZoD; 1.4 date 2020.10.21.11.43.31; author micha; state Exp; branches; next 1.3; commitid 3Qic72qqFoAtqLsC; 1.3 date 2020.05.20.16.04.12; author micha; state Exp; branches; next 1.2; commitid slprHu3J2T4gPZ8C; 1.2 date 2020.05.19.11.20.16; author micha; state Exp; branches; next 1.1; commitid PjWZkbpRMPSChQ8C; 1.1 date 2019.06.17.13.53.22; author micha; state Exp; branches; next ; commitid VijnuxhWkiv9YxrB; desc @@ 1.5 log @games/doomlegacy: Update to 1.48.10 FEATURES 1.48.10 • Support for DeepBSP V4 extended nodes (based on crispy doom). Also ZDoom extended nodes (based on code from woof 1.2.0), supporting uncompressed, and compressed nodes (when zlib is present). Allows playing several wads, such as Avactor, and Lost Civilization, that are otherwise playable by DoomLegacy, but use extended nodes for several of their maps. Code provided by Michael Bäuerle (FR_0095). • Added the blockmap generation code provided by Michael Bäuerle (FR_0096). Some of the code is borrowed from crispy doom, altered a bit by Michael Bäuerle to suit DoomLegacy, and then totally mangled by WJ. A blockmap control has been put into the menu. □ Vanilla: Load the blockmap, preserves blockmap tricks. □ Large: On large blockmaps (error prone), Generate the blockmap instead. □ Generate: Always Generate a blockmap. □ Auto: Try to Load the blockmap, upon significant errors then Generate a blockmap. • The hardware sky draw (OpenGL, etc.) now uses the extended textures. The scaling and alignment of the sky in hardware draw has been made consistent with software draw. The sky movement from head turning is greatly reduced. There is still some horizontal wander. The hardware sky still does not change when the player is Invulnerable. The hardware draw sky does not support the necessary multiple colormaps right now. • A dehacked thing translation command line switch, -dehthing. This selects the dehacked translation for thing numbers in the range 138 to 150. This overrides the Automatic translation detection. □ legacy : DoomLegacy untranslated □ boom : translate things according to Boom □ prboom : Boom and Beta things □ ee : Eternity Engine things • A separate supplementary wad is provided that has dog sprites and sounds. Specified before a wad, it provides default dog sprites and sounds. Specified after a wad, it replaces the dog sprites in a wad. • More ports now allow a second mouse. This allows using PC, mousesystems, and PS2 type mice. The ports that have the second mouse support are SDL, WIN32, and X11. • The Linux X11 port got a total rewrite of sfx sound. It previously was only supporting OSS sound, and ESD sound. Can now select between OSS, ALSA, ESD, PulseAudio, and JACK sound devices using the sound menu. For music, can now select between MIDI, TiMidity, FluidSynth, external MIDI, FM_Synth, and AWE32_Synth, using the sound menu. This depends upon which support got compiled into the program, as selected in the make_options file. Many of the options are untested. The last two Synth options depend on older specific sound cards, and will not be included in released binaries. I have not managed to get a FluidSynth installation to work, I don't have an external MIDI device to test with, and JACK wants to take over the entire sound system. BUG FIXES 1.48.10 • Added failure detection for setting drawmode from config file. If the config file drawmode fails then use a window at native bpp. This used to fail ungracefully. • Improved Gcc10 compilation, eliminating most of the nuisance messages. Fixed usages of snprintf, and strncpy. Fixed bug 0671. • The Clang compiler caught some mistakes. The old code probably did work. Fixed bug 0672. • Fixed where the program is stuck in client mode. Once having tried to connect as client, the program would not go back to server mode, not even when starting a netgame as server. A symptom was the player wait count being initialized to 99. Fixed to set server mode. Fixes bug 0677. • Players were kicked during netgame when their blood splat setting was different than the server. As it was desireable to allow players to turn off blood splats independently of the server setting, this was fixed by making the off code call P_Random appropriately. This also fixes a demo consistency error. Fixes bug 0678. • Changed the netgame repair function to correctly report differences in random number settings for the server. The message syntax was only appropriate for the client, displaying reversed server/client values at the server. • Adding extended nodes fixed several bugs. Fixes bug #657, due to DeepBSP V4 extended nodes. Fixes the segfault in Eviternity.wad Map15 and Map32, due to use of uncompressed ZDoom extended nodes. • Fixed dehacked code to read Avactor.wad dehacked lump. Increased the dehacked buffer length to 1028. Made all the string comparisons caseless. Adopted some logic from PrBoom and Eternity regarding exiting sections on a blank line. Detect "//" lines as comments. • Fixed the hardware draw to clip lights at 0..255. Some wad editors put in a default light value of 256. This fixes some wads, like Avactor.wad, which has light values of 256 for some sectors. These would show up as black sectors. Most ports allow the light field to exceed 255, allowing some lighting tricks (that few wads take advantage of). • In Avactor.wad, there are an excessive number of BSP partition lines that miss the subsector. In this case the hardware draw BSP must determine if the subsector poly is to the right, or to the left of the divide line. This must match the BSP partitioning, as those poly will be assigned to the front sector, and back sector. Sometimes it was testing a vertex on the divline, leading to the poly being assigned to the wrong subsector. This fixes a missing floor in Avactor.wad (Map04, sector 1757). • Fixed some bad subsector draws for hardware-draw in Avactor.wad (Map05 sector 1502). These were using the wrong sector to draw the subsector. For the polygons that do not have a linedef as a side, there must be a search of all linedefs to find one that indentifies the sector that this subsector is within. The test needed to be more robust for large maps. • Lost Civilization uses some masked textures on upper textures and single sided walls. This is not entirely valid usage, but it happens. The software render draws black in the missing portions of the texture. With hardware render, OpenGL, this shows sky through the wall. Fixed the hardware render to also draw black in this usage. • Fixed the menu selected extra dogs, to be spawned using the correct type code. This fix was revised three times, as more problems with dehacked dogs arose. Fixes bug 0681. • Fixed the rocket in Valiant.wad. It uses dehacked thing numbers from Beta versions, that are valid in PrBoom, but in Doom Legacy they match thing numbers for Dogs, smoke, and other Legacy specific things. Implemented dehacked detection that translates these to more appropriate DoomLegacy things. This affects dehacked things in Lost Civilization, Avactor, Valiant, and especially antaxyz. • Always include the missing sprite detect, from Debug. Often the dog sprite is missing from the wad. • Made Voodoo card support optional. The base code is no longer tied to support for Glide. • Fix Load savegame menu controls to allow ESCAPE from the Load savegame after changing to another directory. @ text @$NetBSD: patch-src_Makefile,v 1.4 2020/10/21 11:43:31 micha Exp $ Add object file for import of extended nodes and internal blockmap creation. Created upstream feature requests: https://sourceforge.net/p/doomlegacy/feature-requests/95/ https://sourceforge.net/p/doomlegacy/feature-requests/96/ --- src/Makefile.orig 2020-05-11 09:40:36.000000000 +0000 +++ src/Makefile @@@@ -1086,7 +1086,8 @@@@ screen.o v_video.o \ r_draw.o r_plane.o r_segs.o r_sky.o r_things.o r_splats.o \ r_bsp.o r_data.o r_main.o \ z_zone.o \ -p_sight.o p_mobj.o p_enemy.o p_user.o p_inter.o p_pspr.o \ +p_blockmap.o \ +p_sight.o p_mobj.o p_enemy.o p_extnodes.o p_user.o p_inter.o p_pspr.o \ p_lights.o p_ceilng.o p_doors.o p_plats.o p_floor.o p_spec.o \ p_switch.o p_genlin.o p_telept.o p_tick.o p_fab.o p_info.o p_setup.o \ p_map.o p_maputl.o \ @ 1.4 log @games/doomlegacy: Update to 1.48.6 Update pkgsrc patches and remove the ones that were merged upstream. Doom Legacy Changelog 1.48.6 SVN1550 (2020-09-09) FEATURES 1.48.6 * DoomLegacy can read zip archives (Linux Only, enabled by compile option ZIPWAD). When an load file is a zip archive, all loadable files within the archive are loaded. When searching for a known file, zip archives of the same name (but with .zip) are also searched. This uses library libzip. When built with compile option ZIPWAD_OPTIONAL, DoomLegacy detects if the libzip library is present on the user machine. This allows DoomLegacy to run without the feature, when the user does not have libzip. A libzip before version 1.2 does not have a seek function. A compile option will provide our own zip_seek function, so libzip 1.0 can be used. * Recorded Demos now include both the Version and Revision numbers, so revision specific behaviors can be enabled. DoomLegacy 1.48.6 has modified its native demo format, which is revision specific. Older demo formats are still playable. * Recognize and handle DeePsea Tall patches. Enabled with compile option DEEPSEA_TALL_PATCH. Michael Bauerle submitted the orignial patch, derived from crispy doom. BUG FIXES 1.48.6 * DoomLegacy and PrBoom monster infighting does not have missile invulnerability between monsters of the same species. Some other ports (Boom, MBF, Eternity engine) do not have the infight test, so their monsters are always invulnerable to missiles from their own species. Added another item to the infight control to select the behavior. Implements "Full Infight" setting with missile damage (Legacy, PrBoom). Implements other infight settings without missile damage (Boom, MBF, Eternity). Fixes BUG 0664. Added MBF infight logic, thats stops monsters from firing on friends. * Legacy demo would fail to start due to blocking the textcmd that loads the map. The Legacy 1.48.4 demo was recorded with player 0 issuing the map textcmd. Player 0 was not in the game yet, and this was detected as a textcmd from a non-existant player, which got caught by new security code. For textcmd issued before player 0 is in the game, the demo needs to use SERVER_PID. Fixed demo read to redirect player 0 demo textcmd to SERVER_PID. DoomLegacy 1.48 has a single long combined textbuf, containing the textcmd from all players. Within the combined textbuf, there are individual textcmd marked with the player id. Individual textcmd are still limited to 255 chars as in an ordinary textbuf. The DoomLegacy 1.48.6 demo format has been changed to store the entire combined textbuf buffer into the player 0 slot. This is simpler for recording and playback, has the same effect, and allows SERVER_PID textcmd, which the previous demo format did not. The commands to create a player (and other server actions) are now issued by SERVER_PID, where in older demos they were issued by player 0, before player 0 existed. DoomLegacy 1.48 has better protection against malicious network traffic than previous versions, and checking textcmd validity is part of the security protection. This fixes demo playback to work with the security checking. Changed the SERVER_PID to 250 now, for future expansion of players. This fixes bug 0665. * Fixed the moonwalk bug, where monsters would sometimes walk backward. This was due to a bad translation of an everything-in-one-expression to more maintainable code. * Make an oof sound when hit a 2s line, just like when hit a 1s line. Adopted from PrBoom, a Killough enhancement. * Make optional, and disabled, some old development hacks. Option DEVPARM_LOADING: Loaded development wads from a special directory. This used switches -wart, -devgame (even older -shdev, -regdev, -comdev). Option WADFILE_RELOAD: If a filename started with a tilde "~", it was taken as an indication to reload the file on every lump access. This was to enable leaving doom running while changing wad files. Option LOADING_DISK_ICON: Not implemented in any port anyway. * The Full Graphics startup was fragile, requiring constant fixing. Video startup now changes directly to the config modes, which is faster and cleaner. Removed some antiquated code and interactions, adopting an interface that puts the main code in control. * Fixed the violet line, trees, and tall sprites of "Lost civilization" wad. This required being able to save the same texture as both a transparent patch texture, for drawing hanging vines, and as a picture format texture, for drawing tiled walls. This fixes Bug 0663. * The fast drawing of wall textures required them to be a power-of-2 in width, so they could be tiled. To handle the case where it is not a power-of-2 in width, it now uses a slower masked draw similar to that in PrBoom, which also handles a negative offset. This fixes the large tree in "Lost civilization". * Fixed some old code to use POSIX fcntl, which allows it to compile on SunOS. Patches submitted by Michael Bauerle. Fixes Bug 0666. @ text @d1 1 a1 1 $NetBSD$ @ 1.3 log @games/doomlegacy: Add link to upstream ticket in patches @ text @d1 1 a1 1 $NetBSD: patch-src_Makefile,v 1.2 2020/05/19 11:20:16 micha Exp $ d3 3 a5 2 Add object file for import of extended nodes. Upstream feature request: a6 2 Add support to internally create blockmap. d11 1 a11 1 @@@@ -1070,7 +1070,8 @@@@ screen.o v_video.o \ @ 1.2 log @games/doomlegacy: Update to 1.48.4 pkgsrc changes: - Patches for NetBSD support removed (merged upstream) - Define "SOLARIS" for SunOS based operating systems - MESSAGE replaced by file "share/doc/doomlegacy/INSTALL.pkgsrc" - Man page is now installed in section 6 - Patch to disable launcher replaced by startscript (upstream suggested to use an unsupported option for this purpose) - Patch for extended node support added (Feature request #95) Supported formats: DeeP V4, ZDoom uncompressed, ZDoom compressed Without this patch the engine may crash with unsupported node formats - Patch for local blockmap creation added Command line option "-blockmap" added for activation (no automatic mode) The extended node and blockmap patches allow to play modern PWADs like NOVA III and Lost Civilization. Upstream changelog since 1.47.2 is very long, refer to this page: http://doomlegacy.sourceforge.net/docs/whatsnew.html @ text @d1 1 a1 1 $NetBSD$ d8 1 @ 1.1 log @games/doomlegacy: import doomlegacy-1.47.2 This is one of the most popular Doom source ports. It enhances Doom with things like: - Free Look - OpenGL renderer - Heretic support, - TCP/IP networking and much more. Doom Legacy can play Doom, Boom, Marine's Best Friend (MBF), and Heretic maps. In addition to the original games by id Software and Raven Software, there are hundreds of free, fan-made maps available on the Internet. These maps are typically distributed as PWAD files, which are not fully self-contained. For each game you will also need the corresponding IWAD data file, which contains all the graphics, wall and floor textures, sounds, and music for that game. For example, if you want to play Doom II maps, you'll need the IWAD file doom2.wad, or one of the free replacements. Legacy has implemented the fundamental and de-facto-standard Boom extensions, and the Marine's Best Friend (MBF) extensions. Legacy also has implemented among other things 3D floors, swimmable water and other special effects using extended linedef codes, and supports the FraggleScript scripting language. This package contains the SDL build of Doom Legacy. @ text @d3 3 a5 3 Add NetBSD to OS list. Honor environment variables CFLAGS, LDFLAGS and LIBS. Silence warnings about common symbol merging. d7 3 a9 1 --- src/Makefile.orig 2018-07-16 09:17:06.000000000 +0000 d11 10 a20 127 @@@@ -449,13 +449,14 @@@@ endif endif -OS_LIST:=LINUX FREEBSD WIN32 WIN7 WIN98 OS2 DOS MAC +OS_LIST:=LINUX FREEBSD NETBSD WIN32 WIN7 WIN98 OS2 DOS MAC -OPTS:= +# Do not reset OPTS (init to CFLAGS from environment) +OPTS:=$(CFLAGS) ifeq ($(OS), LINUX) LINUX=1 - OPTS:=-DLINUX + OPTS+=-DLINUX #Known Compiler symbols # linux __linux __linux__ # AIX defines: _AIX @@@@ -474,15 +475,23 @@@@ else ifeq ($(OS), FREEBSD) # Has some linking differences from the rest of Linux-like OS. FREEBSD=1 - OPTS:=-DLINUX -DFREEBSD + OPTS+=-DLINUX -DFREEBSD #Known Compiler symbols # __FreeBSD__ __FreeBSD_kernel__ __DragonFly__ # SDL_platform.h for FreeBSD defines: __FREEBSD__ else +ifeq ($(OS), NETBSD) + # Uses statvfs(5). + NETBSD=1 + OPTS+=-DLINUX -DNETBSD + #Known Compiler symbols + # __NetBSD__ + # SDL_platform.h for FreeBSD defines: __NETBSD__ +else ifeq ($(OS), WIN32) WIN32=1 DOSFILE=1 - OPTS:=-DWIN32 + OPTS+=-DWIN32 # if have windows > Win98, and want large memory reports ifdef WIN_LARGE_MEM OPTS+=-DWIN_LARGE_MEM @@@@ -500,7 +509,7 @@@@ ifeq ($(OS), WIN7) # This does NOT YET make a version customized to Win7/8. WIN32=1 DOSFILE=1 - OPTS:=-DWIN32 + OPTS+=-DWIN32 # probably want large memory reports OPTS+=-DWIN_LARGE_MEM #Known Compiler symbols @@@@ -511,12 +520,12 @@@@ ifeq ($(OS), WIN98) # If Win98 differences occur, this category can isolate them. WIN32=1 DOSFILE=1 - OPTS:=-DWIN32 + OPTS+=-DWIN32 else ifeq ($(OS), OS2) OS2=1 DOSFILE=1 - OPTS:=-D__OS2__ + OPTS+=-D__OS2__ #Known Compiler symbols # __OS2__ else @@@@ -545,15 +554,19 @@@@ endif endif endif endif +endif export DOSFILE # all OPTINC need to have -I. because of how includes are written # however the order of -I may be important, so it is left to each SMIF. OPTINC:= -LIBS:= -LDFLAGS:= +# Do not reset LIBS +#LIBS:= +# Do not reset LDFLAGS +#LDFLAGS:= INSTALL_SUPPL:= +# Note: External CFLAGS are now part of OPTS and appended later CFLAGS:= # Machine architecture. ifdef ARCH @@@@ -597,14 +610,14 @@@@ ifeq ($(SMIF), SDL) ifndef MAC # default is Linux, for all unix SDL EXENAME:=doomlegacy - LDFLAGS=-L/usr/X11R6/lib - LIBS:=-lGL -lGLU -lm + LDFLAGS +=-L/usr/X11R6/lib + LIBS +=-lGL -lGLU -lm # -L/usr/X11R6/lib is needed by Linux 2.4 and others that still have # the GLU libraries in an X11 directory. # -lm is needed for pow, powf, and other MATH1 functions. else EXENAME:=doomlegacy - LDFLAGS=-framework OpenGL + LDFLAGS +=-framework OpenGL endif SDL_CONFIG:=1 @@@@ -1010,12 +1023,12 @@@@ CFLAGS+=-ffast-math -fno-strict-aliasing LCFLAGS:=$(CFLAGS) CFLAGS+=$(OPTS) $(OPTINC) -ifdef MAC - # MAC linker does not accept these flags. -else - # Flags to the linker. - LDFLAGS+=-Xlinker --warn-common -endif +#ifdef MAC +# # MAC linker does not accept these flags. +#else +# # Flags to the linker. +# # LDFLAGS+=-Xlinker --warn-common +#endif SNDSERV_EXTRAFLAGS:= ifdef HAVE_ESD @