DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T d

⟦e03ab1725⟧ TextFile

    Length: 3917 (0xf4d)
    Types: TextFile
    Names: »display.c.orig«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/X/Xwanderer/display.c.orig« 

TextFile

#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
}