/////////////////////////////////////////////////////////////////////
| 3419 | } |
| 3420 | ////////////////////////////////////////////////////////////////////////// |
| 3421 | void CEntitySystem::EnableLayer(const char* layer, bool isEnable, bool isSerialized) |
| 3422 | { |
| 3423 | if (!gEnv->p3DEngine->IsAreaActivationInUse()) |
| 3424 | return; |
| 3425 | IEntityLayer* pLayer = FindLayer(layer); |
| 3426 | if (pLayer) |
| 3427 | { |
| 3428 | bool bEnableChange = pLayer->IsEnabledBrush() != isEnable; |
| 3429 | |
| 3430 | #if ENABLE_STATOSCOPE |
| 3431 | if (gEnv->pStatoscope && (pLayer->IsEnabled() != isEnable)) |
| 3432 | { |
| 3433 | string userMarker = "LayerSwitching: "; |
| 3434 | userMarker += isEnable ? "Enable " : "Disable "; |
| 3435 | userMarker += layer; |
| 3436 | gEnv->pStatoscope->AddUserMarker("LayerSwitching", userMarker.c_str()); |
| 3437 | } |
| 3438 | #endif |
| 3439 | |
| 3440 | pLayer->Enable(isEnable, isSerialized); |
| 3441 | |
| 3442 | IResourceManager* pResMan = gEnv->pSystem->GetIResourceManager(); |
| 3443 | if (bEnableChange && pResMan) |
| 3444 | { |
| 3445 | if (isEnable) |
| 3446 | { |
| 3447 | if (strlen(pLayer->GetParentName()) > 0) |
| 3448 | pResMan->LoadLayerPak(pLayer->GetParentName()); |
| 3449 | else |
| 3450 | pResMan->LoadLayerPak(pLayer->GetName()); |
| 3451 | } |
| 3452 | else |
| 3453 | { |
| 3454 | if (strlen(pLayer->GetParentName()) > 0) |
| 3455 | pResMan->UnloadLayerPak(pLayer->GetParentName()); |
| 3456 | else |
| 3457 | pResMan->UnloadLayerPak(pLayer->GetName()); |
| 3458 | } |
| 3459 | } |
| 3460 | } |
| 3461 | } |
| 3462 | |
| 3463 | ////////////////////////////////////////////////////////////////////////// |
| 3464 | bool CEntitySystem::IsLayerEnabled(const char* layer, bool bMustBeLoaded) const |
no test coverage detected