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