private void ShowTextBuf()
{
var header = ServiceLocator.Platform.ToStructure<DataFileHeader>(_textBuf, 0);
ushort x = header.s_x;
ushort y = header.s_y;
ushort width = header.s_width;
ushort height = header.s_height;
var screenBuf = y * Screen.GameScreenWidth + x;
var sizeofDataFileHeader = 22;
Array.Copy(_textBuf, _saveBuf, sizeofDataFileHeader);
var saveBuf = sizeofDataFileHeader;
var textBuf = sizeofDataFileHeader;
for (ushort cnty = 0; cnty < height; cnty++)
{
Array.Copy(_skyScreen.Current, screenBuf, _saveBuf, saveBuf, width);
for (var cntx = 0; cntx < width; cntx++)
if (_textBuf[textBuf + cntx] != 0)
_skyScreen.Current[screenBuf + cntx] = _textBuf[textBuf + cntx];
screenBuf += Screen.GameScreenWidth;
textBuf += width;
saveBuf += width;
}
screenBuf = y * Screen.GameScreenWidth + x;
_system.GraphicsManager.CopyRectToScreen(_skyScreen.Current, screenBuf, Screen.GameScreenWidth, x, y, width, height);
}