MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / update

Method update

ogsr_engine/xrGame/visual_memory_manager.cpp:606–708  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

604}
605
606void 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

Callers

nothing calls this directly

Calls 15

maskMethod · 0.95
enabledFunction · 0.85
ActorFunction · 0.85
find_ifClass · 0.85
check_visiblesMethod · 0.80
clearMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
visibleMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected