some of Ray Chason's MSDOS and other fixes
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 video.c $NHDT-Date: 1432512791 2015/05/25 00:13:11 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $ */
|
||||
/* NetHack 3.6 video.c $NHDT-Date: 1457207042 2016/03/05 19:44:02 $ $NHDT-Branch: chasonr $:$NHDT-Revision: 1.11 $ */
|
||||
/* Copyright (c) NetHack PC Development Team 1993, 1994, 2001 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
/* */
|
||||
@@ -79,6 +79,11 @@ get_scr_size()
|
||||
if (iflags.usevga) {
|
||||
vga_get_scr_size();
|
||||
} else
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
if (iflags.usevesa) {
|
||||
vesa_get_scr_size();
|
||||
} else
|
||||
#endif
|
||||
txt_get_scr_size();
|
||||
}
|
||||
@@ -141,6 +146,10 @@ backsp()
|
||||
#ifdef SCREEN_VGA
|
||||
} else if (iflags.usevga) {
|
||||
vga_backsp();
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_backsp();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -153,6 +162,10 @@ clear_screen()
|
||||
#ifdef SCREEN_VGA
|
||||
} else if (iflags.usevga) {
|
||||
vga_clear_screen(BACKGROUND_VGA_COLOR);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_clear_screen(BACKGROUND_VGA_COLOR);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -168,6 +181,10 @@ void cl_end() /* clear to end of line */
|
||||
#ifdef SCREEN_VGA
|
||||
} else if (iflags.usevga) {
|
||||
vga_cl_end(col, row);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_cl_end(col, row);
|
||||
#endif
|
||||
}
|
||||
tty_curs(BASE_WINDOW, (int) ttyDisplay->curx + 1, (int) ttyDisplay->cury);
|
||||
@@ -182,6 +199,10 @@ void cl_eos() /* clear to end of screen */
|
||||
#ifdef SCREEN_VGA
|
||||
} else if (iflags.usevga) {
|
||||
vga_cl_eos(cy);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_cl_eos(cy);
|
||||
#endif
|
||||
}
|
||||
tty_curs(BASE_WINDOW, (int) ttyDisplay->curx + 1, (int) ttyDisplay->cury);
|
||||
@@ -198,6 +219,10 @@ register int col, row;
|
||||
#ifdef SCREEN_VGA
|
||||
} else if (iflags.usevga) {
|
||||
vga_gotoloc(col, row);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_gotoloc(col, row);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -223,6 +248,10 @@ home()
|
||||
#ifdef SCREEN_VGA
|
||||
} else if (iflags.usevga) {
|
||||
vga_gotoloc(0, 0);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_gotoloc(0, 0);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -236,6 +265,10 @@ int col, row;
|
||||
#ifdef SCREEN_VGA
|
||||
} else if (iflags.usevga) {
|
||||
vga_gotoloc(col, row);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_gotoloc(col, row);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -360,6 +393,10 @@ tty_end_screen()
|
||||
#ifdef SCREEN_VGA
|
||||
} else if (iflags.usevga) {
|
||||
vga_tty_end_screen();
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_tty_end_screen();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -395,6 +432,11 @@ int *wid, *hgt;
|
||||
if (iflags.usevga) {
|
||||
vga_tty_startup(wid, hgt);
|
||||
} else
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
if (iflags.usevesa) {
|
||||
vesa_tty_startup(wid, hgt);
|
||||
} else
|
||||
#endif
|
||||
txt_startup(wid, hgt);
|
||||
|
||||
@@ -430,39 +472,44 @@ tty_start_screen()
|
||||
void
|
||||
gr_init()
|
||||
{
|
||||
if (iflags.usevga) {
|
||||
#ifdef SCREEN_VGA
|
||||
if (iflags.usevga) {
|
||||
vga_Init();
|
||||
} else
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
if (iflags.usevesa) {
|
||||
vesa_Init();
|
||||
|
||||
} else
|
||||
#endif
|
||||
#ifdef SCREEN_8514
|
||||
} else if (iflags.use8514) {
|
||||
if (iflags.use8514) {
|
||||
v8514_Init();
|
||||
} else
|
||||
#endif
|
||||
}
|
||||
{}
|
||||
}
|
||||
|
||||
void
|
||||
gr_finish()
|
||||
{
|
||||
if (iflags.grmode) {
|
||||
if (iflags.usevga) {
|
||||
#ifdef SCREEN_VGA
|
||||
if (iflags.usevga) {
|
||||
vga_Finish();
|
||||
} else
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
if (iflags.usevesa) {
|
||||
vesa_Finish();
|
||||
} else
|
||||
#endif
|
||||
#ifdef SCREEN_8514
|
||||
} else if (iflags.use8514) {
|
||||
if (iflags.use8514) {
|
||||
v8514_Finish();
|
||||
} else
|
||||
#endif
|
||||
}
|
||||
{}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -510,6 +557,10 @@ const char *s;
|
||||
#ifdef SCREEN_VGA
|
||||
} else if (iflags.usevga) {
|
||||
vga_xputs(s, col, row);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_xputs(s, col, row);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -529,6 +580,10 @@ char ch;
|
||||
} else if (iflags.usevga) {
|
||||
vga_xputc(ch, attribute);
|
||||
#endif /*SCREEN_VGA*/
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.usevesa) {
|
||||
vesa_xputc(ch, attribute);
|
||||
#endif /*SCREEN_VESA*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -541,8 +596,12 @@ unsigned special;
|
||||
if (!iflags.grmode || !iflags.tile_view) {
|
||||
xputc((char) ch);
|
||||
#ifdef SCREEN_VGA
|
||||
} else {
|
||||
} else if (iflags.grmode && iflags.usevga) {
|
||||
vga_xputg(glyphnum, ch, special);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
} else if (iflags.grmode && iflags.usevesa) {
|
||||
vesa_xputg(glyphnum, ch, special);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -555,9 +614,13 @@ char *posbar;
|
||||
if (!iflags.grmode)
|
||||
return;
|
||||
#ifdef SCREEN_VGA
|
||||
else
|
||||
else if (iflags.usevga)
|
||||
vga_update_positionbar(posbar);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
else if (iflags.usevesa)
|
||||
vesa_update_positionbar(posbar);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -593,7 +656,12 @@ void
|
||||
DrawCursor()
|
||||
{
|
||||
#ifdef SCREEN_VGA
|
||||
vga_DrawCursor();
|
||||
if (iflags.usevga)
|
||||
vga_DrawCursor();
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
if (iflags.usevesa)
|
||||
vesa_DrawCursor();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -601,7 +669,12 @@ void
|
||||
HideCursor()
|
||||
{
|
||||
#ifdef SCREEN_VGA
|
||||
vga_HideCursor();
|
||||
if (iflags.usevga)
|
||||
vga_HideCursor();
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
if (iflags.usevesa)
|
||||
vesa_HideCursor();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -854,7 +927,9 @@ char *sopt;
|
||||
* getch();
|
||||
*/
|
||||
iflags.grmode = 0;
|
||||
iflags.hasvesa = 0;
|
||||
iflags.hasvga = 0;
|
||||
iflags.usevesa = 0;
|
||||
iflags.usevga = 0;
|
||||
|
||||
if (strncmpi(sopt, "def", 3) == 0) { /* default */
|
||||
@@ -892,9 +967,10 @@ char *sopt;
|
||||
#endif
|
||||
/*
|
||||
* Auto-detect Priorities (arbitrary for now):
|
||||
* VGA
|
||||
* VESA, VGA
|
||||
*/
|
||||
if (iflags.hasvga) {
|
||||
if (iflags.hasvesa) iflags.usevesa = 1;
|
||||
else if (iflags.hasvga) {
|
||||
iflags.usevga = 1;
|
||||
/* VGA depends on BIOS to enable function keys*/
|
||||
iflags.BIOS = 1;
|
||||
@@ -911,9 +987,13 @@ tileview(enable)
|
||||
boolean enable;
|
||||
{
|
||||
#ifdef SCREEN_VGA
|
||||
if (iflags.grmode)
|
||||
if (iflags.grmode && iflags.usevga)
|
||||
vga_traditional(enable ? FALSE : TRUE);
|
||||
#endif
|
||||
#ifdef SCREEN_VESA
|
||||
if (iflags.grmode && iflags.usevesa)
|
||||
vesa_traditional(enable ? FALSE : TRUE);
|
||||
#endif
|
||||
}
|
||||
#endif /* NO_TERMS */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user