public ArrayList FindOrganisms(int x1, int x2, int y1, int y2)
{
int minX, maxX, minY, maxY;
if (x1 < x2)
{
minX = x1;
maxX = x2;
}
else
{
minX = x2;
maxX = x1;
}
if (y1 < y2)
{
minY = y1;
maxY = y2;
}
else
{
minY = y2;
maxY = y1;
}
if (minX < 0)
{
minX = 0;
}
if (maxX < 0)
{
maxX = 0;
}
if (minY < 0)
{
minY = 0;
}
if (maxY < 0)
{
maxY = 0;
}
minX >>= EngineSettings.GridWidthPowerOfTwo;
if (minX > _gridWidth - 1)
{
minX = _gridWidth - 1;
}
maxX >>= EngineSettings.GridWidthPowerOfTwo;
if (maxX > _gridWidth - 1)
{
maxX = _gridWidth - 1;
}
minY >>= EngineSettings.GridHeightPowerOfTwo;
if (minY > _gridHeight - 1)
{
minY = _gridHeight - 1;
}
maxY >>= EngineSettings.GridHeightPowerOfTwo;
if (maxY > _gridHeight - 1)
{
maxY = _gridHeight - 1;
}
return FindOrganismsInCells(minX, maxX, minY, maxY);
}