diff options
author | agc <agc@pkgsrc.org> | 2001-04-27 15:27:30 +0000 |
---|---|---|
committer | agc <agc@pkgsrc.org> | 2001-04-27 15:27:30 +0000 |
commit | dc08309f80881a990abf850361df242f7f3aab3c (patch) | |
tree | ebfd163c1446b7fd3b971894066499b0c12fb552 /games | |
parent | f03393a1685494fd69c2bc1b00cabe6e8cd5cfee (diff) | |
download | pkgsrc-dc08309f80881a990abf850361df242f7f3aab3c.tar.gz |
Initial import of ularn-6.12.92 into the packages collection.
Provided in PR 12072 by Ben Collver (collver@linuxfreemail.com).
Ularn is a fantasy games in which your child has contracted a strange dis-
ease, and none of your home remedies seem to have any effect. You set
out to find a remedy in a limited amount of time, and to collect gold
along the way of course!
Ularn is based on larn, and adds the concept of character classes.
Diffstat (limited to 'games')
35 files changed, 5367 insertions, 0 deletions
diff --git a/games/ularn/Makefile b/games/ularn/Makefile new file mode 100644 index 00000000000..12247133412 --- /dev/null +++ b/games/ularn/Makefile @@ -0,0 +1,32 @@ +# $NetBSD: Makefile,v 1.1.1.1 2001/04/27 15:27:30 agc Exp $ + +DISTNAME= ularn +PKGNAME= ularn-6.12.92 +CATEGORIES= games +MASTER_SITES= ftp://ftp.win.tue.nl/pub/games/larn/ \ + http://amaterasu.math.orst.edu:8080/~sharpej/ + +MAINTAINER= collver@linuxfreemail.com +HOMEPAGE= http://www.win.tue.nl/games/roguelike/larn/ +COMMENT= fantasy roguelike game based on vintage larn + +NO_WRKSUBDIR= yes +HAS_CONFIGURE= # defined +CONFIGURE_ENV+= PREFIX=${LOCALBASE} +CONFIGURE_SCRIPT= ./Configure +CONFIGURE_ARGS+= -d + +pre-configure: + ${MV} ${WRKSRC}/Configure ${WRKSRC}/Configure.template + ${SED} 's:XXXLIBDIRXXX:${LOCALBASE}/share/Ularn:;\ + s:XXXBINDIRXXX:${LOCALBASE}/bin:' \ + <${WRKSRC}/Configure.template \ + >${WRKSRC}/Configure + ${CHMOD} u+x ${WRKSRC}/Configure + +post-install: + ${CHGRP} games ${LOCALBASE}/bin/Ularn + ${CHMOD} g+s ${LOCALBASE}/bin/Ularn + ${CHMOD} g+w ${LOCALBASE}/share/Ularn + +.include "../../mk/bsd.pkg.mk" diff --git a/games/ularn/distinfo b/games/ularn/distinfo new file mode 100644 index 00000000000..f10eccca43c --- /dev/null +++ b/games/ularn/distinfo @@ -0,0 +1,34 @@ +$NetBSD: distinfo,v 1.1.1.1 2001/04/27 15:27:30 agc Exp $ + +SHA1 (ularn.tar.gz) = abc5bbecca65968e9ddaf2a8d07ac5141009459d +Size (ularn.tar.gz) = 142790 bytes +SHA1 (patch-aa) = 83e99ee4fa571b7d4a937f95a26990297f7dc22c +SHA1 (patch-ab) = a45fec8456da7b2b1985dc2332ede80082b2dab4 +SHA1 (patch-ac) = 859fb4ae3782658d2f2cf29d11da67a901499e61 +SHA1 (patch-ad) = ecf9b099ac8df2b86a9c45c0cf76c7caf194f64b +SHA1 (patch-ae) = 6232c2735b01a275f840c458bf78618094c99e27 +SHA1 (patch-af) = 252c2f2d318189efc9ab5d2ec78ff78c3d54fb68 +SHA1 (patch-ag) = 85dd443611465ddb3fc9819e8d69dd6028fa6fe7 +SHA1 (patch-ah) = ad5134994d8280fd3331a214eb5321b3cd541ed3 +SHA1 (patch-ai) = 43b9a2fb45a2a52347f0a83efca5ba70c3c58989 +SHA1 (patch-aj) = 34336ad095ecbba9c28cea1cb8f6d0d8023251a6 +SHA1 (patch-ak) = d2cb3bda3c2e95868362a0d0dcf4bb584d6df987 +SHA1 (patch-al) = cb3b13211c8897e0138347c74557dcbb7d318244 +SHA1 (patch-am) = 1df190db775f3d2278275894f18246e4897738e0 +SHA1 (patch-an) = 8c669a56795a8b4a2a6e24fd2fb121aa0699c01a +SHA1 (patch-ao) = 42a184fea3408fc935f3dcc62b7a127e81b71085 +SHA1 (patch-ap) = a46a3b27d2f5ac9e4479ac77bf193636608b42a4 +SHA1 (patch-aq) = e5b1e4a63d242316d9db3184b4f3e5ab62b4271c +SHA1 (patch-ar) = 51494cad1ac3db43eece043df920797d9213a61c +SHA1 (patch-as) = faec3ca3cd3d0ded4f0cf0740fd856dbecbd0841 +SHA1 (patch-at) = f0fd98ce48e779e63122a8311d4a4223cda5a751 +SHA1 (patch-au) = 09f12532f42d39b59381d12c115842d5c7b8c7f3 +SHA1 (patch-av) = 028b49f03ca8e63f1adee5eb82460de2855aa6cb +SHA1 (patch-aw) = 4e0e0501946928775e80f831f081fde887ddb67d +SHA1 (patch-ax) = 31f39079aeb8ccf490cc7fbbd1d3c70d9f0737ed +SHA1 (patch-ay) = 72bc4da5ec2006f3b1b4f29afec085e13f94ed11 +SHA1 (patch-az) = a2fbfbfacc77f297f77322ce66f30bf25bddbbfd +SHA1 (patch-ba) = be841fd37db8b8f0b588076f032c213d3eecb2f5 +SHA1 (patch-bb) = 5500e86403adc57c8315c4df66a13b851e74ef1c +SHA1 (patch-bc) = b2a894056c94cf6b21c614b000fb9de0744f0268 +SHA1 (patch-bd) = 54063f569eb03349b888d0dfaf02b7dcf15f7321 diff --git a/games/ularn/patches/patch-aa b/games/ularn/patches/patch-aa new file mode 100644 index 00000000000..e34f3bcb173 --- /dev/null +++ b/games/ularn/patches/patch-aa @@ -0,0 +1,58 @@ +$NetBSD: patch-aa,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- Configure.orig Wed Jan 18 11:41:26 1995 ++++ Configure Sun Jan 28 16:18:39 2001 +@@ -58,7 +58,7 @@ + medium='' + large='' + huge='' +-ccflags='' ++ccflags='-g -Wall -Wno-comment' + ldflags='' + cc='' + n='' +@@ -98,7 +98,7 @@ + uncompress='' + imake='' + xmkmf='' +-bindir='' ++bindir='XXXBINDIRXXX' + d_drand48='' + d_havetlib='' + termlib='' +@@ -107,7 +107,7 @@ + d_random='' + defcomp='' + imaketmpl='' +-libdir='' ++libdir='XXXLIBDIRXXX' + mycompress='' + myuncompress='' + CONFIG='' +@@ -187,7 +187,7 @@ + c='\c' + fi + echo $n "Type carriage return to continue. Your cursor should be here-->$c" +-read ans ++#read ans + rm -f .echotmp + + : now set up to do reads with possible shell escape and default assignment +@@ -1361,6 +1361,8 @@ + ;; + esac + ++termlib="$termlib -lcompat" ++ + echo " " + echo "End of configuration questions." + echo " " +@@ -1520,7 +1522,7 @@ + echo "If you didn't make any mistakes, then just type a carriage return here." + rp="If you need to edit config.sh, do it as a shell escape here:" + $echo $n "$rp $c" +-. UU/myread ++#. UU/myread + case "$ans" in + '') ;; + *) : in case they cannot read diff --git a/games/ularn/patches/patch-ab b/games/ularn/patches/patch-ab new file mode 100644 index 00000000000..713609599ec --- /dev/null +++ b/games/ularn/patches/patch-ab @@ -0,0 +1,157 @@ +$NetBSD: patch-ab,v 1.1.1.1 2001/04/27 15:27:30 agc Exp $ + +--- action.c.orig Sat Jan 13 16:20:10 2001 ++++ action.c Sat Jan 13 17:54:58 2001 +@@ -4,7 +4,7 @@ + #include "player.h" + #include "extern.h" + +-run (dir) ++void run (dir) + int dir; + { + int i; +@@ -27,7 +27,7 @@ + /* + function to wield a weapon + */ +-wield () ++void wield () + { + int i; + +@@ -56,14 +56,14 @@ + /* + common routine to say you don't have an item + */ +-ydhi (x) ++void ydhi (x) + int x; + { + cursors(); + lprintf("\nYou don't have item %c!",x); + } + +-ycwi (x) ++void ycwi (x) + int x; + { + cursors(); +@@ -73,7 +73,7 @@ + /* + function to wear armor + */ +-wear () ++void wear () + { + int i; + +@@ -124,10 +124,10 @@ + /* + function to drop an object + */ +-dropobj () ++void dropobj () + { + int i, pitflag=0; +- char *p; ++ int *p; + long amt; + + p = &item[playerx][playery]; +@@ -197,7 +197,7 @@ + /* + * readscr() Subroutine to read a scroll one is carrying + */ +-readscr () ++void readscr () + { + int i; + +@@ -230,39 +230,40 @@ + /* + * subroutine to eat a cookie one is carrying + */ +-eatcookie () ++void eatcookie () + { + int i; + char *fortune(), *p; + + while (1) { +- if ((i = whatitem("eat"))==ESC) +- return; +- if (i != '.') +- if (i=='*') +- showeat(); +- else { +- if (iven[i-'a']==OCOOKIE) { +- lprcat("\nThe cookie was delicious."); +- iven[i-'a']=0; +- if (!c[BLINDCOUNT]) { +- if ((p=fortune(fortfile))!=0) { +- lprcat(" Inside you find a scrap of paper that says:\n"); +- lprcat(p); ++ if ((i = whatitem("eat"))==ESC) ++ return; ++ if (i != '.') { ++ if (i=='*') { ++ showeat(); ++ } else { ++ if (iven[i-'a']==OCOOKIE) { ++ lprcat("\nThe cookie was delicious."); ++ iven[i-'a']=0; ++ if (!c[BLINDCOUNT]) { ++ if ((p=fortune(fortfile))!=0) { ++ lprcat(" Inside you find a scrap of paper that says:\n"); ++ lprcat(p); ++ } ++ } ++ return; + } ++ if (iven[i-'a']==0) { ydhi(i); return; } ++ lprcat("\nYou can't eat that!"); return; + } +- return; + } +- if (iven[i-'a']==0) { ydhi(i); return; } +- lprcat("\nYou can't eat that!"); return; +- } + } + } + + /* + * subroutine to quaff a potion one is carrying + */ +-quaff () ++void quaff () + { + int i; + +@@ -289,7 +290,7 @@ + } + } + +-qwhatitem () ++int qwhatitem () + { + int j, i=0; + char tmp[IVENSIZE]; +@@ -316,7 +317,7 @@ + /* + function to ask what player wants to do + */ +-whatitem (str) ++int whatitem (str) + char *str; + { + int j=0, flag=0, i=0; +@@ -440,7 +441,7 @@ + return (amt); + } + +-do_create() ++void do_create() + { + int t, a; + diff --git a/games/ularn/patches/patch-ac b/games/ularn/patches/patch-ac new file mode 100644 index 00000000000..be9c6598c92 --- /dev/null +++ b/games/ularn/patches/patch-ac @@ -0,0 +1,87 @@ +$NetBSD: patch-ac,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- bill.c.orig Sat Jan 13 17:22:51 2001 ++++ bill.c Sat Jan 13 17:30:42 2001 +@@ -1,4 +1,10 @@ + /* bill.c */ ++#include <sys/types.h> ++#include <sys/uio.h> ++#include <sys/wait.h> ++#include <unistd.h> ++#include <stdlib.h> ++ + #include "header.h" + #include "player.h" + #include "extern.h" +@@ -7,7 +13,7 @@ + static int pid; + long Taxes; + +-letter1() ++int letter1(void) + { + sprintf(mail600, "/tmp/#%dmail600",pid); /* prepare path */ + if (lcreat(mail600) < 0) { +@@ -33,7 +39,7 @@ + return(1); + } + +-letter2 () ++int letter2 (void) + { + sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ + if (lcreat(mail600) < 0) { +@@ -56,7 +62,7 @@ + return(1); + } + +-letter3 () ++int letter3 (void) + { + sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ + if (lcreat(mail600) < 0) { +@@ -82,7 +88,7 @@ + return(1); + } + +-letter4 () ++int letter4 (void) + { + sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ + if (lcreat(mail600) < 0) { +@@ -101,7 +107,7 @@ + return(1); + } + +-letter5 () ++int letter5 (void) + { + sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ + if (lcreat(mail600) < 0) { +@@ -126,7 +132,7 @@ + return(1); + } + +-letter6 () ++int letter6 (void) + { + sprintf(mail600,"/tmp/#%dmail600",pid); /* prepare path */ + if (lcreat(mail600) < 0) { +@@ -156,7 +162,7 @@ + letter1, letter2, letter3, letter4, letter5, letter6 + }; + +-mailbill () ++void mailbill (void) + { + int i; + char buf[128]; +@@ -168,7 +174,7 @@ + for (i=0; i<sizeof(pfn)/sizeof(int (*)()); i++) + if (pfn[i]()) { + sleep(20); +- sprintf(buf,"/bin/mail %s < %s", ++ sprintf(buf,"/usr/bin/mail %s < %s", + loginname,mail600); + system(buf); + unlink(mail600); diff --git a/games/ularn/patches/patch-ad b/games/ularn/patches/patch-ad new file mode 100644 index 00000000000..e25242259b8 --- /dev/null +++ b/games/ularn/patches/patch-ad @@ -0,0 +1,143 @@ +$NetBSD: patch-ad,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- create.c.orig Fri Jun 19 13:55:34 1992 ++++ create.c Sat Jan 13 21:52:52 2001 +@@ -1,4 +1,6 @@ + /* create.c */ ++#include <stdlib.h> ++ + #include "header.h" + #include "monst.h" + #include "player.h" +@@ -11,12 +13,12 @@ + * subroutine to create the player and the players attributes + * this is called at the beginning of a game and at no other time + */ +-makeplayer () ++void makeplayer () + { + int i; + + scbr(); +- clear(); ++ ularn_clear(); + c[LEVEL]=1; /* player starts at level one */ + c[REGENCOUNTER]=16; + c[ECOUNTER]=96; /*start regeneration correctly*/ +@@ -49,7 +51,7 @@ + * levels will get a few more monsters. + * Note that it is here we remove genocided monsters from the present level + */ +-newcavelevel (x) ++void newcavelevel (x) + int x; + { + int i,j; +@@ -87,7 +89,7 @@ + */ + static int mx,mxl,mxh,my,myl,myh,tmp2; + +-makemaze (lev) ++void makemaze (lev) + int lev; + { + int i,j; +@@ -160,7 +162,7 @@ + /* + function to eat away a filled in maze + */ +-eat (xx,yy) ++void eat (xx,yy) + int xx, yy; + { + int dir,try; +@@ -225,7 +227,7 @@ + * ! cure dianthroritis - random object + */ + +-cannedlevel (lev) ++int cannedlevel (lev) + int lev; + { + int i,j; +@@ -307,7 +309,7 @@ + * - level 10's treasure room has the eye in it and demon lords + * - level V5 has potion of cure dianthroritis and demon prince + */ +-treasureroom(lv) ++void treasureroom(lv) + int lv; + { + int tx,ty,xsize,ysize; +@@ -329,7 +331,7 @@ + * room is filled with objects and monsters + * the coordinate given is that of the upper left corner of the room + */ +-troom(lv,xsize,ysize,tx,ty,glyph) ++void troom(lv,xsize,ysize,tx,ty,glyph) + int lv,xsize,ysize,tx,ty,glyph; + { + int i,j; +@@ -388,7 +390,7 @@ + * *********** + * subroutine to create the objects in the maze for the given level + */ +-makeobject (j) ++void makeobject (j) + int j; + { + int i; +@@ -612,7 +614,7 @@ + /* + * subroutine to fill in a number of objects of the same kind + */ +-fillmroom(n,what,arg) ++void fillmroom(n,what,arg) + int n, what, arg; + { + int i; +@@ -621,7 +623,7 @@ + fillroom(what,arg); + } + +-froom(n,itm,arg) ++void froom(n,itm,arg) + int n, itm, arg; + { + if (rnd(151) < n) +@@ -632,7 +634,7 @@ + * subroutine to put an object into an empty room + * uses a random walk + */ +-fillroom (what,arg) ++void fillroom (what,arg) + int what, arg; + { + int x,y; +@@ -659,7 +661,7 @@ + * subroutine to put monsters into an empty room without walls or other + * monsters + */ +-fillmonst (what) ++int fillmonst (what) + int what; + { + int x,y,trys; +@@ -684,7 +686,7 @@ + * must be done when entering a new level + * if sethp(1) then wipe out old monsters else leave them there + */ +-sethp (flg) ++void sethp (flg) + int flg; + { + int i,j; +@@ -738,7 +740,7 @@ + /* + * Function to destroy all genocided monsters on the present level + */ +-checkgen () ++void checkgen (void) + { + int x,y; + diff --git a/games/ularn/patches/patch-ae b/games/ularn/patches/patch-ae new file mode 100644 index 00000000000..824aa89efec --- /dev/null +++ b/games/ularn/patches/patch-ae @@ -0,0 +1,288 @@ +$NetBSD: patch-ae,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- data.c.orig Fri Jun 19 13:55:29 1992 ++++ data.c Sun Jan 14 13:42:03 2001 +@@ -114,27 +114,27 @@ + char logname[LOGNAMESIZE]; /* players name storage for scoring */ + char char_class[20]; /* character class */ + +-short hitp[MAXX][MAXY]; /* monster hp on level */ +-short iarg[MAXX][MAXY]; /* arg for the item array */ +-short lastnum=0; /* the number of the monster last hitting player, or */ +- /* reason why dead */ ++int hitp[MAXX][MAXY]; /* monster hp on level */ ++int iarg[MAXX][MAXY]; /* arg for the item array */ ++int lastnum=0; /* number of monster last hitting player, or */ ++ /* reason why dead */ + +-char compress ++int compress + #ifdef DEF_COMPRESS + = 1; + #else + = 0; + #endif +-char item[MAXX][MAXY]; /* objects in maze if any */ +-char know[MAXX][MAXY]; /* 1 or 0 if here before */ +-/*char mitem[MAXX][MAXY]; /* monster item array */ +-char moved[MAXX][MAXY]; /* monster movement flags */ +-char stealth[MAXX][MAXY]; /* 0=sleeping 1=awake monst */ +-char iven[IVENSIZE]; /* inventory for player */ ++int item[MAXX][MAXY]; /* objects in maze if any */ ++int know[MAXX][MAXY]; /* 1 or 0 if here before */ ++/*char mitem[MAXX][MAXY]; *//* monster item array */ ++int moved[MAXX][MAXY]; /* monster movement flags */ ++int stealth[MAXX][MAXY]; /* 0=sleeping 1=awake monst */ ++int iven[IVENSIZE]; /* inventory for player */ + short ivenarg[IVENSIZE]; /* inventory args for player */ +-char beenhere[NLEVELS]={0}; /* 1 if have been on this level */ +-char nosignal=0; /* set to 1 to disable the signals from doing anything*/ +-char predostuff=0; /* ++int beenhere[NLEVELS]={0}; /* 1 if have been on this level */ ++int nosignal=0; /* set to 1 to disable the signals from doing anything*/ ++int predostuff=0; /* + ** 2 means that the trap handling routines must do a + ** showplayer() after a trap. 0 means don't showplayer() + ** 0 - we are in create player screen +@@ -142,27 +142,29 @@ + ** 2 - we are in the normal game + */ + +-char ramboflag=0; +-char do_fork=0; +-char sex=1; /* default is man, 0=woman */ +-char boldon=1; /* 1=bold objects, 0=inverse objects */ +-char mail=1; /* 1=mail letters after win game */ +-char ckpflag=0; /* 1 if want checkpointing of game, 0 otherwise */ +-char cheat=0; /* 1 if the player has fudged save file */ +-char level=0; /* cavelevel player is on = c[CAVELEVEL]*/ +-char wizard=0; /* the wizard mode flag */ +-char hitflag=0; /* flag for if player has been hit when running */ +-char hit2flag=0; /* flag for if player has been hit when running */ +-char hit3flag=0; /* flag for if player has been hit flush input*/ +-char playerx,playery; /* the room on the present level of the player*/ +-char lastpx,lastpy; /* 0 --- MAXX-1 or 0 --- MAXY-1 */ +-char oldx,oldy; +-char lasthx=0,lasthy=0;/* location of monster last hit by player*/ +-char nobeep=0; /* true if program is not to beep*/ +-char char_picked; /* the character chosen */ +- +-char enable_scroll=0; /* constant for enabled/disabled scrolling regn */ +- ++int ramboflag=0; ++int do_fork=0; ++int sex=1; /* default is man, 0=woman */ ++int boldon=1; /* 1=bold objects, 0=inverse objects */ ++int mail=1; /* 1=mail letters after win game */ ++int ckpflag=0; /* 1 if want checkpointing of game, 0 otherwise */ ++int cheat=0; /* 1 if the player has fudged save file */ ++int level=0; /* cavelevel player is on = c[CAVELEVEL]*/ ++int wizard=0; /* the wizard mode flag */ ++int hitflag=0; /* flag for if player has been hit when running */ ++int hit2flag=0; /* flag for if player has been hit when running */ ++int hit3flag=0; /* flag for if player has been hit flush input*/ ++int playerx,playery; /* the room on the present level of the player*/ ++int oldx,oldy; ++int nobeep=0; /* true if program is not to beep*/ ++int char_picked; /* the character chosen */ ++ ++int enable_scroll=0; /* constant for enabled/disabled scrolling regn */ ++ ++int lastpx; /* 0 --- MAXX-1 */ ++int lastpy; /* 0 --- MAXY-1 */ ++int lasthx = 0; /* location of monster last hit by player */ ++int lasthy = 0; /* location of monster last hit by player */ + + long initialtime=0; /* time playing began */ + long gtime=0; /* the clock for the game */ +@@ -289,7 +291,7 @@ + * + * array to do rnd() to create monsters <= a given level + */ +-char monstlevel[] = {5, 11, 17, 22, 27, 33, 39, 42, 46, 50, 53, 56}; ++int monstlevel[] = {5, 11, 17, 22, 27, 33, 39, 42, 46, 50, 53, 56}; + + struct monst monster[] = { + +@@ -380,82 +382,85 @@ + + /* name array for scrolls */ + char *scrollname[MAXSCROLL] = { +- "\0enchant armor", +- "\0enchant weapon", +- "\0enlightenment", +- "\0blank paper", +- "\0create monster", +- "\0create artifact", +- "\0aggravate monsters", +- "\0time warp", +- "\0teleportation", +- "\0expanded awareness", +- "\0haste monsters", +- "\0monster healing", +- "\0spirit protection", +- "\0undead protection", +- "\0stealth", +- "\0magic mapping", +- "\0hold monsters", +- "\0gem perfection", +- "\0spell extension", +- "\0identify", +- "\0remove curse", +- "\0annihilation", +- "\0pulverization", +- "\0life protection", +- "\0 ", +- "\0 ", +- "\0 ", +- "\0 " ++ "enchant armor", ++ "enchant weapon", ++ "enlightenment", ++ "blank paper", ++ "create monster", ++ "create artifact", ++ "aggravate monsters", ++ "time warp", ++ "teleportation", ++ "expanded awareness", ++ "haste monsters", ++ "monster healing", ++ "spirit protection", ++ "undead protection", ++ "stealth", ++ "magic mapping", ++ "hold monsters", ++ "gem perfection", ++ "spell extension", ++ "identify", ++ "remove curse", ++ "annihilation", ++ "pulverization", ++ "life protection", ++ " ", ++ " ", ++ " ", ++ " " + }; + ++int scrollknown[MAXSCROLL]; ++ + /* name array for magic potions */ + char *potionname[MAXPOTION] = { +- "\0sleep", +- "\0healing", +- "\0raise level", +- "\0increase ability", +- "\0wisdom", +- "\0strength", +- "\0raise charisma", +- "\0dizziness", +- "\0learning", +- "\0gold detection", +- "\0monster detection", +- "\0forgetfulness", +- "\0water", +- "\0blindness", +- "\0confusion", +- "\0heroism", +- "\0sturdiness", +- "\0giant strength", +- "\0fire resistance", +- "\0treasure finding", +- "\0instant healing", +- " cure dianthroritis", +- "\0poison", +- "\0see invisible", +- "\0 ", +- "\0 ", +- "\0 ", +- "\0 ", +- "\0 ", +- "\0 ", +- "\0 ", +- "\0 ", +- "\0 ", +- "\0 ", +- "\0 " ++ "sleep", ++ "healing", ++ "raise level", ++ "increase ability", ++ "wisdom", ++ "strength", ++ "raise charisma", ++ "dizziness", ++ "learning", ++ "gold detection", ++ "monster detection", ++ "forgetfulness", ++ "water", ++ "blindness", ++ "confusion", ++ "heroism", ++ "sturdiness", ++ "giant strength", ++ "fire resistance", ++ "treasure finding", ++ "instant healing", ++ "cure dianthroritis", ++ "poison", ++ "see invisible", ++ " ", ++ " ", ++ " ", ++ " ", ++ " ", ++ " ", ++ " ", ++ " ", ++ " ", ++ " ", ++ " " + }; + ++int potionknown[MAXPOTION]; + + /* + ** i = rund((tmp=splev[lev])?tmp:1); + ** i = rnd((tmp=splev[lev]-9) ?tmp:1 ) + 9; + */ +-char spelknow[SPNUM]={0}; +-char splev[] = { ++int spelknow[SPNUM]={0}; ++int splev[] = { + 1,4,7,11,15, + 20,24,28,30,32, + 33,34,35,36,37, +@@ -762,7 +767,7 @@ + * 20 - remove curse 21 - annihilation + * 22 - pulverization 23 - life protection + */ +-char scprob[]= { ++int scprob[]= { + 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, + 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, + 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, +@@ -800,15 +805,15 @@ + * 22 - poison + * 23 - see invisible + */ +-char potprob[] = { ++int potprob[] = { + 0, 0, 1, 1, 1, 2, 3, 3, 4, 4, + 5, 5, 6, 6, 7, 7, 8, 9, 9, 9, + 10, 10, 10, 11, 11, 12, 12, 13, 14, 15, + 16, 17, 18, 19, 19, 20, 20, 22, 22, 23, + 23 }; /* 41 total */ + +-char nlpts[] = { 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7 }; +-char nch[] = { 0, 0, 0, 1, 1, 1, 2, 2, 3, 4 }; +-char nplt[] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 4 }; +-char ndgg[] = { 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5 }; +-char nsw[] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 3 }; ++int nlpts[] = { 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7 }; ++int nch[] = { 0, 0, 0, 1, 1, 1, 2, 2, 3, 4 }; ++int nplt[] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 4 }; ++int ndgg[] = { 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5 }; ++int nsw[] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 3 }; diff --git a/games/ularn/patches/patch-af b/games/ularn/patches/patch-af new file mode 100644 index 00000000000..9a1b9efbdf1 --- /dev/null +++ b/games/ularn/patches/patch-af @@ -0,0 +1,65 @@ +$NetBSD: patch-af,v 1.1.1.1 2001/04/27 15:27:30 agc Exp $ + +--- diag.c.orig Fri Jun 19 13:55:29 1992 ++++ diag.c Sat Jan 13 17:52:26 2001 +@@ -61,7 +61,7 @@ + + FILE *dfile; + +-diag() ++void diag(void) + { + int i, j; + +@@ -75,10 +75,10 @@ + + fprintf(dfile, "Hit points: %2ld(%2ld)\n", c[HP], c[HPMAX]); + +- fprintf(dfile, "gold: %ld Experience: %ld Character level: %d Level in caverns: %ld\n", +- (long) c[GOLD], +- (long) c[EXPERIENCE], +- (long) c[LEVEL], ++ fprintf(dfile, "gold: %ld Experience: %ld Character level: %ld Level in caverns: %d\n", ++ c[GOLD], ++ c[EXPERIENCE], ++ c[LEVEL], + level); + + fprintf(dfile, "\nFor the c[] array:\n"); +@@ -143,12 +143,12 @@ + + fprintf(dfile, "\nAvailable potions:\n\n"); + for (i = 0; i < MAXPOTION; i++) +- fprintf(dfile, "%20s\n", &potionname[i][1]); ++ fprintf(dfile, "%20s\n", potionname[i]); + fflush(dfile); + + fprintf(dfile, "\nAvailable scrolls:\n\n"); + for (i = 0; i < MAXSCROLL; i++) +- fprintf(dfile, "%20s\n", &scrollname[i][1]); ++ fprintf(dfile, "%20s\n", scrollname[i]); + fflush(dfile); + + fprintf(dfile, "\nSpell list:\n\n"); +@@ -184,17 +184,16 @@ + /* + draw the whole screen + */ +-diagdrawscreen() ++void diagdrawscreen(void) + { + int i, j, k; + + /* east west walls of this line */ + for (i = 0; i < MAXY; i++) { + for (j = 0; j < MAXX; j++) +- if (k = mitem[j][i].mon) +- fprintf(dfile, "%c", monstnamelist[k]); +- else +- fprintf(dfile, "%c", objnamelist[item[j][i]]); ++ k = mitem[j][i].mon; ++ fprintf(dfile, "%c", ++ k ? monstnamelist[k] : objnamelist[item[j][i]]); + fprintf(dfile, "\n"); + } + } diff --git a/games/ularn/patches/patch-ag b/games/ularn/patches/patch-ag new file mode 100644 index 00000000000..029c06b9922 --- /dev/null +++ b/games/ularn/patches/patch-ag @@ -0,0 +1,259 @@ +$NetBSD: patch-ag,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- display.c.orig Fri Jun 19 13:55:30 1992 ++++ display.c Sat Jan 13 21:53:21 2001 +@@ -1,4 +1,5 @@ + /* display.c */ ++#include <stdlib.h> + #include "header.h" + #include "player.h" + #include "itm.h" +@@ -8,7 +9,7 @@ + static int minx,maxx,miny,maxy,k,m; + static char always=0; + char bot1f=0, bot2f=0, bot3f=0; +-static char mimicmonst=MIMIC; ++static int mimicmonst=MIMIC; + + #define botsub(idx,x,y,str) \ + if (c[(idx)] != cbak[(idx)]) { \ +@@ -17,7 +18,7 @@ + lprintf(str,c[(idx)]); \ + } + +-bottomdo() ++void bottomdo(void) + { + if (bot1f) { + bot3f=bot1f=bot2f=0; +@@ -35,12 +36,12 @@ + } + + /* update only the gold number on the bottomline, called from ogold() */ +-bottomgold() { botsub(GOLD,72,19,"%-8d"); } ++void bottomgold(void) { botsub(GOLD,72,19,"%-8d"); } + + /* update number of spells called from regen() */ +-bot_spellx() { botsub(SPELLS,9,18,"%2d"); } ++void bot_spellx(void) { botsub(SPELLS,9,18,"%2d"); } + +-bot_linex() ++void bot_linex(void) + { + int i; + char buf[12]; +@@ -65,7 +66,7 @@ + /* c[HP], c[HPMAX], c[STRENGTH]+c[STREXTRA], */ + /* c[INTELLIGENCE]); */ + +- sprintf(buf, "%d (%d)", c[HP], c[HPMAX]); ++ sprintf(buf, "%ld (%ld)", c[HP], c[HPMAX]); + /* 12345 111122 222222 3 */ + /* 678901 345678 0 */ + lprintf("HP: %11s STR=%-2d INT=%-2d ", +@@ -147,7 +148,7 @@ + special routine to update hp and level fields on bottom lines + called in monster.c hitplayer() and spattack() + */ +-bot_hpx() ++void bot_hpx(void) + { + if (c[EXPERIENCE] != cbak[EXPERIENCE]) { + recalc(); +@@ -164,26 +165,26 @@ + int typ; + char *string; + } bot_data[] = { +- STEALTH, "stealth", +- UNDEADPRO, "undead pro", +- SPIRITPRO, "spirit pro", +- CHARMCOUNT, "Charm", +- TIMESTOP, "Time Stop", +- HOLDMONST, "Hold Monst", +- GIANTSTR, "Giant Str", +- FIRERESISTANCE,"Fire Resit", +- DEXCOUNT, "Dexterity", +- STRCOUNT, "Strength", +- SCAREMONST, "Scare", +- HASTESELF, "Haste Self", +- CANCELLATION, "Cancel", +- INVISIBILITY, "Invisible", +- ALTPRO, "Protect 3", +- PROTECTIONTIME, "Protect 2", +- WTW, "Wall-Walk" ++ { STEALTH, "stealth" }, ++ { UNDEADPRO, "undead pro" }, ++ { SPIRITPRO, "spirit pro" }, ++ { CHARMCOUNT, "Charm" }, ++ { TIMESTOP, "Time Stop" }, ++ { HOLDMONST, "Hold Monst" }, ++ { GIANTSTR, "Giant Str" }, ++ { FIRERESISTANCE, "Fire Resit" }, ++ { DEXCOUNT, "Dexterity" }, ++ { STRCOUNT, "Strength" }, ++ { SCAREMONST, "Scare" }, ++ { HASTESELF, "Haste Self" }, ++ { CANCELLATION, "Cancel" }, ++ { INVISIBILITY, "Invisible" }, ++ { ALTPRO, "Protect 3" }, ++ { PROTECTIONTIME, "Protect 2" }, ++ { WTW, "Wall-Walk" }, + }; + +-botside() ++void botside(void) + { + int i,idx; + +@@ -208,7 +209,7 @@ + always=0; + } + +-bothp() ++void bothp(void) + { + char buf[12]; + +@@ -216,7 +217,7 @@ + return; + cbak[HP]=c[HP]; + cbak[HPMAX]=c[HPMAX]; +- sprintf(buf, "%d (%d)", c[HP], c[HPMAX]); ++ sprintf(buf, "%ld (%ld)", c[HP], c[HPMAX]); + cursor(5, 19); + lprintf("%11s", buf); + } +@@ -230,7 +231,7 @@ + d_xmax=MAXX, + d_ymin=0, + d_ymax=MAXY; /* for limited screen drawing */ +-draws(xmin,xmax,ymin,ymax) ++void draws(xmin,xmax,ymin,ymax) + int xmin,xmax,ymin,ymax; + { + int i,idx; +@@ -272,14 +273,14 @@ + ** + ** redraw the whole screen as the player knows it + */ +-drawscreen() ++void drawscreen(void) + { + int i,j,k; + int lastx,lasty; /* used to optimize the object printing */ + + if (d_xmin==0 && d_xmax==MAXX && d_ymin==0 && d_ymax==MAXY) { + d_flag=1; +- clear(); /* clear the screen */ ++ ularn_clear(); /* clear the screen */ + } + else { + d_flag=0; +@@ -293,7 +294,8 @@ + if (know[j][i]==0) + screen[j][i] = objnamelist[0]; + else { +- if (k=mitem[j][i].mon) { ++ k = mitem[j][i].mon; ++ if (k) { + if (k==MIMIC) { + if (gtime % 10 == 0) + while((mimicmonst = rnd(MAXMONST))==INVISIBLESTALKER); +@@ -382,7 +384,7 @@ + ** + ** subroutine to display a cell location on the screen + */ +-showcell(x,y) ++void showcell(x,y) + int x,y; + { + int i,j,k,m; +@@ -459,7 +461,7 @@ + ** these coordinated are not shown + ** used in godirect() in monster.c for missile weapons display + */ +-show1cell(x,y) ++void show1cell(x,y) + int x,y; + { + if (c[BLINDCOUNT]) +@@ -504,7 +506,7 @@ + ** subroutine to show where the player is on the screen + ** cursor values start from 1 up + */ +-showplayer() ++void showplayer(void) + { + cursor(playerx+1,playery+1); + oldx=playerx; +@@ -524,7 +526,7 @@ + char diroffx[] = { 0, 0, 1, 0, -1, 1, -1, 1, -1 }; + char diroffy[] = { 0, 1, 0, -1, 0, -1, -1, 1, 1 }; + +-moveplayer(dir) ++int moveplayer(dir) + int dir; /* from = present room # direction = [1-north] + [2-east] [3-south] [4-west] [5-northeast] + [6-northwest] [7-southeast] [8-southwest] +@@ -589,7 +591,7 @@ + */ + static int lincount,count; + +-seemagic(arg) ++void seemagic(arg) + int arg; + { + int i,number; +@@ -620,7 +622,7 @@ + } + else { + resetscroll(); +- clear(); ++ ularn_clear(); + } + + lprcat("The magic spells you have discovered thus far:\n\n"); +@@ -647,9 +649,9 @@ + lprcat("\nThe magic scrolls you have found to date are:\n\n"); + count=0; + for (i=0; i<MAXSCROLL; i++) +- if (scrollname[i][0]) +- if (scrollname[i][1]!=' ') { +- lprintf("%-26s",&scrollname[i][1]); ++ if (scrollknown[i]) ++ if (scrollname[i][0]!=' ') { ++ lprintf("%-26s",scrollname[i]); + seepage(); + } + +@@ -662,9 +664,9 @@ + lprcat("\nThe magic potions you have found to date are:\n\n"); + count=0; + for (i=0; i<MAXPOTION; i++) +- if (potionname[i][0]) +- if (potionname[i][1]!=' ') { +- lprintf("%-26s",&potionname[i][1]); ++ if (potionknown[i]) ++ if (potionname[i][0]!=' ') { ++ lprintf("%-26s",potionname[i]); + seepage(); + } + +@@ -677,7 +679,7 @@ + /* + * subroutine to paginate the seemagic function + */ +-seepage() ++void seepage(void) + { + if (++count==3) { + lincount++; +@@ -686,7 +688,7 @@ + if (lincount>17) { + lincount=0; + more(); +- clear(); ++ ularn_clear(); + } + } + } diff --git a/games/ularn/patches/patch-ah b/games/ularn/patches/patch-ah new file mode 100644 index 00000000000..aff4972dcd5 --- /dev/null +++ b/games/ularn/patches/patch-ah @@ -0,0 +1,1175 @@ +$NetBSD: patch-ah,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- extern.h.orig Fri Jun 19 13:55:30 1992 ++++ extern.h Sat Jan 13 21:29:33 2001 +@@ -2,19 +2,19 @@ + + /* module: action.c */ + +-int run(int); +-int wield(void); +-int ydhi(int); +-int ycwi(int); +-int wear(void); +-int dropobj(void); +-int readscr(void); +-int eatcookie(void); +-int quaff(void); ++void run(int); ++void wield(void); ++void ydhi(int); ++void ycwi(int); ++void wear(void); ++void dropobj(void); ++void readscr(void); ++void eatcookie(void); ++void quaff(void); + int qwhatitem(void); + int whatitem(char *); + long readnum(long); +-int do_create(void); ++void do_create(void); + + /* module: bill.c */ + +@@ -24,53 +24,53 @@ + int letter4(void); + int letter5(void); + int letter6(void); +-int mailbill(void); ++void mailbill(void); + + /* module: config.c */ + + + /* module: create.c */ + +-int makeplayer(void); +-int newcavelevel(int); +-int makemaze(int); +-int eat(int, int); ++void makeplayer(void); ++void newcavelevel(int); ++void makemaze(int); ++void eat(int, int); + int cannedlevel(int); +-int treasureroom(int); +-int troom(int, int, int, int, int, int); +-int makeobject(int); +-int fillmroom(int, int, int); +-int froom(int, int, int); +-int fillroom(int, int); ++void treasureroom(int); ++void troom(int, int, int, int, int, int); ++void makeobject(int); ++void fillmroom(int, int, int); ++void froom(int, int, int); ++void fillroom(int, int); + int fillmonst(int); +-int sethp(int); +-int checkgen(void); ++void sethp(int); ++void checkgen(void); + + /* module: data.c */ + + + /* module: diag.c */ + +-int diag(void); +-int diagdrawscreen(void); ++void diag(void); ++void diagdrawscreen(void); + + /* module: display.c */ + +-int bottomdo(void); +-int bottomgold(void); +-int bot_spellx(void); +-int bot_linex(void); +-int bot_hpx(void); +-int botside(void); +-int bothp(void); +-int draws(int, int, int, int); +-int drawscreen(void); +-int showcell(int, int); +-int show1cell(int, int); +-int showplayer(void); ++void bottomdo(void); ++void bottomgold(void); ++void bot_spellx(void); ++void bot_linex(void); ++void bot_hpx(void); ++void botside(void); ++void bothp(void); ++void draws(int, int, int, int); ++void drawscreen(void); ++void showcell(int, int); ++void show1cell(int, int); ++void showplayer(void); + int moveplayer(int); +-int seemagic(int); +-int seepage(void); ++void seemagic(int); ++void seepage(void); + + /* module: fortune.c */ + +@@ -78,178 +78,178 @@ + + /* module: help.c */ + +-int help(void); +-int welcome(void); +-int retcont(void); ++void help(void); ++void welcome(void); ++void retcont(void); + int openhelp(void); + + /* module: io.c */ + + int getcharacter(void); +-int newgame(void); ++void newgame(void); + /*VARARGS*/ +-int lprintf(); +-int lprint(long); +-int lwrite(char *, int); ++void lprintf(); ++void lprint(long); ++void lwrite(char *, int); + long lgetc1(void); + long lrint(void); +-int lrfill(char *, int); ++void lrfill(char *, int); + char *lgetw(void); + char *lgetl(void); + int lcreat(char *); + int lopen(char *); + int lappend(char *); +-int lrclose(void); +-int lwclose(void); +-int lprcat(char *); +-int init_term(void); +-int cl_up(int, int); +-int cl_dn(int, int); +-int standout(char *); +-int set_score_output(void); +-int lflush(void); ++void lrclose(void); ++void lwclose(void); ++void lprcat(char *); ++void init_term(void); ++void cl_up(int, int); ++void cl_dn(int, int); ++void standout(char *); ++void set_score_output(void); ++void lflush(void); + int putcharacter(int); +-int flush_buf(void); +-int tmcapcnv(char *, char *); ++void flush_buf(void); ++void tmcapcnv(char *, char *); + char *getword(char *); + + /* module: main.c */ + + int main(int, char **); +-int parse(void); +-int parse2(void); ++void parse(void); ++void parse2(void); + + /* module: monster.c */ + +-int createmonster(int); ++void createmonster(int); + int cgood(int, int, int, int); +-int createitem(int, int, int, int); +-int cast(void); +-int speldamage(int); +-int loseint(void); ++void createitem(int, int, int, int); ++void cast(void); ++void speldamage(int); ++void loseint(void); + int isconfuse(void); + int nospell(int, int); + int fullhit(int); +-int direct(int, int, char *, int); +-int godirect(int, int, char *, int, int); +-int ifblind(int, int); +-int tdirect(int); +-int makewall(int); +-int omnidirect(int, int, char *); ++void direct(int, int, char *, int); ++void godirect(int, int, char *, int, int); ++void ifblind(int, int); ++void tdirect(int); ++void makewall(int); ++void omnidirect(int, int, char *); + int dirsub(int *, int *); + int verifyxy(int *, int *); +-int dirpoly(int); +-int hitmonster(int, int); ++void dirpoly(int); ++void hitmonster(int, int); + int hitm(int, int, int); +-int hitplayer(int, int); +-int dropsomething(int, int, int); +-int dropgold(int); +-int something(int, int, int); ++void hitplayer(int, int); ++void dropsomething(int, int, int); ++void dropgold(int); ++void something(int, int, int); + int newobject(int, int *); + int spattack(int, int, int); +-int checkloss(int); +-int annihilate(void); +-int genmonst(void); ++void checkloss(int); ++void annihilate(void); ++void genmonst(void); + int makemonst(int); +-int randmonst(void); ++void randmonst(void); + + /* module: moreobj.c */ + +-int oaltar(void); +-int ohear(void); +-int othrone(int); +-int odeadthrone(void); +-int ochest(void); +-int ofountain(void); +-int fntchange(int); +-int fch(int, long *); ++void oaltar(void); ++void ohear(void); ++void othrone(int); ++void odeadthrone(void); ++void ochest(void); ++void ofountain(void); ++void fntchange(int); ++void fch(int, long *); + + /* module: movem.c */ + +-int movemonst(void); +-int movemt(int, int); +-int mmove(int, int, int, int); +-int teleportmonst(int, int, int); ++void movemonst(void); ++void movemt(int, int); ++void mmove(int, int, int, int); ++void teleportmonst(int, int, int); + + /* module: nap.c */ + +-int nap(int); +-int napms(int); ++void nap(int); ++void napms(int); + + /* module: object.c */ + +-int lookforobject(void); +-int finditem(int); +-int ostairs(int); +-int oteleport(int); +-int opotion(int); +-int quaffpotion(int); +-int oscroll(int); +-int adjusttime(long); +-int read_scroll(int); +-int opit(void); +-int obottomless(void); +-int oelevator(int); +-int ostatue(void); +-int omirror(void); +-int obook(void); +-int readbook(int); +-int ocookie(void); +-int ogold(int); +-int ohome(void); +-int iopts(void); +-int ignore(void); +-int closedoor(void); ++void lookforobject(void); ++void finditem(int); ++void ostairs(int); ++void oteleport(int); ++void opotion(int); ++void quaffpotion(int); ++void oscroll(int); ++void adjusttime(long); ++void read_scroll(int); ++void opit(void); ++void obottomless(void); ++void oelevator(int); ++void ostatue(void); ++void omirror(void); ++void obook(void); ++void readbook(int); ++void ocookie(void); ++void ogold(int); ++void ohome(void); ++void iopts(void); ++void ignore(void); ++void closedoor(void); + + /* module: player.c */ + +-int raiselevel(void); +-int loselevel(void); +-int raiseexperience(long); +-int loseexperience(long); +-int losehp(int); +-int losemhp(int); +-int raisehp(int); +-int raisemhp(int); +-int raisespells(int); +-int raisemspells(int); +-int losespells(int); +-int losemspells(int); +-int positionplayer(void); +-int recalc(void); +-int quit(void); +-int more(void); ++void raiselevel(void); ++void loselevel(void); ++void raiseexperience(long); ++void loseexperience(long); ++void losehp(int); ++void losemhp(int); ++void raisehp(int); ++void raisemhp(int); ++void raisespells(int); ++void raisemspells(int); ++void losespells(int); ++void losemspells(int); ++void positionplayer(void); ++void recalc(void); ++void quit(void); ++void more(void); + int take(int, int); + int drop_object(int); +-int enchantarmor(void); +-int enchweapon(void); ++void enchantarmor(void); ++void enchweapon(void); + int pocketfull(void); + int nearbymonst(void); + int stealsomething(int, int); + int emptyhanded(void); +-int creategem(void); +-int adjustcvalues(int, int); +-int gettokstr(char *); ++void creategem(void); ++void adjustcvalues(int, int); ++void gettokstr(char *); + int getpassword(void); + int getyn(void); + int packweight(void); + + /* module: regen.c */ + +-int regen(void); ++void regen(void); + + /* module: savelev.c */ + +-int savelevel(void); +-int getlevel(); ++void savelevel(void); ++void getlevel(void); + int savegame(char *); +-int restoregame(char *); +-int greedy(void); +-int fsorry(void); +-int fcheat(void); +-int init_cells(void); +-int bwrite(int, char *, long); +-int bread(int, char *, long); ++void restoregame(char *); ++void greedy(void); ++void fsorry(void); ++void fcheat(void); ++void init_cells(void); ++void bwrite(int, char *, long); ++void bread(int, char *, long); + unsigned int sum(unsigned char *, int); + + /* module: scores.c */ +@@ -261,112 +261,112 @@ + long paytaxes(long); + int winshou(void); + int shou(int); +-int showscores(void); +-int showallscores(void); ++void showscores(void); ++void showallscores(void); + int sortboard(void); +-int newscore(long, char *, int, int); +-int new1sub(long, int, char *, long); +-int new2sub(long, int, char *, int); +-int died(int); +-int diedsub(int); +-int showscore3(int); +-int showscore1(int, char **); ++void newscore(long, char *, int, int); ++void new1sub(long, int, char *, long); ++void new2sub(long, int, char *, int); ++void died(int); ++void diedsub(int); ++void showscore3(int); ++void showscore1(int, char **); + + /* module: show.c */ + +-int showstr(void); +-int qshowstr(void); +-int t_setup(int); +-int t_endup(int); +-int showwear(void); +-int showwield(void); +-int showread(void); +-int showeat(void); +-int showquaff(void); +-int show1(int, char **); +-int show3(int); ++void showstr(void); ++void qshowstr(void); ++void t_setup(int); ++void t_endup(int); ++void showwear(void); ++void showwield(void); ++void showread(void); ++void showeat(void); ++void showquaff(void); ++void show1(int, char **, int); ++void show3(int); + + /* module: signal.c */ + +-int s2choose(void); +-SIGTYPE cntlc(void); +-SIGTYPE sgam(void); ++void s2choose(void); ++SIGTYPE cntlc(int); ++SIGTYPE sgam(int); + SIGTYPE tstop(int); +-int sigsetup(void); +-int sigsave(void); +-int sigreset(void); +-int sigpanic(int); ++void sigsetup(void); ++void sigsave(void); ++void sigreset(void); ++SIGTYPE sigpanic(int); + + /* module: sphere.c */ + +-int newsphere(int, int, int, int); +-int rmsphere(int, int); +-int sphboom(int, int); +-int movsphere(void); ++void newsphere(int, int, int, int); ++void rmsphere(int, int); ++void sphboom(int, int); ++void movsphere(void); + + /* module: store.c */ + +-int dnd_2hed(void); +-int dnd_hed(void); +-int dndstore(void); +-int handsfull(void); +-int outofstock(void); +-int nogold(void); +-int dnditem(int); +-int sch_hed(void); +-int oschool(void); +-int obank(void); +-int obank2(void); +-int banktitle(char *); +-int ointerest(void); +-int obanksub(void); +-int appraise(int, int); +-int otradhead(void); +-int otradepost(void); +-int cnsitm(void); +-int olrs(void); +-int nomore(void); +-int nocash(void); +-int pad_hd(void); +-int opad(void); ++void dnd_2hed(void); ++void dnd_hed(void); ++void dndstore(void); ++void handsfull(void); ++void outofstock(void); ++void nogold(void); ++void dnditem(int); ++void sch_hed(void); ++void oschool(void); ++void obank(void); ++void obank2(void); ++void banktitle(char *); ++void ointerest(void); ++void obanksub(void); ++void appraise(int, int); ++void otradhead(void); ++void otradepost(void); ++void cnsitm(void); ++void olrs(void); ++void nomore(void); ++void nocash(void); ++void pad_hd(void); ++void opad(void); + int snag(int); +-int pick_char(int); ++void pick_char(int); + + /* module: tok.c */ + + int yylex(void); +-int flushall(void); +-int sethard(int); +-int readopts(void); ++void flushall(void); ++void sethard(int); ++void readopts(void); + + /* module: tty.c */ + +-int setctty(void); +-int gettty(void); +-int settty(void); +-int setuptty(void); +-int scbr(void); +-int sncbr(void); +-int setupvt100(void); +-int clearvt100(void); ++void setctty(void); ++void gettty(void); ++void settty(void); ++void setuptty(void); ++void scbr(void); ++void sncbr(void); ++void setupvt100(void); ++void clearvt100(void); + + #else + + /* module: action.c */ + +-int run(); +-int wield(); +-int ydhi(); +-int ycwi(); +-int wear(); +-int dropobj(); +-int readscr(); +-int eatcookie(); +-int quaff(); ++void run(); ++void wield(); ++void ydhi(); ++void ycwi(); ++void wear(); ++void dropobj(); ++void readscr(); ++void eatcookie(); ++void quaff(); + int qwhatitem(); + int whatitem(); + long readnum(); +-int do_create(); ++void do_create(); + + /* module: bill.c */ + +@@ -376,53 +376,53 @@ + int letter4(); + int letter5(); + int letter6(); +-int mailbill(); ++void mailbill(); + + /* module: config.c */ + + + /* module: create.c */ + +-int makeplayer(); +-int newcavelevel(); +-int makemaze(); +-int eat(); ++void makeplayer(); ++void newcavelevel(); ++void makemaze(); ++void eat(); + int cannedlevel(); +-int treasureroom(); +-int troom(); +-int makeobject(); +-int fillmroom(); +-int froom(); +-int fillroom(); ++void treasureroom(); ++void troom(); ++void makeobject(); ++void fillmroom(); ++void froom(); ++void fillroom(); + int fillmonst(); +-int sethp(); +-int checkgen(); ++void sethp(); ++void checkgen(); + + /* module: data.c */ + + + /* module: diag.c */ + +-int diag(); +-int diagdrawscreen(); ++void diag(); ++void diagdrawscreen(); + + /* module: display.c */ + +-int bottomdo(); +-int bottomgold(); +-int bot_spellx(); +-int bot_linex(); +-int bot_hpx(); +-int botside(); +-int bothp(); +-int draws(); +-int drawscreen(); +-int showcell(); +-int show1cell(); +-int showplayer(); ++void bottomdo(); ++void bottomgold(); ++void bot_spellx(); ++void bot_linex(); ++void bot_hpx(); ++void botside(); ++void bothp(); ++void draws(); ++void drawscreen(); ++void showcell(); ++void show1cell(); ++void showplayer(); + int moveplayer(); +-int seemagic(); +-int seepage(); ++void seemagic(); ++void seepage(); + + /* module: fortune.c */ + +@@ -430,178 +430,178 @@ + + /* module: help.c */ + +-int help(); +-int welcome(); +-int retcont(); ++void help(); ++void welcome(); ++void retcont(); + int openhelp(); + + /* module: io.c */ + + int getcharacter(); +-int newgame(); ++void newgame(); + /*VARARGS*/ +-int lprintf(); +-int lprint(); +-int lwrite(); ++void lprintf(); ++void lprint(); ++void lwrite(); + long lgetc1(); + long lrint(); +-int lrfill(); ++void lrfill(); + char *lgetw(); + char *lgetl(); + int lcreat(); + int lopen(); + int lappend(); +-int lrclose(); +-int lwclose(); +-int lprcat(); +-int init_term(); +-int cl_up(); +-int cl_dn(); +-int standout(); +-int set_score_output(); +-int lflush(); ++void lrclose(); ++void lwclose(); ++void lprcat(); ++void init_term(); ++void cl_up(); ++void cl_dn(); ++void standout(); ++void set_score_output(); ++void lflush(); + int putcharacter(); +-int flush_buf(); +-int tmcapcnv(); ++void flush_buf(); ++void tmcapcnv(); + char *getword(); + + /* module: main.c */ + + int main(); +-int parse(); +-int parse2(); ++void parse(); ++void parse2(); + + /* module: monster.c */ + +-int createmonster(); ++void createmonster(); + int cgood(); +-int createitem(); +-int cast(); +-int speldamage(); +-int loseint(); ++void createitem(); ++void cast(); ++void speldamage(); ++void loseint(); + int isconfuse(); + int nospell(); + int fullhit(); +-int direct(); +-int godirect(); +-int ifblind(); +-int tdirect(); +-int makewall(); +-int omnidirect(); ++void direct(); ++void godirect(); ++void ifblind(); ++void tdirect(); ++void makewall(); ++void omnidirect(); + int dirsub(); + int verifyxy(); +-int dirpoly(); +-int hitmonster(); ++void dirpoly(); ++void hitmonster(); + int hitm(); +-int hitplayer(); +-int dropsomething(); +-int dropgold(); +-int something(); ++void hitplayer(); ++void dropsomething(); ++void dropgold(); ++void something(); + int newobject(); + int spattack(); +-int checkloss(); +-int annihilate(); +-int genmonst(); ++void checkloss(); ++void annihilate(); ++void genmonst(); + int makemonst(); +-int randmonst(); ++void randmonst(); + + /* module: moreobj.c */ + +-int oaltar(); +-int ohear(); +-int othrone(); +-int odeadthrone(); +-int ochest(); +-int ofountain(); +-int fntchange(); +-int fch(); ++void oaltar(); ++void ohear(); ++void othrone(); ++void odeadthrone(); ++void ochest(); ++void ofountain(); ++void fntchange(); ++void fch(); + + /* module: movem.c */ + +-int movemonst(); +-int movemt(); +-int mmove(); +-int teleportmonst(); ++void movemonst(); ++void movemt(); ++void mmove(); ++void teleportmonst(); + + /* module: nap.c */ + +-int nap(); +-int napms(); ++void nap(); ++void napms(); + + /* module: object.c */ + +-int lookforobject(); +-int finditem(); +-int ostairs(); +-int oteleport(); +-int opotion(); +-int quaffpotion(); +-int oscroll(); +-int adjusttime(); +-int read_scroll(); +-int opit(); +-int obottomless(); +-int oelevator(); +-int ostatue(); +-int omirror(); +-int obook(); +-int readbook(); +-int ocookie(); +-int ogold(); +-int ohome(); +-int iopts(); +-int ignore(); +-int closedoor(); ++void lookforobject(); ++void finditem(); ++void ostairs(); ++void oteleport(); ++void opotion(); ++void quaffpotion(); ++void oscroll(); ++void adjusttime(); ++void read_scroll(); ++void opit(); ++void obottomless(); ++void oelevator(); ++void ostatue(); ++void omirror(); ++void obook(); ++void readbook(); ++void ocookie(); ++void ogold(); ++void ohome(); ++void iopts(); ++void ignore(); ++void closedoor(); + + /* module: player.c */ + +-int raiselevel(); +-int loselevel(); +-int raiseexperience(); +-int loseexperience(); +-int losehp(); +-int losemhp(); +-int raisehp(); +-int raisemhp(); +-int raisespells(); +-int raisemspells(); +-int losespells(); +-int losemspells(); +-int positionplayer(); +-int recalc(); +-int quit(); +-int more(); ++void raiselevel(); ++void loselevel(); ++void raiseexperience(); ++void loseexperience(); ++void losehp(); ++void losemhp(); ++void raisehp(); ++void raisemhp(); ++void raisespells(); ++void raisemspells(); ++void losespells(); ++void losemspells(); ++void positionplayer(); ++void recalc(); ++void quit(); ++void more(); + int take(); + int drop_object(); +-int enchantarmor(); +-int enchweapon(); ++void enchantarmor(); ++void enchweapon(); + int pocketfull(); + int nearbymonst(); + int stealsomething(); + int emptyhanded(); +-int creategem(); +-int adjustcvalues(); +-int gettokstr(); ++void creategem(); ++void adjustcvalues(); ++void gettokstr(); + int getpassword(); + int getyn(); + int packweight(); + + /* module: regen.c */ + +-int regen(); ++void regen(); + + /* module: savelev.c */ + +-int savelevel(); +-int getlevel(); ++void savelevel(); ++void getlevel(); + int savegame(); +-int restoregame(); +-int greedy(); +-int fsorry(); +-int fcheat(); +-int init_cells(); +-int bwrite(); +-int bread(); ++void restoregame(); ++void greedy(); ++void fsorry(); ++void fcheat(); ++void init_cells(); ++void bwrite(); ++void bread(); + unsigned int sum(); + + /* module: scores.c */ +@@ -613,96 +613,96 @@ + long paytaxes(); + int winshou(); + int shou(); +-int showscores(); +-int showallscores(); ++void showscores(); ++void showallscores(); + int sortboard(); +-int newscore(); +-int new1sub(); +-int new2sub(); +-int died(); +-int diedsub(); +-int showscore3(); +-int showscore1(); ++void newscore(); ++void new1sub(); ++void new2sub(); ++void died(); ++void diedsub(); ++void showscore3(); ++void showscore1(); + + /* module: show.c */ + +-int showstr(); +-int qshowstr(); +-int t_setup(); +-int t_endup(); +-int showwear(); +-int showwield(); +-int showread(); +-int showeat(); +-int showquaff(); +-int show1(); +-int show3(); ++void showstr(); ++void qshowstr(); ++void t_setup(); ++void t_endup(); ++void showwear(); ++void showwield(); ++void showread(); ++void showeat(); ++void showquaff(); ++void show1(); ++void show3(); + + /* module: signal.c */ + +-int s2choose(); +-SIGTYPE cntlc(); +-SIGTYPE sgam(); +-SIGTYPE tstop(); +-int sigsetup(); +-int sigsave(); +-int sigreset(); +-int sigpanic(); ++void s2choose(); ++SIGTYPE cntlc(int); ++SIGTYPE sgam(int); ++SIGTYPE tstop(int); ++void sigsetup(void); ++void sigsave(void); ++void sigreset(void); ++SIGTYPE sigpanic(int); + + /* module: sphere.c */ + +-int newsphere(); +-int rmsphere(); +-int sphboom(); +-int movsphere(); ++void newsphere(); ++void rmsphere(); ++void sphboom(); ++void movsphere(); + + /* module: store.c */ + +-int dnd_2hed(); +-int dnd_hed(); +-int dndstore(); +-int handsfull(); +-int outofstock(); +-int nogold(); +-int dnditem(); +-int sch_hed(); +-int oschool(); +-int obank(); +-int obank2(); +-int banktitle(); +-int ointerest(); +-int obanksub(); +-int appraise(); +-int otradhead(); +-int otradepost(); +-int cnsitm(); +-int olrs(); +-int nomore(); +-int nocash(); +-int pad_hd(); +-int opad(); ++void dnd_2hed(); ++void dnd_hed(); ++void dndstore(); ++void handsfull(); ++void outofstock(); ++void nogold(); ++void dnditem(); ++void sch_hed(); ++void oschool(); ++void obank(); ++void obank2(); ++void banktitle(); ++void ointerest(); ++void obanksub(); ++void appraise(); ++void otradhead(); ++void otradepost(); ++void cnsitm(); ++void olrs(); ++void nomore(); ++void nocash(); ++void pad_hd(); ++void opad(); + int snag(); +-int pick_char(); ++void pick_char(); + + /* module: tok.c */ + + int yylex(); +-int flushall(); +-int sethard(); +-int readopts(); ++void flushall(); ++void sethard(); ++void readopts(); + + /* module: tty.c */ + +-int setctty(); +-int gettty(); +-int settty(); +-int setuptty(); +-int intron(); +-int introff(); +-int scbr(); +-int sncbr(); +-int setupvt100(); +-int clearvt100(); ++void setctty(); ++void gettty(); ++void settty(); ++void setuptty(); ++void intron(); ++void introff(); ++void scbr(); ++void sncbr(); ++void setupvt100(); ++void clearvt100(); + + #endif /* __STD__ */ + +@@ -718,20 +718,20 @@ + extern char objnamelist[],optsfile[],*potionname[],stealth[MAXX][MAXY]; + extern char *scrollname[],*spelcode[],*speldescript[]; + extern char *class[],course[],diagfile[],fortfile[],helpfile[]; +-extern char *inbuffer,drug[], know[MAXX][MAXY], item[MAXX][MAXY]; ++extern char *inbuffer,drug[], know[MAXX][MAXY]; + extern char *levelname[],loginname[],logname[],*lpbuf,*lpend; + /* extern char *lpnt, *password, mitem[MAXX][MAXY], moved[MAXX][MAXY]; */ + extern char *lpnt, *password, moved[MAXX][MAXY]; +-extern char *objectname[], *spelname[],*spelmes[],char_class[], iven[]; +-extern char nosignal, nobeep,oldx,oldy,playerx,playery, dropflag; ++extern char *objectname[], *spelname[],*spelmes[],char_class[]; ++extern char nosignal, nobeep,oldx,oldy,dropflag; + extern char restorflag,nomove, srcount, char_picked; +-extern char nowelcome, level, cheat, enable_scroll; ++extern char nowelcome, cheat, enable_scroll; + extern char nch[], ndgg[], ckpflag, monstlevel[]; + extern char nlpts[], nplt[],nsw[], mail,boldon, splev[]; + extern char potprob[], predostuff, scprob[], spelknow[], do_fork, sex; + extern char spelweird[MAXMONST+8][SPNUM], wizard; + extern char diroffx[],diroffy[],hitflag,hit2flag,hit3flag; +-extern char rmst, lasthx,lasthy,lastpx,lastpy; ++extern char rmst; + extern char ramboflag, compress; + + extern short hitp[MAXX][MAXY], ivenarg[], screen[MAXX][MAXY]; +@@ -739,6 +739,17 @@ + + extern int yrepcount,userid; + extern int ipoint, iepoint; ++extern int potionknown[MAXPOTION]; ++extern int scrollknown[MAXSCROLL]; ++extern int playerx; ++extern int playery; ++extern int level; ++extern int iven[]; ++extern int item[MAXX][MAXY]; ++extern int lasthx; ++extern int lasthy; ++extern int lastpx; ++extern int lastpy; + + extern long initialtime,outstanding_taxes,skill[],gtime,c[],cbak[]; + extern long lasttime; diff --git a/games/ularn/patches/patch-ai b/games/ularn/patches/patch-ai new file mode 100644 index 00000000000..46e0bf54e7a --- /dev/null +++ b/games/ularn/patches/patch-ai @@ -0,0 +1,13 @@ +$NetBSD: patch-ai,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- fortune.c.orig Fri Jun 19 13:55:36 1992 ++++ fortune.c Sat Jan 13 18:07:37 2001 +@@ -1,4 +1,8 @@ + /* fortune.c */ ++#include <sys/types.h> ++#include <sys/uio.h> ++#include <stdlib.h> ++#include <unistd.h> + #include "header.h" + #include "extern.h" + /* diff --git a/games/ularn/patches/patch-aj b/games/ularn/patches/patch-aj new file mode 100644 index 00000000000..ce479466c43 --- /dev/null +++ b/games/ularn/patches/patch-aj @@ -0,0 +1,13 @@ +$NetBSD: patch-aj,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- header.h.orig Sat Jan 13 21:51:26 2001 ++++ header.h Sat Jan 13 21:51:43 2001 +@@ -120,7 +120,7 @@ + #define resetbold() {if (boldon) *lpnt++ = ST_END;} + + /* clear the screen and home the cursor */ +-#define clear() { *lpnt++ =CLEAR; cbak[SPELLS]= -50; } ++#define ularn_clear() { *lpnt++ =CLEAR; cbak[SPELLS]= -50; } + + /* clear to end of line */ + #define cltoeoln() *lpnt++ = CL_LINE diff --git a/games/ularn/patches/patch-ak b/games/ularn/patches/patch-ak new file mode 100644 index 00000000000..0ee96214bbf --- /dev/null +++ b/games/ularn/patches/patch-ak @@ -0,0 +1,63 @@ +$NetBSD: patch-ak,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- help.c.orig Fri Jun 19 13:55:30 1992 ++++ help.c Sat Jan 13 21:52:16 2001 +@@ -1,4 +1,5 @@ + /* help.c */ ++#include <unistd.h> + #include "header.h" + #include "player.h" + #include "extern.h" +@@ -14,7 +15,7 @@ + */ + extern char helpfile[]; + +-help () ++void help (void) + { + int i,j; + char tmbuf[128]; +@@ -25,7 +26,7 @@ + for (i=0; i<23; i++) + lgetl(); /* skip over intro message */ + for (; j>0; j--) { +- clear(); ++ ularn_clear(); + for (i=0; i<23; i++) { + tmcapcnv(tmbuf,lgetl()); + lprcat(tmbuf); +@@ -55,14 +56,14 @@ + /* + * function to display the welcome message and background + */ +-welcome () ++void welcome (void) + { + int i; + char tmbuf[128];/* intermediate translation buffer when not a VT100 */ + + if (openhelp() < 0) + return; /* open the help file */ +- clear(); ++ ularn_clear(); + for(i=0; i<23; i++) { + tmcapcnv(tmbuf,lgetl()); + lprcat(tmbuf); +@@ -74,7 +75,7 @@ + /* + * function to say press return to continue and reset scroll when done + */ +-retcont () ++void retcont (void) + { + cursor(1,24); + lprcat("Press "); +@@ -88,7 +89,7 @@ + /* + * routine to open the help file and return the first character - '0' + */ +-openhelp () ++int openhelp (void) + { + if (lopen(helpfile)<0) { + lprintf("Can't open help file \"%s\" ",helpfile); diff --git a/games/ularn/patches/patch-al b/games/ularn/patches/patch-al new file mode 100644 index 00000000000..c60d35668b0 --- /dev/null +++ b/games/ularn/patches/patch-al @@ -0,0 +1,309 @@ +$NetBSD: patch-al,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- io.c.orig Wed Jan 18 11:48:27 1995 ++++ io.c Sun Jan 14 07:56:12 2001 +@@ -47,6 +47,12 @@ + * + * Note: ** entries are available only in termcap mode. + */ ++ ++#include <sys/types.h> ++#include <sys/uio.h> ++#include <stdlib.h> ++#include <termcap.h> ++#include <unistd.h> + #include "header.h" + #include "extern.h" + +@@ -61,13 +67,13 @@ + /* + * getcharacter() Routine to read in one character from the terminal + */ +-getcharacter () ++int getcharacter (void) + { + char byt; + + lflush(); /* be sure output buffer is flushed */ + read(0, &byt,1); /* get byte from terminal */ +- return(byt); ++ return((int)byt); + } + + +@@ -75,7 +81,7 @@ + * newgame() + * Subroutine to save the initial time and seed rnd() + */ +-newgame () ++void newgame (void) + { + long *p,*pe; + +@@ -101,7 +107,7 @@ + */ + /*VARARGS*/ + +-lprintf(va_alist) ++void lprintf(va_alist) + va_dcl + { + va_list ap; /* pointer for variable argument list */ +@@ -164,7 +170,7 @@ + break; + } + if (wide==0) { +- while (*outb++ = *tmpb++); ++ while ((*outb++ = *tmpb++)); + --outb; + } + else { +@@ -172,7 +178,7 @@ + if (left) + while (n-- > 0) + *outb++ = ' '; +- while (*outb++ = *tmpb++) ++ while ((*outb++ = *tmpb++)) + ; + --outb; + if (left==0) +@@ -230,7 +236,7 @@ + * No checking for output buffer overflow is done, but flushes if needed! + * Returns nothing of value. + */ +-lprint (x) ++void lprint (x) + long x; + { + if (lpnt >= lpend) +@@ -251,7 +257,7 @@ + * Enter with the address and number of bytes to write out + * Returns nothing of value + */ +-lwrite (buf, len) ++void lwrite (buf, len) + char *buf; + int len; + { +@@ -286,7 +292,7 @@ + * + * Returns 0 if EOF, otherwise the character + */ +-long lgetc1() ++long lgetc1(void) + { + int i; + +@@ -320,7 +326,7 @@ + * The save order is low order first, to high order (4 bytes total) + * Returns the int read + */ +-long lrint() ++long lrint(void) + { + long i; + +@@ -339,7 +345,7 @@ + * Reads "number" bytes into the buffer pointed to by "address". + * Returns nothing of value + */ +-lrfill (adr, num) ++void lrfill (adr, num) + char *adr; + int num; + { +@@ -379,7 +385,7 @@ + * + * Returns pointer to a buffer that contains word. If EOF, returns a 0 + */ +-char *lgetw() ++char *lgetw(void) + { + char *lgp; + int cc, n=LINBUFSIZE, quote=0; +@@ -412,7 +418,7 @@ + * + *Returns pointer to a buffer that contains the line. If EOF, returns 0 + */ +-char *lgetl() ++char *lgetl(void) + { + int i=LINBUFSIZE,ch; + char *str=lgetwbuf; +@@ -437,7 +443,7 @@ + * lcreat((char*)0); means to the terminal + * Returns -1 if error, otherwise the file descriptor opened. + */ +-lcreat(str) ++int lcreat(str) + char *str; + { + lpnt = lpbuf; +@@ -461,7 +467,7 @@ + * lopen(0) means from the terminal + * Returns -1 if error, otherwise the file descriptor opened. + */ +-lopen (str) ++int lopen (str) + char *str; + { + ipoint = iepoint = BUFSIZ; +@@ -484,7 +490,7 @@ + * lappend(0) means to the terminal + * Returns -1 if error, otherwise the file descriptor opened. + */ +-lappend (str) ++int lappend (str) + char *str; + { + lpnt = lpbuf; +@@ -507,7 +513,7 @@ + * + * Returns nothing of value. + */ +-lrclose() ++void lrclose(void) + { + if (fd > 0) + close(fd); +@@ -518,7 +524,7 @@ + * + * Returns nothing of value. + */ +-lwclose () ++void lwclose (void) + { + lflush(); + if (lfd > 2) +@@ -529,7 +535,7 @@ + * lprcat(string) append a string to the output buffer + * avoids calls to lprintf (time consuming) + */ +-lprcat (str) ++void lprcat (str) + char *str; + { + char *str2; +@@ -537,8 +543,7 @@ + if (lpnt >= lpend) + lflush(); + str2 = lpnt; +- while (*str2++ = *str++) +- ; ++ while ((*str2++ = *str++)); + lpnt = str2 - 1; + } + +@@ -553,15 +558,16 @@ + static char *outbuf=0; /* translated output buffer */ + char *CM, *CE, *CD, *CL, *SO, *SE, *AL, *DL;/* Termcap capabilities */ + char *HO, *BC, *UP; +-extern char *PC; ++/* extern char *PC; */ /* termcap.h declares extern char PC, not a pointer */ + + /* + * init_term() Terminal initialization -- setup termcap info + */ +-init_term () ++void init_term (void) + { + char termbuf[1024]; +- char *pc, *capptr = cap+10; ++ char *pc; ++ char *capptr = cap+10; + char *malloc(), *tgetstr(), *term, *getenv(); + + switch (tgetent(termbuf, term = getenv("TERM"))) { +@@ -584,12 +590,11 @@ + UP = tgetstr("up", &capptr); /* cursor up */ + HO = tgetstr("ho", &capptr); /* home cursor */ + +- if (pc = tgetstr("pc", &capptr)) /* padding character */ +- PC = pc; +-/* ++ pc = tgetstr("pc", &capptr); /* padding character */ ++ if (pc) ++ PC = *pc; + else +- *PC = '\0'; +-*/ ++ PC = '\0'; + + if (!(BC = tgetstr("bc", &capptr))) { /* backspace */ + if (!(BC=tgetstr("le", &capptr))) { +@@ -632,7 +637,7 @@ + /* + * cl_up(x,y) Clear screen from [x,1] to current position. Leave cursor at [x,y] + */ +-cl_up (x,y) ++void cl_up (x,y) + int x, y; + { + int i; +@@ -648,7 +653,7 @@ + /* + * cl_dn(x,y) Clear screen from [1,y] to end of display. Leave cursor at [x,y] + */ +-cl_dn (x,y) ++void cl_dn (x,y) + int x, y; + { + int i; +@@ -671,7 +676,7 @@ + /* + * standout(str) Print the argument string in inverse video (standout mode). + */ +-standout (str) ++void standout (str) + char *str; + { + if (boldon == 0) { +@@ -687,7 +692,7 @@ + /* + * set_score_output() Called when output should be literally printed. + */ +-set_score_output() { ++void set_score_output() { + enable_scroll = -1; + } + +@@ -700,7 +705,7 @@ + */ + static int scrline=18; /* line # for wraparound instead of scrolling if no DL */ + +-lflush () ++void lflush () + { + int lpoint; + char *str; +@@ -796,18 +801,19 @@ + /* + * putcharacter(c) Print one character in decoded output buffer. + */ +-putcharacter(c) ++int putcharacter(c) + int c; + { + outbuf[ind++]=c; + if(ind>=BUFSIZ) + flush_buf(); ++ return c; + } + + /* + * flush_buf() Flush buffer with decoded output. + */ +-flush_buf() ++void flush_buf(void) + { + if (ind) + write(lfd, outbuf, ind); +@@ -825,7 +831,7 @@ + * + * + */ +-tmcapcnv(sd,ss) ++void tmcapcnv(sd,ss) + char *sd, *ss; + { + int tmstate=0; /* 0=normal, 1=ESC 2=[ 3=# */ diff --git a/games/ularn/patches/patch-am b/games/ularn/patches/patch-am new file mode 100644 index 00000000000..da018337622 --- /dev/null +++ b/games/ularn/patches/patch-am @@ -0,0 +1,15 @@ +$NetBSD: patch-am,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- itm.h.orig Sat Jan 13 21:13:03 2001 ++++ itm.h Sat Jan 13 21:14:05 2001 +@@ -2,8 +2,8 @@ + struct _itm { + long price; + char **mem; +- char obj; +- char arg; ++ int obj; ++ int arg; + char qty; + }; + diff --git a/games/ularn/patches/patch-an b/games/ularn/patches/patch-an new file mode 100644 index 00000000000..29124a89e9c --- /dev/null +++ b/games/ularn/patches/patch-an @@ -0,0 +1,119 @@ +$NetBSD: patch-an,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- main.c.orig Fri Jun 19 13:55:33 1992 ++++ main.c Sat Jan 13 21:53:56 2001 +@@ -1,5 +1,8 @@ + /* main.c */ + /* This game is bad for you. It is evil. It will rot your brain. */ ++#include <sys/types.h> ++#include <stdlib.h> ++#include <unistd.h> + #include "header.h" + #include "player.h" + #include "itm.h" +@@ -40,7 +43,7 @@ + ************ + */ + +-main (argc, argv) ++int main (argc, argv) + int argc; + char *argv[]; + { +@@ -55,14 +58,21 @@ + /* + * first task is to identify the player + */ +- if ((ptr = getlogin()) == (char *)NULL) { +- if (pwe=getpwuid(geteuid())) ++ ptr = getlogin(); ++ if (ptr == (char *)NULL) { ++ pwe = getpwuid(geteuid()); ++ if (pwe) { + ptr = pwe->pw_name; +- else if ((ptr = getenv("LOGNAME")) == (char *)NULL) +- if ((ptr = getenv("USER")) == (char *)NULL) { +-noone: fprintf(stderr,"Who *are* you?\n"); +- exit(1); +- } ++ } else { ++ ptr = getenv("LOGNAME"); ++ if (ptr == (char *)NULL) { ++ ptr = getenv("USER"); ++ if (ptr == (char *)NULL) { ++noone: fprintf(stderr,"Who *are* you?\n"); ++ exit(1); ++ } ++ } ++ } + } + if (ptr==(char *)NULL) + goto noone; +@@ -109,6 +119,9 @@ + + init_cells(); /* initialize dungeon storage */ + ++ memset(potionknown, 0, sizeof(potionknown)); ++ memset(scrollknown, 0, sizeof(scrollknown)); ++ + lcreat((char*)0); + newgame(); /* set the initial clock */ + hard= -1; +@@ -277,6 +290,7 @@ + } + } /* end main loop */ + /* NOTREACHED */ ++ exit(0); + } /* end main */ + + +@@ -285,7 +299,7 @@ + * + * get and execute a command + */ +-parse () ++void parse (void) + { + int i,j; + int k,flag; +@@ -393,7 +407,7 @@ + nomove=1; + return; /*give the help screen*/ + +- case 'S': clear(); ++ case 'S': ularn_clear(); + lprcat("Saving . . ."); + lflush(); + if (savegame(savefilename) == -1 && compress) { +@@ -533,18 +547,18 @@ + for (i=0; i<SPNUM; i++) + spelknow[i]=1; + for (i=0; i<MAXSCROLL; i++) +- scrollname[i][0]=' '; ++ scrollknown[i] = 1; + for (i=0; i<MAXPOTION; i++) +- potionname[i][0]=' '; ++ potionknown[i] = 1; + } + for (i=0; i<MAXSCROLL; i++) +- if (strlen(scrollname[i])>2) { ++ if (strlen(scrollname[i])>1) { + item[i][0]=OSCROLL; + iarg[i][0]=i; + } + for (i=MAXX-1; i>MAXX-1-MAXPOTION; i--) + /* no null items */ +- if (strlen(potionname[i-MAXX+MAXPOTION])>2) { ++ if (strlen(potionname[i-MAXX+MAXPOTION])>1) { + item[i][0]=OPOTION; + iarg[i][0]=i-MAXX+MAXPOTION; + } +@@ -619,7 +633,7 @@ + } + } + +-parse2 () ++void parse2 (void) + { + if (c[HASTEMONST]) + movemonst(); diff --git a/games/ularn/patches/patch-ao b/games/ularn/patches/patch-ao new file mode 100644 index 00000000000..0a9f05b8098 --- /dev/null +++ b/games/ularn/patches/patch-ao @@ -0,0 +1,13 @@ +$NetBSD: patch-ao,v 1.1.1.1 2001/04/27 15:27:30 agc Exp $ + +--- monst.h.orig Sat Jan 13 17:42:57 2001 ++++ monst.h Sat Jan 13 17:43:01 2001 +@@ -35,7 +35,7 @@ + struct Steal stolen[NLEVELS]; + #else + typedef struct { +- char mon; ++ int mon; + char n; + StolenItem it[6]; + } struct_mitem; diff --git a/games/ularn/patches/patch-ap b/games/ularn/patches/patch-ap new file mode 100644 index 00000000000..5a6a9c0dd2c --- /dev/null +++ b/games/ularn/patches/patch-ap @@ -0,0 +1,471 @@ +$NetBSD: patch-ap,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- monster.c.orig Fri Jun 19 13:55:33 1992 ++++ monster.c Sat Jan 13 20:21:51 2001 +@@ -1,4 +1,5 @@ + /* monster.c */ ++#include <stdlib.h> + #include "header.h" + #include "itm.h" + #include "player.h" +@@ -88,7 +89,7 @@ + * + * Enter with the monster number (1 to MAXMONST+8) Returns no value. + */ +-createmonster(mon) ++void createmonster(mon) + int mon; + { + int x, y, k, i; +@@ -133,7 +134,7 @@ + * check for no monster at this location This routine will return FALSE if at + * a wall or the dungeon exit on level 1 + */ +-cgood(x, y, itm, monst) ++int cgood(x, y, itm, monst) + int x, y, itm, monst; + { + if ((y >= 0) && (y <= MAXY - 1) +@@ -156,7 +157,7 @@ + * value, thus we don't know about createitem() failures. + * + */ +-createitem(x, y, it, arg) ++void createitem(x, y, it, arg) + int x,y, it, arg; + { + int k, i; +@@ -230,7 +231,7 @@ + */ + static char eys[] = "\nEnter your spell: "; + +-cast() ++void cast(void) + { + int i, j, a, b, d; + +@@ -276,12 +277,14 @@ + * Enter with the spell number, returns no value. Please insure that there are 2 + * spaces before all messages here + */ +-speldamage(x) ++void speldamage(x) + int x; + { + int i, j, clev; + int xl, xh, yl, yh; +- char *it, *kn, *pm; ++ int *pm; ++ int *it; ++ char *kn; + char *s; + + if (x >= SPNUM) +@@ -684,7 +687,7 @@ + * > 3 + * + */ +-loseint() ++void loseint(void) + { + if (--c[INTELLIGENCE] < 3) + c[INTELLIGENCE] = 3; +@@ -696,7 +699,7 @@ + * This routine prints out a message saying "You can't aim your magic!" returns + * 0 if not confused, non-zero (time remaining confused) if confused + */ +-isconfuse() ++int isconfuse(void) + { + if (c[CONFUSE]) { + lprcat(" You can't aim your magic!"); +@@ -713,7 +716,7 @@ + * returns 0 Enter with the spell number in x, and the monster number in + * monst. + */ +-nospell(x, monst) ++int nospell(x, monst) + int x, monst; + { + int tmp; +@@ -737,7 +740,7 @@ + * Function to return hp damage to monster due to a number of full hits Enter + * with the number of full hits being done + */ +-fullhit(xx) ++int fullhit(xx) + int xx; + { + int i; +@@ -760,7 +763,7 @@ + * the spell number in spnum, the damage to be done in dam, lprintf format + * string in str, and lprintf's argument in arg. Returns no value. + */ +-direct(spnum, dam, str, arg) ++void direct(spnum, dam, str, arg) + int spnum, dam, arg; + char *str; + { +@@ -822,11 +825,11 @@ + * str, the # of milliseconds to delay between locations in delay, and the + * character to represent the weapon in cshow. Returns no value. + */ +-godirect(spnum, dam, str, delay, cshow) ++void godirect(spnum, dam, str, delay, cshow) + int spnum, dam, delay; + char *str, cshow; + { +- char *it; ++ int *it; + int x, y, m; + int dx, dy; + +@@ -967,7 +970,7 @@ + * Subroutine to copy the word "monster" into lastmonst if the player is blind. + * Enter with the coordinates (x,y) of the monster Returns no value. + */ +-ifblind(x, y) ++void ifblind(x, y) + int x, y; + { + char *s; +@@ -989,7 +992,7 @@ + * Routine to ask for a direction to a spell and then teleport away monster + * Enter with the spell number that wants to teleport away Returns no value. + */ +-tdirect(spnum) ++void tdirect(spnum) + int spnum; + { + int x, y; +@@ -1014,7 +1017,7 @@ + } + + +-makewall(spnum) ++void makewall(spnum) + int spnum; + { + int x, y; +@@ -1025,7 +1028,12 @@ + return; + dirsub(&x, &y); + +- if ((y >= 0) && (y <= MAXY - 1) && (x >= 0) && (x <= MAXX - 1)) /* within bounds? */ ++ /* within bounds? */ ++ if ( y >= 0 && ++ y <= MAXY - 1 && ++ x >= 0 && ++ x <= MAXX - 1) ++ { + if (item[x][y] != OWALL) { /* can't make anything on + * walls */ + if (item[x][y] == 0) { /* is it free of items? */ +@@ -1035,14 +1043,19 @@ + item[x][y] = OWALL; + know[x][y] = 1; + show1cell(x, y); +- } else ++ } else { + lprcat("\nyou can't make a wall there!"); +- } else ++ } ++ } else { + lprcat("\nthere's a monster there!"); +- } else ++ } ++ } else { + lprcat("\nthere's something there already!"); +- } else ++ } ++ } else { + lprcat("\nthere's a wall there already!"); ++ } ++ } + } + + /* +@@ -1054,7 +1067,7 @@ + * the spell number in sp, the damage done to wach square in dam, and the + * lprintf string to identify the spell in str. Returns no value. + */ +-omnidirect(spnum, dam, str) ++void omnidirect(spnum, dam, str) + int spnum, dam; + char *str; + { +@@ -1062,9 +1075,9 @@ + + if (spnum < 0 || spnum >= SPNUM || str == 0) + return; /* bad args */ +- for (x = playerx - 1; x < playerx + 2; x++) ++ for (x = playerx - 1; x < playerx + 2; x++) { + for (y = playery - 1; y < playery + 2; y++) { +- if ((m = mitem[x][y].mon) != 0) ++ if ((m = mitem[x][y].mon) != 0) { + if (nospell(spnum, m) == 0) { + ifblind(x, y); + cursors(); +@@ -1076,7 +1089,9 @@ + lasthx = x; + lasthy = y; + } ++ } + } ++ } + } + + /* +@@ -1087,7 +1102,7 @@ + * with the origination coordinates in (x,y). Returns index into diroffx[] + * (0-8). + */ +-dirsub(x, y) ++int dirsub(x, y) + int *x, *y; + { + int i; +@@ -1130,7 +1145,7 @@ + * level. Returns TRUE if it was out of bounds, and the *x & *y in the + * calling routine are affected. + */ +-verifyxy(x, y) ++int verifyxy(x, y) + int *x, *y; + { + int flag = 0; +@@ -1162,7 +1177,7 @@ + * Subroutine to polymorph a monster and ask for the direction its in Enter with + * the spell number in spmun. Returns no value. + */ +-dirpoly(spnum) ++void dirpoly(spnum) + int spnum; + { + int x, y, m; +@@ -1194,7 +1209,7 @@ + * This routine is used for a bash & slash type attack on a monster Enter with + * the coordinates of the monster in (x,y). Returns no value. + */ +-hitmonster(x, y) ++void hitmonster(x, y) + int x, y; + { + int tmp, monst, damag, flag; +@@ -1231,11 +1246,14 @@ + + /* if the monster was hit */ + if (flag) { +- if (iven[c[WIELD]] != OSWORDofSLASHING) ++ if (iven[c[WIELD]] != OSWORDofSLASHING) { + /* if a "dulling" monster */ +- if (monst == RUSTMONSTER || monst == DISENCHANTRESS || monst == CUBE) ++ if ( monst == RUSTMONSTER || ++ monst == DISENCHANTRESS || ++ monst == CUBE) ++ { + /* if we are wielding something */ +- if (c[WIELD] > 0) ++ if (c[WIELD] > 0) { + /* if it's not already dulled to hell */ + if (((ivenarg[c[WIELD]] > -10) && + ((iven[c[WIELD]] == OSLAYER) || +@@ -1248,7 +1266,8 @@ + (iven[c[WIELD]] == OLANCE) || + (iven[c[WIELD]] == OHAMMER) || + (iven[c[WIELD]] == OBELT))) +- || (ivenarg[c[WIELD]] > 0)) { ++ || (ivenarg[c[WIELD]] > 0)) ++ { + lprintf("\nYour weapon is dulled by the %s", lastmonst); + beep(); + --ivenarg[c[WIELD]]; +@@ -1257,6 +1276,9 @@ + iven[c[WIELD]] = ivenarg[c[WIELD]] = 0; + c[WIELD] = 0; + } ++ } ++ } ++ } + } + if (flag) { + hitm(x, y, damag); +@@ -1271,7 +1293,7 @@ + show1cell(x, y); + } + if (mitem[x][y].mon == LEMMING) +- if (rnd(100) <= 40) ++ if (rnd(100) <= 10) + createmonster(LEMMING); + } + +@@ -1284,7 +1306,7 @@ + * specifically damage a monster at a location (x,y) Called by + * hitmonster(x,y) + */ +-hitm(x, y, amt) ++int hitm(x, y, amt) + int x, y, amt; + { + int monst; +@@ -1369,7 +1391,7 @@ + * Function for the monster to hit the player with monster at location x,y + * Returns nothing of value. + */ +-hitplayer (x, y) ++void hitplayer (x, y) + int x, y; + { + register int dam,tmp,mster,bias; +@@ -1465,7 +1487,7 @@ + * Enter with the monster number + * Returns nothing of value. + */ +-dropsomething (x,y,monst) ++void dropsomething (x,y,monst) + int x,y; + int monst; + { +@@ -1495,7 +1517,7 @@ + * + * Enter with the number of gold pieces to drop Returns nothing of value. + */ +-dropgold(amount) ++void dropgold(amount) + int amount; + { + if (amount > 250) +@@ -1512,7 +1534,7 @@ + * with the cave level on which something is to be dropped Returns nothing of + * value. + */ +-something(x,y,lev) ++void something(x,y,lev) + int x,y,lev; + { + int j, i; +@@ -1544,7 +1566,7 @@ + OSPEAR, OBELT, ORING, OSTUDLEATHER, OSHIELD, OFLAIL, OCHAIN, + O2SWORD, OPLATE, OLONGSWORD}; /* 38 */ + +-newobject(lev, i) ++int newobject(lev, i) + int lev, *i; + { + int tmp = 32, j; +@@ -1671,18 +1693,19 @@ + */ + #define ARMORTYPES 6 + +-static short rustarm[ARMORTYPES][2] = { +- OSTUDLEATHER, -2, +- ORING, -4, +- OCHAIN, -5, +- OSPLINT, -6, +- OPLATE, -8, +- OPLATEARMOR, -9 ++static short rustarm[ARMORTYPES][2] = ++{ ++ { OSTUDLEATHER, -2 }, ++ { ORING, -4 }, ++ { OCHAIN, -5 }, ++ { OSPLINT, -6 }, ++ { OPLATE, -8 }, ++ { OPLATEARMOR, -9 }, + }; + + static char spsel[] = {1, 2, 3, 5, 6, 8, 9, 11, 13, 14}; + +-spattack(x, xx, yy) ++int spattack(x, xx, yy) + int x, xx, yy; + { + int i, j = 0, k, m; +@@ -1693,12 +1716,14 @@ + /* + * cancel only works 5% of time for demon prince and god + */ +- if (c[CANCELLATION]) ++ if (c[CANCELLATION]) { + if (mitem[xx][yy].mon >= DEMONPRINCE) { + if (rnd(100) >= 95) + return (0); +- } else ++ } else { + return (0); ++ } ++ } + + /* staff of power cancels demonlords/wraiths/vampires 75% of time */ + /* lucifer is unaffected */ +@@ -1921,7 +1946,7 @@ + * Enter with the number of hit points to lose Note: if x > c[HP] this routine + * could kill the player! + */ +-checkloss(x) ++void checkloss(x) + int x; + { + if (x > 0) { +@@ -1937,16 +1962,17 @@ + * Gives player experience, but no dropped objects Returns the experience gained + * from all monsters killed + */ +-annihilate() ++void annihilate(void) + { + int i, j; + long k; +- char *p; ++ int *p; + +- for (k = 0, i = playerx - 1; i <= playerx + 1; i++) +- for (j = playery - 1; j <= playery + 1; j++) +- if (!verifyxy(&i, &j)) /* if not out of bounds */ +- if (*(p = &mitem[i][j].mon)) /* if a monster there */ ++ for (k = 0, i = playerx - 1; i <= playerx + 1; i++) { ++ for (j = playery - 1; j <= playery + 1; j++) { ++ if (!verifyxy(&i, &j)) { /* if not out of bounds */ ++ p = &mitem[i][j].mon; ++ if (*p) { /* if a monster there */ + if (*p < DEMONLORD) { + k += monster[*p].experience; + *p = know[i][j] = 0; +@@ -1956,6 +1982,10 @@ + /* lose half hit points */ + hitp[i][j] = (hitp[i][j] >> 1) + 1; + } ++ } ++ } ++ } ++ } + if (k > 0) { + lprcat("\nYou hear loud screams of agony!"); + raiseexperience((long) k); +@@ -1967,7 +1997,7 @@ + * + * This is done by setting a flag in the monster[] structure + */ +-genmonst() ++void genmonst(void) + { + int i, j; + +@@ -1996,7 +2026,7 @@ + * function to return monster number for a randomly selected monster for the + * given cave level + */ +-makemonst(lev) ++int makemonst(lev) + int lev; + { + int tmp, x; +@@ -2028,7 +2058,7 @@ + /* + subroutine to randomly create monsters if needed + */ +-randmonst () ++void randmonst (void) + { /* don't make monsters if time is stopped */ + if (c[TIMESTOP]) + return; diff --git a/games/ularn/patches/patch-aq b/games/ularn/patches/patch-aq new file mode 100644 index 00000000000..ff332418cc2 --- /dev/null +++ b/games/ularn/patches/patch-aq @@ -0,0 +1,94 @@ +$NetBSD: patch-aq,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- moreobj.c.orig Sat Jan 13 20:22:49 2001 ++++ moreobj.c Sat Jan 13 20:27:37 2001 +@@ -7,6 +7,8 @@ + * ochest() + * ofountain() + */ ++#include <stdlib.h> ++#include <unistd.h> + #include "header.h" + #include "player.h" + #include "itm.h" +@@ -19,7 +21,7 @@ + * ****** + * + */ +-oaltar() ++void oaltar(void) + { + long k; + +@@ -71,7 +73,7 @@ + return; + } + c[GOLD] -= k; +- if (k < c[GOLD]/10 || k<rnd(50) && !wizard) { ++ if ((k < c[GOLD]/10 || k<rnd(50)) && !wizard) { + createmonster(makemonst(level+2)); + c[AGGRAVATE] += 500; + } +@@ -129,7 +131,7 @@ + /* + function to cast a +3 protection on the player + */ +-ohear() ++void ohear(void) + { + lprcat("You have been heard!"); + if (c[ALTPRO]==0) +@@ -144,7 +146,7 @@ + * ******* + * + */ +-othrone(arg) ++void othrone(arg) + int arg; + { + int i,k; +@@ -194,7 +196,7 @@ + } /* NOTREACHED */ + } + +-odeadthrone() ++void odeadthrone(void) + { + int k; + +@@ -228,7 +230,7 @@ + * ****** + * + */ +-ochest() ++void ochest(void) + { + int i,k; + +@@ -294,7 +296,7 @@ + * OFOUNTAIN + * ********* + */ +-ofountain() ++void ofountain(void) + { + int x; + +@@ -371,7 +373,7 @@ + a subroutine to raise or lower character levels + if how > 0 they are raised if how < 0 they are lowered + */ +-fntchange(how) ++void fntchange(how) + int how; + { + long j; +@@ -464,7 +466,7 @@ + * + * process an up/down of a character attribute for ofountain + */ +-fch(how,x) ++void fch(how,x) + int how; + long *x; + { diff --git a/games/ularn/patches/patch-ar b/games/ularn/patches/patch-ar new file mode 100644 index 00000000000..64c62d48f2e --- /dev/null +++ b/games/ularn/patches/patch-ar @@ -0,0 +1,70 @@ +$NetBSD: patch-ar,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- movem.c.orig Fri Jun 19 13:55:34 1992 ++++ movem.c Sat Jan 13 20:33:43 2001 +@@ -10,6 +10,7 @@ + * mmove(x,y,xd,yd) + * Function to actually perform the monster movement + */ ++#include <stdlib.h> + #include "header.h" + #include "sphere.h" + #include "monst.h" +@@ -26,7 +27,7 @@ + */ + static short w1[9],w1x[9],w1y[9]; + static int tmp1,tmp2,tmp3,tmp4,distance; +-movemonst() ++void movemonst(void) + { + int i,j; + +@@ -115,7 +116,7 @@ + */ + static int tmpitem,xl,xh,yl,yh; + +-movemt(i,j) ++void movemt(i,j) + int i,j; + { + int k,m,z,tmp,xtmp,ytmp,monst; +@@ -294,7 +295,7 @@ + * Enter with the from coordinates in (x,y) and the destination coordinates + * in (xd,yd). + */ +-mmove(aa,bb,cc,dd) ++void mmove(aa,bb,cc,dd) + int aa,bb,cc,dd; + { + int tmp,it,i,x,flag; +@@ -372,10 +373,10 @@ + hitp[cc][dd]=1; + + if (tmp==LEMMING) { +- /* 10% chance moving a lemming creates a new lemming ++ /* 1% chance moving a lemming creates a new lemming + ** in the old spot + */ +- if (rnd(100)<=9) { ++ if (rnd(100)==1) { + mitem[aa][bb].mon = LEMMING; + know[aa][bb]=1; + } +@@ -398,7 +399,7 @@ + case OEMERALD: + case OSAPPHIRE: + if (mitem[cc][dd].n < 6) { +- char n = mitem[cc][dd].n++; ++ int n = mitem[cc][dd].n++; + mitem[cc][dd].it[n].item = item[cc][dd]; + mitem[cc][dd].it[n].itemarg = iarg[cc][dd]; + } +@@ -481,7 +482,7 @@ + show1cell(cc,dd); + } + +-teleportmonst (xx, yy, monst) ++void teleportmonst (xx, yy, monst) + int xx, yy, monst; + { + int i, x,y,trys; diff --git a/games/ularn/patches/patch-as b/games/ularn/patches/patch-as new file mode 100644 index 00000000000..36042b15efa --- /dev/null +++ b/games/ularn/patches/patch-as @@ -0,0 +1,56 @@ +$NetBSD: patch-as,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- nap.c.orig Sat Jan 13 20:39:28 2001 ++++ nap.c Sat Jan 13 20:38:50 2001 +@@ -1,12 +1,14 @@ + /* nap.c */ ++#include <unistd.h> + #include "header.h" ++#include "extern.h" + + int nonap = 0; + + /* + * routine to take a nap for n milliseconds + */ +-nap(x) ++void nap(x) + int x; + { + if (x<=0 || nonap) +@@ -23,7 +25,7 @@ + SIGTYPE nullf(sig)int sig; { } + + /* napms - sleep for time milliseconds - uses setitimer() */ +-napms(time) ++void napms(time) + int time; + { + struct itimerval timeout; +@@ -48,7 +50,7 @@ + # ifdef FTIMER + /* napms - sleep for time milliseconds - uses ftime() */ + +-napms(time) ++void napms(time) + int time; + { + struct timeb _gtime; +@@ -75,7 +77,7 @@ + # else /* FTIMER */ + # ifdef HZ + /* napms - sleep for time milliseconds - uses times() */ +-napms(time) ++void napms(time) + int time; + { + long matchclock, times(); +@@ -90,7 +92,7 @@ + ; + } + # else +-napms(x) int x; {} ++void napms(x) int x; {} + # endif /* HZ */ + # endif /* FTIMER */ + #endif /* ITIMER */ diff --git a/games/ularn/patches/patch-at b/games/ularn/patches/patch-at new file mode 100644 index 00000000000..af4a3a0f5af --- /dev/null +++ b/games/ularn/patches/patch-at @@ -0,0 +1,291 @@ +$NetBSD: patch-at,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- object.c.orig Fri Jun 19 13:55:36 1992 ++++ object.c Sat Jan 13 21:54:23 2001 +@@ -1,4 +1,5 @@ + /* object.c */ ++#include <stdlib.h> + #include "header.h" + #include "monst.h" + #include "itm.h" +@@ -13,7 +14,7 @@ + subroutine to look for an object and give the player his options + if an object was found. + */ +-lookforobject() ++void lookforobject(void) + { + int i,j; + +@@ -39,14 +40,14 @@ + case OPOTION: + lprcat("\n\nYou have found a magic potion"); + i = iarg[playerx][playery]; +- if (potionname[i][0]) lprintf(" of %s",&potionname[i][1]); ++ if (potionknown[i]) lprintf(" of %s",potionname[i]); + opotion(i); + break; + + case OSCROLL: + lprcat("\n\nYou have found a magic scroll"); + i = iarg[playerx][playery]; +- if (scrollname[i][0]) lprintf(" of %s",&scrollname[i][1]); ++ if (scrollknown[i]) lprintf(" of %s",scrollname[i]); + oscroll(i); + break; + +@@ -684,7 +685,7 @@ + /* + function to say what object we found and ask if player wants to take it + */ +-finditem(itm) ++void finditem(itm) + int itm; + { + int tmp,i; +@@ -732,7 +733,7 @@ + subroutine to process the stair cases + if dir > 0 then up else down + */ +-ostairs(dir) ++void ostairs(dir) + int dir; + { + int x, y; +@@ -806,7 +807,7 @@ + + subroutine to handle a teleport trap +/- 1 level maximum + */ +-oteleport(err) ++void oteleport(err) + int err; + { + int tmp; +@@ -845,24 +846,10 @@ + ******* + OPOTION + ******* +- } +- playerx = rnd(MAXX-2); +- playery = rnd(MAXY-2); +- if (level != tmp) +- newcavelevel(tmp); +- positionplayer(); +- draws(0,MAXX,0,MAXY); +- bot_linex(); +-} +- +-/* +- ******* +- OPOTION +- ******* + + function to process a potion + */ +-opotion(pot) ++void opotion(pot) + int pot; + { + lprcat("\nDo you (d) drink it, (t) take it"); +@@ -890,7 +877,7 @@ + /* + function to drink a potion + */ +-quaffpotion(pot) ++void quaffpotion(pot) + int pot; + { + int i,j; +@@ -899,8 +886,8 @@ + if (pot<0 || pot>=MAXPOTION) + return; /* check for within bounds */ + +- if (potionname[pot][0] == '\0') +- potionname[pot][0] = ' '; ++ if (potionknown[pot] == 0) ++ potionknown[pot] = 1; + + switch(pot) { + case 0: +@@ -1072,7 +1059,7 @@ + + function to process a magic scroll + */ +-oscroll(typ) ++void oscroll(typ) + int typ; + { + lprcat("\nDo you "); +@@ -1110,13 +1097,13 @@ + data for the function to read a scroll + */ + static int xh,yh,yl,xl; +-static char curse[] = { ++static int curse[] = { + BLINDCOUNT, CONFUSE, AGGRAVATE, HASTEMONST, ITCHING, + LAUGHING, DRAINSTRENGTH, CLUMSINESS, INFEEBLEMENT, HALFDAM }; +-static char exten[] = { ++static int exten[] = { + PROTECTIONTIME, DEXCOUNT, STRCOUNT, CHARMCOUNT, + INVISIBILITY, CANCELLATION, HASTESELF, GLOBE, SCAREMONST, HOLDMONST, TIMESTOP }; +-char time_change[] = { ++int time_change[] = { + HASTESELF,HERO,ALTPRO,PROTECTIONTIME,DEXCOUNT, + STRCOUNT,GIANTSTR,CHARMCOUNT,INVISIBILITY,CANCELLATION, + HASTESELF,AGGRAVATE,SCAREMONST,STEALTH,AWARENESS,HOLDMONST,HASTEMONST, +@@ -1125,7 +1112,7 @@ + /* + * function to adjust time when time warping and taking courses in school + */ +-adjusttime(tim) ++void adjusttime(tim) + long tim; + { + int j; +@@ -1143,13 +1130,13 @@ + /* + function to read a scroll + */ +-read_scroll(typ) ++void read_scroll(typ) + int typ; + { + int i,j; + if (typ<0 || typ>=MAXSCROLL) + return; /* be sure we are within bounds */ +- scrollname[typ][0] = ' '; ++ scrollknown[typ] = 1; + switch(typ) { + case 0: + lprcat("\nYour armor glows for a moment"); +@@ -1282,9 +1269,9 @@ + for (i=0; i<IVENSIZE; i++) /* identify */ + { + if (iven[i]==OPOTION) +- potionname[ivenarg[i]][0] = ' '; ++ potionknown[ivenarg[i]] = 1; + if (iven[i]==OSCROLL) +- scrollname[ivenarg[i]][0] = ' '; ++ scrollknown[ivenarg[i]] = 1; + } + break; + +@@ -1309,7 +1296,7 @@ + } + + +-opit() ++void opit(void) + { + int i; + if (rnd(101)>81) +@@ -1341,7 +1328,7 @@ + } + } + +-obottomless() ++void obottomless(void) + { + lprcat("\nYou fell into a pit leading straight to HELL!"); + beep(); +@@ -1350,7 +1337,7 @@ + died(262); + } + +-oelevator(dir) ++void oelevator(dir) + int dir; + { + if (dir==1) { +@@ -1382,14 +1369,14 @@ + bot_linex(); + } + +-ostatue() ++void ostatue(void) + { } /* nothing happens when you move on a statue */ + + +-omirror() ++void omirror(void) + { } /* nothing happens when you move on a mirror */ + +-obook() ++void obook(void) + { + lprcat("\nDo you "); + if (c[BLINDCOUNT]==0) lprcat("(r) read it, "); +@@ -1421,7 +1408,7 @@ + /* + function to read a book + */ +-readbook(arg) ++void readbook(arg) + int arg; + { + int i,tmp; +@@ -1443,7 +1430,7 @@ + } + } + +-ocookie() ++void ocookie(void) + { + char *fortune(), *p; + +@@ -1474,7 +1461,7 @@ + + + /* routine to pick up some gold -- if arg==OMAXGOLD then the pile is worth 100* the argument */ +-ogold(arg) ++void ogold(arg) + int arg; + { + long i; +@@ -1491,7 +1478,7 @@ + item[playerx][playery] = know[playerx][playery] = 0;/*destroy gold*/ + } + +-ohome() ++void ohome(void) + { + int i; + +@@ -1501,7 +1488,7 @@ + if (iven[i]==OPOTION) + if (ivenarg[i]==21) { + iven[i]=0; +- clear(); ++ ularn_clear(); + lprcat("Congratulations. You found the potion of cure dianthroritis!\n"); + lprcat("\nFrankly, No one thought you could do it."); + lprcat(" Boy! Did you surprise them!\n"); +@@ -1531,7 +1518,7 @@ + } + + while (1) { +- clear(); ++ ularn_clear(); + lprintf("Welcome home %s.",logname); + lprcat(" Latest word from the doctor is not good.\n"); + +@@ -1571,16 +1558,16 @@ + } + + /* routine to save program space */ +-iopts() ++void iopts(void) + { + lprcat(", or (i) ignore it? "); + } +-ignore() ++void ignore(void) + { + lprcat("ignore\n"); + } + +-closedoor() ++void closedoor(void) + { + int i; + diff --git a/games/ularn/patches/patch-au b/games/ularn/patches/patch-au new file mode 100644 index 00000000000..4fcdd392d1a --- /dev/null +++ b/games/ularn/patches/patch-au @@ -0,0 +1,317 @@ +$NetBSD: patch-au,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- player.c.orig Fri Jun 19 13:55:34 1992 ++++ player.c Sat Jan 13 21:54:50 2001 +@@ -20,6 +20,7 @@ + * to quit + */ + ++#include <stdlib.h> + #include "header.h" + #include "player.h" + #include "monst.h" +@@ -36,7 +37,7 @@ + * uses the skill[] array to find level boundarys + * uses c[EXPERIENCE] c[LEVEL] + */ +-raiselevel () ++void raiselevel (void) + { + if (c[LEVEL] < MAXPLEVEL) + raiseexperience((long)(skill[c[LEVEL]]-c[EXPERIENCE])); +@@ -50,7 +51,7 @@ + * + * subroutine to lower the players character level by one + */ +-loselevel () ++void loselevel (void) + { + if (c[LEVEL] > 1) + loseexperience((long)(c[EXPERIENCE] - skill[c[LEVEL]-1] + 1)); +@@ -64,7 +65,7 @@ + * + * subroutine to increase experience points + */ +-raiseexperience (x) ++void raiseexperience (x) + long x; + { + int i,tmp; +@@ -115,9 +116,9 @@ + for (i=0; i<SPNUM; i++) + spelknow[i]=1; + for (i=0; i<MAXSCROLL; i++) +- scrollname[i][0]=' '; ++ scrollknown[i]=1; + for (i=0; i<MAXPOTION; i++) +- potionname[i][0]=' '; ++ potionknown[i]=1; + } + break; + } +@@ -132,7 +133,7 @@ + * + * subroutine to lose experience points + */ +-loseexperience (x) ++void loseexperience (x) + long x; + { + int i,tmp; +@@ -167,7 +168,7 @@ + * subroutine to remove hit points from the player + * warning -- will kill player if hp goes to zero + */ +-losehp (x) ++void losehp (x) + int x; + { + if ((c[HP] -= x) <= 0) { +@@ -178,7 +179,7 @@ + } + } + +-losemhp (x) ++void losemhp (x) + int x; + { + c[HP] -= x; +@@ -198,14 +199,14 @@ + * + * subroutine to gain maximum hit points + */ +-raisehp (x) ++void raisehp (x) + int x; + { + if ((c[HP] += x) > c[HPMAX]) + c[HP] = c[HPMAX]; + } + +-raisemhp (x) ++void raisemhp (x) + int x; + { + c[HPMAX] += x; +@@ -221,14 +222,14 @@ + * + * subroutine to gain maximum spells + */ +-raisespells (x) ++void raisespells (x) + int x; + { + if ((c[SPELLS] += x) > c[SPELLMAX]) + c[SPELLS] = c[SPELLMAX]; + } + +-raisemspells (x) ++void raisemspells (x) + int x; + { + c[SPELLMAX]+=x; +@@ -244,14 +245,14 @@ + * + * subroutine to lose maximum spells + */ +-losespells (x) ++void losespells (x) + int x; + { + if ((c[SPELLS] -= x) < 0) + c[SPELLS]=0; + } + +-losemspells (x) ++void losemspells (x) + int x; + { + if ((c[SPELLMAX] -= x) < 0) +@@ -266,7 +267,7 @@ + * + * function to be sure player is not in a wall + */ +-positionplayer () ++void positionplayer () + { + int try; + try = 2; +@@ -286,7 +287,7 @@ + /* + * recalc() function to recalculate the armor class of the player + */ +-recalc () ++void recalc () + { + int i,j,k; + +@@ -417,7 +418,7 @@ + * + * subroutine to ask if the player really wants to quit + */ +-quit () ++void quit (void) + { + int i; + +@@ -427,7 +428,7 @@ + while (1) { + i=getcharacter(); + if (i == 'y') { +- clear(); ++ ularn_clear(); + lflush(); + died(300); + return; +@@ -440,7 +441,7 @@ + if (i == 's') { + lprcat(" save"); + lflush(); +- clear(); ++ ularn_clear(); + lprcat("Saving . . ."); + lflush(); + savegame(savefilename); +@@ -466,7 +467,7 @@ + /* + * function to ask --more-- then the user must enter a space + */ +-more() ++void more(void) + { + char c; + +@@ -481,7 +482,7 @@ + * function to put something in the players inventory + * returns 0 if success, 1 if a failure + */ +-take (itm, arg) ++int take (itm, arg) + int itm, arg; + { + int i; +@@ -576,7 +577,7 @@ + * + * k is index into iven list of object to drop + */ +-drop_object (k) ++int drop_object (k) + int k; + { + int itm, pitflag=0; +@@ -628,7 +629,7 @@ + /* + * function to enchant armor player is currently wearing + */ +-enchantarmor () ++void enchantarmor (void) + { + int tmp; + +@@ -677,7 +678,7 @@ + /* + * function to enchant a weapon presently being wielded + */ +-enchweapon () ++void enchweapon (void) + { + int tmp; + +@@ -716,7 +717,7 @@ + * routine to tell if player can carry one more thing + * returns 1 if pockets are full, else 0 + */ +-pocketfull () ++int pocketfull (void) + { + int i,limit; + if ((limit = 15+(c[LEVEL]>>1)) > IVENSIZE) +@@ -730,7 +731,7 @@ + /* + * function to return 1 if a monster is next to the player else returns 0 + */ +-nearbymonst () ++int nearbymonst (void) + { + int tmp,tmp2; + +@@ -745,7 +746,7 @@ + * function to steal an item from the players pockets + * returns 1 if steals something else returns 0 + */ +-stealsomething (x,y) ++int stealsomething (x,y) + int x,y; + { + int i,n=100; +@@ -775,7 +776,7 @@ + /* + * function to return 1 is player carrys nothing else return 0 + */ +-emptyhanded () ++int emptyhanded (void) + { + int i; + +@@ -789,7 +790,7 @@ + /* + * function to create a gem on a square near the player + */ +-creategem () ++void creategem (void) + { + int i,j; + +@@ -818,7 +819,7 @@ + * function to change character levels as needed when dropping an object + * that affects these characteristics + */ +-adjustcvalues (itm, arg) ++void adjustcvalues (itm, arg) + int itm, arg; + { + int flag,i; +@@ -902,7 +903,7 @@ + * function to read a string from token input "string" + * returns a pointer to the string + */ +-gettokstr (str) ++void gettokstr (str) + char *str; + { + int i,j; +@@ -929,14 +930,14 @@ + * returns 1 if entered correctly, 0 if not + */ + +-getpassword () ++int getpassword (void) + { + char gpwbuf[BUFSIZ]; + + scbr(); + lprcat("\nEnter Password: "); + lflush(); +- gets(gpwbuf); ++ fgets(gpwbuf, BUFSIZ, stdin); + if (strcmp(gpwbuf,password) != 0) { + lprcat("\nSorry\n"); + lflush(); +@@ -949,7 +950,7 @@ + * subroutine to get a yes or no response from the user + * returns y or n + */ +-getyn () ++int getyn (void) + { + int i; + +@@ -965,7 +966,7 @@ + * function to calculate the pack weight of the player + * returns the number of pounds the player is carrying + */ +-packweight () ++int packweight (void) + { + int i,j,k; + diff --git a/games/ularn/patches/patch-av b/games/ularn/patches/patch-av new file mode 100644 index 00000000000..787e2348c64 --- /dev/null +++ b/games/ularn/patches/patch-av @@ -0,0 +1,19 @@ +$NetBSD: patch-av,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- regen.c.orig Sat Jan 13 21:19:57 2001 ++++ regen.c Sat Jan 13 21:21:02 2001 +@@ -1,4 +1,5 @@ + /* regen.c */ ++#include <stdlib.h> + #include "header.h" + #include "player.h" + #include "itm.h" +@@ -12,7 +13,7 @@ + + subroutine to regenerate player hp and spells + */ +-regen() ++void regen(void) + { + int i,flag; + long *d; diff --git a/games/ularn/patches/patch-aw b/games/ularn/patches/patch-aw new file mode 100644 index 00000000000..e0b7d31ef13 --- /dev/null +++ b/games/ularn/patches/patch-aw @@ -0,0 +1,243 @@ +$NetBSD: patch-aw,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- savelev.c.orig Fri Jun 19 13:55:34 1992 ++++ savelev.c Sun Jan 14 15:27:32 2001 +@@ -1,4 +1,6 @@ + /* savelev.c */ ++#include <stdlib.h> ++#include <unistd.h> + #include "header.h" + #include "sphere.h" + #include "player.h" +@@ -9,9 +11,7 @@ + extern char *sys_errlist[]; + extern int errno; + +-typedef char Char_Ary[MAXX][MAXY]; +-typedef short Short_Ary[MAXX][MAXY]; +-typedef long Long_Ary[MAXX][MAXY]; ++typedef int Int_Ary[MAXX][MAXY]; + typedef struct_mitem Mitem_Ary[MAXX][MAXY]; + + static int w = 0; +@@ -19,11 +19,11 @@ + + /* this is the structure that holds the entire dungeon specifications */ + typedef struct save_lev_str { +- Short_Ary hitp; ++ Int_Ary hitp; + Mitem_Ary mitem; +- Char_Ary item; +- Short_Ary iarg; /* must be long for goldpiles */ +- Char_Ary know; ++ Int_Ary item; ++ Int_Ary iarg; ++ Int_Ary know; + } Saved_Level; + + static Saved_Level *saved_levels[NLEVELS]; +@@ -33,15 +33,15 @@ + /* + * routine to save the present level into storage + */ +-savelevel() ++void savelevel(void) + { + Saved_Level *storage = saved_levels[level]; + +- memcpy((char *)storage->hitp, (char *)hitp, sizeof(Short_Ary)); ++ memcpy((char *)storage->hitp, (char *)hitp, sizeof(Int_Ary)); + memcpy((char *)storage->mitem, (char *)mitem, sizeof(Mitem_Ary)); +- memcpy((char *)storage->item, (char *)item, sizeof(Char_Ary)); +- memcpy((char *)storage->iarg, (char *)iarg, sizeof(Short_Ary)); +- memcpy((char *)storage->know, (char *)know, sizeof(Char_Ary)); ++ memcpy((char *)storage->item, (char *)item, sizeof(Int_Ary)); ++ memcpy((char *)storage->iarg, (char *)iarg, sizeof(Int_Ary)); ++ memcpy((char *)storage->know, (char *)know, sizeof(Int_Ary)); + level_sums[level] = sum((unsigned char *)storage, sizeof(Saved_Level)); + } + +@@ -49,17 +49,17 @@ + /* + * routine to restore a level from storage + */ +-getlevel() ++void getlevel(void) + { + unsigned int i; + + Saved_Level *storage = saved_levels[level]; + +- memcpy((char *)hitp, (char *)storage->hitp, sizeof(Short_Ary)); ++ memcpy((char *)hitp, (char *)storage->hitp, sizeof(Int_Ary)); + memcpy((char *)mitem, (char *)storage->mitem, sizeof(Mitem_Ary)); +- memcpy((char *)item, (char *)storage->item, sizeof(Char_Ary)); +- memcpy((char *)iarg, (char *)storage->iarg, sizeof(Short_Ary)); +- memcpy((char *)know, (char *)storage->know, sizeof(Char_Ary)); ++ memcpy((char *)item, (char *)storage->item, sizeof(Int_Ary)); ++ memcpy((char *)iarg, (char *)storage->iarg, sizeof(Int_Ary)); ++ memcpy((char *)know, (char *)storage->know, sizeof(Int_Ary)); + + if (level_sums[level] > 0) { + if ((i = sum((unsigned char *)storage,sizeof(Saved_Level))) +@@ -82,7 +82,7 @@ + /* + * to save the game in a file + */ +-savegame(fname) ++int savegame(fname) + char *fname; + { + int i; +@@ -145,10 +145,10 @@ + bwrite(fd,(char * )char_class, 20 * sizeof(char)); + + for (i=0; i<MAXSCROLL; i++) +- bwrite(fd,(char *)scrollname[i], sizeof(scrollname[i])); ++ bwrite(fd, (char *)&scrollknown[i], sizeof(scrollknown[i])); + + for (i=0; i<MAXPOTION; i++) +- bwrite(fd,(char *)potionname[i], sizeof(potionname[i])); ++ bwrite(fd, (char *)&potionknown[i], sizeof(potionknown[i])); + + bwrite(fd,(char *)spelknow, sizeof(char) * SPNUM); + bwrite(fd,(char *)&wizard, sizeof(wizard)); +@@ -192,18 +192,22 @@ + } + + +-restoregame(fname) ++void restoregame(fname) + char *fname; + { + int i; + unsigned int thesum, asum; + struct sphere *sp,*splast; + Saved_Level * storage; +- char buf[1024], *tmp="/tmp/UtmpXXXXXX", *mktemp(); ++ char buf[1024]; ++ char *tmp; + int fd; + ++ tmp = strdup("/tmp/UtmpXXXXXX"); + if (compress) { +- if ((tempfilename = mktemp(tmp)) == NULL) { ++ tempfilename = mktemp(tmp); ++ free(tmp); ++ if (tempfilename == NULL) { + fprintf(stderr,"Can't create temp file to restore game\n"); + perror("mktemp"); + nosignal=0; +@@ -273,10 +277,10 @@ + bread(fd,(char * )char_class, sizeof(char) * 20); + + for (i=0; i<MAXSCROLL; i++) +- bread(fd,(char *)scrollname[i], sizeof(scrollname[i])); ++ bread(fd, (char *)&scrollknown[i], sizeof(scrollknown[i])); + + for (i=0; i<MAXPOTION; i++) +- bread(fd,(char *)potionname[i], sizeof(potionname[i])); ++ bread(fd, (char *)&potionknown[i], sizeof(potionknown[i])); + + bread(fd,(char * )spelknow, sizeof(char) * SPNUM); + +@@ -350,7 +354,7 @@ + /* + subroutine to not allow greedy cheaters + */ +-greedy() ++void greedy(void) + { + if (wizard) + return; +@@ -370,7 +374,7 @@ + subroutine to not allow altered save files and terminate the attempted + restart + */ +-fsorry() ++void fsorry(void) + { + if (cheat) + return; +@@ -385,7 +389,7 @@ + /* + subroutine to not allow game if save file can't be deleted + */ +-fcheat() ++void fcheat(void) + { + if (wizard) + return; +@@ -403,7 +407,7 @@ + } + + +-init_cells() ++void init_cells(void) + { + int i; + +@@ -415,18 +419,20 @@ + } + + +-bwrite(fd, buf, num) ++void bwrite(fd, buf, num) + int fd; + char *buf; + long num; + { + int nwrote; + static int ncalls = 0; ++ char *zerror; + + ncalls++; + if ((nwrote = write(fd, buf, num)) == -1) { ++ zerror = strerror(errno); + fprintf(stderr, "Error writing to save file\n"); +- fprintf(stderr, "errno = %d\t[%s]\n",errno,sys_errlist[errno]); ++ fprintf(stderr, "errno = %d\t[%s]\n",errno,zerror); + fprintf(stderr, " Wrote %d bytes so far\n", w); + fprintf(stderr, " Call: %d\n", ncalls); + abort(); +@@ -437,7 +443,7 @@ + w += nwrote; + if (nwrote != num) { + fprintf(stderr, "Error writing to save file\n"); +- fprintf(stderr, "wrote %d, wanted %d\n", nwrote, num); ++ fprintf(stderr, "wrote %d, wanted %ld\n", nwrote, num); + fprintf(stderr, " Wrote %d bytes so far\n", w); + fprintf(stderr, " Call: %d\n", ncalls); + sleep(4); +@@ -446,18 +452,20 @@ + FileSum += sum((unsigned char *)buf, num); + } + +-bread(fd, buf, num) ++void bread(fd, buf, num) + int fd; + char *buf; + long num; + { + int nread; + static int ncalls = 0; ++ char *zerror; + + ncalls++; + if ((nread = read(fd, buf, num)) == -1) { ++ zerror = strerror(errno); + fprintf(stderr, "Error reading from save file\n"); +- fprintf(stderr, "errno = %d\t[%s]\n",errno,sys_errlist[errno]); ++ fprintf(stderr, "errno = %d\t[%s]\n",errno,zerror); + fprintf(stderr, " Read %d bytes so far\n", w); + fprintf(stderr, " Call: %d\n", ncalls); + perror("read"); +@@ -467,7 +475,7 @@ + r += nread; + if (nread != num) { + fprintf(stderr, "Error reading save file\n"); +- fprintf(stderr, " Got %d, wanted %d bytes\n", nread, num); ++ fprintf(stderr, " Got %d, wanted %ld bytes\n", nread, num); + fprintf(stderr, " Read %d bytes so far\n", r); + fprintf(stderr, " Call: %d\n", ncalls); + sleep(4); diff --git a/games/ularn/patches/patch-ax b/games/ularn/patches/patch-ax new file mode 100644 index 00000000000..fc3cbf63583 --- /dev/null +++ b/games/ularn/patches/patch-ax @@ -0,0 +1,198 @@ +$NetBSD: patch-ax,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- scores.c.orig Fri Jun 19 13:55:34 1992 ++++ scores.c Sat Jan 13 21:55:18 2001 +@@ -33,6 +33,7 @@ + * diedsub(x) + * Subroutine to print out a line showing player when he is killed + */ ++#include <unistd.h> + #include "header.h" + #include "monst.h" + #include "itm.h" +@@ -109,7 +110,7 @@ + * + * returns -1 if unable to read in the scoreboard, returns 0 if all is OK + */ +-readboard() ++int readboard(void) + { + FILE *fp; + +@@ -142,7 +143,7 @@ + * + * returns -1 if unable to write the scoreboard, returns 0 if all is OK + */ +-writeboard() ++int writeboard(void) + { + FILE *fp; + +@@ -175,7 +176,7 @@ + * + * returns -1 if unable to write the scoreboard, returns 0 if all is OK + */ +-makeboard() ++int makeboard(void) + { + int i; + +@@ -200,7 +201,7 @@ + * scoreboard. This function also sets outstanding_taxes to the value in + * the winners scoreboard. + */ +-hashewon() ++int hashewon(void) + { + int i; + +@@ -263,7 +264,7 @@ + * + * Returns the number of players on scoreboard that were shown + */ +-winshou() ++int winshou(void) + { + struct wscofmt *p; + int i, j, count; +@@ -312,7 +313,7 @@ + * Enter with 0 to list the scores, enter with 1 to list inventories too + * Returns the number of players on scoreboard that were shown + */ +-shou(x) ++int shou(x) + int x; + { + int i, j, n; +@@ -385,7 +386,7 @@ + */ + static char esb[] = "The scoreboard is empty.\n"; + +-showscores() ++void showscores(void) + { + int i, j; + +@@ -408,7 +409,7 @@ + * + * Returns nothing of value + */ +-showallscores() ++void showallscores(void) + { + int i, j; + +@@ -419,9 +420,9 @@ + c[WEAR] = c[WIELD] = c[SHIELD] = -1; + + for (i = 0; i < MAXPOTION; i++) +- potionname[i][0] = ' '; ++ potionknown[i] = 1; + for (i = 0; i < MAXSCROLL; i++) +- scrollname[i][0] = ' '; ++ scrollknown[i] = 1; + + i = winshou(); + j = shou(1); +@@ -439,7 +440,7 @@ + * + * Returns 0 if no sorting done, else returns 1 + */ +-sortboard() ++int sortboard(void) + { + int i, j, pos; + long jdat; +@@ -480,7 +481,7 @@ + * died() reason # in whyded, and TRUE/FALSE in winner if a winner + * ex. newscore(1000, "player 1", 32, 0); + */ +-newscore(score, whoo, whyded, winner) ++void newscore(score, whoo, whyded, winner) + long score; + int winner, whyded; + char *whoo; +@@ -544,7 +545,7 @@ + * slot in scoreboard in i, and the tax bill in taxes. + * Returns nothing of value + */ +-new1sub(score, i, whoo, taxes) ++void new1sub(score, i, whoo, taxes) + long score, taxes; + int i; + char *whoo; +@@ -576,7 +577,7 @@ + * died() reason # in whyded, and slot in scoreboard in i. + * Returns nothing of value + */ +-new2sub(score, i, whoo, whyded) ++void new2sub(score, i, whoo, whyded) + long score; + int i, whyded; + char *whoo; +@@ -649,7 +650,7 @@ + + static int scorerror; + +-died(x) ++void died(x) + int x; + { + int f, win; +@@ -710,7 +711,7 @@ + /* now enter the player at the end of the scoreboard */ + newscore(c[GOLD] + c[BANKACCOUNT], logname, x, win); + +- clear(); ++ ularn_clear(); + lflush(); + diedsub(x); /* print out the score line */ + +@@ -743,7 +744,7 @@ + * diedsub(x) + * int x; + */ +-diedsub(x) ++void diedsub(x) + int x; + { + char ch, *mod, *cls; +@@ -753,7 +754,7 @@ + puts("---------------------------------------------------------------"); + puts(" U L A R N S C O R E S"); + puts("---------------------------------------------------------------"); +- printf("Score: %ld Diff: %d ", c[GOLD], c[HARDGAME]); ++ printf("Score: %ld Diff: %ld ", c[GOLD], c[HARDGAME]); + printf("Level: %s Char: %s\n", cls, char_class); + printf("\t%s", logname); + if (wizard) +@@ -788,7 +789,7 @@ + fflush(stdout); + } + +-showscore3(index) ++void showscore3(index) + int index; + { + switch (iven[index]) { +@@ -820,9 +821,9 @@ + default: + printf("\n%c) %s", index + 'a' , objectname[iven[index]]); + if (ivenarg[index] > 0) +- printf(" + %d", (long)ivenarg[index]); ++ printf(" + %ld", (long)ivenarg[index]); + else if (ivenarg[index] < 0) +- printf(" %d", (long)ivenarg[index]); ++ printf(" %ld", (long)ivenarg[index]); + break; + } + if (c[WIELD] == index) +@@ -832,7 +833,7 @@ + fflush(stdout); + } + +-showscore1(idx, str2) ++void showscore1(idx, str2) + int idx; + char *str2[]; + { diff --git a/games/ularn/patches/patch-ay b/games/ularn/patches/patch-ay new file mode 100644 index 00000000000..2c026281c70 --- /dev/null +++ b/games/ularn/patches/patch-ay @@ -0,0 +1,145 @@ +$NetBSD: patch-ay,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- show.c.orig Fri Jun 19 13:55:30 1992 ++++ show.c Sat Jan 13 21:55:39 2001 +@@ -9,7 +9,7 @@ + + show character's inventory + */ +-showstr() ++void showstr(void) + { + int i,number; + +@@ -20,7 +20,7 @@ + t_endup(number); + } + +-qshowstr() ++void qshowstr(void) + { + int k; + +@@ -44,7 +44,7 @@ + /* + * subroutine to clear screen depending on # lines to display + */ +-t_setup (count) ++void t_setup (count) + int count; + { + if (count<20) { +@@ -53,14 +53,14 @@ + } + else { + resetscroll(); +- clear(); ++ ularn_clear(); + } + } + + /* + * subroutine to restore normal display screen depending on t_setup() + */ +-t_endup (count) ++void t_endup (count) + int count; + { + if (count<18) /* how did we clear the screen? */ +@@ -74,7 +74,7 @@ + /* + function to show the things player is wearing only + */ +-showwear() ++void showwear(void) + { + int count, i,j; + +@@ -124,7 +124,7 @@ + /* + function to show the things player can wield only + */ +-showwield() ++void showwield(void) + { + int i,j,count; + +@@ -182,7 +182,7 @@ + /* + * function to show the things player can read only + */ +-showread () ++void showread (void) + { + int i,j,count; + +@@ -213,7 +213,7 @@ + /* + * function to show the things player can eat only + */ +-showeat () ++void showeat (void) + { + int i,j,count; + +@@ -242,7 +242,7 @@ + /* + function to show the things player can quaff only + */ +-showquaff () ++void showquaff (void) + { + int i,j,count; + +@@ -268,27 +268,26 @@ + t_endup(count); + } + +-show1 (idx, str2) ++void show1 (idx, str2, known) + int idx; + char *str2[]; ++int known; + { +- if (str2==0) +- lprintf("\n%c) %s",idx+'a',objectname[iven[idx]]); +- else if (*str2[ivenarg[idx]]==0) ++ if (str2 == 0 || known == 0) + lprintf("\n%c) %s",idx+'a',objectname[iven[idx]]); + else +- lprintf("\n%c) %s of%s", ++ lprintf("\n%c) %s of %s", + idx+'a',objectname[iven[idx]],str2[ivenarg[idx]]); + if (wizard) + lprintf(" [ %d ]", ivenarg[idx]); + } + +-show3 (index) ++void show3 (index) + int index; + { + switch(iven[index]) { +- case OPOTION: show1(index,potionname); break; +- case OSCROLL: show1(index,scrollname); break; ++ case OPOTION: show1(index,potionname,potionknown[index]); break; ++ case OSCROLL: show1(index,scrollname,scrollknown[index]); break; + case OLARNEYE: + case OBOOK: + case OSPIRITSCARAB: +@@ -305,7 +304,7 @@ + case OURN: + case OWWAND: + case OSPHTALISMAN: +- case ONOTHEFT: show1(index,(char **)0); break; ++ case ONOTHEFT: show1(index,(char **)0,0); break; + + default: + lprintf("\n%c) %s",index+'a',objectname[iven[index]]); +@@ -322,6 +321,6 @@ + if (++srcount>=22) { + srcount=0; + more(); +- clear(); ++ ularn_clear(); + } + } diff --git a/games/ularn/patches/patch-az b/games/ularn/patches/patch-az new file mode 100644 index 00000000000..39e2693602e --- /dev/null +++ b/games/ularn/patches/patch-az @@ -0,0 +1,76 @@ +$NetBSD: patch-az,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- signal.c.orig Fri Jun 19 13:55:37 1992 ++++ signal.c Sat Jan 13 21:03:53 2001 +@@ -1,8 +1,10 @@ + /* signal.c */ ++#include <sys/types.h> ++#include <unistd.h> + #include "header.h" + #include "extern.h" + +-s2choose() /* text to be displayed if ^C during intro screen */ ++void s2choose(void) /* text to be displayed if ^C during intro screen */ + { + cursor(1,24); + lprcat("Press "); +@@ -14,7 +16,8 @@ + } + + SIGTYPE +-cntlc() /* what to do for an interrupt */ ++cntlc(siggy) /* what to do for an interrupt */ ++int siggy; + { + if (nosignal) { + signal(SIGINT, cntlc); +@@ -37,7 +40,8 @@ + * subroutine to save the game if a hangup signal + */ + SIGTYPE +-sgam() ++sgam(siggy) ++int siggy; + { + if (ckpflag) { + if (fork() == 0) { +@@ -86,10 +90,10 @@ + ** sigsave called before a shell escape + ** sigreset called after a shell escape + */ +-static SIGTYPE (*intsave)(), +- (*quitsave)(); ++static SIGTYPE (*intsave)(int), ++ (*quitsave)(int); + +-sigsetup() ++void sigsetup(void) + { + SIGTYPE tstop(); + signal(SIGHUP, sgam); +@@ -110,7 +114,7 @@ + #endif /* SIGTSTP */ + } + +-sigsave() ++void sigsave(void) + { + signal(SIGHUP, SIG_DFL); + intsave = signal(SIGINT, SIG_DFL); +@@ -130,7 +134,7 @@ + #endif /* SIGTSTP */ + } + +-sigreset() ++void sigreset(void) + { + signal(SIGHUP, sgam); + signal(SIGINT, intsave); +@@ -177,6 +181,7 @@ + /* + * routine to process a fatal error signal + */ ++SIGTYPE + sigpanic(sig) + int sig; + { diff --git a/games/ularn/patches/patch-ba b/games/ularn/patches/patch-ba new file mode 100644 index 00000000000..72e16079bb0 --- /dev/null +++ b/games/ularn/patches/patch-ba @@ -0,0 +1,50 @@ +$NetBSD: patch-ba,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- sphere.c.orig Sat Jan 13 21:04:38 2001 ++++ sphere.c Sat Jan 13 21:07:29 2001 +@@ -1,4 +1,5 @@ + /* sphere.c */ ++#include <stdlib.h> + #include "header.h" + #include "monst.h" + #include "player.h" +@@ -28,9 +29,8 @@ + * Enter with the coordinates of the sphere in x,y + * the direction (0-8 diroffx format) in dir, and the lifespan of the + * sphere in lifetime (in turns) +- * Returns the number of spheres currently in existence + */ +-newsphere (x, y, dir, life) ++void newsphere (x, y, dir, life) + int x, y, dir, life; + { + int m,i; +@@ -131,9 +131,8 @@ + * int x,y; + * + * Enter with the coordinates of the sphere (on current level) +- * Returns the number of spheres currently in existence + */ +-rmsphere (x, y) ++void rmsphere (x, y) + int x, y; + { + struct sphere *sp,*sp2=(struct sphere *)NULL; +@@ -167,7 +166,7 @@ + * + * Enter with the coordinates of the blast, Returns no value + */ +-sphboom (x, y) ++void sphboom (x, y) + int x, y; + { + int i,j,k; +@@ -202,7 +201,7 @@ + * No value is returned. + */ + #define SPHMAX 20 /* maximum number of spheres movsphere can handle */ +-movsphere() ++void movsphere(void) + { + int x,y,dir,len; + struct sphere *sp,*sp2; diff --git a/games/ularn/patches/patch-bb b/games/ularn/patches/patch-bb new file mode 100644 index 00000000000..c5633f48140 --- /dev/null +++ b/games/ularn/patches/patch-bb @@ -0,0 +1,316 @@ +$NetBSD: patch-bb,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- store.c.orig Fri Jun 19 13:55:37 1992 ++++ store.c Sat Jan 13 21:56:25 2001 +@@ -1,4 +1,5 @@ + /* store.c */ ++#include <stdlib.h> + #include "header.h" + #include "player.h" + #include "itm.h" +@@ -136,14 +137,14 @@ + /* + function for the dnd store + */ +-dnd_2hed() ++void dnd_2hed(void) + { + lprcat("Welcome to the Ularn Thrift Shoppe. We stock many items explorers find useful\n"); + lprcat("in their adventures. Feel free to browse to your hearts content.\n"); + lprcat("Also be advised, if you break 'em, you pay for 'em."); + } + +-dnd_hed() ++void dnd_hed(void) + { + int i; + +@@ -153,13 +154,13 @@ + lprcat("You have "); + } + +-dndstore() ++void dndstore(void) + { + int i; + + dnditm = 0; + nosignal = 1; /* disable signals */ +- clear(); ++ ularn_clear(); + dnd_2hed(); + if (outstanding_taxes>0) { + lprcat("\n\nThe Ularn Revenue Service has ordered us to not do business with tax evaders.\n"); +@@ -192,7 +193,7 @@ + while ((i<'a' || i>'z') && (i!=' ') && (i!=ESC) && (i!=12)) + i=getcharacter(); + if (i==12) { +- clear(); ++ ularn_clear(); + dnd_2hed(); + dnd_hed(); + } +@@ -238,19 +239,21 @@ + /* + function for the players hands are full + */ +-handsfull() ++void handsfull(void) + { + lprcat("\nYou can't carry anything more!"); + lflush(); + nap(2200); + } +-outofstock() ++ ++void outofstock(void) + { + lprcat("\nSorry, but we are out of that item."); + lflush(); + nap(2200); + } +-nogold() ++ ++void nogold(void) + { + lprcat("\nYou don't have enough gold to pay for that!"); + lflush(); +@@ -263,7 +266,7 @@ + to print the item list; + used in dndstore() enter with the index into itm + */ +-dnditem(i) ++void dnditem(i) + int i; + { + int j,k; +@@ -281,11 +284,11 @@ + lprintf("%c) ",(i%IVENSIZE)+'a'); + if (itm[i].obj == OPOTION) { + lprcat("potion of "); +- lprintf("%s",&potionname[itm[i].arg][1]); ++ lprintf("%s",potionname[itm[i].arg]); + } + else if (itm[i].obj == OSCROLL) { + lprcat("scroll of "); +- lprintf("%s",&scrollname[itm[i].arg][1]); ++ lprintf("%s",scrollname[itm[i].arg]); + } + else lprintf("%s",objectname[itm[i].obj]); + cursor( j+31,k ); +@@ -302,9 +305,9 @@ + /* + function to display the header info for the school + */ +-sch_hed() ++void sch_hed(void) + { +- clear(); ++ ularn_clear(); + lprcat("The College of Ularn offers the exciting opportunity of higher education to\n"); + lprcat("all inhabitants of the caves. Here is a list of the class schedule:\n\n\n"); + lprcat("\t\t Course Name \t Time Needed\n\n"); +@@ -339,7 +342,7 @@ + lprcat("You are presently carrying "); + } + +-oschool() ++void oschool(void) + { + int i; + +@@ -470,20 +473,21 @@ + * for the first national bank of Ularn + */ + long lasttime=0; /* last time he was in bank */ +-obank() ++void obank(void) + { + banktitle(" Welcome to the First National Bank of Ularn."); + } +-obank2() ++ ++void obank2(void) + { + banktitle("Welcome to the 8th level branch office of the First National Bank of Ularn."); + } + +-banktitle(str) ++void banktitle(str) + char *str; + { + nosignal = 1; /* disable signals */ +- clear(); ++ ularn_clear(); + lprcat(str); + if (outstanding_taxes>0) { + int i; +@@ -517,7 +521,7 @@ + * limit of 1 million gold pieces in bank + */ + #define BANKLIMIT 1000000 +-ointerest() ++void ointerest(void) + { + int i; + +@@ -537,7 +541,7 @@ + static short gemorder[IVENSIZE]={0}; /* the reference to screen location for each */ + static long gemvalue[IVENSIZE]={0}; /* the appraisal of the gems */ + +-obanksub() ++void obanksub(void) + { + long amt; + int i,k, eye=0; +@@ -674,7 +678,7 @@ + } + } + +-appraise(eye, order) ++void appraise(eye, order) + int eye, order; + { + long amt; +@@ -710,9 +714,9 @@ + /* + function for the trading post + */ +-otradhead() ++void otradhead(void) + { +- clear(); ++ ularn_clear(); + lprcat("Welcome to the Ularn Trading Post. We buy items that explorers no longer find\n"); + lprcat("useful. Since the condition of the items you bring in is not certain,\n"); + lprcat("and we incur great expense in reconditioning the items, we usually pay\n"); +@@ -720,7 +724,7 @@ + lprcat("damaged, we will pay only 10% of their new value.\n\n"); + } + +-otradepost() ++void otradepost(void) + { + int i,j,isub,izarg; + long value; +@@ -748,12 +752,12 @@ + isub = i - 'a'; + j=0; + if (iven[isub]==OSCROLL) +- if (scrollname[ivenarg[isub]][0]==0) { ++ if (scrollknown[ivenarg[isub]]==0) { + j=1; + cnsitm(); + } /* can't sell unidentified item */ + if (iven[isub]==OPOTION) +- if (potionname[ivenarg[isub]][0]==0) { ++ if (potionknown[ivenarg[isub]]==0) { + j=1; + cnsitm(); + } /* can't sell unidentified item */ +@@ -761,9 +765,9 @@ + j=1; + lprcat("\nYou don't *really* want to sell that, now do you?"); + } +- if (!j) ++ if (!j) { + if (i=='*') { +- clear(); ++ ularn_clear(); + qshowstr(); + otradhead(); + } +@@ -814,10 +818,11 @@ + if (j <= DNDSIZE+2) + lprcat("\nSo sorry, but we are not authorized to accept that item."); + } ++ } + } + } + +-cnsitm() ++void cnsitm(void) + { + lprcat("\nSorry, we can't accept unidentified objects."); + } +@@ -825,13 +830,13 @@ + /* + * for the Ularn Revenue Service + */ +-olrs() ++void olrs(void) + { + int i,first; + long amt; + + first = nosignal = 1; /* disable signals */ +- clear(); ++ ularn_clear(); + resetscroll(); + cursor(1,4); + if (outstanding_taxes) +@@ -899,13 +904,14 @@ + } + + +-nomore() ++void nomore(void) + { + lprcat("\nSorry man, I ain't got no more of that shit."); + lflush(); + nap(2200); + } +-nocash() ++ ++void nocash(void) + { + lprcat("\nWhattaya trying to pull on me? You aint got the cash!"); + lflush(); +@@ -919,9 +925,9 @@ + function to display the header info for the pad + */ + char drug[5]={0}; +-pad_hd() ++void pad_hd(void) + { +- clear(); ++ ularn_clear(); + lprcat("Hey man, welcome to Dealer McDope's Pad! I gots the some of the finest shit\n"); + lprcat("you'll find anywhere in Ularn - check it out...\n\n\n"); + lprcat("\t\t The Stash\t\t\tThe Cash\n\n"); +@@ -942,7 +948,7 @@ + lprcat("Looks like you got about "); + } + +-opad() ++void opad(void) + { + int i,flag; + +@@ -1061,7 +1067,7 @@ + } /*end while(1) */ + } /* end pad() */ + +-snag(itm) ++int snag(itm) + int itm; + { + int i,limit; +@@ -1082,7 +1088,7 @@ + return(0); + } + +-pick_char(foo) ++void pick_char(foo) + int foo; + { + int i; +@@ -1090,7 +1096,7 @@ + nosignal = 1; /* disable signals */ + + if (foo == 0) { +- clear(); ++ ularn_clear(); + lprcat("\t\tThe Addiction of Ularn\n\n"); + lprcat("Pick a character class...\n\n\n"); + lprcat("\t\t Character\n\n"); diff --git a/games/ularn/patches/patch-bc b/games/ularn/patches/patch-bc new file mode 100644 index 00000000000..ba56bb95c38 --- /dev/null +++ b/games/ularn/patches/patch-bc @@ -0,0 +1,81 @@ +$NetBSD: patch-bc,v 1.1.1.1 2001/04/27 15:27:31 agc Exp $ + +--- tok.c.orig Fri Jun 19 13:55:30 1992 ++++ tok.c Sat Jan 13 21:56:42 2001 +@@ -1,4 +1,7 @@ + /* tok.c */ ++#include <sys/types.h> ++#include <sys/wait.h> ++#include <unistd.h> + #include "header.h" + #include "player.h" + #include "monst.h" +@@ -12,12 +15,12 @@ + int yrepcount=0; + + static char usermonster[MAXUM][MAXMNAME]; +-static char usermpoint=0; /* the user monster pointer */ ++static int usermpoint=0; /* the user monster pointer */ + + /* + * lexical analyzer for Ularn + */ +-yylex () ++int yylex (void) + { + int cc, ic; + char *sh, *getenv(); +@@ -61,14 +64,14 @@ + /* shell escape */ + if (cc == '!') { + int pgrp; +-#ifdef USG ++#if defined(USG) || defined(__NetBSD__) + pgrp = getpgrp(); + #else + pgrp = getpgrp(getpid()); + #endif /* USG */ + + resetscroll(); +- clear(); ++ ularn_clear(); + cl_dn(0,0); + lflush(); + if ((ic=fork())==0) { +@@ -116,7 +119,7 @@ + /* + * flushall() Function to flush all type-ahead in the input buffer + */ +-flushall() ++void flushall(void) + { + #ifdef TCFLSH + ioctl(0, TCFLSH, 0); /* standard ioctl to flush buffer */ +@@ -143,7 +146,7 @@ + function to set the desired hardness + enter with hard= -1 for default hardness, else any desired hardness + */ +-sethard (hard) ++void sethard (hard) + int hard; + { + int j,k,i; +@@ -157,7 +160,8 @@ + c[HARDGAME] = hard; + } + +- if (k=c[HARDGAME]) ++ k=c[HARDGAME]; ++ if (k) + for (j=0; j<=MAXMONST+8; j++) { + i = ((6+k)*monster[j].hitpoints+1)/6; + monster[j].hitpoints = (i > 32767) ? 32767 : i; +@@ -175,7 +179,7 @@ + /* + * function to read and process the larn options file + */ +-readopts () ++void readopts (void) + { + char s1buf[80], *str, s2buf[80]; + char *getword(); diff --git a/games/ularn/patches/patch-bd b/games/ularn/patches/patch-bd new file mode 100644 index 00000000000..f157cd33992 --- /dev/null +++ b/games/ularn/patches/patch-bd @@ -0,0 +1,79 @@ +$NetBSD: patch-bd,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ + +--- tty.c.orig Fri Jun 19 13:55:34 1992 ++++ tty.c Sat Jan 13 21:57:04 2001 +@@ -55,7 +55,7 @@ + /* + * set current tty + */ +-setctty() ++void setctty(void) + { + if (STTY(&curttyb) == -1 ) + perror("setctty"); +@@ -68,7 +68,7 @@ + * and switch off tab expansion if necessary. + * Called by startup() in termcap.c and after returning from ! or ^Z + */ +-gettty() ++void gettty(void) + { + if (GTTY(&inittyb) == -1) + perror("gettty"); +@@ -88,7 +88,7 @@ + } + + /* reset terminal to original state */ +-settty() ++void settty(void) + { + if (STTY(&inittyb) == -1) + perror("settty"); +@@ -98,7 +98,7 @@ + curttyb.inputflags |= STRIPHI; + } + +-setuptty() ++void setuptty(void) + { + curttyb.echoflgs &= ~ECHOMASK; + #ifdef TERMIO +@@ -118,7 +118,7 @@ + * + * like: system("stty cbreak -echo") + */ +-scbr () ++void scbr (void) + { + curttyb.cbrkflgs &= ~ECHOMASK; + #ifdef TERMIO +@@ -133,7 +133,7 @@ + * sncbr() Function to set -cbreak echo for the terminal + * + */ +-sncbr () ++void sncbr (void) + { + curttyb.cbrkflgs |= ECHOMASK; + #ifdef TERMIO +@@ -149,9 +149,9 @@ + * Subroutine to set up terminal in correct mode for game + * Attributes off, clear screen, set scrolling region, set tty mode + */ +-setupvt100 () ++void setupvt100 (void) + { +- clear(); ++ ularn_clear(); + setscroll(); + gettty(); + } +@@ -161,7 +161,7 @@ + * Subroutine to clean up terminal when the game is over + * Attributes off, clear screen, unset scrolling region, restore tty mode + */ +-clearvt100 () ++void clearvt100 (void) + { + resetscroll(); + settty(); diff --git a/games/ularn/pkg/DESCR b/games/ularn/pkg/DESCR new file mode 100644 index 00000000000..0f6988a4b08 --- /dev/null +++ b/games/ularn/pkg/DESCR @@ -0,0 +1,6 @@ +Ularn is a fantasy games in which your child has contracted a strange dis- +ease, and none of your home remedies seem to have any effect. You set +out to find a remedy in a limited amount of time, and to collect gold +along the way of course! + +Ularn is based on larn, and adds the concept of character classes. diff --git a/games/ularn/pkg/MESSAGE b/games/ularn/pkg/MESSAGE new file mode 100644 index 00000000000..6929fdfcf5e --- /dev/null +++ b/games/ularn/pkg/MESSAGE @@ -0,0 +1,6 @@ +Ularn has more features than NetBSD's larn, but ularn's source is +unmaintained, unportable, and less clean. This package fixes compile +errors and runtime crashes. This package does not modernize the code +or remove the security flaws. + +To play ularn, type Ularn. diff --git a/games/ularn/pkg/PLIST b/games/ularn/pkg/PLIST new file mode 100644 index 00000000000..1e9fa3b04a3 --- /dev/null +++ b/games/ularn/pkg/PLIST @@ -0,0 +1,6 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2001/04/27 15:27:32 agc Exp $ +bin/Ularn +share/Ularn/Uhelp +share/Ularn/Umaps +share/Ularn/Ufortune +@dirrm share/Ularn |