Project

General

Profile

« Previous | Next » 

Revision 4b309ce4

Added by danij over 17 years ago

Numerous improvements to the map loading code in order to handle common map structure errors (e.g. no longer crashes when trying to load STARGATE.wad). In practice this means that we don't rely on the subsector seg relationship read directly from a map when building the subsectors in sector tables. Instead we determine the relationships manually.

Linedef->Vertex indices are no longer read from the LINEDEFS lump(s). Instead, we determine the segs used for each side of the linedef then sort them into clockwise order, then the start and end vertex ptrs are derived from the side seg information.

Implemented support for "migrant" segs. After analysis of the GL node data it became apparent that it is not always true that the frontsectors of all segs in all subsectors are matched the parent SECTOR_PTR(!) Instead of relying on this relationship we determine the segs of each side manually and mark those which don't belong to the sector as migrants (they come from another sector).

Implemented the concept of a "benign" linedef. A benign linedef is one with zero derived segs and thus non-render-able. I'm not entirely sure of the circumstances which lead to these (interesting to note is that they DO have sidedefs where needed) but the benign flag acts as a safeguard against potential serious errors due to de-referencing.

Read the "backseg" property from the GL_SEGS lump during map load. Might as well read it in while we are there as it saves us having to figure them out (not hard to do mind).

Moved side->blendmode to a surface_t property as it is a more suitable place (even though currently, only seg middle surfaces support it).

Draw map vertexes in the automap when cheating (level >= 3).

Part #1/2

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences