75d7eb6dce
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> |
||
---|---|---|
.. | ||
ai.cpp | ||
aipath.cpp | ||
automap.cpp | ||
bm.cpp | ||
bmread.cpp | ||
cntrlcen.cpp | ||
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 | ||
gamecntl.cpp | ||
gamefont.cpp | ||
gamemine.cpp | ||
gamerend.cpp | ||
gamesave.cpp | ||
gameseg.cpp | ||
gameseq.cpp | ||
gauges.cpp | ||
generate-kconfig-udlr.py | ||
hostage.cpp | ||
hud.cpp | ||
iff.cpp | ||
inferno.cpp | ||
kconfig.cpp | ||
kconfig.ui-table.cpp | ||
kmatrix.cpp | ||
laser.cpp | ||
lighting.cpp | ||
menu.cpp | ||
mglobal.cpp | ||
mission.cpp | ||
morph.cpp | ||
multi.cpp | ||
multibot.cpp | ||
net_udp.cpp | ||
newdemo.cpp | ||
newmenu.cpp | ||
object.cpp | ||
paging.cpp | ||
physics.cpp | ||
piggy.cpp | ||
player.cpp | ||
playsave.cpp | ||
polyobj.cpp | ||
powerup.cpp | ||
render.cpp | ||
robot.cpp | ||
scores.cpp | ||
segment.cpp | ||
slew.cpp | ||
songs.cpp | ||
state.cpp | ||
switch.cpp | ||
terrain.cpp | ||
texmerge.cpp | ||
text.cpp | ||
titles.cpp | ||
vclip.cpp | ||
vers_id.cpp | ||
wall.cpp | ||
weapon.cpp |