public void WriteLine(byte[] chars, Style style) { NewLine(); int strlength = chars.Length; if (size.x < strlength) { strlength = size.x; } byte[] attr = new byte[strlength--]; if (style.frame) { attr[0] = DOSConsole.ATTR_FRAME_TOP + DOSConsole.ATTR_FRAME_LEFT + DOSConsole.ATTR_FRAME_BOTTOM; for (int n = 1; n < strlength; n++) { attr[n] = DOSConsole.ATTR_FRAME_TOP + DOSConsole.ATTR_FRAME_BOTTOM; } attr[strlength] = DOSConsole.ATTR_FRAME_TOP + DOSConsole.ATTR_FRAME_RIGHT + DOSConsole.ATTR_FRAME_BOTTOM; } else { for (int n = 0; n <= strlength; n++) { attr[n] = 0; } } int offset = cursor_y * size.x; for (int n = 0; n <= strlength; n++) { Buffer[offset + n] = new DOSConsole.CHAR_INFO(chars[n], attr[n], style.color); } }
public void ScrollUp() { int position = length - size.x; for (int n = 0; n < position; n++) { Buffer[n] = Buffer[n + size.x]; } for (int n = position; n < length; n++) { Buffer[n] = new DOSConsole.CHAR_INFO(); } }