groups 'RaycastRVProxy' and 'RaycastRV' approaches into one method, allowes for comprehensive geometry override, if desired
1527 {
1528
1531 if (geometryTypeOverride != -1)
1532 rayInput.
type = geometryTypeOverride;
1534 int count;
1535 int i;
1536
1537 if (cache.HitProxyObjects)
1538 {
1539 count = cache.HitProxyObjects.Count();
1541 for (i = 0; i < count; ++i)
1542 {
1543 if (cache.HitProxyObjects[i].hierLevel > 0)
1544 {
1545 parent = cache.HitProxyObjects[i].parent;
1546 if (parent && !parent.IsMan() && parent.CanProxyObstruct())
1547 {
1548 if (parent != object || (parent == object && object.CanProxyObstructSelf()))
1549 return true;
1550 }
1551 }
1552 }
1553 }
1554
1555
1556 int geometry = ObjIntersectFire;
1557 if (geometryTypeOverride != -1)
1558 geometry = geometryTypeOverride;
1559 DayZPhysics.
RaycastRV(cache.RaycastStart, cache.ObjectCenterPos, cache.ObjectContactPos, cache.ObjectContactDir, cache.ContactComponent, cache.HitObjects,
object,
GetGame().
GetPlayer(),
false,
false, geometry, 0.0,
CollisionFlags.ALLOBJECTS);
1560 count = cache.HitObjects.Count();
1561 for (i = 0; i < count; ++i)
1562 {
1563 if (cache.HitObjects[i].CanObstruct())
1564 return true;
1565 }
1566
1567 return false;
1568 }
static proto bool RaycastRV(vector begPos, vector endPos, out vector contactPos, out vector contactDir, out int contactComponent, set< Object > results=NULL, Object with=NULL, Object ignore=NULL, bool sorted=false, bool ground_only=false, int iType=ObjIntersectView, float radius=0.0, CollisionFlags flags=CollisionFlags.NEARESTCONTACT)
Raycasts world by given parameters.
static proto bool RaycastRVProxy(notnull RaycastRVParams in, out notnull array< ref RaycastRVResult > results, array< Object > excluded=null)
proto native CGame GetGame()