|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T d
Length: 3917 (0xf4d)
Types: TextFile
Names: »display.c.orig«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/X/Xwanderer/display.c.orig«
#include "wand_head.h"
#ifdef XWANDER
extern GC linegc;
extern int do_repaint;
#endif
void map(row_ptr)
char (*row_ptr)[ROWLEN+1];
{
int x,y;
char ch;
#ifdef XWANDER
drawmap(row_ptr,1);
#else
move(0,0);
addch('+');
for(x = 0;x < ROWLEN; x++)
addch('-');
addch('+');
for(y = 0;y < NOOFROWS; y++)
{
move(y+1,0);
addch('|');
for(x = 0; x<= ROWLEN; x++)
{
ch = (*row_ptr)[x];
if((ch == 'M')||(ch == 'S'))
ch = ' ';
addch(ch);
}
addch('|');
row_ptr++;
}
move(y+1,0);
addch('+');
for(x = 0;x < ROWLEN; x++)
addch('-');
addch('+');
move(18,0);
addstr("Press any key to return to the game.");
refresh();
#endif
#ifdef XWANDER
message(0,"Press any key to return to the game.");
do_repaint = 1;
#endif
(void) getchar();
#ifndef XWANDER
move(18,0);
addstr(" ");
refresh();
for(y=0;y<=(NOOFROWS+1);y++)
{
move(y,0);
for(x=0;x<=(ROWLEN+2);x++)
addch(' ');
}
#else
erase_message(0);
/* clear out the small map */
XClearArea(dpy, win, 5, 5, ICON_WIDE * 11, ICON_HIGH * 7, 0);
#endif
}
#ifdef XWANDER
drawmap(row_ptr, er)
char (*row_ptr)[ROWLEN+1];
{
int x,y;
char ch;
if (er) {
/* erase the magnified map */
XClearArea(dpy, win, 5, 5, ICON_WIDE * 11, ICON_HIGH * 7, 0);
}
for (x= -1; x <= ROWLEN+1; x++)
paint_small_square(x ,-1, '=');
for(y = 0;y < NOOFROWS; y++)
{
paint_small_square((-1), y,'=');
for(x = 0; x<= ROWLEN; x++)
{
ch = (*row_ptr)[x];
if((ch == 'M')||(ch == 'S'))
ch = ' ';
paint_small_square(x,y,ch);
}
paint_small_square(x,y,'=');
row_ptr++;
}
for (x= -1; x <= ROWLEN+1; x++)
paint_small_square(x, y, '=');
do_repaint = 1;
XDrawLine(dpy,win,linegc,2,2,2,ICON_HIGH*7+6);
XDrawLine(dpy,win,linegc,2,ICON_HIGH*7+6,ICON_WIDE*11+6,ICON_HIGH*7+6);
XDrawLine(dpy,win,linegc,ICON_WIDE*11+6,ICON_HIGH*7+6,ICON_WIDE*11+6,2);
XDrawLine(dpy,win,linegc,ICON_WIDE*11+6,2,2,2);
}
#endif
void display(cx,cy,row_ptr,score)
char (*row_ptr)[ROWLEN+1];
int cx,cy,score;
{
int x,y = 0,
x_coord,y_coord;
char ch;
while(y<(cy-3))
{
y++;
row_ptr++;
};
#ifndef XWANDER
move(0,0);
addstr("+---------------------------------+");
move(15,0);
addstr("+---------------------------------+");
#else
XDrawLine(dpy,win,linegc,2,2,2,ICON_HIGH*7+6);
XDrawLine(dpy,win,linegc,2,ICON_HIGH*7+6,ICON_WIDE*11+6,ICON_HIGH*7+6);
XDrawLine(dpy,win,linegc,ICON_WIDE*11+6,ICON_HIGH*7+6,ICON_WIDE*11+6,2);
XDrawLine(dpy,win,linegc,ICON_WIDE*11+6,2,2,2);
#endif
for(y=(cy-3);y<=(cy+3);y++)
{
#ifndef XWANDER
y_coord = (y+3-cy)*2;
if ((y<0) || (y>=NOOFROWS))
{
move(y_coord+1,0);
addstr("|#################################|");
move(y_coord+2,0);
addstr("|#################################|");
#else
y_coord = (y+3-cy);
if ((y<0) || (y>=NOOFROWS))
{
for (x = cx-5; x <= (cx+5); x++) {
x_coord = (x+5-cx);
draw_symbol(x_coord,y_coord,'#');
}
#endif
}
else
{
#ifndef XWANDER
move(y_coord+1,0);
addch('|');
move(y_coord+1,34);
addch('|');
move(y_coord+2,0);
addch('|');
move(y_coord+2,34);
addch('|');
#endif
for(x=(cx-5);x<=(cx+5);x++)
{
#ifndef XWANDER
x_coord = (x+5-cx)*3;
#else
x_coord = (x+5-cx);
#endif
if ((x<0) || (x>ROWLEN-1))
draw_symbol(x_coord,y_coord,'#');
else
{
ch = (*row_ptr)[x];
draw_symbol(x_coord,y_coord,ch);
}
};
row_ptr++;
} /* end if */
} /* end y loop */
#ifndef XWANDER
move(16,0);
refresh();
#endif
}