Build function tables at compile time. If !SDLMIXER, compile out the
pointer indirections. If SDLMIXER && PIE, keep function pointers in
read-only memory.
Make object rendering traverse only the subrange of segments with
objects.
Make alpha rendering traverse only the subrange of segments with alpha
blended textures.
- Make Max_linear_depth_objects const
- Skip setup of object rendering if no objects to render
- Defer setting globals until after conditional confirms a segment will
render
Mission names are passed in without an extension. Short mission names
read beyond the end of the buffer, causing AddressSanitizer to kill the
program.
Reported by btb: https://github.com/dxx-rebirth/dxx-rebirth/issues/20
Callers expect sane Player_num, but on failure, it is invalid.
Returning a failure status causes net_udp_level_sync to fault using
Players[Player_num].connected, so throw an exception instead.
Rework movie loading to fix loading built-in robot movies. The previous
code always ignored loading the last entry in the movie array, which was
blank until 18f6919b33. The last entry
was unused after d38a3d1362, so it was
removed, which caused the code to skip the robots entry.
Commit d38a3d1362 broke unloading add-on
movies by removing the strcpy which saved their name. Add code to save
the name to extra_robot_movie_mission and call it when switching
missions.
Reported by btb: https://github.com/dxx-rebirth/dxx-rebirth/pull/17