Hidden objects are removed from the scene manager so calls to getSceneManager()->getZoneManager() crash and burn.
@@ -260,7 +260,9 @@ void Forest::setTransform( const MatrixF &mat )
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;
mZoningDirty = true;
@@ -461,7 +461,9 @@ void TerrainBlock::_updateBounds()
void TerrainBlock::_onZoningChanged( SceneZoneSpaceManager *zoneManager )
- if ( mCell == NULL || zoneManager != getSceneManager()->getZoneManager() )
+ if (mCell == NULL || (sm != NULL && sm->getZoneManager() != NULL && zoneManager != sm->getZoneManager()))