diff options
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 |