Crash workaround in IG loading, ref #171

This commit is contained in:
kaetemi 2014-07-31 19:50:25 +02:00
parent af99ad6085
commit 7d835464f0

View file

@ -753,7 +753,13 @@ bool CInstanceGroup::addToSceneWhenAllShapesLoaded (CScene& scene, IDriver *driv
{ {
_Instances[i]->clipUnlinkFromAll(); _Instances[i]->clipUnlinkFromAll();
for (j = 0; j < _InstancesInfos[i].Clusters.size(); ++j) for (j = 0; j < _InstancesInfos[i].Clusters.size(); ++j)
_ClusterInstances[_InstancesInfos[i].Clusters[j]]->clipAddChild( _Instances[i] ); {
uint32 clusterInst = _InstancesInfos[i].Clusters[j];
if (clusterInst < _ClusterInstances.size())
_ClusterInstances[clusterInst]->clipAddChild( _Instances[i] );
else
nlwarning("IG: BUG: Cluster infos size %u, indexing %u", (uint32)_ClusterInstances.size(), clusterInst);
}
// For the first time we have to set all the instances to NOT move (and not be rebinded) // For the first time we have to set all the instances to NOT move (and not be rebinded)
_Instances[i]->freeze(); _Instances[i]->freeze();
_Instances[i]->setClusterSystem (this); _Instances[i]->setClusterSystem (this);