Files
dusklight/include/SSystem
Max Roncace 7d3795f745 Detect and replace NaNs in cXyz default ctor
This fixes intermittent segfaults due to invalid atan table lookups.

For some reason zero-initializing all cXyz objects causes issues, as
does initializing them with INFINITY or -INFINITY. However, at least
one of the possible crashes (in d_a_e_yg's search_ground_1) is
guaranteed to happen whenever a specific uninitialized cXyz contains
a NaN for x or z.

A possible explanation for these crashes not occurring on hardware might
be that the problematic objects happen to be placed at memory locations
that happen to never contain a NaN upon allocation, so the buggy code
was never caught. Further investigation would be needed to determine if
this is what's actually happening, though.
2026-03-25 20:53:18 -04:00
..