First texture index will never be drawn, causes HOM
If you set a wall texture to index 0 of the textures
array, then it is never drawn. Currently, that is AGZFLR01
(due to wallflats).
This is because R_RenderSegLoop()
checks if a texture index is valid before rendering it. Its validity check is simply checking for nonzero.
The texture index is retrieved from R_GetTextureNum()
, which returns 0 if the texture is not valid.
INT32 midtexture = R_GetTextureNum(sidedef->midtexture);
// draw the wall tiers
if (midtexture)
{
...
}
The lazy solution: Keep index 0 of textures[]
empty, start loading textures at index 1.
The correct (?) solution: Modify R_GetTextureNum()
to return -1 if invalid, then modify all uses to account for the new "invalid" value.
test-texture.wad (MAP01)