Approaching Beta 4 (part 2)

2»

Comments

  • <blockquote>unsigned short children[2];</blockquote> In the nodes, the children are stored as indices to other nodes. EXCEPT, if the NF_SUBSECTOR bit is set, in which case the child index is a subsector index. Now, we seem to have moved to integer indices for the children, but the NF_SUBSECTOR bit is still 0x8000, effectively limiting the range to 32768.

    If we really want to use the full integer range, the NF_SUBSECTOR bit must be redefined to be the MSB of a 32-bit integer, and the data type must be unsigned int.

    Then the old 0x8000 bits must be converted to this new bit when the original nodes are loaded from the WAD.
  • And the reason why it crashes with int children[2] is that the indices that have the NF_SUBSECTOR bit are negative, thanks most likely to a signed short -> int conversion. When the bit is zeroed, it doesn't change the sign, though, leaving us with negative subsector indices.
  • Ah ok, I think I understand. Thanks skyjake.

    I've implemented a fix(?) for this in SVN 3221.
  • Some further fixes in revision 3223. Now I can disable glBSP and everything appears to work correctly.
    <blockquote>Can you test this PWAD please skyjake:
    mimic2.wad (DOOMII MAP01)</blockquote> This should be fixed, in revision 3219.
  • <blockquote>DoomII MAP30/Slige maps bug: Currently Doomsday will segfault when warping to MAP30 when it has been loaded once already.</blockquote> This does not occur when I try it with rev 3224. Anyone else get it to crash?
  • <blockquote>DoomII MAP30/Slige maps bug: Currently Doomsday will segfault when warping to MAP30 when it has been loaded once already.</blockquote>
    <blockquote>This does not occur when I try it with rev 3224. Anyone else get it to crash?</blockquote>
    Still occurs in Windows with SVN 3224.

    I've found the problem, its due to the way the spawning of the brain targets are handled. I'll commit a fix soon. Considering the code for this is direct from Boom it seems odd that this problem exists but oh well.

    EDIT:

    Fixed in SVN 3225.
  • There is still the problem with respawning/reloading with maps generated by Slige (see the updated notes in the first post).

    Here is a map for testing purposes: <a href="http://www.daniel.ddsdesign.co.uk/Stuff/SLIGE.WAD&quot; rel="nofollow">SLIGE.WAD</a> (DOOM E1M1)
  • The problem with SLIGE.WAD was that W_CheckNumForName() only checked the active lump cache. Now it correctly checks both the primary and the auxiliary caches, if the aux cache is available. Fixed in revision 3228.
  • Excellent.

    I thought there was something going wrong in there but not completely understanding how the code worked - I didn't want to go messing with it.
Sign In or Register to comment.