Source:NetHack 2.3e/rip.c

Below is the full text to rip.c from the source code of NetHack 2.3e. To link to a particular line, write [[NetHack 2.3e/rip.c#line123 ]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

1.   /*	SCCS Id: @(#)rip.c	2.3	88/02/11 2.   /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3.     4.    #include   5.    #include "hack.h"  6.    #ifdef GENIX 7.   #define	void	int	/* jhn - mod to prevent compiler from bombing */ 8.   #endif 9.    10.   extern char plname[]; 11.   12.   static char *rip[] = { 13.  "                       --",  14.   "                      /          \\",  15.   "                     /    REST    \\", 16.  "                    /      IN      \\", 17.  "                   /     PEACE      \\", 18.  "                  /                  \\",  19.   "                  |                  |",  20.   "                  |                  |",  21.   "                  |                  |",  22.   "                  |                  |",  23.   "                  |                  |",  24.   "                  |       1001       |",  25.   "                 *|     *  *  *      | *",  26.   "        _________)/\\\\_//(\\/(/\\)/\\//\\/|_)_______\n",  27.   0  28.   };  29.    30.   outrip{  31.   	register char **dp = rip;  32.   	register char *dpx;  33.   	char buf[BUFSZ];  34.   	register x,y;  35.    36.   	cls;  37.   	(void) sprintf(buf,"%s%s", (Badged) ? "Officer " : "", plname); 38.   	buf[16] = 0;  39.   	center(6, buf);  40.   	(void) sprintf(buf, "%ld AU", u.ugold);  41.   	center(7, buf);  42.   	(void) sprintf(buf, "killed by%s", 43.  		!strncmp(killer, "the ", 4) ? "" : 44.   		!strcmp(killer, "starvation") ? "" : 45.   		!strncmp(killer, "Mr.") ? "" : 46.   		!strncmp(killer, "Ms.") ? "" : 47.   #ifdef STOOGES 48.  		!strcmp(killer, "Larry") ? "" : 49.   		!strcmp(killer, "Curly") ? "" : 50.   		!strcmp(killer, "Moe") ? "" : 51.   #endif 52.  		index(vowels, *killer) ? " an" : " a"); 53.   	center(8, buf);  54.   	(void) strcpy(buf, killer);  55.   	if(strlen(buf) > 16) {  56.   	    register int i,i0,i1;  57.   		i0 = i1 = 0;  58.   		for(i = 0; i <= 16; i++)  59.   			if(buf[i] == ' ') i0 = i, i1 = i+1;  60.   		if(!i0) i0 = i1 = 16;  61.   		buf[i1 + 16] = 0;  62.   		center(10, buf+i1);  63.   		buf[i0] = 0;  64.   	}  65.   	center(9, buf);  66.   	(void) sprintf(buf, "%4d", getyear);  67.   	center(11, buf);  68.   	for(y=8; *dp; y++,dp++){  69.   		x = 0;  70.   		dpx = *dp;  71.   		while(dpx[x]) {  72.   			while(dpx[x] == ' ') x++;  73.   			curs(x,y);  74.   			while(dpx[x] && dpx[x] != ' '){  75.   				extern int done_stopprint;  76.   				if(done_stopprint)  77.   					return;  78.   				curx++;  79.   				(void) putchar(dpx[x++]);  80.   			}  81.   		}  82.   	}  83.   	getret;  84.   }  85.    86.   center(line, text) int line; char *text; { 87.  register char *ip,*op; 88.  	ip = text; 89.  	op = &rip[line][28 - ((strlen(text)+1)/2)]; 90.  	while(*ip) *op++ = *ip++; 91.  }