From e4b032ea21d6b28b279f16593ee79c4191c6d848 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 12 Apr 2016 20:47:11 +0200 Subject: [PATCH] Fix crash reading Camera objects from pre-6.41 bam files --- panda/src/pgraph/camera.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/panda/src/pgraph/camera.cxx b/panda/src/pgraph/camera.cxx index 575b5236ed..d15e9a2bf3 100644 --- a/panda/src/pgraph/camera.cxx +++ b/panda/src/pgraph/camera.cxx @@ -272,8 +272,10 @@ write_datagram(BamWriter *manager, Datagram &dg) { dg.add_bool(_active); dg.add_uint32(_camera_mask.get_word()); - manager->write_pointer(dg, _initial_state); - dg.add_stdfloat(_lod_scale); + if (manager->get_file_minor_ver() >= 41) { + manager->write_pointer(dg, _initial_state); + dg.add_stdfloat(_lod_scale); + } } //////////////////////////////////////////////////////////////////// @@ -286,7 +288,10 @@ write_datagram(BamWriter *manager, Datagram &dg) { int Camera:: complete_pointers(TypedWritable **p_list, BamReader *manager) { int pi = LensNode::complete_pointers(p_list, manager); - _initial_state = DCAST(RenderState, p_list[pi++]); + + if (manager->get_file_minor_ver() >= 41) { + _initial_state = DCAST(RenderState, p_list[pi++]); + } return pi; }