inline bool RasterTile::CheckTileVisibility(int view_x, int view_y, unsigned view_radius) { if (!IsDefined()) { assert(!IsEnabled()); return false; } distance = CalcDistanceTo(view_x, view_y); return distance <= view_radius || IsEnabled(); }
void CCustomZone::UpdateWorkload (u32 dt) { m_iPreviousStateTime = m_iStateTime; m_iStateTime += (int)dt; if (!IsEnabled()) { if (m_actor_effector) m_actor_effector->Stop(); return; }; UpdateIdleLight (); switch(m_eZoneState) { case eZoneStateIdle: IdleState(); break; case eZoneStateAwaking: AwakingState(); break; case eZoneStateBlowout: BlowoutState(); break; case eZoneStateAccumulate: AccumulateState(); break; case eZoneStateDisabled: break; default: NODEFAULT; } if (Level().CurrentEntity()) { Fvector P = Device.vCameraPosition; P.y -= 0.9f; float radius = 1.0f; CalcDistanceTo (P, m_fDistanceToCurEntity, radius); if (m_actor_effector) { m_actor_effector->Update(m_fDistanceToCurEntity, radius, m_eHitTypeBlowout); } } if(m_pLight && m_pLight->get_active()) UpdateBlowoutLight (); if(m_zone_flags.test(eUseSecondaryHit) && m_eZoneState!=eZoneStateIdle && m_eZoneState!=eZoneStateDisabled) { UpdateSecondaryHit(); } }