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