rewrite inVis() to improve performance
apply PlayerVisRemoveEvts that occur immediately, and precalculate looping bounds in calcExclusive()