static bool CastRayAtSky( const LTVector& vFrom, const LTVector& vDir ) { IntersectQuery iQuery; IntersectInfo iInfo; iQuery.m_From = vFrom; iQuery.m_To = vFrom + vDir; iQuery.m_Flags = INTERSECT_HPOLY; if(i_IntersectSegment(&iQuery, &iInfo, world_bsp_client->ClientTree())) { WorldPoly *pPoly = world_bsp_client->GetPolyFromHPoly(iInfo.m_hPoly); if (!pPoly) return false; if (pPoly->GetSurface()->GetFlags() & SURF_SKY) return true; else return false; } else { return false; } return true; }
bool CWorldClientBSP::IntersectSegment(IntersectQuery *pQuery, IntersectInfo *pInfo) { return i_IntersectSegment(pQuery, pInfo, &world_tree); }
bool ServerIntersectSegment(IntersectQuery *pQuery, IntersectInfo *pInfo) { return i_IntersectSegment(pQuery, pInfo, world_bsp_server->ServerTree()); }