private void IgnoreRecursive(int owner, MapCell cell, MapPos pos, int weight)
        {
            Debug.Assert(weight >= GameConstants.MinVoxelActorWeight);

            int counter = cell.ObservedBy[owner];

            counter--;
            cell.ObservedBy[owner] = counter;

            if (weight > GameConstants.MinVoxelActorWeight)
            {
                if (cell.Children != null)
                {
                    for (int i = 0; i < cell.Children.Length; ++i)
                    {
                        MapPos childPos = pos;
                        childPos.Row *= 2;
                        childPos.Row += i / 2;
                        childPos.Col *= 2;
                        childPos.Col += i % 2;
                        IgnoreRecursive(owner, cell.Children[i], childPos, weight - 1);
                    }
                }
            }
            else
            {
                if (counter == 0)
                {
                    m_minimap.IgnoreCell(owner, pos, weight);
                }
            }

            Debug.Assert(counter >= 0);
        }