private _2DSprite GetFloorSprite(Floor pattern, int rotation, WorldState world)
{
var _Sprite = world._2D.NewSprite(_2DBatchRenderMode.Z_BUFFER);
if (pattern == null) return _Sprite;
SPR2 sprite = null;
bool vertFlip = world.Rotation == WorldRotation.TopRight || world.Rotation == WorldRotation.BottomRight;
int bufOff = (vertFlip) ? 3 : 0;
switch (world.Zoom)
{
case WorldZoom.Far:
sprite = pattern.Far;
_Sprite.DestRect = FLOORDEST_FAR;
_Sprite.Depth = ArchZBuffers[14+bufOff];
break;
case WorldZoom.Medium:
sprite = pattern.Medium;
_Sprite.DestRect = FLOORDEST_MED;
_Sprite.Depth = ArchZBuffers[13 + bufOff];
break;
case WorldZoom.Near:
sprite = pattern.Near;
_Sprite.DestRect = FLOORDEST_NEAR;
_Sprite.Depth = ArchZBuffers[12 + bufOff];
break;
}
if (sprite != null)
{
_Sprite.Pixel = world._2D.GetTexture(sprite.Frames[rotation]);
_Sprite.SrcRect = new Microsoft.Xna.Framework.Rectangle(0, 0, _Sprite.Pixel.Width, _Sprite.Pixel.Height);
if (vertFlip) _Sprite.FlipVertically = true;
if ((int)world.Rotation > 1) _Sprite.FlipHorizontally = true;
}
return _Sprite;
}