pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

doomlegacy-devel: Update to SVN revision 1599



Module Name:	pkgsrc-wip
Committed By:	Michael Baeuerle <micha%NetBSD.org@localhost>
Pushed By:	micha
Date:		Fri Nov 12 11:04:07 2021 +0100
Changeset:	28d855d6d5af505908ae8bff82e797dcbf7d000f

Modified Files:
	doomlegacy-devel/Makefile
	doomlegacy-devel/TODO

Log Message:
doomlegacy-devel: Update to SVN revision 1599

This fixes some bad subsector assigns for hardware-draw
in Avactor.wad (Map05 sector 1502).

The function Find_Poly_Sector is used on a polygon, to find the its
sector.
With subsectors that have a seg as a side, this can be done by
inspection.  For subsectors that are not adjacent to a sector side,
Find_Poly_Sector is used to find the sector that they are within.
This is done by finding a linedef of that sector.

Find_Poly_Sector generates a vertex within the poly by averaging the
polygon vertexes.  It then searches all the linedef for the closest.
The calculation for closest overflows sometimes.

When the wrong linedef is deemed to be closest, the sidedef of that
linedef is used to assign the sector to the subsector.
This makes the wrong sector be used to display the floor height, and
floor flat.

I tried several approaches to this.  I ended up using of the
current code, rewritten to be faster, and more robust in large maps.
The linedef considered are limited to those that bracket the test point.
The measurement is the distance to the line, on the same x or y
coordinate.  This ensures that the distance is to a point on the line
that is within the linedef boundaries.  All the distances are measured
along the same lines, so it is the closest linedef along a particular
line.
This still finds a linedef of the enclosing sector because any wrong
linedef would be beaten by the linedef of the sector that crosses that
line.

Using a cross product failed due to it finding the closest point to
the linedef without restricting it to be within the boundaries of the
linedef.
A far linedef that was angled could be considered closest to the
test point, even though it was farther away using other criterea.

Eliminating linedef from test consideration using dx vrs dy had to be
removed.
There may be only one linedef that beats another wrong linedef
from being used.  Every linedef has to be tested for every geometric
relationship.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=28d855d6d5af505908ae8bff82e797dcbf7d000f

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 doomlegacy-devel/Makefile |  2 +-
 doomlegacy-devel/TODO     | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diffs:
diff --git a/doomlegacy-devel/Makefile b/doomlegacy-devel/Makefile
index 423733bfcb..d3ec8bc3bb 100644
--- a/doomlegacy-devel/Makefile
+++ b/doomlegacy-devel/Makefile
@@ -2,7 +2,7 @@
 
 VERS=		1.48.8
 #PKGNAME=	doomlegacy-${VERS}
-SVNVERS=	1598
+SVNVERS=	1599
 DISTNAME=	doomlegacy-devel-0r${SVNVERS}
 CATEGORIES=	games
 
diff --git a/doomlegacy-devel/TODO b/doomlegacy-devel/TODO
index 3a9e463020..b2d73327ad 100644
--- a/doomlegacy-devel/TODO
+++ b/doomlegacy-devel/TODO
@@ -70,4 +70,23 @@ Tested with GCC 7.4.0.
 Merged in SVN revision 1596.
 
 
+Part 21: MBF dogs broken A
+==========================
+If helper dogs are configured, they are not spawned. Error message:
+| Warn: P_SpawnMapthing: Unknown type 143 at (184, 74)
+(143 is the internal index of thing type 888)
+
+[X] Created upstream bug report #681
+
+
+Part 22: MBF dogs broken B
+==========================
+If a dog is placed in a map as monster (type 888), no sprite is drawn.
+The monster is spawned and attacks the player, but is invisible.
+Error message:
+| Warn: R_ProjectSprite: invalid sprite frame 267 : 1 for DOGS
+
+[X] Created upstream bug report #681
+
+
 EOF


Home | Main Index | Thread Index | Old Index