-+-+-+-+-+-+-+-+ START OF PART 43 -+-+-+-+-+-+-+-+ X lprcat("only 20% of their value were they to be new. If the items are b Vadly\n"); X lprcat("damaged, we will pay only 10% of their new value.\n\n"); X X lprcat("Here are the items we would be willing to buy from you:\n"); X `7D X Xstatic short tradorder`5B26`5D; /* screen locations for trading post inven Vtory */ Xstatic otradiven() X `7B X int i,j ; X X /* Print user's iventory like bank */ X for (j=i=0 ; i<26 ; i++) X if (iven`5Bi`5D) X `7B X cursor( (j%2)*40+1, (j>>1)+8 ); X tradorder`5Bi`5D = 0 ; /* init position on screen to zero */ X switch (iven`5Bi`5D) X `7B X case OPOTION: X if ( potionname`5Bivenarg`5Bi`5D`5D`5B0`5D != 0 ) X `7B X tradorder`5Bi`5D = j++ ; /* will display only if identified V */ X lprintf( "%c) %s", i+'a', objectname`5Biven`5Bi`5D`5D ); X lprintf(" of%s", potionname`5Bivenarg`5Bi`5D`5D ); X `7D X break; X case OSCROLL: X if ( scrollname`5Bivenarg`5Bi`5D`5D`5B0`5D != 0 ) X `7B X tradorder`5Bi`5D = j++ ; /* will display only if identified V */ X lprintf( "%c) %s", i+'a', objectname`5Biven`5Bi`5D`5D ); X lprintf(" of%s", scrollname`5Bivenarg`5Bi`5D`5D ); X `7D X break; X case OLARNEYE: X case OBOOK: X case OSPIRITSCARAB: X case ODIAMOND: X case ORUBY: X case OEMERALD: X case OCHEST: X case OSAPPHIRE: X case OCUBEofUNDEAD: X case OCOOKIE: X case ONOTHEFT: X tradorder`5Bi`5D = j++ ; /* put on screen */ X lprintf( "%c) %s", i+'a', objectname`5Biven`5Bi`5D`5D ); X break; X default: X tradorder`5Bi`5D = j++ ; /* put on screen */ X lprintf( "%c) %s", i+'a', objectname`5Biven`5Bi`5D`5D ); X if (ivenarg`5Bi`5D > 0) X lprintf(" +%d", (long)ivenarg`5Bi`5D ); X else if (ivenarg`5Bi`5D < 0) X lprintf(" %d", (long)ivenarg`5Bi`5D ); X break; X `7D X `7D X else X tradorder`5Bi`5D = 0; /* make sure order array is clear */ X `7D X Xstatic cleartradiven( i ) Xint i ; X `7B X int j; X j = tradorder`5Bi`5D ; X cursor( (j%2)*40+1, (j>>1)+8 ); X lprintf( "%39s", "" ); X tradorder`5Bi`5D = 0; X `7D X Xotradepost() X `7B X register int i,j,isub,izarg,found; X register long value; X X dnditm = dndcount = 0; X nosignal = 1; /* disable signals */ X otradhead(); X otradiven(); X X while (1) X `7B X cl_dn(1,21); X lprcat("\nWhat item do you want to sell to us `5B"); X standout("escape"); lprcat("`5D ? "); X i=0; X while ( i>'z' `7C`7C i<'a' && i!=12 && i!='\33' ) X i=ttgetch(); X if (i == '\33') X `7B X recalc(); X drawscreen(); X nosignal=0; /* enable signals */ X return; X `7D X while (1) /* inner loop for simpler control */ X `7B X if (i == 12) X `7B X clear(); X otradhead(); X otradiven(); X break; /* leave inner while */ X `7D X X isub = i - 'a' ; X if (iven`5Bisub`5D == 0) X `7B X lprintf("\nYou don't have item %c!",isub+'a'); X nap(2000); X break; /* leave inner while */ X `7D X if (iven`5Bisub`5D==OSCROLL) X if (scrollname`5Bivenarg`5Bisub`5D`5D`5B0`5D==0) X `7B X cnsitm(); X break; /* leave inner while */ X `7D X if (iven`5Bisub`5D==OPOTION) X if (potionname`5Bivenarg`5Bisub`5D`5D`5B0`5D==0) X `7B X cnsitm(); X break; /* leave inner while */ X `7D X if (iven`5Bisub`5D==ODIAMOND `7C`7C X iven`5Bisub`5D==ORUBY `7C`7C X iven`5Bisub`5D==OEMERALD `7C`7C X iven`5Bisub`5D==OSAPPHIRE ) X value = 20L * (ivenarg`5Bisub`5D & 255); X else if (iven`5Bisub`5D==OLARNEYE) X `7B X value = 50000 - (((gtime*7) / 100) * 20 ); X if (value < 10000) X value = 10000; X `7D X else X `7B X /* find object in itm`5B`5D list for price info */ X found = MAXITM ; X for (j=0; j= 0) value *= 2; X while ((izarg-- > 0) && ((value=14*(67+value)/10) < 50000 V0)); X `7D X `7D X /* we have now found the value of the item, and dealt with any er Vror X cases. Print the object's value, let the user sell it. X */ X lprintf("\nItem (%c) is worth %d gold pieces to us. Do you want V to sell it? ",i,(long)value); X yrepcount=0; X if (getyn()=='y') X `7B X lprcat("yes\n"); c`5BGOLD`5D+=value; X if (c`5BWEAR`5D == isub) c`5BWEAR`5D = -1; X if (c`5BWIELD`5D == isub) c`5BWIELD`5D = -1; X if (c`5BSHIELD`5D == isub) c`5BSHIELD`5D = -1; X adjustcvalues(iven`5Bisub`5D,ivenarg`5Bisub`5D); X iven`5Bisub`5D=0; X cleartradiven( isub ); X `7D X else X `7B X lprcat("no thanks.\n"); X nap(500); X `7D X break; /* exit inner while */ X `7D /* end of inner while */ X `7D /* end of outer while */ X `7D /* end of routine */ X Xstatic cnsitm() X `7B X lprcat("\nSorry, we can't accept unidentified objects."); X nap(2000); X `7D X X/* X * for the Larn Revenue Service X */ Xolrs() X `7B X register int i,first; X unsigned long amt; X first = nosignal = 1; /* disable signals */ X clear(); resetscroll(); cursor(1,4); X lprcat("Welcome to the Larn Revenue Service district office. How can we V help you?"); X while (1) X `7B X if (first) `7B first=0; goto nxt; `7D X setscroll(); X cursors(); X lprcat("\n\nYour wish? `5B("); X standout("p"); X lprcat(") pay taxes, or "); X standout("escape"); X lprcat("`5D "); yrepcount=0; X i=0; while (i!='p' && i!='\33') i=ttgetch(); X switch(i) X `7B X case 'p': lprcat("pay taxes\nHow much? "); amt = readnum((long V)c`5BGOLD`5D); X if (amt<0) `7B lprcat("\nSorry, but we can't take ne Vgative gold\n"); amt=0; `7D else X if (amt>c`5BGOLD`5D) lprcat(" You don't have tha Vt much.\n"); X else c`5BGOLD`5D -= paytaxes((long)amt); X break; X X case '\33': nosignal = 0; /* enable signals */ X setscroll(); drawscreen(); return; X `7D; X Xnxt: cursor(1,6); X if (outstanding_taxes>0) X lprintf("You presently owe %d gp in taxes. ",(long)outstanding_ Vtaxes); X else X lprcat("You do not owe us any taxes. "); X cursor(1,8); X if (c`5BGOLD`5D>0) X lprintf("You have %6d gp. ",(long)c`5BGOLD`5D); X else X lprcat("You have no gold pieces. "); X `7D X `7D $ CALL UNPACK STORE.C;1 340120560 $ create 'f' X# X# Monochrome IBMPC. X#`09This is a termcap for the NANSI.SYS device driver. X#`09It is the same as the ANSI termcap, except NANSI supports X#`09line insert (al) and delete (dl) while ANSI does not. X# Xibmpc-mono:\ X`09:co#80:\ X`09:li#24:\ X`09:cl=\E`5B;H\E`5B2J:\ X`09:bs:\ X`09:ho=\E`5BH:\ X`09:cm=\E`5B%i%2;%2H:\ X`09:up=\E`5BA:\ X`09:xd=\E`5BB:\ X`09:nd=\E`5BC:\ X`09:bc=\E`5BD:\ X`09:ce=\E`5BK:\ X`09:ti=\E`5Bm:\ X`09:te=\E`5Bm:\ X`09:so=\E`5B1m:\ X`09:se=\E`5Bm:\ X`09:us=\E`5B4m:\ X`09:ue=\E`5Bm:\ X`09:al=\E`5BL:\ X`09:dl=\E`5BM: $ CALL UNPACK TERMCAP.PC;1 2000399342 $ create 'f' Xsl`7Clpr`7Cprinter`7Cprint`7Cprinting`7Cline printer:\ X`09:cr=`5EM:do=`5EJ:nl=`5EJ:bl=`5EG:le=`5EH:bs:co#132:hc:os: Xsu`7Cdumb`7Cun`7Cunknown:\ X`09:am:bl=`5EG:co#80:cr=`5EM:do=`5EJ:nl=`5EJ: Xsx`7Cansi`7Cany ansi terminal with pessimistic assumptions:\ X`09:co#80:li#24:cl=50\E`5B;H\E`5B2J:\ X`09:bs:am:cm=\E`5B%i%d;%dH:nd=\E`5BC:up=\E`5BA:\ X`09:ce=\E`5BK:ho=\E`5BH:pt: X# X# not sure if vt102 belongs exactly here, but it works with rainbow X# emulation of a vt102... X# Xdr`7Cvt100p`7Cvt102-80`7Cvt100p-nam`7Cdec vt100p:\ X`09:am:al=\E`5BL:bl=`5EG:bs:cd=50\E`5BJ:ce=3\E`5BK:cl=50\E`5B;H\E`5B2J:\ X`09:cm=10\E`5B%i%d;%dH:co#80:cr=`5EM:cs=\E`5B%i%d;%dr:dc=\E`5BP:\ X`09:dl=\E`5BM:do=`5EJ:ei=\E`5B4l:ho=\E`5BH:im=\E`5B4h:is=\E`5B1;24r\E`5B24;1 VH:\ X`09:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=`5EH:kd=\EOB:ke=\E`5B?1l\E>:\ X`09:kl=\EOD:kr=\EOC:ks=\E`5B?1h\E=:ku=\EOA:le=`5EH:li#24:md=2\E`5B1m:\ X`09:mr=2\E`5B7m:mb=2\E`5B5m:me=2\E`5Bm:mi:nd=\E`5BC:nl=`5EJ:pt:rc=\E8:\ X`09:rf=/usr/lib/tabset/vt100:rs=\E>\E`5B?3l\E`5B?4l\E`5B?5l\E`5B?7h\E`5B?8h: V\ X`09:sc=\E7:se=\E`5Bm:so=\E`5B7m:sr=\EM:ta=`5EI:ue=\E`5Bm:up=\E`5BA:us=\E`5B4 Vm:\ X`09:vt#3:xn: Xda`7Cvt200`7CVT200-80`7Cvt2xx`7Cvt200-80`7Cvt220`7Cvt220-80`7Cvt200-nam`7Cde Vc vt200:\ X`09:ae=4\E(B:as=2\E(<:se=2\E`5B27m:ue=2\E`5B24m:tc=vt100p: Xdd`7Cvt200-132`7Cvt220-132`7CVT200-132`7Cvt200-w`7Cdec vt200 132 cols:\ X`09:co#132:tc=vt200: Xdb`7Cvt300`7Cvt300-80`7Cvt3xx`7Cdec vt300`7Cvt320`7Cvt320-80`7Cvt300-nam`7CV VT300-80`7Cdec vt300 80 cols:\ X`09:ds=\E`5B1$`7D\E`5B;H\E`5BK\E`5B0$`7D:\ X`09:es:fs=\E`5B0$`7D:hs:ts=\E`5B1$`7D\E`5B;H\E`5BK:\ X`09:tc=vt200: Xdc`7Cvt300-132`7Cvt320-132`7Cvt300-w`7CVT300-132`7Cdec vt300 132 cols:\ X`09:co#132:tc=vt300: Xd0`7Cvt100`7CVT100-80`7Cvt100-80`7Cvt100-am`7Cdec vt100:\ X`09:cr=`5EM:do=`5EJ:nl=`5EJ:bl=`5EG:co#80:li#24:cl=50\E`5B;H\E`5B2J:\ X`09:le=`5EH:bs:am:cm=5\E`5B%i%d;%dH:nd=2\E`5BC:up=2\E`5BA:\ X`09:ce=3\E`5BK:cd=50\E`5BJ:so=2\E`5B7m:se=2\E`5Bm:us=2\E`5B4m:ue=2\E`5Bm:\ X`09:md=2\E`5B1m:mr=2\E`5B7m:mb=2\E`5B5m:me=2\E`5Bm:is=\E`5B1;24r\E`5B24;1H:\ X`09:rs=\E>\E`5B?3l\E`5B?4l\E`5B?5l\E`5B?7h\E`5B?8h:ks=\E`5B?1h\E=:ke=\E`5B?1 Vl\E>:\ X`09:ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=`5EH:\ X`09:ho=\E`5BH:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:ta=`5EI:pt:sr=5\EM:vt#3:xn:\ X`09:sc=\E7:rc=\E8:cs=\E`5B%i%d;%dr: Xd1`7Cvt100-nam`7Cvt100 w/no am:\ X`09:am@:xn@:tc=vt100-am: Xd3`7Cvt132`7Cvt132-80`7Cdec vt132:\ X`09:al=99\E`5BL:dl=99\E`5BM:ip=7:dc=7\E`5BP:ei=\E`5B4l:im=\E`5B4h:xn:dN#30:t Vc=vt100: Xd4`7Cvt132-132`7Cvt132 132 cols:\ X`09:co#132:tc=vt132: Xd6`7Cvt125`7Cvt125-80`7Cvt125-am`7CDEC vt125:\ X`09:cr=`5EM:do=`5EJ:nl=`5EJ:bl=`5EG:co#80:li#24:cl=50\E`5BH\E`5B2J:\ X`09:le=`5EH:am:bs:cm=5\E`5B%i%d;%dH:nd=2\E`5BC:up=2\E`5BA:ce=3\E`5BK:cd=50\E V`5BJ:\ X`09:so=2\E`5B7m:se=2\E`5Bm:us=2\E`5B4m:ue=2\E`5Bm:md=2\E`5B1m:mr=2\E`5B7m:mb V=2\E`5B5m:\ X`09:me=2\E`5Bm:is=\E`5B1;24r\E`5B24;1H\E>\E`5B?3l\E`5B?4l\E`5B?5l\E`5B?7h\E` V5B?8h:\ X`09:ks=\E`5B?1h\E=:ke=\E`5B?1l\E>:ku=\EOA:kd=\EOB:\ X`09:kr=\EOC:kl=\EOD:kb=`5EH:ho=\E`5BH:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:ta=`5E VI:\ X`09:pt:sr=5\EM:vt#3:sc=\E7:rc=\E8:cs=\E`5B%i%d;%dr: Xdt`7Cvt100-132`7Cvt100-w`7Cdec vt100 132 cols (w/advanced video):\ X`09:co#132:li#24:rs=\E>\E`5B?3h\E`5B?4l\E`5B?5l\E`5B?8h:tc=vt100-am: Xdv`7Cvt100-w-nam`7Cdec vt100 132 cols (w/advanced video), no am:\ X`09:co#132:li#24:rs=\E>\E`5B?3h\E`5B?4l\E`5B?5l\E`5B?8h:vt@:tc=vt100-nam: Xdw`7Cvt52`7Cvt52-80`7Cdec vt52:\ X`09:cr=`5EM:do=`5EJ:nl=`5EJ:bl=`5EG:\ X`09:le=`5EH:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :co#80:li#24:nd=\EC:\ X`09:ta=`5EI:pt:sr=\EI:up=\EA:ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=`5EH: Xkb`7Ch19`7Cheath`7Ch19-b`7Ch19b`7Cheathkit`7Cheath-19`7Cz19`7Czenith`7Cheath Vkit h19:\ X`09:cr=`5EM:nl=`5EJ:bl=`5EG:\ X`09:al=1*\EL:am:le=`5EH:bs:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :co#80:dc=\EN:\ X`09:dl=1*\EM:do=\EB:ei=\EO:ho=\EH:im=\E@:li#24:mi:nd=\EC:as=\EF:ae=\EG:\ X`09:ms:ta=`5EI:pt:sr=\EI:se=\Eq:so=\Ep:up=\EA:vs=\Ex4:ve=\Ey4:\ X`09:kb=`5Eh:ku=\EA:kd=\EB:kl=\ED:kr=\EC:kh=\EH:kn#8:\ X`09:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:\ X`09:l6=blue:l7=red:l8=white:k6=\EP:k7=\EQ:k8=\ER:\ X`09:es:hs:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:fs=\Ek\Ey5:ds=\Ey1: XkA`7Ch19-a`7Ch19a`7Cheath-ansi`7Cheathkit-a`7Cheathkit h19 ansi mode:\ X`09:cr=`5EM:nl=`5EJ:bl=`5EG:\ X`09:al=1*\E`5B1L:am:le=`5EH:bs:cd=\E`5BJ:ce=\E`5BK:cl=\E`5B2J:cm=\E`5B%i%2;% V2H:co#80:\ X`09:dc=\E`5B1P:dl=1*\E`5B1M:do=\E`5B1B:ei=\E`5B4l:ho=\E`5BH:im=\E`5B4h:li#24 V:mi:\ X`09:nd=\E`5B1C:as=\E`5B10m:ae=\E`5B11m:ms:ta=`5EI:pt:se=\E`5B0m:so=\E`5B7m:u Vp=\E`5B1A:\ X`09:vs=\E`5B>4h:ve=\E`5B>4l:kb=`5Eh:ku=\E`5B1A:kd=\E`5B1B:kl=\E`5B1D:kr=\E`5 VB1C:\ X`09:kh=\E`5BH:kn#8:k1=\EOS:k2=\EOT:k3=\EOU:k4=\EOV:k5=\EOW:l6=blue:\ X`09:l7=red:l8=white:k6=\EOP:k7=\EOQ:k8=\EOR:\ X`09:sr=\EM:is=\E<\E`5B>1;2;3;4;5;6;7;8;9l\E`5B0m\E`5B11m\E`5B?7h: $ CALL UNPACK TERMCAP.VMS;1 1313869794 $ create 'f' X/************************************************************************ X * * X * Copyright (c) 1982, Fred Fish * X * All Rights Reserved * X * * X * This software and/or documentation is released for public * X * distribution for personal, non-commercial use only. * X * Limited rights to use, modify, and redistribute are hereby * +-+-+-+-+-+-+-+- END OF PART 43 +-+-+-+-+-+-+-+-