MFC: Make apps using '#define _POSIX_C_SOURCE' compile.
[dragonfly.git] / games / hack / hack.rip.c
bloba5541b832eb5a16f9b94a2257362308fc1c23c9e
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 /* $DragonFly: src/games/hack/hack.rip.c,v 1.4 2006/08/21 19:45:32 pavalos Exp $ */
6 #include "hack.h"
8 static void center(int, const char *);
10 static char rip[][60] = {
11 " ----------",
12 " / \\",
13 " / REST \\",
14 " / IN \\",
15 " / PEACE \\",
16 " / \\",
17 " | |",
18 " | |",
19 " | |",
20 " | |",
21 " | |",
22 " | 1001 |",
23 " *| * * * | *",
24 " _________)/\\\\_//(\\/(/\\)/\\//\\/|_)_______\n",
26 static const int n_rips = sizeof(rip) / sizeof(rip[0]);
28 void
29 outrip(void)
31 char *dpx;
32 char buf[BUFSZ];
33 int j, x, y;
35 cls();
36 strcpy(buf, plname);
37 buf[16] = 0;
38 center(6, buf);
39 sprintf(buf, "%ld AU", u.ugold);
40 center(7, buf);
41 sprintf(buf, "killed by%s",
42 !strncmp(killer, "the ", 4) ? "" :
43 !strcmp(killer, "starvation") ? "" :
44 index(vowels, *killer) ? " an" : " a");
45 center(8, buf);
46 strcpy(buf, killer);
47 if(strlen(buf) > 16) {
48 int i,i0,i1;
49 i0 = i1 = 0;
50 for(i = 0; i <= 16; i++)
51 if(buf[i] == ' ') i0 = i, i1 = i+1;
52 if(!i0) i0 = i1 = 16;
53 buf[i1 + 16] = 0;
54 center(10, buf+i1);
55 buf[i0] = 0;
57 center(9, buf);
58 sprintf(buf, "%4d", getyear());
59 center(11, buf);
60 for(y = 8, j = 0; j < n_rips; y++, j++){
61 x = 0;
62 dpx = rip[j];
63 while(dpx[x]) {
64 while(dpx[x] == ' ') x++;
65 curs(x,y);
66 while(dpx[x] && dpx[x] != ' '){
67 if(done_stopprint)
68 return;
69 curx++;
70 putchar(dpx[x++]);
74 getret();
77 static void
78 center(int line, const char *text)
80 const char *ip = text;
81 char *op;
83 op = &rip[line][28 - ((strlen(text)+1)/2)];
84 while(*ip) *op++ = *ip++;