pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/games/doomlegacy
Module Name: pkgsrc
Committed By: micha
Date: Mon May 19 12:21:27 UTC 2025
Modified Files:
pkgsrc/games/doomlegacy: DESCR Makefile distinfo
Log Message:
games/doomlegacy: Update to 1.48.18
- Modify DESCR to make it clear that this package contains SDL1 build
1.48.18 SVN1749 (2025-04-23)
FEATURES 1.48.18
* Added the slow_react menu control that adds some random delay to an idle
monster, before it notices the player. This is adjustable from 0 to 15,
adding about 0.3 sec to 1.25 sec per step (random), which at setting 3 is 1
to 3.75 seconds. Some monsters will have the larger delays as if they were
not paying attention, or half asleep, which is more realistic and adds
variation.
Settings above 6 can be helpful in slaughter maps, if you are not good at
that or are not the slaughter type. You will now get a chance to shoot
first. After having used this, it will be difficult to return to all
monsters having an unnatural instantaneous reaction time.
* Recognition of MPEGIII (mp3) header format used by phobiata.wad music lumps
o_ddtbl2.lmp and o_doom2.lmp. The other mp3 music lumps are using the ID3
header format already recognized.
* Enhanced boom, prboom, MBF, MBF21, Heretic, Legacy, EternityEngine
detection, and deh assumed standards like dehextra. Also detect legacy and
boom special linedefs and sectors. These are reported as each wad is
loaded.
* Added some state corruption detection routines to discover what the
dehacked in those wads are doing. It has become apparant that some wads are
dependent upon vagaries of the DSDA port, and they incompletely setup the
dehacked sprites and states. Because of this we must take measures to
detect and protect against those wad errors. This will need fixing later,
as they need tuning.
* State action functions are no longer kept as ptrs, they are now enum codes.
This prevents wad errors from crashing DoomLegacy anymore. Each action
function executor can now identify when it has an action function code that
it cannot execute.
Similarily the thinker functions are now also enum, which makes them much
more corruption resistant. A lookup table supplies the actual functions.
Sfx info tables also now use index to other sfx, no longer using ptrs.
There were only a few that were not NULL, mostly chaingun.
* Detection of special lumps by prefix names, activating specified dehacked
enables. This detects if "SPxx", DSFRExxx" exist, to activate DEHEXTRA.
* Implemented DEHEXTRA, at least the parts we could, and were not implemented
already. DEHEXTRA has an enable because it conflicts with existing
DoomLegacy table entries.
DEHEXTRA added STATES, SPRITES, and SOUNDS, the number of each, can be
tuned (for the compile) in the doomdef file. The amount can be set lower to
control program bloat as Doomlegacy already has free space.
The "dropped item" keyword is recognized as DEHEXTRA, and its effects are
implemented. When used with zeroed states, it could drop a player zombie
upon every monster death, so that is blocked in code.
DEHEXTRA sprites [145 to 244] are given the DEHEXTRA names "SPxx" (where xx
= 00 to 99) for loading the sprite lumps.
DEHEXTRA sfx [500 to 699] are given the DEHEXTRA names DSFRExxx (where xxx
= 000 to 199).
Made the "Touched special thing" error of DSDA into a SoftError, as just
killing DoomLegacy was not useful.
* Extra sfx are otherwise given "SFXxxx" names for loading the lumps, where
xxx is the sfx id used in dehacked.
* Remap of sprite, state, and sfx. The remap knows where the free space is in
the DoomLegacy tables, and can adjust for the gamemode and options. It can
account for known DoomLegacy extensions of sprites, states, and sfx, and
can also adapt to recognize those of some other ports.
These have command line options that control or disable them.
Levels are 0 to 5, where 0 = off.
The default is 5, which is auto.
-remap 4 : set all remap to level 4
-state_remap 4 : state remap to level 4
-sprite_remap 4 : sprite remap to level 4
-sfx_remap 4 : sfx remap to level 4
Level 0: Disable remap.
Level 1: All of the predef table, Legacy extensions, and a 128 beyond
that, are fixed mapping. Entries beyond that are remapped.
This supports older wads.
Level 2: All of the predef table, Legacy extensions, and a few spare
are fixed mapping. Entries beyond that are remapped.
This is a reasonable setting for debugging dehacked lumps.
Level 3: All of the predef table for the gamemode, plus some extra,
are fixed mapping. Entries beyond that are remapped.
Level 4: Only the minimum vanilla tables and extensions are fixed
mapping. Everything else is remapped to available free space.
* Command line switch for state zero defaulting.
-state_zero 2
0 : Zero state default, nextstate=0 (destroy).
For compatibility with older wads, and older Legacy.
1 : DSDA state default, sprite=TNT1, nextstate=self (freeze).
2 : automatic detection.
* Command line switch for dehacked control.
-dsda : map for DSDA
This is for wads that were developed on DSDA. It enables closer
dehacked compatibility with DSDA, and some special values unique to DSDA.
However, DoomLegacy is not DSDA and does not implement everything
as DSDA does.
This enables detection of DSDA sprites 138 to 143. Some of these, like
DOGS, already exist in DoomLegacy and have code support, while others are,
for now, just remapped somewhere safe. Support for such is evolving. They
do get the DSDA sprite names.
* Action functions in the dehacked lump can be set in a Thing declaration
using the syntax:
action = functionname
This is a DoomLegacy extension to dehacked.
BUG FIXES 1.48.18
* Fixed Format 1.49 savegames that read as CORRUPTED. It writes a proper 1.49
savegame now. It can also read the previous 1.49 corrupted savegames.
* Fixed the x11 port to not require the esd library, when it should not. The
x11 sndserver was requiring the esd library be present, even though it was
compiled with the esd library to be detected and dynamically loaded. The
sndserver Makefile was using an obsolete makefile signalling, which was
corrected, so it now links only the correct libraries.
* The zip file read was failing for some files, due to the zip_seek failing
on perfectly good files. Fixed it so when zip_seek fails, it reopens the
file and uses a different fallback seek operation.
* Fixed the SDL2 keypress input so that console, chat, and savegame names,
only get one character per keypress. The savegame description was getting
doubled characters. The Chat line, and console were also affected.
The SDL2 library is delivering separate events for keydown, and the
translated version of that key. It delivers two key down events for each
keypress. Each keypress handler has to choose one of the events and ignore
the other, which is complicated for handlers that must handle both the text
and key commands too. After entering chat text mode, sometime later SDL2
would deliver a translated char for the command key that started text mode,
thus entering that into the chat. To block that required something ugly.
A control (cv_sdl2_textchar) was added that selects the source delivered as
translated text input. This is mostly useful for testing your particular
computer. With it off, the translated SDL2 events are blocked, and the
console, chat, and savegame text is a copy of the untranslated key input.
With this set off, Shifted keys, like underscore, are unavailable.
* The melee monster attack was not damaging the player. This was affected by
the MBF21 changes, and this part required some additional setup. Added the
initialization of the MBF21 melee_range field, and the other MBF21 info
fields.
* Fixed some MBF21 dehacked interpretations. Added MBF21 weapon flags. Fixed
MBF21 Args not being recognized. Recognize "MBF21 Bits" in things too.
Fixed some other MBF21 dehacked syntax. Ignore comments in things.
Initialize some alt speed items (MT_BRUISERSHOT, MT_HEADSHOT, MT_TROOPSHOT)
that MBF21 has moved into MBF21 special fields.
* Improved the dehacked handling of odd syntax and badly formed dehacked
lines. It now handles blank lines and EOL more correctly, without
extraneous error messages.
* The dehacked "Bits" lines now will clear any existing bits correctly, and
will do it only once.
* Fixed a segfault with Back_to_saturn wad due to search for deh names
exceeding predef tables. Also now checks for NULL and rejected names.
* Add zeroing of some states, depending upon game, command line options, and
detected wad extensions. Some MBF21 wads overwrite some Heretic states
incompletely, leaving the engine to execute random data. This caused
segfaults when action functions were called with the wrong parameter stack
(something inherited from vanilla doom). Upon detection, the states being
used are zeroed, to emulate other MBF21 ports.
* Fixed the init of info table patching to work with MBF21 changes too. Due
to engine differences, just putting the MBF21 changes into the info table
init function did not work out as expected. Because this is within the
built-in launcher loop, it got more complicated than I will describe here.
* Fixed a segfault, for some odd music that could not be handled. Made a
separate FindExtMusic that can handle the special cases. Made it have
graceful failure, without any I_Error. The cause was MBF21 changes that
upset the compile.
* Fixed the MBF21_angle_to_slope function which was failing due to comparison
of a signed angle against an unsigned constant. Do not know what the
compiler was doing but it was wrong. Fixed a few other similar tests, out
of caution.
The MBF21_P_Random_hitscan_slope function was calling
MBF21_fixed_deg_to_slope where it should have been MBF21_angle_to_slope.
This is near impossible to determine from reading DSDA code. Weapons in
Sleepwalking.wad now at least hit their intended targets.
* Separated the MBF21 args from the MBF param, because it is possible to use
both in the same state. This was an optimization that did not work out.
* Revised the known sprite name mapping for Heretic, prboom, and dsda.
Revised the system for handling non-standard sprite lumps to get it to load
the matching sprite frames for the extra sprites. Revised the state
blanking, for DSDA. Fixed MBF21 action function arguments, so they get
adjusted too when states get remapped. These were an especially nasty bug.
* Made FireOldBFG work, because a wad is using it. It just assumes it. It is
an EternityEngine action function, but it can be defaulted to A_FireBFG.
* Some wads (like infectio.wad) do not have a reject lump. For some large
wads, this eventually made DoomLegacy segfault using other bugs.
Fixed the lump cache so it will not allocate for 0 size lumps, it will
return NULL.
Made the CheckSight functions skip checking the reject lump when it is
NULL, or when lookup will exceed the size of the lump, or when the sector
indexes are unreasonably large.
* Fixed Chex1 change engine when using software draw, to not try to init
hardware draw functions. This fixes the "could not find corona".
* Fixed the demo play to check and reject a missing demo.
* Phobiata wad tests the objhealth to detect when an object is picked up. Do
not know when this ever worked, but fixed it so that it is supported, which
makes the stairs to the BFG work reliably now.
1.48.16 SVN1703 (2024-11-26)
FEATURES 1.48.16
* Much better version and option reporting for the DoomLegacy binary, visible
to the user. This also allows musserver and sndserver to identify their
version of DoomLegacy.
Prints a program header that includes date, program version, and major
compile-time options.
> doomlegacy --version
* MBF21. This implements MBF21 dehacked capabilities, using the MBF21
Developers Spec, and DSDA-Doom as a reference implementation. This adds
many monster functions, can alter monster attributes that previously were
for bosses only, makes SKILL5_FAST monsters changable from dehacked, and
can alter player weapon effects. It also adds BLOCK_LAND_MONSTERS, and
BLOCK_PLAYERS, as linedef flags, and adds sector flags.
* Added player getting tired when they RUN too much. Added player drown when
they swim underwater too much. The player drown does not actually kill the
player, but just uses an extreme getting tired, with vison going black.
These have option controls in the menus, and can be enabled for any map.
The tired and drown player timers are not yet saved in save games, nor are
in demos.
At this time, this is EXPERIMENTAL, and may be changed.
* Added monster body variations capability. Added controls monster_vary,
vary_percent, vary_size. This option modifies existing maps by modifying
some of the monsters, with random adjusted width, height, mass, and speed.
This also will vary the monster speed due to damage.
At this time, this is EXPERIMENTAL, and may be changed.
+ Off : Disabled, as in vanilla Doom.
+ All : All variations are possible.
+ Small : small size monsters
+ Smaller : smaller monsters
+ Light : light mass monsters
+ Lighter : lighter mass monsters
+ MedSmall : medium to small size monsters
+ Medium : medium size monsters
+ MedLarge : medium to large size monsters
+ Heavier : heavier mass monsters
+ Heavy : heavy mass monsters
+ Bigger : bigger monsters
+ Big : big size monsters
* Added a menu control for the corrected clip width, in the effects menu.
This corrects a bug in the original doom rendering, that affects the
display of a few textures. Only a few users would even notice. Normally, it
is kept OFF.
* Added a control for varying monster teleports. This allows players to alter
the severity of monster teleport traps. It also introduces variety when you
have played a map so many times that it is too familiar.
The menu:
+ norm : Disabled, as in vanilla Doom.
+ easy2 : random selection of the easiest effects.
+ easy1 : random easier
+ any : random of all but dup
+ hard1 : random harder
+ hard2 : random hardest effects
+ stun2 : stun the monster for a few seconds
+ stun4 : stun for 4 seconds
+ stun6 : stun for 6 seconds
+ rate2 : slow the rate of the teleport
+ rate4 : slower x4
+ rate6 : slower x6
+ scatter1 : scatter the teleport
+ scatter2 : scatter farther
+ scatter3 : scatter farther
+ scatter4 : scatter farthest
+ dup20 : duplicate some monsters during teleport
+ dup40 : duplicate 40% of teleported monsters
+ dup60 : duplicate 60% of teleported monsters
At this time, this is EXPERIMENTAL, and may be changed.
* Have made extensive changes to bot behavior with friends, and coop play.
Added a menu control for bot grab.
+ low: least grabby
+ moderate:
+ friend: allows friend to get special items
+ grabby: previous non-deathmatch behavior, no friends
+ selfish: previous deathmatch behavior, for comp
Friends are taken into consideration when deciding upon grabbing an item.
For example, Keys are not grabbed when have friends.
Added avoidance code that will turnaway from an object when the bot is
blocked.
The code for moving close or away from teammates was rewritten. The bots
move slower around the teammate, so their behavior is better. Code to stop
the bot from going over a cliff has been added, and does cause bot to stop
in some situations. But, eventually the bot goes over the cliff.
Increased distance required to shoot barrels.
Bot jumping is now disabled when allowjump is not set, like other players.
This is an ongoing effort and is EXPERIMENTAL.
* COME_HERE command by keypress has been added. The default is the 'c' key.
This will summon dogs and bots to come to the player.
The COME_HERE code tries to block other distractions. It is noted that the
dogs and bots often ignore the player, such as when there is an active
battle. Often the effect is delayed, with them coming after a few seconds.
The COME_HERE command is effective for 3 seconds. It can be repeated often
for longer effect. It is only effective when the bot is within 1500
distance. It causes bots to move slower when near the player. A summoned
bot can cross a higher dropoff than normal.
This is an ongoing effort and is EXPERIMENTAL. Details will change.
* Added bot recognition of when the player is bumping them out of the way,
which may also be used to move them somewhere. It is also effective to just
punch them.
More fields have been added to bots, so they remember what they were doing,
and a timer to give them a chance to carry out a decision. This gives the
bot a chance to actually turn, and get some benefit from a decision, before
it is undone.
Bots can now detect a damaging sector. They are blocked from going into a
damaging sector, but often it does not stop them.
The bots test for two steps ahead now, which gives them a chance to not go
over a cliff, or hang on the edge.
Some distances have been increased.
* Release version 1.48.16 uses savegame format 1.49. Because MBF21, VARY, and
changes to the dropammo status format, forced a savegame format change that
requires a new savegame format version. DoomLegacy still will read
savegames of format 1.48, and earlier.
BUG FIXES 1.48.16
* Fixed the grenade launcher, DT-GREN. The file MBFONLY.DEH creates a grenade
missile that does not have MF_NOBLOCKMAP. This triggers a bug inherited
from Vanilla Doom, and Boom, that causes the program to hang in a tight
loop, or otherwise crash. This was fixed by creating a blockmap unlink that
is not dependent upon the thing x,y position, similar to what MBF, and
PrBoom did.
* The viewfit control was not drawing flats at the exact same scale as
everything else, when using viewfit = FIT_HEIGHT. Changed the table calc to
use projection_y, correcting the problem. Fixes Bug 0692.
Note: testing using 1280x800 is misleading, as while that looks like an
extreme wide screen, it is also the exact same ratio as the original
320x200. Because of that, it happens to hide defects in calculating the
scaling. It is one of the screen choices that has no difference in all the
viewfit settings.
* Prevent in-fighting when player has both dogs and bots. The bots would
attack the dogs. This makes bots friend aware.
* Changes to deal with gcc12 nuisance warnings, compile quieter, but they do
not fix anything in the program.
* Fixed one of the calls in R_PointToAngle, to use the more accurate
SlopeDiv_64.
* Playing MP3 music (phobiata.wad) would cause SDL to fault, citing a double
release of the rwops. This only happens for MP3 music. Fixed the unregister
function to cope with SDL doing this unexpectedly. SDL1 will now play MP3
on doomlegacy, (as in phobiata.wad). If your SDL mixer library does not
play MP3, then you have to also compile the SDL mixer with the MP3 option
enabled. Some distributions of SDL mixer have MP3 option disabled.
* Fixed a segfault due to using uninitialized bot. Protected some other bot
code from similar faults.
* The 666 action upon Boss death was not working, the bug introduced by MBF21
code. This has been fixed.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 pkgsrc/games/doomlegacy/DESCR
cvs rdiff -u -r1.17 -r1.18 pkgsrc/games/doomlegacy/Makefile
cvs rdiff -u -r1.14 -r1.15 pkgsrc/games/doomlegacy/distinfo
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/games/doomlegacy/DESCR
diff -u pkgsrc/games/doomlegacy/DESCR:1.1 pkgsrc/games/doomlegacy/DESCR:1.2
--- pkgsrc/games/doomlegacy/DESCR:1.1 Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/DESCR Mon May 19 12:21:27 2025
@@ -20,4 +20,4 @@ and the Marine's Best Friend (MBF) exten
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.
+This package contains the SDL1 build of Doom Legacy.
Index: pkgsrc/games/doomlegacy/Makefile
diff -u pkgsrc/games/doomlegacy/Makefile:1.17 pkgsrc/games/doomlegacy/Makefile:1.18
--- pkgsrc/games/doomlegacy/Makefile:1.17 Mon Jan 6 21:49:11 2025
+++ pkgsrc/games/doomlegacy/Makefile Mon May 19 12:21:27 2025
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.17 2025/01/06 21:49:11 ktnb Exp $
+# $NetBSD: Makefile,v 1.18 2025/05/19 12:21:27 micha Exp $
-VERS= 1.48.14
+VERS= 1.48.18
PKGNAME= doomlegacy-${VERS}
-PKGREVISION= 1
CATEGORIES= games
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=doomlegacy/}
DISTNAME= ${PKGNAME_NOREV:S/-/_/}_source
@@ -14,12 +13,14 @@ HOMEPAGE= http://doomlegacy.sourceforge
COMMENT= The legacy of Doom
LICENSE= gnu-gpl-v2
+WRKSRC= ${WRKDIR}/${PKGNAME_NOREV:S/-/_/}/svn1749
+
# Tested on Linux/ppc (32bit Big Endian) and NetBSD/amd64 (64bit Little Endian)
# Untested: In general the source code has support for the other listed OS too
ONLY_FOR_PLATFORM= Darwin-*-* DragonFly-*-* FreeBSD-*-* Linux-*-* \
NetBSD-*-* OpenBSD-*-* SunOS-*-*
-USE_LANGUAGES+= c99
+USE_CC_FEATURES+= c99
USE_TOOLS+= gmake
# Dependency generation fails with parallel build
MAKE_JOBS_SAFE= no
Index: pkgsrc/games/doomlegacy/distinfo
diff -u pkgsrc/games/doomlegacy/distinfo:1.14 pkgsrc/games/doomlegacy/distinfo:1.15
--- pkgsrc/games/doomlegacy/distinfo:1.14 Wed Jan 17 12:22:59 2024
+++ pkgsrc/games/doomlegacy/distinfo Mon May 19 12:21:27 2025
@@ -1,8 +1,8 @@
-$NetBSD: distinfo,v 1.14 2024/01/17 12:22:59 micha Exp $
+$NetBSD: distinfo,v 1.15 2025/05/19 12:21:27 micha Exp $
-BLAKE2s (doomlegacy_1.48.14_common.zip) = 52260d049f503c89ca872e6934435fe8c52baf82bc07c78caf8e157f38099f7d
-SHA512 (doomlegacy_1.48.14_common.zip) = 69e7c4a004a507ec87c39d31595e11c5a764e470ee59cd231a61dfaad70b77ac8c8c4789cfb333bfa0343aed210d5986136a6fa5cb88bc066af50d8c8fac1ce6
-Size (doomlegacy_1.48.14_common.zip) = 1056545 bytes
-BLAKE2s (doomlegacy_1.48.14_source.tar.bz2) = 38e993f456c12a280662ae8959a346e60e8f8bf70abb2b44abc16a1dfa62c3b4
-SHA512 (doomlegacy_1.48.14_source.tar.bz2) = e2e327723d893fc7cee7c26bb102d6c8df05a254a564055ac48cc8367e69cd858a78b0824c1f9331cc25bb40397a73d20f45b3fd425d766ec24d51895247f35c
-Size (doomlegacy_1.48.14_source.tar.bz2) = 2624909 bytes
+BLAKE2s (doomlegacy_1.48.18_common.zip) = 621f0ad2f941ce1def6a964d61e38c02f76ebfe62fa21cc4670148c159799996
+SHA512 (doomlegacy_1.48.18_common.zip) = 36235e52ec553b7b280485c725fb5a25759e04b4ecef7be472323d770c500ac3c22c628dbb0bc1a87bcb89d40bb7c0a98ae2e3f288f64617a31acb3c98280362
+Size (doomlegacy_1.48.18_common.zip) = 1104556 bytes
+BLAKE2s (doomlegacy_1.48.18_source.tar.bz2) = f51d5912f62b089b3bdcd6704dfa79c9c3017c157b342f9069756de6985b2057
+SHA512 (doomlegacy_1.48.18_source.tar.bz2) = aa7945edacf094cdb50b5acf457b28a3c1701304fa9416df0152723d0ecc8d56169e4cdd31b92c0cbd643f94f9a6918532d5ada0aac96474cc848364562bcdd5
+Size (doomlegacy_1.48.18_source.tar.bz2) = 2803672 bytes
Home |
Main Index |
Thread Index |
Old Index