diff options
author | markm <markm@FreeBSD.org> | 2002-10-21 07:40:27 +0000 |
---|---|---|
committer | markm <markm@FreeBSD.org> | 2002-10-21 07:40:27 +0000 |
commit | e41bd31debce476e2f6ae864651c7380bea2cdbb (patch) | |
tree | b90261e8ce260fee190d0f359aa2884ddf2510de /games/larn/moreobj.c | |
parent | 1cdc4d3dd3997f7f78a4a0ff9c52006837b0b5c4 (diff) | |
download | FreeBSD-src-e41bd31debce476e2f6ae864651c7380bea2cdbb.zip FreeBSD-src-e41bd31debce476e2f6ae864651c7380bea2cdbb.tar.gz |
Deorbit complete. We dont build these anymore, so into the attic they go.
Diffstat (limited to 'games/larn/moreobj.c')
-rw-r--r-- | games/larn/moreobj.c | 373 |
1 files changed, 0 insertions, 373 deletions
diff --git a/games/larn/moreobj.c b/games/larn/moreobj.c deleted file mode 100644 index ddad0d6..0000000 --- a/games/larn/moreobj.c +++ /dev/null @@ -1,373 +0,0 @@ -/* moreobj.c Larn is copyrighted 1986 by Noah Morgan. - * $FreeBSD$ - * - * Routines in this file: - * - * oaltar() - * othrone() - * ochest() - * ofountain() - */ -#include "header.h" - -static void ohear(); - -/* - * ****** - * OALTAR - * ****** - * - * subroutine to process an altar object - */ -oaltar() - { - unsigned long k; - - lprcat("\nDo you (p) pray (d) desecrate"); iopts(); - while (1) - { - while (1) switch(getchar()) - { - case 'p': lprcat(" pray\nDo you (m) give money or (j) just pray? "); - while (1) switch(getchar()) - { - case 'j': if (rnd(100)<75) - lprcat("\nnothing happens"); - else if (rnd(13)<4) ohear(); - else if (rnd(43) == 10) - { - if (c[WEAR]) lprcat("\nYou feel your armor vibrate for a moment"); - enchantarmor(); return; - } - else if (rnd(43) == 10) - { - if (c[WIELD]) lprcat("\nYou feel your weapon vibrate for a moment"); - enchweapon(); return; - } - else createmonster(makemonst(level+1)); - return; - - case 'm': lprcat("\n\n"); cursor(1,24); cltoeoln(); - cursor(1,23); cltoeoln(); - lprcat("how much do you donate? "); - k = readnum((long)c[GOLD]); - if (c[GOLD]<k) - { - lprcat("\nYou don't have that much!"); - return; - } - c[GOLD] -= k; - if (k < c[GOLD]/10 || k<rnd(50)) - { createmonster(makemonst(level+1)); c[AGGRAVATE] += 200; } - else if (rnd(101) > 50) { ohear(); return; } - else if (rnd(43) == 5) - { - if (c[WEAR]) lprcat("\nYou feel your armor vibrate for a moment"); - enchantarmor(); return; - } - else if (rnd(43) == 8) - { - if (c[WIELD]) lprcat("\nYou feel your weapon vibrate for a moment"); - enchweapon(); return; - } - else lprcat("\nThank You."); - bottomline(); return; - - case '\33': return; - }; - - case 'd': lprcat(" desecrate"); - if (rnd(100)<60) - { createmonster(makemonst(level+2)+8); c[AGGRAVATE] += 2500; } - else - if (rnd(101)<30) - { - lprcat("\nThe altar crumbles into a pile of dust before your eyes"); - forget(); /* remember to destroy the altar */ - } - else - lprcat("\nnothing happens"); - return; - - case 'i': - case '\33': ignore(); - if (rnd(100)<30) { createmonster(makemonst(level+1)); c[AGGRAVATE] += rnd(450); } - else lprcat("\nnothing happens"); - return; - }; - } - } - -/* - function to cast a +3 protection on the player - */ -static void -ohear() - { - lprcat("\nYou have been heard!"); - if (c[ALTPRO]==0) c[MOREDEFENSES]+=3; - c[ALTPRO] += 500; /* protection field */ - bottomline(); - } - -/* - ******* - OTHRONE - ******* - - subroutine to process a throne object - */ -othrone(arg) - int arg; - { - int i,k; - - lprcat("\nDo you (p) pry off jewels, (s) sit down"); iopts(); - while (1) - { - while (1) switch(getchar()) - { - case 'p': lprcat(" pry off"); k=rnd(101); - if (k<25) - { - for (i=0; i<rnd(4); i++) creategem(); /* gems pop off the throne */ - item[playerx][playery]=ODEADTHRONE; - know[playerx][playery]=0; - } - else if (k<40 && arg==0) - { - createmonster(GNOMEKING); - item[playerx][playery]=OTHRONE2; - know[playerx][playery]=0; - } - else lprcat("\nnothing happens"); - return; - - case 's': lprcat(" sit down"); k=rnd(101); - if (k<30 && arg==0) - { - createmonster(GNOMEKING); - item[playerx][playery]=OTHRONE2; - know[playerx][playery]=0; - } - else if (k<35) { lprcat("\nZaaaappp! You've been teleported!\n"); beep(); oteleport(0); } - else lprcat("\nnothing happens"); - return; - - case 'i': - case '\33': ignore(); return; - }; - } - } - -odeadthrone() - { - int k; - - lprcat("\nDo you (s) sit down"); iopts(); - while (1) - { - while (1) switch(getchar()) - { - case 's': lprcat(" sit down"); k=rnd(101); - if (k<35) { lprcat("\nZaaaappp! You've been teleported!\n"); beep(); oteleport(0); } - else lprcat("\nnothing happens"); - return; - - case 'i': - case '\33': ignore(); return; - }; - } - } - -/* - ****** - OCHEST - ****** - - subroutine to process a throne object - */ -ochest() - { - int i,k; - lprcat("\nDo you (t) take it, (o) try to open it"); iopts(); - while (1) - { - while (1) switch(getchar()) - { - case 'o': lprcat(" open it"); k=rnd(101); - if (k<40) - { - lprcat("\nThe chest explodes as you open it"); beep(); - i = rnd(10); lastnum=281; /* in case he dies */ - lprintf("\nYou suffer %d hit points damage!",(long)i); - checkloss(i); - switch(rnd(10)) /* see if he gets a curse */ - { - case 1: c[ITCHING]+= rnd(1000)+100; - lprcat("\nYou feel an irritation spread over your skin!"); - beep(); - break; - - case 2: c[CLUMSINESS]+= rnd(1600)+200; - lprcat("\nYou begin to lose hand to eye coordination!"); - beep(); - break; - - case 3: c[HALFDAM]+= rnd(1600)+200; - beep(); - lprcat("\nA sickness engulfs you!"); break; - }; - item[playerx][playery]=know[playerx][playery]=0; - if (rnd(100)<69) creategem(); /* gems from the chest */ - dropgold(rnd(110*iarg[playerx][playery]+200)); - for (i=0; i<rnd(4); i++) something(iarg[playerx][playery]+2); - } - else lprcat("\nnothing happens"); - return; - - case 't': lprcat(" take"); - if (take(OCHEST,iarg[playerx][playery])==0) - item[playerx][playery]=know[playerx][playery]=0; - return; - - case 'i': - case '\33': ignore(); return; - }; - } - } - -/* - ********* - OFOUNTAIN - ********* - */ - -ofountain() - { - int x; - cursors(); - lprcat("\nDo you (d) drink, (w) wash yourself"); iopts(); - while (1) switch(getchar()) - { - case 'd': lprcat("drink"); - if (rnd(1501)<2) - { - lprcat("\nOops! You seem to have caught the dreadful sleep!"); - beep(); lflush(); sleep(3); died(280); return; - } - x = rnd(100); - if (x<7) - { - c[HALFDAM] += 200+rnd(200); - lprcat("\nYou feel a sickness coming on"); - } - else if (x<13) quaffpotion(23); /* see invisible */ - else if (x < 45) - lprcat("\nnothing seems to have happened"); - else if (rnd(3) != 2) - fntchange(1); /* change char levels upward */ - else - fntchange(-1); /* change char levels downward */ - if (rnd(12)<3) - { - lprcat("\nThe fountains bubbling slowly quiets"); - item[playerx][playery]=ODEADFOUNTAIN; /* dead fountain */ - know[playerx][playery]=0; - } - return; - - case '\33': - case 'i': ignore(); return; - - case 'w': lprcat("wash yourself"); - if (rnd(100) < 11) - { - x=rnd((level<<2)+2); - lprintf("\nOh no! The water was foul! You suffer %d hit points!",(long)x); - lastnum=273; losehp(x); bottomline(); cursors(); - } - else - if (rnd(100) < 29) - lprcat("\nYou got the dirt off!"); - else - if (rnd(100) < 31) - lprcat("\nThis water seems to be hard water! The dirt didn't come off!"); - else - if (rnd(100) < 34) - createmonster(WATERLORD); /* make water lord */ - else - lprcat("\nnothing seems to have happened"); - return; - } - } - -/* - *** - FCH - *** - - subroutine to process an up/down of a character attribute for ofountain - */ -static void -fch(how,x) - int how; - long *x; - { - if (how < 0) { lprcat(" went down by one!"); --(*x); } - else { lprcat(" went up by one!"); (*x)++; } - bottomline(); - } - -/* - a subroutine to raise or lower character levels - if x > 0 they are raised if x < 0 they are lowered - */ -fntchange(how) - int how; - { - long j; - lprc('\n'); - switch(rnd(9)) - { - case 1: lprcat("Your strength"); fch(how,&c[0]); break; - case 2: lprcat("Your intelligence"); fch(how,&c[1]); break; - case 3: lprcat("Your wisdom"); fch(how,&c[2]); break; - case 4: lprcat("Your constitution"); fch(how,&c[3]); break; - case 5: lprcat("Your dexterity"); fch(how,&c[4]); break; - case 6: lprcat("Your charm"); fch(how,&c[5]); break; - case 7: j=rnd(level+1); - if (how < 0) - { lprintf("You lose %d hit point",(long)j); if (j>1) lprcat("s!"); else lprc('!'); losemhp((int)j); } - else - { lprintf("You gain %d hit point",(long)j); if (j>1) lprcat("s!"); else lprc('!'); raisemhp((int)j); } - bottomline(); break; - - case 8: j=rnd(level+1); - if (how > 0) - { - lprintf("You just gained %d spell",(long)j); raisemspells((int)j); - if (j>1) lprcat("s!"); else lprc('!'); - } - else - { - lprintf("You just lost %d spell",(long)j); losemspells((int)j); - if (j>1) lprcat("s!"); else lprc('!'); - } - bottomline(); break; - - case 9: j = 5*rnd((level+1)*(level+1)); - if (how < 0) - { - lprintf("You just lost %d experience point",(long)j); - if (j>1) lprcat("s!"); else lprc('!'); loseexperience((long)j); - } - else - { - lprintf("You just gained %d experience point",(long)j); - if (j>1) lprcat("s!"); else lprc('!'); raiseexperience((long)j); - } - break; - } - cursors(); - } |