| 604 | } |
| 605 | |
| 606 | void CVisualMemoryManager::update(float time_delta) |
| 607 | { |
| 608 | START_PROFILE("Memory Manager/visuals/update") |
| 609 | |
| 610 | clear_delayed_objects(); |
| 611 | |
| 612 | if (!enabled()) |
| 613 | return; |
| 614 | |
| 615 | m_last_update_time = Device.dwTimeGlobal; |
| 616 | |
| 617 | squad_mask_type mask = this->mask(); |
| 618 | VERIFY(m_objects); |
| 619 | m_visible_objects.clear(); |
| 620 | |
| 621 | START_PROFILE("Memory Manager/visuals/update/feel_vision_get") |
| 622 | if (m_object) |
| 623 | m_object->feel_vision_get(m_visible_objects); |
| 624 | else |
| 625 | { |
| 626 | VERIFY(m_client); |
| 627 | m_client->feel_vision_get(m_visible_objects); |
| 628 | } |
| 629 | STOP_PROFILE |
| 630 | |
| 631 | START_PROFILE("Memory Manager/visuals/update/make_invisible") |
| 632 | { |
| 633 | auto I = m_objects->begin(); |
| 634 | auto E = m_objects->end(); |
| 635 | for (; I != E; ++I) |
| 636 | if ((*I).m_level_time + current_state().m_still_visible_time < Device.dwTimeGlobal) |
| 637 | (*I).visible(mask, false); |
| 638 | } |
| 639 | STOP_PROFILE |
| 640 | |
| 641 | START_PROFILE("Memory Manager/visuals/update/add_visibles") |
| 642 | { |
| 643 | xr_vector<CObject*>::const_iterator I = m_visible_objects.begin(); |
| 644 | xr_vector<CObject*>::const_iterator E = m_visible_objects.end(); |
| 645 | for (; I != E; ++I) |
| 646 | add_visible_object(*I, time_delta); |
| 647 | |
| 648 | m_visible_objects.clear(); |
| 649 | } |
| 650 | STOP_PROFILE |
| 651 | |
| 652 | START_PROFILE("Memory Manager/visuals/update/make_not_yet_visible") |
| 653 | { |
| 654 | xr_vector<CNotYetVisibleObject>::iterator I = m_not_yet_visible_objects.begin(); |
| 655 | xr_vector<CNotYetVisibleObject>::iterator E = m_not_yet_visible_objects.end(); |
| 656 | for (; I != E; ++I) |
| 657 | if ((*I).m_update_time < Device.dwTimeGlobal) |
| 658 | (*I).m_value = 0.f; |
| 659 | } |
| 660 | STOP_PROFILE |
| 661 | |
| 662 | START_PROFILE("Memory Manager/visuals/update/removing_offline") |
| 663 | // verifying if object is online |
nothing calls this directly
no test coverage detected