version 1.3, 1997/02/25 00:05:07 |
version 1.4, 2001/11/19 19:02:18 |
|
|
#include "tt.h" |
#include "tt.h" |
|
|
wwscroll(w, n) |
wwscroll(w, n) |
register struct ww *w; |
struct ww *w; |
int n; |
int n; |
{ |
{ |
register dir; |
int dir; |
register top; |
int top; |
|
|
if (n == 0) |
if (n == 0) |
return; |
return; |
|
|
* And don't redraw 'leaveit' lines. |
* And don't redraw 'leaveit' lines. |
*/ |
*/ |
wwscroll1(w, row1, row2, dir, leaveit) |
wwscroll1(w, row1, row2, dir, leaveit) |
register struct ww *w; |
struct ww *w; |
int row1, row2, dir; |
int row1, row2, dir; |
int leaveit; |
int leaveit; |
{ |
{ |
register i; |
int i; |
int row1x, row2x; |
int row1x, row2x; |
int nvis; |
int nvis; |
int nvismax; |
int nvismax; |
|
|
* Fix up the old screen. |
* Fix up the old screen. |
*/ |
*/ |
{ |
{ |
register union ww_char *tmp; |
union ww_char *tmp; |
register union ww_char **cpp, **cqq; |
union ww_char **cpp, **cqq; |
|
|
if (dir > 0) { |
if (dir > 0) { |
cpp = &wwos[row1x]; |
cpp = &wwos[row1x]; |
|
|
*/ |
*/ |
if (dir > 0) { |
if (dir > 0) { |
{ |
{ |
register union ww_char *tmp; |
union ww_char *tmp; |
register union ww_char **cpp, **cqq; |
union ww_char **cpp, **cqq; |
|
|
cpp = &wwns[row1x]; |
cpp = &wwns[row1x]; |
cqq = cpp + 1; |
cqq = cpp + 1; |
|
|
*cpp = tmp; |
*cpp = tmp; |
} |
} |
if (scrolled) { |
if (scrolled) { |
register char *p, *q; |
char *p, *q; |
|
|
p = &wwtouched[row1x]; |
p = &wwtouched[row1x]; |
q = p + 1; |
q = p + 1; |
|
|
*p++ = *q++; |
*p++ = *q++; |
*p |= WWU_TOUCHED; |
*p |= WWU_TOUCHED; |
} else { |
} else { |
register char *p; |
char *p; |
|
|
p = &wwtouched[row1x]; |
p = &wwtouched[row1x]; |
for (i = row2x - row1x; --i >= 0;) |
for (i = row2x - row1x; --i >= 0;) |
|
|
wwredrawwin1(w, row2x - 1, row2 - leaveit, dir); |
wwredrawwin1(w, row2x - 1, row2 - leaveit, dir); |
} else { |
} else { |
{ |
{ |
register union ww_char *tmp; |
union ww_char *tmp; |
register union ww_char **cpp, **cqq; |
union ww_char **cpp, **cqq; |
|
|
cpp = &wwns[row2x]; |
cpp = &wwns[row2x]; |
cqq = cpp - 1; |
cqq = cpp - 1; |
|
|
*cqq = tmp; |
*cqq = tmp; |
} |
} |
if (scrolled) { |
if (scrolled) { |
register char *p, *q; |
char *p, *q; |
|
|
p = &wwtouched[row2x]; |
p = &wwtouched[row2x]; |
q = p - 1; |
q = p - 1; |
|
|
*--p = *--q; |
*--p = *--q; |
*q |= WWU_TOUCHED; |
*q |= WWU_TOUCHED; |
} else { |
} else { |
register char *p; |
char *p; |
|
|
p = &wwtouched[row1x]; |
p = &wwtouched[row1x]; |
for (i = row2x - row1x; --i >= 0;) |
for (i = row2x - row1x; --i >= 0;) |
|
|
} |
} |
} else { |
} else { |
if (scrolled) { |
if (scrolled) { |
register char *p; |
char *p; |
|
|
p = &wwtouched[row1x]; |
p = &wwtouched[row1x]; |
for (i = row2x - row1x; --i >= 0;) |
for (i = row2x - row1x; --i >= 0;) |