Despite how diminutive that particular manifestation of the bug was, it was actually quite serious, especially in regard to the potential for user-defined "light shapes". It turned out the vertices of the light-blocking tiles that fell "behind" the point being lit were being discarded (which seemed like a perfect solution at the time). Now the system runs edge-intersections on any vertices that fall behind the point or light source, to make sure their edges wouldn't affect the light's path. You would think it would be simple to fix, and I guess it would have been if I had chosen the right solution from the start, but now it finally works (third solution's the charm... I hope!)
Here's a screenshot of one of the other rooms. Notice that light can't sneak through diagonals any more.
Things left to do:
- Add transparency property to encoded data
- Add light shapes (maybe)
- Add light shapes to encoded data (maybe)
- Buffer optimization (maybe)
Fixed the walls. Turns out I had made an "optimization" where they used the same buffer as the floors, and they were overwiting the floor's data before it was saved. Yay early-optimization.
Anyways, I don't think I've shown off the walls before:
Perspective is in. Tiles are 32x16.