diff options
author | cgd <cgd@NetBSD.org> | 1995-03-23 08:28:00 +0000 |
---|---|---|
committer | cgd <cgd@NetBSD.org> | 1995-03-23 08:28:00 +0000 |
commit | 94b5353c71e7246077d468afe68d51ce85fc213d (patch) | |
tree | 0b6f70b8110f5d6650a6083460424df854c415f8 /larn/bill.c | |
parent | 1c0b80f0fe7a28cd947ace3e69f5fd2ac8ed47cb (diff) | |
download | bsdgames-darwin-94b5353c71e7246077d468afe68d51ce85fc213d.tar.gz bsdgames-darwin-94b5353c71e7246077d468afe68d51ce85fc213d.tar.zst bsdgames-darwin-94b5353c71e7246077d468afe68d51ce85fc213d.zip |
merge with Lite, new RCS id conventions, etc.
Diffstat (limited to 'larn/bill.c')
-rw-r--r-- | larn/bill.c | 266 |
1 files changed, 146 insertions, 120 deletions
diff --git a/larn/bill.c b/larn/bill.c index 3336a06f..53625023 100644 --- a/larn/bill.c +++ b/larn/bill.c @@ -1,136 +1,162 @@ -#ifndef lint -static char rcsid[] = "$Id: bill.c,v 1.2 1993/08/02 17:19:54 mycroft Exp $"; -#endif /* not lint */ +/* $NetBSD: bill.c,v 1.3 1995/03/23 08:33:10 cgd Exp $ */ -#include "header.h" -/* bill.c "Larn is copyrighted 1986 by Noah Morgan. */ -static char mail600[32]; -/* - * function to create the tax bill for the user +/*- + * Copyright (c) 1991 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ -static int pid; -static letter1() - { - sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ - if (lcreat(mail600) < 0) { write(1,"can't write 600 letter\n",23); return(0);} - lprcat("\n\n\n\n\n\n\n\n\n\n\n\n"); - standout("From:"); lprcat(" the LRS (Larn Revenue Service)\n"); - standout("\nSubject:"); lprcat(" undeclared income\n"); - lprcat("\n We heard you survived the caverns of Larn. Let me be the"); - lprcat("\nfirst to congratulate you on your success. It is quite a feat."); - lprcat("\nIt must also have been very profitable for you."); - lprcat("\n\n The Dungeon Master has informed us that you brought"); - lprintf("\n%d gold pieces back with you from your journey. As the",(long)c[GOLD]); - lprcat("\ncounty of Larn is in dire need of funds, we have spared no time"); - lprintf("\nin preparing your tax bill. You owe %d gold pieces as", - (long)c[GOLD]*TAXRATE); - lprcat("\nof this notice, and is due within 5 days. Failure to pay will"); - lprcat("\nmean penalties. Once again, congratulations, We look forward"); - lprcat("\nto your future successful expeditions.\n"); - lwclose(); return(1); - } - -static letter2() - { - sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ - if (lcreat(mail600) < 0) { write(1,"can't write 601 letter\n",23); return(0);} - lprcat("\n\n\n\n\n\n\n\n\n\n\n\n"); - standout("From:"); lprcat(" His Majesty King Wilfred of Larndom\n"); - standout("\nSubject:"); lprcat(" a noble deed\n"); - lprcat("\n I have heard of your magnificent feat, and I, King Wilfred,"); - lprcat("\nforthwith declare today to be a national holiday. Furthermore,"); - lprcat("\nhence three days, Ye be invited to the castle to receive the"); - lprcat("\nhonour of Knight of the realm. Upon thy name shall it be written. . ."); - lprcat("\nBravery and courage be yours."); - lprcat("\nMay you live in happiness forevermore . . .\n"); - lwclose(); return(1); - } -static letter3() - { - sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ - if (lcreat(mail600) < 0) { write(1,"can't write 602 letter\n",23); return(0);} - lprcat("\n\n\n\n\n\n\n\n\n\n\n\n"); - standout("From:"); lprcat(" Count Endelford\n"); - standout("\nSubject:"); lprcat(" You Bastard!\n"); - lprcat("\n I heard (from sources) of your journey. Congratulations!"); - lprcat("\nYou Bastard! With several attempts I have yet to endure the"); - lprcat(" caves,\nand you, a nobody, makes the journey! From this time"); - lprcat(" onward, bewarned\nupon our meeting you shall pay the price!\n"); - lwclose(); return(1); - } +#ifndef lint +#if 0 +static char sccsid[] = "@(#)bill.c 5.2 (Berkeley) 5/28/91"; +#else +static char rcsid[] = "$NetBSD: bill.c,v 1.3 1995/03/23 08:33:10 cgd Exp $"; +#endif +#endif /* not lint */ -static letter4() - { - sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ - if (lcreat(mail600) < 0) { write(1,"can't write 603 letter\n",23); return(0);} - lprcat("\n\n\n\n\n\n\n\n\n\n\n\n"); - standout("From:"); lprcat(" Mainair, Duke of Larnty\n"); - standout("\nSubject:"); lprcat(" High Praise\n"); - lprcat("\n With a certainty a hero I declare to be amongst us! A nod of"); - lprcat("\nfavour I send to thee. Me thinks Count Endelford this day of"); - lprcat("\nright breath'eth fire as of dragon of whom ye are slayer. I"); - lprcat("\nyearn to behold his anger and jealously. Should ye choose to"); - lprcat("\nunleash some of thy wealth upon those who be unfortunate, I,"); - lprcat("\nDuke Mainair, Shall equal thy gift also.\n"); - lwclose(); return(1); - } +#include <sys/file.h> +#include <sys/wait.h> +#include <string.h> +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include "header.h" -static letter5() - { - sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ - if (lcreat(mail600) < 0) { write(1,"can't write 604 letter\n",23); return(0);} - lprcat("\n\n\n\n\n\n\n\n\n\n\n\n"); - standout("From:"); lprcat(" St. Mary's Children's Home\n"); - standout("\nSubject:"); lprcat(" these poor children\n"); - lprcat("\n News of your great conquests has spread to all of Larndom."); - lprcat("\nMight I have a moment of a great man's time. We here at St."); - lprcat("\nMary's Children's Home are very poor, and many children are"); - lprcat("\nstarving. Disease is widespread and very often fatal without"); - lprcat("\ngood food. Could you possibly find it in your heart to help us"); - lprcat("\nin our plight? Whatever you could give will help much."); - lprcat("\n(your gift is tax deductible)\n"); - lwclose(); return(1); - } +/* bill.c Larn is copyrighted 1986 by Noah Morgan. */ -static letter6() - { - sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ - if (lcreat(mail600) < 0) { write(1,"can't write 605 letter\n",23); return(0);} - lprcat("\n\n\n\n\n\n\n\n\n\n\n\n"); - standout("From:"); lprcat(" The National Cancer Society of Larn\n"); - standout("\nSubject:"); lprcat(" hope\n"); - lprcat("\nCongratulations on your successful expedition. We are sure much"); - lprcat("\ncourage and determination were needed on your quest. There are"); - lprcat("\nmany though, that could never hope to undertake such a journey"); - lprcat("\ndue to an enfeebling disease -- cancer. We at the National"); - lprcat("\nCancer Society of Larn wish to appeal to your philanthropy in"); - lprcat("\norder to save many good people -- possibly even yourself a few"); - lprcat("\nyears from now. Much work needs to be done in researching this"); - lprcat("\ndreaded disease, and you can help today. Could you please see it"); - lprcat("\nin your heart to give generously? Your continued good health"); - lprcat("\ncan be your everlasting reward.\n"); - lwclose(); return(1); - } +char *mail[] = { + "From: the LRS (Larn Revenue Service)\n", + "~s undeclared income\n", + "\n We have heard you survived the caverns of Larn. Let me be the", + "\nfirst to congratulate you on your success. It was quite a feat.", + "\nIt was also very profitable for you...", + "\n\n The Dungeon Master has informed us that you brought", + "1", + "\ncounty of Larn is in dire need of funds, we have spared no time", + "2", + "\nof this notice, and is due within 5 days. Failure to pay will", + "\nmean penalties. Once again, congratulations, We look forward", + "\nto your future successful expeditions.\n", + NULL, + "From: His Majesty King Wilfred of Larndom\n", + "~s a noble deed\n", + "\n I have heard of your magnificent feat, and I, King Wilfred,", + "\nforthwith declare today to be a national holiday. Furthermore,", + "\nhence three days, ye be invited to the castle to receive the", + "\nhonour of Knight of the realm. Upon thy name shall it be written...", + "\n\nBravery and courage be yours.", + "\n\nMay you live in happiness forevermore...\n", + NULL, + "From: Count Endelford\n", + "~s You Bastard!\n", + "\n I have heard (from sources) of your journey. Congratulations!", + "\nYou Bastard! With several attempts I have yet to endure the", + " caves,\nand you, a nobody, makes the journey! From this time", + " onward, bewarned\nupon our meeting you shall pay the price!\n", + NULL, + "From: Mainair, Duke of Larnty\n", + "~s High Praise\n", + "\n With certainty, a hero I declare to be amongst us! A nod of", + "\nfavour I send to thee. Me thinks Count Endelford this day of", + "\nright breath'eth fire as of dragon of whom ye are slayer. I", + "\nyearn to behold his anger and jealously. Should ye choose to", + "\nunleash some of thy wealth upon those who be unfortunate, I,", + "\nDuke Mainair, shall equal thy gift also.\n", + NULL, + "From: St. Mary's Children's Home\n", + "~s these poor children\n", + "\n News of your great conquests has spread to all of Larndom.", + "\nMight I have a moment of a great adventurers's time? We here at", + "\nSt. Mary's Children's Home are very poor, and many children are", + "\nstarving. Disease is widespread and very often fatal without", + "\ngood food. Could you possibly find it in your heart to help us", + "\nin our plight? Whatever you could give will help much.", + "\n(your gift is tax deductible)\n", + NULL, + "From: The National Cancer Society of Larn\n", + "~s hope\n", + "\nCongratulations on your successful expedition. We are sure much", + "\ncourage and determination were needed on your quest. There are", + "\nmany though, that could never hope to undertake such a journey", + "\ndue to an enfeebling disease -- cancer. We at the National", + "\nCancer Society of Larn wish to appeal to your philanthropy in", + "\norder to save many good people -- possibly even yourself a few", + "\nyears from now. Much work needs to be done in researching this", + "\ndreaded disease, and you can help today. Could you please see it", + "\nin your heart to give generously? Your continued good health", + "\ncan be your everlasting reward.\n", + NULL +}; /* * function to mail the letters to the player if a winner */ -static int (*pfn[])()= { letter1, letter2, letter3, letter4, letter5, letter6 }; + +void mailbill() - { +{ register int i; + char fname[32]; char buf[128]; - wait(0); pid=getpid(); - if (fork() == 0) - { + char **cp; + int fd; + + wait(0); + if (fork() == 0) { resetscroll(); - for (i=0; i<sizeof(pfn)/sizeof(int (*)()); i++) - if ((*pfn[i])()) - { - sleep(20); sprintf(buf,"mail %s < %s",loginname,mail600); - system(buf); unlink(mail600); - } - exit(); + cp = mail; + sprintf(fname, "/tmp/#%dlarnmail", getpid()); + for (i = 0; i < 6; i++) { + if ((fd = open(fname, O_WRONLY | O_TRUNC | O_CREAT), + 0666) == -1) + exit(0); + while (*cp != NULL) { + if (*cp[0] == '1') { + sprintf(buf, "\n%d gold pieces back with you from your journey. As the", + (long)c[GOLD]); + write(fd, buf, strlen(buf)); + } else if (*cp[0] == '2') { + sprintf(buf, "\nin preparing your tax bill. You owe %d gold pieces as", (long)c[GOLD]*TAXRATE); + write(fd, buf, strlen(buf)); + } else + write(fd, *cp, strlen(*cp)); + cp++; + } + cp++; + + close(fd); + sprintf(buf, "mail -I %s < %s > /dev/null", + loginname, fname); + system(buf); + unlink(fname); } } + exit(0); +} |