Przeglądaj źródła

Merge pull request #233 from chaigler/terr_zoning_crash_fix

Fix for crash in _onZoningChanged methods when called by hidden objects.
Brian Roberts 5 lat temu
rodzic
commit
9239101303

+ 3 - 1
Engine/source/forest/forest.cpp

@@ -260,7 +260,9 @@ void Forest::setTransform( const MatrixF &mat )
 
 
 void Forest::_onZoningChanged( SceneZoneSpaceManager *zoneManager )
 void Forest::_onZoningChanged( SceneZoneSpaceManager *zoneManager )
 {
 {
-   if ( mData == NULL || zoneManager != getSceneManager()->getZoneManager() )
+   const SceneManager* sm = getSceneManager();
+
+   if (mData == NULL || (sm != NULL && sm->getZoneManager() != NULL && zoneManager != sm->getZoneManager()))
       return;
       return;
 
 
    mZoningDirty = true;
    mZoningDirty = true;

+ 3 - 1
Engine/source/terrain/terrData.cpp

@@ -461,7 +461,9 @@ void TerrainBlock::_updateBounds()
 
 
 void TerrainBlock::_onZoningChanged( SceneZoneSpaceManager *zoneManager )
 void TerrainBlock::_onZoningChanged( SceneZoneSpaceManager *zoneManager )
 {
 {
-   if ( mCell == NULL || zoneManager != getSceneManager()->getZoneManager() )
+   const SceneManager* sm = getSceneManager();
+
+   if (mCell == NULL || (sm != NULL && sm->getZoneManager() != NULL && zoneManager != sm->getZoneManager()))
       return;
       return;
 
 
    mZoningDirty = true;
    mZoningDirty = true;