This is rip.c in view mode; [Download] [Up]
/* SCCS Id: @(#)rip.c 3.0 88/04/27 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ #include "hack.h" #include <ctype.h> static void FDECL(center,(int,char *)); static const char *rip_txt[] = { " ----------", " / \\", " / REST \\", " / IN \\", " / PEACE \\", " / \\", " | |", " | |", " | |", " | |", " | |", " | 1001 |", " *| * * * | *", " _________)/\\\\_//(\\/(/\\)/\\//\\/|_)_______\n", 0 }; char **rip; static void center(line, text) int line; char *text; { register char *ip,*op; ip = text; op = &rip[line][28 - ((strlen(text)+1)>>1)]; while(*ip) *op++ = *ip++; } void outrip(){ register char **dp; register char *dpx; char buf[BUFSZ]; register int x, y; int killed_by_line = 0; rip = dp = (char **) alloc(sizeof(rip_txt)); if (!dp) return; for (x = 0; rip_txt[x]; x++) { dp[x] = (char *) alloc((unsigned int)(strlen(rip_txt[x]) + 1)); if (!dp[x]) return; Strcpy(dp[x], rip_txt[x]); } dp[x] = (char *)0; cls(); Sprintf(buf, "%s", plname); buf[16] = 0; center(6, buf); Sprintf(buf, "%ld Au", u.ugold); center(7, buf); if (killer_format != NO_KILLER_PREFIX) { killed_by_line = 1; Strcpy(buf, "killed by"); if (killer_format == KILLED_BY_AN) Strcat(buf, index(vowels, *killer) ? " an" : " a"); center(8, buf); } Strcpy(buf, killer); if(strlen(buf) > 16) { register int i,i0,i1; i0 = i1 = 0; for(i = 0; i <= 16; i++) if(buf[i] == ' ') i0 = i, i1 = i+1; if(!i0) i0 = i1 = 16; buf[i1 + 16] = 0; center(9 + killed_by_line, buf+i1); buf[i0] = 0; } center(8 + killed_by_line, buf); Sprintf(buf, "%4d", getyear()); center(11, buf); for(y=8; *dp; y++,dp++){ x = 0; dpx = *dp; while(dpx[x]) { while(dpx[x] == ' ') x++; curs(x,y); while(dpx[x] && dpx[x] != ' '){ if(done_stopprint) return; curx++; (void) putchar(dpx[x++]); } } } getret(); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.