Commit graph

16 commits

Author SHA1 Message Date
Randy Heit
cf0d73b128 - Changed FEventTree into a regular binary tree, since there just aren't enough
nodes inserted into it to make a red-black tree worthwhile.
- Added more checks at the start of ClassifyLine so that it has a better chance
  of avoiding the more complicated checking, and it seems to have paid off with
  a reasonably modest performance boost.

SVN r169 (trunk)
2006-06-06 05:00:46 +00:00
Randy Heit
738eabc6be - Fixed: The vertex selectors returned the vertex block number instead of the
vertex number. Oops. The vertex map also didn't work for maps larger than 32767
  units on a side.

SVN r168 (trunk)
2006-06-06 03:27:24 +00:00
Randy Heit
6d799f0a1c - Added a "vertex map" for ZDBSP's vertex selection. (Think BLOCKMAP for
vertices instead of lines.) On large maps, this can result in a very
  significant speed up. (In one particular map, ZDBSP had previously
  spent 40% of its time just scanning through all the vertices in the
  map. Now the time it spends finding vertices is immeasurable. Now 68%
  of its time on that map is spent inside ClassifyLine--because that
  routine is called more than 16 million times, which suggests that even
  a minor speedup in that routine should have a big impact--if I could
  just think of how that might happen.) On small maps, this won't make
  much of a difference, because the number of vertices to search was so
  small to begin with.

SVN r167 (trunk)
2006-06-06 02:45:48 +00:00
Randy Heit
30436092ed - Slight performance tweak to ClassifyLine, since a significant portion of
the runtime is spent in that function. I should probably write a faster
  vertex finding routine, since I currently just do a linear search through
  all the vertices. That ought to help speed up SplitSegs, the second most
  time-consuming routine. I also tried storing vertices as doubles instead
  of fixeds, but that made performance drop across the board, so that's a
  change that didn't make it in.

  Ironically, the GCC compiled version is noticeably faster than the VC
  version for x87 math, but VC produces a marginally faster SSE2 version.

SVN r163 (trunk)
2006-06-03 04:12:33 +00:00
Randy Heit
dd6f2eab90 - Fixed writing of v5 GL segs in ZDBSP.
- Fixed ZDBSP compilation under Linux, including support
  for 64-bit architectures.


SVN r162 (trunk)
2006-06-01 17:32:32 +00:00
Randy Heit
21aeec0e3a - Added support for creating v5 GL nodes to ZDBSP.
SVN r159 (trunk)
2006-06-01 01:05:24 +00:00
Randy Heit
8617f499d5 - Added code to explicitly handle outputting overlapping segs when
building GL nodes with ZDBSP, removing the check that discarded
  them early on.

SVN r157 (trunk)
2006-05-31 23:17:26 +00:00
Randy Heit
938f25e39b Added a Makefile for building ZDBSP with GCC and SSE configurations for VC.
SVN r156 (trunk)
2006-05-31 20:25:20 +00:00
Randy Heit
1a979de350 ZDBSP fixes:
- AddIntersection() should convert to doubles before subtracting the vertex
  from the node, not after, to avoid integer overflow. (See cah.wad, MAP12
  and MAP13.) A simpler dot product will also suffice for distance calculation.
- Splitters that come too close to a vertex should be avoided. (See cata.wad.)
- Red-Black Tree implementation was broken and colored every node red.
- Moved most of the code for outputting degenerate GL subsectors into another
  function.
- Removed forgotten debugging file dump from WriteSSectors2().
- Enabled reference optimization and COMDAT folding in the linker for a slightly
  smaller executable.

SVN r155 (trunk)
2006-05-31 15:39:58 +00:00
Randy Heit
3128c11fd1 ZDBSP fixes:
- MapSideDef.sector was declared signed but treated as unsigned.
- Degenerate (one-dimensional) subsectors could throw away segs when
  output for GL nodes depending on the seg ordering.

SVN r152 (trunk)
2006-05-29 03:07:57 +00:00
Randy Heit
65cdd0323e Bumped ZDBSP's version to 1.6.
SVN r149 (trunk)
2006-05-28 03:18:08 +00:00
Christoph Oelckers
e601a49695 Fixed ZDBSP seg splitter. On occasion it assigned the offset to the incorrect of the two segs created by a split.
SVN r118 (trunk)
2006-05-16 09:26:54 +00:00
Christoph Oelckers
714383b6c0 - Fixed: To prevent the pointer cleanup code from crashing numsectors has
to be set to 0 when the sectors array is deleted.


SVN r64 (trunk)
2006-04-23 00:03:32 +00:00
Christoph Oelckers
702d5bbc3e - Fixed: Hexen's ammo display in the status bar cannot be refreshed
partially because the background patch has to be drawn always to 
  overwrite the old display.
- Fixed: Giving a health item to a non-player caused a crash.
- Added a compatibility option to limit deh.MaxHealth to the health bonus.
  Originally this value wasn't used for health packs. Doing this was a bug
  in Boom but since there's quite a few maps out there which require
  Boom's altered behavior it has to be compatibility optioned.
- Fixed: The health bonus's max health must be defined by deh.MaxHealth, 
  not deh.MaxSoulsphere. To achieve this deh.MaxHealth's handling had to
  be altered because it has to default to 100.
- Fixed: ZDBSP created incorrect side references with compressed sidedefs
  and both sidedefs of a linedef being the same. This only affects the
  external tool because the internal node builder is run after uncompressing
  the sidedefs.
- Added Jim's latest makefile.linux.
- Added a consistency check to the PNAMES loader because one crash log
  indicated that it crashed due to a corrupt PNAMES lump.
- Brought back the sector based sound target handling as a compatibility
  option. This radical change just broke far too many maps that depend
  on the original behavior. Strife's special AI functions are excluded 
  though because they work better with the new method.


SVN r56 (trunk)
2006-04-20 14:21:27 +00:00
Randy Heit
24d4f0b45c Initial commit of zdbsp.
SVN r12 (trunk)
2006-02-24 05:17:19 +00:00
Randy Heit
fbbfdcf196 Created zdbsp trunk directory.
SVN r11 (trunk)
2006-02-24 05:13:14 +00:00