Monday, March 16, 2015

FMod - Bad Bugs

Some rather severe bugs were reported to me today concerning Abiathar. First, the Flood Filler was reported as causing crashes when filling large areas, but it actually showed the bug whenever a fill hit the left edge of the level. That caused it to try to store a negative value in a UShort (due to the way it remembers where it's been), which obviously resulted in an overflow. This was easily fixed by changing the order of checks before trying to fill a tile.

Second and more importantly, Dreams levels were exhibiting an interesting problem: a few tiles at the end of the level would get set to zero upon saving. It turns out there was a bug in the FleexCore2 saving code that caused an off-by-two value to be written as the compressed length. That cut off the description of the last RLEW run of tiles for each plane, resulting a slightly truncated level, typically only affecting the "edge of map" markers.

Not reported but extremely critical was the complete deletion of level 0 upon loading a Galaxy set! The adjustments I had made to FleexCore2 to accommodate Tharify's lack of level 0 (and remain compatible with the old InstantCarma that placed the first level header at offset zero) had caused legitimate levels to be detected as garbage and removed. This was fixed with a quickness.

While I was at it, I also fixed the UI glitch of the updates-available window appearing behind the splash "loading" screen. These changes were released as v2.4.1.

No comments:

Post a Comment