dxx-rebirth/similar/main
Kp 75d7eb6dce Skip paging in vclip entries with invalid num_frames
User Nemesis reported an unspecified crash, but never responded to
inquiries to provide more data.  Users Tourmeister and Buff Skeleton
reported a fatal exception thrown while paging in a vclip, with initial
triggering conditions matching the report from Nemesis.  Both
Tourmeister and Buff Skeleton are using v1.0 Descent 2 data.  No one
with more recent data has reported a problem.

Add a try { ... } catch { ... } block to trap the partial_range
exception, log it, and then ignore paging in that vclip.  This should
approximate what 0.58.1 did, assuming that the crash is due to a
negative `num_frames`.  If the crash is due to a large positive
`num_frames`, this change will still prevent the previously reported
crash, but may only move the crash elsewhere.  Various other subsystems
react badly to using a vclip that has not been paged in.

This change is tested not to break an otherwise working game.  It is not
tested to confirm that it produces a working game for users who
experienced a crash without it.

Reported-by: Tourmeister <https://forum.dxx-rebirth.com/showthread.php?tid=943&pid=12159#pid12159>
Reported-by: Buff Skeleton <https://forum.dxx-rebirth.com/showthread.php?tid=943&pid=12290#pid12290>
References: <https://github.com/dxx-rebirth/dxx-rebirth/issues/371>
2018-07-18 04:39:28 +00:00
..
ai.cpp
aipath.cpp
automap.cpp
bm.cpp
bmread.cpp Move d2x-rebirth/main/bmread.cpp -> similar/main/bmread.cpp 2018-07-18 04:39:28 +00:00
cntrlcen.cpp Eliminate some uses of valptridx::operator-> 2018-06-24 05:06:15 +00:00
collide.cpp
config.cpp
console.cpp
controls.cpp
credits.cpp
digiobj.cpp
dumpmine.cpp
effects.cpp
endlevel.cpp
fireball.cpp
fuelcen.cpp
fvi.cpp
game.cpp Move Redbook audio behind DXX_USE_SDL_REDBOOK_AUDIO 2018-07-14 17:23:15 +00:00
gamecntl.cpp Move Redbook audio behind DXX_USE_SDL_REDBOOK_AUDIO 2018-07-14 17:23:15 +00:00
gamefont.cpp
gamemine.cpp
gamerend.cpp
gamesave.cpp
gameseg.cpp
gameseq.cpp Fix player appearance sound truncation 2018-07-14 17:23:15 +00:00
gauges.cpp Fix SDL-only build of gauges.cpp 2018-06-30 21:53:55 +00:00
generate-kconfig-udlr.py
hostage.cpp
hud.cpp
iff.cpp
inferno.cpp Move Redbook audio behind DXX_USE_SDL_REDBOOK_AUDIO 2018-07-14 17:23:15 +00:00
kconfig.cpp
kconfig.ui-table.cpp
kmatrix.cpp
laser.cpp
lighting.cpp
menu.cpp
mglobal.cpp
mission.cpp Retain directory structure in New Game dialog 2018-07-03 05:59:40 +00:00
morph.cpp
multi.cpp
multibot.cpp
net_udp.cpp Improve error message on failure to load mission 2018-07-03 05:59:39 +00:00
newdemo.cpp Improve error message on failure to load mission 2018-07-03 05:59:39 +00:00
newmenu.cpp Retain directory structure in New Game dialog 2018-07-03 05:59:40 +00:00
object.cpp
paging.cpp Skip paging in vclip entries with invalid num_frames 2018-07-18 04:39:28 +00:00
physics.cpp
piggy.cpp
player.cpp
playsave.cpp
polyobj.cpp
powerup.cpp
render.cpp
robot.cpp
scores.cpp
segment.cpp
slew.cpp
songs.cpp Move Redbook audio behind DXX_USE_SDL_REDBOOK_AUDIO 2018-07-14 17:23:15 +00:00
state.cpp Improve error message on failure to load mission 2018-07-03 05:59:39 +00:00
switch.cpp
terrain.cpp Move various SDL-only texture mapping functions to !DXX_USE_OGL 2017-11-01 02:01:21 +00:00
texmerge.cpp
text.cpp
titles.cpp
vclip.cpp
vers_id.cpp
wall.cpp
weapon.cpp