Commit d8935f10 authored by Joseph Pranevich's avatar Joseph Pranevich Committed by Alexandre Julliard

Do not advance the cursor in certain routines. This cleaned up the

implementation quite a bit.
parent 3aa839f5
...@@ -405,13 +405,13 @@ void WINAPI INT_Int10Handler( CONTEXT *context ) ...@@ -405,13 +405,13 @@ void WINAPI INT_Int10Handler( CONTEXT *context )
static void write_char_attribute_at_cursor(char output, char page_num, static void write_char_attribute_at_cursor(char output, char page_num,
char attribute, short times) char attribute, short times)
{ {
/* !NOTE!: */ /* Contrary to the interrupt list, this routine should not advance
/* It appears that the cursor should not be advanced if times > 1 */ the cursor. To keep this logic simple, we won't use the
/* I will triple check this later but bzork.exe definately points this */ CONSOLE_Put() routine.
/* way */ */
int wattribute, fg_color, bg_color; int wattribute, fg_color, bg_color;
char x, y; char x, y;
int must_reset = 0;
if (page_num) /* Only support one text page right now */ if (page_num) /* Only support one text page right now */
{ {
...@@ -423,11 +423,7 @@ static void write_char_attribute_at_cursor(char output, char page_num, ...@@ -423,11 +423,7 @@ static void write_char_attribute_at_cursor(char output, char page_num,
fg_color = conv_text_mode_attribute_fg_color(attribute); fg_color = conv_text_mode_attribute_fg_color(attribute);
bg_color = conv_text_mode_attribute_bg_color(attribute); bg_color = conv_text_mode_attribute_bg_color(attribute);
if (times > 1) CONSOLE_GetCursorPosition(&x, &y);
{
must_reset = 1;
CONSOLE_GetCursorPosition(&x, &y);
}
while (times) while (times)
{ {
...@@ -435,8 +431,7 @@ static void write_char_attribute_at_cursor(char output, char page_num, ...@@ -435,8 +431,7 @@ static void write_char_attribute_at_cursor(char output, char page_num,
times--; times--;
} }
if (must_reset) CONSOLE_MoveCursor(x, y);
CONSOLE_MoveCursor(x, y);
} }
static int conv_text_mode_attribute_fg_color(char attribute) static int conv_text_mode_attribute_fg_color(char attribute)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment