win32tty changes

1. Switch to low-level console routines for performance improvements.
2. Instead of moving the cursor around like a real tty, just track the
   destination coordinates of where the cursor should be, and
   defer the movement until user input is expected.

Credit to <Someone> for #2.
This commit is contained in:
nethack.allison
2003-10-05 23:00:05 +00:00
parent 4775dd3cbf
commit bc70857749
7 changed files with 149 additions and 227 deletions

View File

@@ -275,19 +275,8 @@ char *argv[];
# endif
#endif
if (!*plname) {
#ifdef WIN32CON
boolean revert = FALSE;
if (!iflags.rawio) {
set_output_mode(1);
revert = TRUE;
}
#endif
if (!*plname)
askname();
#ifdef WIN32CON
if (revert && iflags.rawio) set_output_mode(0);
#endif
}
plnamesuffix(); /* strip suffix from name; calls askname() */
/* again if suffix was whole name */
/* accepts any suffix */

View File

@@ -416,9 +416,6 @@ msmsg VA_DECL(const char *, fmt)
if (iflags.grmode)
gr_finish();
# endif
#ifdef WIN32CON
if (iflags.rawio) set_output_mode(0);
#endif
Vprintf(fmt, VA_ARGS);
flushout();
VA_END();

View File

@@ -75,9 +75,6 @@ error VA_DECL(const char *,s)
VA_INIT(s, const char *);
/* error() may get called before tty is initialized */
if (iflags.window_inited) end_screen();
#ifdef WIN32CON
if (iflags.rawio) set_output_mode(0);
#endif
putchar('\n');
Vprintf(s,VA_ARGS);
putchar('\n');

View File

@@ -103,9 +103,6 @@ getlock()
# if defined(MSDOS) && defined(NO_TERMS)
int grmode = iflags.grmode;
# endif
#ifdef WIN32CON
if (iflags.rawio) set_output_mode(0);
#endif
/* we ignore QUIT and INT at this point */
if (!lock_file(HLOCK, LOCKPREFIX, 10)) {
wait_synch();
@@ -263,9 +260,6 @@ gotlock:
# if defined(MSDOS) && defined(NO_TERMS)
if (grmode) gr_init();
# endif
#ifdef WIN32CON
if (!iflags.rawio) set_output_mode(1);
#endif
}
#endif /* PC_LOCKING */