nonh@utzoo.UUCP (Chris Robertson) (10/09/85)
: This is a shell archive. Remove everything up to this line, save the rest # in a file and then type "/bin/sh file" to extract the following files: # map.c convert.c if test -s "map.c" then echo Will not overwrite existing 'map.c' else sed -e "s/^X//" > map.c << 'TiDDleYwiNKs' X#define minusminus plusplus X#define minusplus plusminus X Xmain() X{ X /* Set up */ X X openpl(); X space(-1400, -1000, 1200, 1200); X X /* Big box */ X X move(-1400, -1000); X cont(-1400, 1000); X cont(600, 1000); X cont(600, -1000); X cont(-1400, -1000); X X /* Grid -- horizontal lines every 200 */ X X linemod("dotted"); X line(600, -800, -1400, -800); X line(-1400, -600, 600, -600); X line(600, -400, -1400, -400); X line(-1400, -200, 600, -200); X linemod("solid"); X line(600, 0, -1400, 0); X linemod("dotted"); X line(-1400, 200, 600, 200); X line(600, 400, -1400, 400); X line(-1400, 600, 600, 600); X line(600, 800, -1400, 800); X X /* Grid -- vertical lines every 200 */ X X line(-1200, 1000, -1200, -1000); X line(-1000, 1000, -1000, -1000); X line(-800, 1000, -800, -1000); X line(-600, 1000, -600, -1000); X linemod("solid"); X line(-400, 1000, -400, -1000); X linemod("dotted"); X line(-200, 1000, -200, -1000); X line(0, 1000, 0, -1000); X line(200, 1000, 200, -1000); X line(400, 1000, 400, -1000); X X /* Circles radius +250 on "center" */ X X linemod("solid"); X circle(-400, 0, 250); X circle(-400, 0, 500); X circle(-400, 0, 750); X circle(-400, 0, 1000); X X /* A few labels */ X X move(-670, 1075); X label("- THE PHANTASIA UNIVERSE -"); X line(-630,1045,-115,1045); X move(-360,80); X label("Lorien"); X move(-385,-100); X label("Ithilien"); X move(-560,80); X label("Rohan"); X move(-580,-100); X label("Anorien"); X plusplus("Rovanion",-250,320); X plusplus("The Iron Hills",-100,560); X plusplus("Rhun",250,570); X minusplus("Dunland",-700,160); X minusplus("Eriador",-920,300); X minusplus("The Northern Waste",-1240,320); X minusminus("Gondor",-720,-180); X minusminus("South Gondor",-940,-270); X minusminus("Far Harad",-1100,-500); X plusminus("Mordor",-180,-300); X plusminus("Khand",0,-500); X plusminus("Near Harad",40,-780); X move(340,900); X label("The Moors"); X move(300,840); X label("Adventurous"); X move(340,-840); X label("The Moors"); X move(300,-900); X label("Adventurous"); X move(-1340,900); X label("The Moors"); X move(-1340,840); X label("Adventurous"); X move(-1340,-840); X label("The Moors"); X move(-1340,-900); X label("Adventurous"); X move(-1200,0); X label("*"); X move(400,0); X label("*"); X move(700,1000); X label("OUTER CIRCLES:"); X line(690,970,1000,970); X move(700,900); X label("> 9: The Outer Waste"); X move(700,800); X label("> 20: The Dead Marshes"); X move(700,700); X label("> 35: Kennaquhair"); X move(700,600); X label("> 55: Morannon"); X move(700,300); X label("(0,0): The Lord's Chamber"); X move(700,0); X label("* Wormholes"); X X move(700,-400); X label("Grid squares are 100 x 100"); X move(700,-800); X label("Created by Ted Estes"); X move(700,-860); X label("Plotted by Chris Robertson"); X move(700,-920); X label(" c 1985"); X circle(723,-923,20); X X /* Close down */ X X closepl(); X exit(0); X} X Xplusplus(s,x,y) /* draw strings in plus plus quadrant */ X Xchar *s; Xint x,y; X{ X char s1[2]; X while (*s) X { X move(x,y); X s1[0] = *s++; X s1[1] = '\0'; X label(s1); X x += 25; X y -= 30; X } X} X Xplusminus(s,x,y) /* draw strings in plus minus quadrant */ X Xchar *s; Xint x,y; X{ X char s1[2]; X while (*s) X { X move(x,y); X s1[0] = *s++; X s1[1] = '\0'; X label(s1); X x += 25; X y += 30; X } X} TiDDleYwiNKs size="`wc -c map.c`" size=`set - $size;echo $1` echo "x - map.c, $size characters" if test "$size" != "3153" then echo "Warning: error in transmitting 'map.c'; should have 3153 characters." fi fi if test -s "convert.c" then echo Will not overwrite existing 'convert.c' else sed -e "s/^X//" > convert.c << 'TiDDleYwiNKs' X/* X * Convert Phantasia 3.3.1 characs file format to 3.3.1+ X * X * Written by Chris Robertson, 1985 X */ X X#include <stdio.h> X Xmain() X{ X struct stats /* player stats -- old format */ X { X char name[21]; /* name */ X char pswd[9]; /* password */ X char login[10]; /* login */ X double x; /* x coord */ X double y; /* y coord */ X double exp; /* experience */ X int lvl; /* level */ X short quk; /* quick */ X double str; /* strength */ X double sin; /* sin */ X double man; /* mana */ X double gld; /* gold */ X double nrg; /* energy */ X double mxn; /* max. energy */ X double mag; /* magic level */ X double brn; /* brains */ X short crn; /* crowns */ X struct X { X short type; X short duration; X } rng; /* ring stuff */ X char pal; /* palantir */ X double psn; /* poison */ X short hw; /* holy water */ X short amu; /* amulets */ X char bls; /* blessing */ X short chm; /* charms */ X double gem; /* gems */ X short quks; /* quicksilver */ X double swd; /* sword */ X double shd; /* shield */ X short typ; /* character type */ X char vrg; /* virgin */ X short lastused; /* day of year last used */ X short status; /* playing, cloaked, etc. */ X short tampered; /* decree'd, etc. flag */ X double scratch1, scratch2; /* var's for above */ X char blind; /* blindness */ X int wormhole; /* # of wormhole, 0 = none */ X long age; /* age in seconds */ X short degen; /* age/2500 last degenerated */ X short istat; /* used for inter-terminal battle */ X } stat; X X struct nstats /* player stats -- new format */ X { X char nname[21]; /* name */ X char npswd[9]; /* password */ X char nlogin[10]; /* login */ X double nx; /* x coord */ X double ny; /* y coord */ X double nexp; /* experience */ X int nlvl; /* level */ X short nquk; /* quick */ X double nstr; /* strength */ X double nsin; /* sin */ X double nman; /* mana */ X double ngld; /* gold */ X double nnrg; /* energy */ X double nmxn; /* max. energy */ X double nmag; /* magic level */ X double nbrn; /* brains */ X short ncrn; /* crowns */ X struct X { X short ntype; X short nduration; X } nrng; /* ring stuff */ X char npal; /* palantir */ X double npsn; /* poison */ X short nhw; /* holy water */ X short namu; /* amulets */ X char nbls; /* blessing */ X short nchm; /* charms */ X double ngem; /* gems */ X short nquks; /* quicksilver */ X double nswd; /* sword */ X double nshd; /* shield */ X short ntyp; /* character type */ X char nvrg; /* virgin */ X short nlastused; /* day of year last used */ X short nstatus; /* playing, cloaked, etc. */ X short ntampered; /* decree'd, etc. flag */ X double nscr1, nscratch2; /* var's for above */ X char nblind; /* blindness */ X int nwormhole; /* # of wormhole, 0 = none */ X long nage; /* age in seconds */ X short ndegen; /* age/2500 last degenerated */ X short nistat; /* used for inter-terminal battle */ X short lives; /* number of lives lived */ X } newstat; X X FILE *oldcharac, *newcharac; X X char oldpfile[100]; X char newpfile[100]; X X strcpy(oldpfile,PATH/characs"); X strcpy(newpfile,PATH/newcharacs"); X if((oldcharac = fopen(oldpfile,"r")) == NULL) X { X fprintf(stderr,"Cannot open original character file!\n"); X exit(1); X } X if((newcharac = fopen(newpfile,"w")) == NULL) X { X fprintf(stderr,"Cannot create new character file!\n"); X exit(1); X } X while (fread((char *) &stat,sizeof(stat),1,oldcharac)) X { X strcpy (newstat.nname, stat.name); X strcpy (newstat.npswd, stat.pswd); X strcpy (newstat.nlogin, stat.login); X newstat.nx = stat.x; X newstat.ny = stat.y; X newstat.nexp = stat.exp; X newstat.nlvl = stat.lvl; X newstat.nquk = stat.quk; X newstat.nstr = stat.str; X newstat.nsin = stat.sin; X newstat.nman = stat.man; X newstat.ngld = stat.gld; X newstat.nnrg = stat.nrg; X newstat.nmxn = stat.mxn; X newstat.nmag = stat.mag; X newstat.nbrn = stat.brn; X newstat.ncrn = stat.crn; X newstat.nrng.ntype = stat.rng.type; X newstat.nrng.nduration = stat.rng.duration; X newstat.npal = stat.pal; X newstat.npsn = stat.psn; X newstat.nhw = stat.hw; X newstat.namu = stat.amu; X newstat.nbls = stat.bls; X newstat.nchm = stat.chm; X newstat.ngem = stat.gem; X newstat.nquks = stat.quks; X newstat.nswd = stat.swd; X newstat.nshd = stat.shd; X newstat.ntyp = stat.typ; X newstat.nvrg = stat.vrg; X newstat.nlastused = stat.lastused; X newstat.nstatus = stat.status; X newstat.ntampered = stat.tampered; X newstat.nscr1 = stat.scratch1; X newstat.nscratch2 = stat.scratch2; X newstat.nblind = stat.blind; X newstat.nwormhole = stat.wormhole; X newstat.nage = stat.age; X newstat.ndegen = stat.degen; X newstat.nistat = stat.istat; X newstat.lives = 0; X fwrite((char *) &newstat,sizeof(newstat),1,newcharac); X } X fclose(oldcharac); X fclose(newcharac); X} TiDDleYwiNKs size="`wc -c convert.c`" size=`set - $size;echo $1` echo "x - convert.c, $size characters" if test "$size" != "4919" then echo "Warning: error in transmitting 'convert.c'; should have 4919 characters." fi fi