|
|
1.1 root 1: #include "header.h"
2: /* bill.c "Larn is copyrighted 1986 by Noah Morgan. */
3: static char mail600[32];
4: /*
5: * function to create the tax bill for the user
6: */
7: static int pid;
8: static letter1()
9: {
10: sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */
11: if (lcreat(mail600) < 0) { write(1,"can't write 600 letter\n",23); return(0);}
12: lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
13: standout("From:"); lprcat(" the LRS (Larn Revenue Service)\n");
14: standout("\nSubject:"); lprcat(" undeclared income\n");
15: lprcat("\n We heard you survived the caverns of Larn. Let me be the");
16: lprcat("\nfirst to congratulate you on your success. It is quite a feat.");
17: lprcat("\nIt must also have been very profitable for you.");
18: lprcat("\n\n The Dungeon Master has informed us that you brought");
19: lprintf("\n%d gold pieces back with you from your journey. As the",(long)c[GOLD]);
20: lprcat("\ncounty of Larn is in dire need of funds, we have spared no time");
21: lprintf("\nin preparing your tax bill. You owe %d gold pieces as",
22: (long)c[GOLD]*TAXRATE);
23: lprcat("\nof this notice, and is due within 5 days. Failure to pay will");
24: lprcat("\nmean penalties. Once again, congratulations, We look forward");
25: lprcat("\nto your future successful expeditions.\n");
26: lwclose(); return(1);
27: }
28:
29: static letter2()
30: {
31: sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */
32: if (lcreat(mail600) < 0) { write(1,"can't write 601 letter\n",23); return(0);}
33: lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
34: standout("From:"); lprcat(" His Majesty King Wilfred of Larndom\n");
35: standout("\nSubject:"); lprcat(" a noble deed\n");
36: lprcat("\n I have heard of your magnificent feat, and I, King Wilfred,");
37: lprcat("\nforthwith declare today to be a national holiday. Furthermore,");
38: lprcat("\nhence three days, Ye be invited to the castle to receive the");
39: lprcat("\nhonour of Knight of the realm. Upon thy name shall it be written. . .");
40: lprcat("\nBravery and courage be yours.");
41: lprcat("\nMay you live in happiness forevermore . . .\n");
42: lwclose(); return(1);
43: }
44:
45: static letter3()
46: {
47: sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */
48: if (lcreat(mail600) < 0) { write(1,"can't write 602 letter\n",23); return(0);}
49: lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
50: standout("From:"); lprcat(" Count Endelford\n");
51: standout("\nSubject:"); lprcat(" You Bastard!\n");
52: lprcat("\n I heard (from sources) of your journey. Congratulations!");
53: lprcat("\nYou Bastard! With several attempts I have yet to endure the");
54: lprcat(" caves,\nand you, a nobody, makes the journey! From this time");
55: lprcat(" onward, bewarned\nupon our meeting you shall pay the price!\n");
56: lwclose(); return(1);
57: }
58:
59: static letter4()
60: {
61: sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */
62: if (lcreat(mail600) < 0) { write(1,"can't write 603 letter\n",23); return(0);}
63: lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
64: standout("From:"); lprcat(" Mainair, Duke of Larnty\n");
65: standout("\nSubject:"); lprcat(" High Praise\n");
66: lprcat("\n With a certainty a hero I declare to be amongst us! A nod of");
67: lprcat("\nfavour I send to thee. Me thinks Count Endelford this day of");
68: lprcat("\nright breath'eth fire as of dragon of whom ye are slayer. I");
69: lprcat("\nyearn to behold his anger and jealously. Should ye choose to");
70: lprcat("\nunleash some of thy wealth upon those who be unfortunate, I,");
71: lprcat("\nDuke Mainair, Shall equal thy gift also.\n");
72: lwclose(); return(1);
73: }
74:
75: static letter5()
76: {
77: sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */
78: if (lcreat(mail600) < 0) { write(1,"can't write 604 letter\n",23); return(0);}
79: lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
80: standout("From:"); lprcat(" St. Mary's Children's Home\n");
81: standout("\nSubject:"); lprcat(" these poor children\n");
82: lprcat("\n News of your great conquests has spread to all of Larndom.");
83: lprcat("\nMight I have a moment of a great man's time. We here at St.");
84: lprcat("\nMary's Children's Home are very poor, and many children are");
85: lprcat("\nstarving. Disease is widespread and very often fatal without");
86: lprcat("\ngood food. Could you possibly find it in your heart to help us");
87: lprcat("\nin our plight? Whatever you could give will help much.");
88: lprcat("\n(your gift is tax deductible)\n");
89: lwclose(); return(1);
90: }
91:
92: static letter6()
93: {
94: sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */
95: if (lcreat(mail600) < 0) { write(1,"can't write 605 letter\n",23); return(0);}
96: lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
97: standout("From:"); lprcat(" The National Cancer Society of Larn\n");
98: standout("\nSubject:"); lprcat(" hope\n");
99: lprcat("\nCongratulations on your successful expedition. We are sure much");
100: lprcat("\ncourage and determination were needed on your quest. There are");
101: lprcat("\nmany though, that could never hope to undertake such a journey");
102: lprcat("\ndue to an enfeebling disease -- cancer. We at the National");
103: lprcat("\nCancer Society of Larn wish to appeal to your philanthropy in");
104: lprcat("\norder to save many good people -- possibly even yourself a few");
105: lprcat("\nyears from now. Much work needs to be done in researching this");
106: lprcat("\ndreaded disease, and you can help today. Could you please see it");
107: lprcat("\nin your heart to give generously? Your continued good health");
108: lprcat("\ncan be your everlasting reward.\n");
109: lwclose(); return(1);
110: }
111:
112: /*
113: * function to mail the letters to the player if a winner
114: */
115: static int (*pfn[])()= { letter1, letter2, letter3, letter4, letter5, letter6 };
116: mailbill()
117: {
118: register int i;
119: char buf[128];
120: wait(0); pid=getpid();
121: if (fork() == 0)
122: {
123: resetscroll();
124: for (i=0; i<sizeof(pfn)/sizeof(int (*)()); i++)
125: if ((*pfn[i])())
126: {
127: sleep(20); sprintf(buf,"mail %s < %s",loginname,mail600);
128: system(buf); unlink(mail600);
129: }
130: exit();
131: }
132: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.