DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ FilterObstructedObjects()

void ActionTargets::FilterObstructedObjects ( Object cursor_target)
inlineprivate

check if targets are not obstructed (eg.: wall)

check for object obstruction(if the object is not a proxy - has no parent)

when the number of obstructed items is higher than OBSTRUCTED_COUNT_THRESHOLD remove do no run obstruction check and skip these items

obstruction check

См. определение в файле ActionTargets.c строка 499

500 {
501 int numObstructed = 0;
502 int mCount = m_VicinityObjects.Count();
504 mCount--;
505
507 for ( int i = mCount; i >= 0; --i )
508 {
509 Object object = m_VicinityObjects.GetObject(i);
510 Object parent = m_VicinityObjects.GetParent(i);
511
513 if (object && !parent)
514 {
517 if (numObstructed > OBSTRUCTED_COUNT_THRESHOLD && object != cursor_target)
518 {
519 m_VicinityObjects.Remove(object);
520 continue;
521 }
522
524 if (object != cursor_target && IsObstructedEx(object, cache))
525 {
526 m_VicinityObjects.Remove(object);
527 numObstructed++;
528 }
529
530 cache.ClearCache();
531 }
532 }
533 }
ref map< Object, Object > m_VicinityObjects
Определения ActionTargets.c:114
void IsObjectObstructedCache(vector rayCastStart, int totalObjects)
Определения MiscGameplayFunctions.c:1937
const int OBSTRUCTED_COUNT_THRESHOLD
misc
Определения ActionTargets.c:746
bool IsObstructedEx(Object object, IsObjectObstructedCache cache)
Определения ActionTargets.c:363
vector m_RayStart
objects in vicinity
Определения ActionTargets.c:721
class LOD Object

Перекрестные ссылки IsObjectObstructedCache(), IsObstructedEx(), m_RayStart, m_VicinityObjects и OBSTRUCTED_COUNT_THRESHOLD.

Используется в FilterObstructedObjectsEx().