rip.c (1858B)
1 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 2 /* rip.c - version 1.0.2 */ 3 4 #include <stdio.h> 5 #include "hack.h" 6 7 extern char plname[]; 8 9 static char *rip[] = { 10 " ----------", 11 " / \\", 12 " / REST \\", 13 " / IN \\", 14 " / PEACE \\", 15 " / \\", 16 " | |", 17 " | |", 18 " | |", 19 " | |", 20 " | |", 21 " | 1001 |", 22 " *| * * * | *", 23 " _________)/\\\\_//(\\/(/\\)/\\//\\/|_)_______\n", 24 0 25 }; 26 27 outrip(){ 28 register char **dp = rip; 29 register char *dpx; 30 char buf[BUFSZ]; 31 register x,y; 32 33 cls(); 34 (void) strcpy(buf, plname); 35 buf[16] = 0; 36 center(6, buf); 37 (void) sprintf(buf, "%ld AU", u.ugold); 38 center(7, buf); 39 (void) sprintf(buf, "killed by%s", 40 !strncmp(killer, "the ", 4) ? "" : 41 !strcmp(killer, "starvation") ? "" : 42 index(vowels, *killer) ? " an" : " a"); 43 center(8, buf); 44 (void) strcpy(buf, killer); 45 if(strlen(buf) > 16) { 46 register int i,i0,i1; 47 i0 = i1 = 0; 48 for(i = 0; i <= 16; i++) 49 if(buf[i] == ' ') i0 = i, i1 = i+1; 50 if(!i0) i0 = i1 = 16; 51 buf[i1 + 16] = 0; 52 center(10, buf+i1); 53 buf[i0] = 0; 54 } 55 center(9, buf); 56 (void) sprintf(buf, "%4d", getyear()); 57 center(11, buf); 58 for(y=8; *dp; y++,dp++){ 59 x = 0; 60 dpx = *dp; 61 while(dpx[x]) { 62 while(dpx[x] == ' ') x++; 63 curs(x,y); 64 while(dpx[x] && dpx[x] != ' '){ 65 curx++; 66 (void) putchar(dpx[x++]); 67 } 68 } 69 } 70 getret(); 71 } 72 73 center(line, text) int line; char *text; { 74 register char *ip,*op; 75 ip = text; 76 op = &rip[line][28 - ((strlen(text)+1)/2)]; 77 while(*ip) *op++ = *ip++; 78 }