changeset 225:4f6e056438eb

Merge the GCC5 and build fix branches.
author John "Elwin" Edwards
date Wed, 02 Mar 2016 21:28:34 -0500
parents 4d0f53998e8a (current diff) f54901b9c39b (diff)
children b922f66acf4d
files
diffstat 184 files changed, 4882 insertions(+), 3466 deletions(-) [+]
line wrap: on
line diff
--- a/arogue5/chase.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/chase.c	Wed Mar 02 21:28:34 2016 -0500
@@ -12,6 +12,7 @@
  * See the file LICENSE.TXT for full copyright and licensing information.
  */
 
+#include <stdlib.h>
 #include <ctype.h>
 #include <limits.h>
 #include "curses.h"
@@ -21,8 +22,8 @@
 
 coord ch_ret;				/* Where chasing takes you */
 
-
-
+struct linked_list *get_hurl(struct thing *tp);
+bool straight_shot(int ery, int erx, int eey, int eex, coord *shooting);
 
 
 /*
@@ -31,8 +32,7 @@
  */
 
 bool
-can_blink(tp)
-register struct thing *tp;
+can_blink(struct thing *tp)
 {
     register int y, x, index=9;
     coord tryp;	/* To hold the coordinates for use in diag_ok */
@@ -128,8 +128,7 @@
  */
 
 coord *
-can_shoot(er, ee)
-register coord *er, *ee;
+can_shoot(coord *er, coord *ee)
 {
     static coord shoot_dir;
 
@@ -154,13 +153,11 @@
  *	FALSE if we reach the goal.
  */
 
-chase(tp, ee, flee, mdead)
-register struct thing *tp;
-register coord *ee;
-bool flee; /* True if destination (ee) is player and monster is running away
-	    * or the player is in a wall and the monster can't get to it
-	    */
-bool *mdead;
+/* flee: True if destination (ee) is player and monster is running 
+ * away or the player is in a wall and the monster can't get to it
+ */
+bool
+chase(struct thing *tp, coord *ee, bool flee, bool *mdead)
 {
     int damage, dist, thisdist, monst_dist = MAXINT; 
     struct linked_list *weapon;
@@ -530,10 +527,10 @@
  * do_chase:
  *	Make one thing chase another.
  */
+/* flee: True if running away or player is inaccessible in wall */
 
-do_chase(th, flee)
-register struct thing *th;
-register bool flee; /* True if running away or player is inaccessible in wall */
+void
+do_chase(struct thing *th, bool flee)
 {
     register struct room *rer, *ree,	/* room of chaser, room of chasee */
 			 *orig_rer,	/* Original room of chaser */
@@ -830,8 +827,7 @@
  */
 
 struct linked_list *
-get_hurl(tp)
-register struct thing *tp;
+get_hurl(struct thing *tp)
 {
     struct linked_list *arrow, *bolt, *rock;
     register struct linked_list *pitem;
@@ -861,7 +857,8 @@
  *	Make all the running monsters move.
  */
 
-runners()
+void
+runners(void)
 {
     register struct linked_list *item;
     register struct thing *tp = NULL;
@@ -935,9 +932,8 @@
  *	Set a monster running after something
  */
 
-runto(runner, spot)
-register struct thing *runner;
-coord *spot;
+void
+runto(struct thing *runner, coord *spot)
 {
     /*
      * Start the beastie running
@@ -959,9 +955,7 @@
  */
 
 bool
-straight_shot(ery, erx, eey, eex, shooting)
-register int ery, erx, eey, eex;
-register coord *shooting;
+straight_shot(int ery, int erx, int eey, int eex, coord *shooting)
 {
     register int dy, dx;	/* Deltas */
     char ch;
--- a/arogue5/command.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/command.c	Wed Mar 02 21:28:34 2016 -0500
@@ -21,12 +21,20 @@
 #include "rogue.h"
 #include "mach_dep.h"
 
+void help(void);
+void identify(void);
+void d_level(void);
+void u_level(void);
+void shell(void);
+void call(bool mark);
+
 /*
  * command:
  *	Process the user commands
  */
 
-command()
+void
+command(void)
 {
     register char ch;
     register int ntimes = 1;			/* Number of player moves */
@@ -207,8 +215,8 @@
 		when 'I' : after = FALSE; picky_inven();
 		when 'd' : drop(NULL);
 		when 'P' : grab(hero.y, hero.x);
-		when 'q' : quaff(-1, NULL, TRUE);
-		when 'r' : read_scroll(-1, NULL, TRUE);
+		when 'q' : quaff(-1, 0, TRUE);
+		when 'r' : read_scroll(-1, 0, TRUE);
 		when 'e' : eat();
 		when 'w' : wield();
 		when 'W' : wear();
@@ -228,7 +236,7 @@
 		when 'G' : gsense();
 		when '^' : set_trap(&player, hero.y, hero.x);
 		when 's' : search(FALSE, FALSE);
-		when 'z' : if (!do_zap(TRUE, NULL, FALSE))
+		when 'z' : if (!do_zap(TRUE, 0, FALSE))
 				after=FALSE;
 		when 'p' : pray();
 		when 'C' : cast();
@@ -475,8 +483,7 @@
  */
 
 void
-bugkill(sig)
-int sig;
+bugkill(int sig)
 {
     signal(sig, quit);	/* If we get it again, give up */
     death(D_SIGNAL);	/* Killed by a bug */
@@ -488,8 +495,8 @@
  *	Player gropes about him to find hidden things.
  */
 
-search(is_thief, door_chime)
-register bool is_thief, door_chime;
+void
+search(bool is_thief, bool door_chime)
 {
     register int x, y;
     register char ch,	/* The trap or door character */
@@ -570,7 +577,8 @@
  *	Give single character help, or the whole mess if he wants it
  */
 
-help()
+void
+help(void)
 {
     register struct h_list *strp = helpstr;
 #ifdef WIZARD
@@ -664,7 +672,8 @@
  *	Tell the player what a certain thing is.
  */
 
-identify()
+void
+identify(void)
 {
     register char ch;
     const char *str;
@@ -726,7 +735,8 @@
  *	He wants to go down a level
  */
 
-d_level()
+void
+d_level(void)
 {
     bool no_phase=FALSE;
 
@@ -770,7 +780,8 @@
  *	He wants to go up a level
  */
 
-u_level()
+void
+u_level(void)
 {
     bool no_phase = FALSE;
     register struct linked_list *item;
@@ -828,7 +839,8 @@
  * Let him escape for a while
  */
 
-shell()
+void
+shell(void)
 {
     /*
      * Set the terminal back to original mode
@@ -859,8 +871,8 @@
 /*
  * allow a user to call a potion, scroll, or ring something
  */
-call(mark)
-bool mark;
+void
+call(bool mark)
 {
     register struct object *obj;
     register struct linked_list *item;
--- a/arogue5/daemon.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/daemon.c	Wed Mar 02 21:28:34 2016 -0500
@@ -36,7 +36,7 @@
  *	Find an empty slot in the daemon list
  */
 struct delayed_action *
-d_slot()
+d_slot(void)
 {
 	reg int i;
 	reg struct delayed_action *dev;
@@ -52,7 +52,7 @@
  *	Find an empty slot in the fuses list
  */
 struct delayed_action *
-f_slot()
+f_slot(void)
 {
 	reg int i;
 	reg struct delayed_action *dev;
@@ -70,8 +70,7 @@
  *	Find a particular slot in the table
  */
 struct delayed_action *
-find_slot(func)
-reg int (*func)();
+find_slot(int (*func)())
 {
 	reg int i;
 	reg struct delayed_action *dev;
@@ -87,6 +86,7 @@
  * start_daemon:
  *	Start a daemon, takes a function.
  */
+void
 start_daemon(int (*func)(), void *arg, int type)
 {
 	reg struct delayed_action *dev;
@@ -106,8 +106,8 @@
  * kill_daemon:
  *	Remove a daemon from the list
  */
-kill_daemon(func)
-reg int (*func)();
+void
+kill_daemon(int (*func)())
 {
 	reg struct delayed_action *dev;
 	reg int i;
@@ -133,8 +133,8 @@
  *	Run all the daemons that are active with the current flag,
  *	passing the argument to the function.
  */
-do_daemons(flag)
-reg int flag;
+void
+do_daemons(int flag)
 {
 	reg struct delayed_action *dev;
 
@@ -154,6 +154,7 @@
  * fuse:
  *	Start a fuse to go off in a certain number of turns
  */
+void
 fuse(int (*func)(), void *arg, int time, int type)
 {
 	reg struct delayed_action *wire;
@@ -173,8 +174,8 @@
  * lengthen:
  *	Increase the time until a fuse goes off
  */
-lengthen(func, xtime)
-reg int (*func)(), xtime;
+void
+lengthen(int (*func)(), int xtime)
 {
 	reg struct delayed_action *wire;
 
@@ -188,8 +189,8 @@
  * extinguish:
  *	Put out a fuse
  */
-extinguish(func)
-reg int (*func)();
+void
+extinguish(int (*func)())
 {
 	reg struct delayed_action *wire;
 
@@ -207,8 +208,8 @@
  * do_fuses:
  *	Decrement counters and start needed fuses
  */
-do_fuses(flag)
-reg int flag;
+void
+do_fuses(int flag)
 {
 	reg struct delayed_action *wire;
 
@@ -234,7 +235,8 @@
  * activity:
  *	Show wizard number of demaons and memory blocks used
  */
-activity()
+void
+activity(void)
 {
 	sprintf(outstring,"Daemons = %d : Fuses = %d : Memory Items = %d : Memory Used = %d",
 	    demoncnt,fusecnt,total,md_memused());
--- a/arogue5/daemons.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/daemons.c	Wed Mar 02 21:28:34 2016 -0500
@@ -22,8 +22,8 @@
  *	A healing daemon that restors hit points after rest
  */
 
-doctor(tp)
-register struct thing *tp;
+void
+doctor(struct thing *tp)
 {
     register int ohp;
     register int limit, new_points;
@@ -100,7 +100,8 @@
  *	Called when it is time to start rolling for wandering monsters
  */
 
-swander()
+void
+swander(void)
 {
     start_daemon(rollwand, 0, BEFORE);
 }
@@ -110,7 +111,8 @@
  *	Called to roll to see if a wandering monster starts up
  */
 
-rollwand()
+void
+rollwand(void)
 {
     if (++between >= 4)
     {
@@ -128,7 +130,8 @@
 /*
  * this function is a daemon called each turn when the character is a thief
  */
-trap_look()
+void
+trap_look(void)
 {
     if (rnd(100) < (2*dex_compute() + 5*pstats.s_lvl))
 	search(TRUE, FALSE);
@@ -139,7 +142,8 @@
  *	Release the poor player from his confusion
  */
 
-unconfuse()
+void
+unconfuse(void)
 {
     turn_off(player, ISHUH);
     msg("You feel less confused now");
@@ -151,7 +155,8 @@
  *	He lost his see invisible power
  */
 
-unsee()
+void
+unsee(void)
 {
     if (!ISWEARING(R_SEEINVIS)) {
 	turn_off(player, CANSEE);
@@ -164,7 +169,8 @@
  *	Remove to-hit handicap from player
  */
 
-unstink()
+void
+unstink(void)
 {
     turn_off(player, HASSTINK);
 }
@@ -174,7 +180,8 @@
  *	Player is no longer immune to confusion
  */
 
-unclrhead()
+void
+unclrhead(void)
 {
     turn_off(player, ISCLEAR);
     msg("The blue aura about your head fades away.");
@@ -185,7 +192,8 @@
  *	Player can no longer walk through walls
  */
 
-unphase()
+void
+unphase(void)
 {
     turn_off(player, CANINWALL);
     msg("Your dizzy feeling leaves you.");
@@ -197,7 +205,8 @@
  *	Player can no longer fly
  */
 
-land()
+void
+land(void)
 {
     turn_off(player, ISFLY);
     msg("You regain your normal weight");
@@ -209,7 +218,8 @@
  *	He gets his sight back
  */
 
-sight()
+void
+sight(void)
 {
     if (on(player, ISBLIND))
     {
@@ -225,7 +235,8 @@
  *	Restore player's strength
  */
 
-res_strength()
+void
+res_strength(void)
 {
 
     /* If lost_str is non-zero, restore that amount of strength,
@@ -249,7 +260,8 @@
  *	End the hasting
  */
 
-nohaste()
+void
+nohaste(void)
 {
     turn_off(player, ISHASTE);
     msg("You feel yourself slowing down.");
@@ -260,7 +272,8 @@
  *	End the slowing
  */
 
-noslow()
+void
+noslow(void)
 {
     turn_off(player, ISSLOW);
     msg("You feel yourself speeding up.");
@@ -271,7 +284,8 @@
  *	If this gets called, the player has suffocated
  */
 
-suffocate()
+void
+suffocate(void)
 {
     death(D_SUFFOCATION);
 }
@@ -279,7 +293,8 @@
 /*
  * digest the hero's food
  */
-stomach()
+void
+stomach(void)
 {
     register int oldfood, old_hunger, food_use, i;
 
@@ -335,7 +350,8 @@
 /*
  * daemon for curing the diseased
  */
-cure_disease()
+void
+cure_disease(void)
 {
     turn_off(player, HASDISEASE);
     if (off (player, HASINFEST))
@@ -346,7 +362,8 @@
 /*
  * daemon for adding back dexterity
  */
-un_itch()
+void
+un_itch(void)
 {
     if (--lost_dext < 1) {
 	lost_dext = 0;
@@ -358,7 +375,8 @@
  * appear:
  *	Become visible again
  */
-appear()
+void
+appear(void)
 {
     turn_off(player, ISINVIS);
     PLAYER = VPLAYER;
@@ -369,7 +387,8 @@
  * dust_appear:
  *	dust of disappearance wears off
  */
-dust_appear()
+void
+dust_appear(void)
 {
     turn_off(player, ISINVIS);
     PLAYER = VPLAYER;
@@ -380,7 +399,8 @@
  * unchoke:
  * 	the effects of "dust of choking and sneezing" wear off
  */
-unchoke()
+void
+unchoke(void)
 {
     if (!find_slot(unconfuse))
 	turn_off(player, ISHUH);
@@ -392,8 +412,8 @@
 /*
  * make some potion for the guy in the Alchemy jug
  */
-alchemy(obj)
-register struct object *obj;
+void
+alchemy(struct object *obj)
 {
     register struct object *tobj = NULL;
     register struct linked_list *item;
@@ -440,7 +460,8 @@
  * otto's irresistable dance wears off 
  */
 
-undance()
+void
+undance(void)
 {
     turn_off(player, ISDANCE);
     msg ("Your feet take a break.....whew!");
@@ -449,14 +470,16 @@
 /* 
  * if he has our favorite necklace of strangulation then take damage every turn
  */
-strangle()
+void
+strangle(void)
 {
      if ((pstats.s_hpt -= 6) <= 0) death(D_STRANGLE);
 }
 /*
  * if he has on the gauntlets of fumbling he might drop his weapon each turn
  */
-fumble()
+void
+fumble(void)
 {
     register struct linked_list *item;
 
@@ -474,14 +497,16 @@
 /*
  * this is called each turn the hero has the ring of searching on
  */
-ring_search()
+void
+ring_search(void)
 {
     search(FALSE, FALSE);
 }
 /*
  * this is called each turn the hero has the ring of teleportation on
  */
-ring_teleport()
+void
+ring_teleport(void)
 {
     if (rnd(100) < 2) teleport();
 }
--- a/arogue5/encumb.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/encumb.c	Wed Mar 02 21:28:34 2016 -0500
@@ -15,12 +15,14 @@
 #include "curses.h"
 #include "rogue.h"
 
+int packweight(void);
+
 /*
  * updpack:
  *	Update his pack weight and adjust fooduse accordingly
  */
-updpack(getmax)
-int getmax;
+void
+updpack(bool getmax)
 {
 
 	reg int topcarry, curcarry;
@@ -45,7 +47,8 @@
  * packweight:
  *	Get the total weight of the hero's pack
  */
-packweight()
+int
+packweight(void)
 {
 	reg struct object *obj;
 	reg struct linked_list *pc;
@@ -68,8 +71,8 @@
  * itemweight:
  *	Get the weight of an object
  */
-itemweight(wh)
-reg struct object *wh;
+int
+itemweight(struct object *wh)
 {
 	reg int weight;
 	reg int ac;
@@ -99,7 +102,8 @@
  * playenc:
  *	Get hero's carrying ability above norm
  */
-playenc()
+int
+playenc(void)
 {
 	return ((str_compute()-8)*50);
 }
@@ -109,7 +113,8 @@
  * totalenc:
  *	Get total weight that the hero can carry
  */
-totalenc()
+int
+totalenc(void)
 {
 	reg int wtotal;
 
@@ -130,18 +135,18 @@
  *	See if the hero can carry his pack
  */
 
-wghtchk()
+void
+wghtchk(void)
 {
 	reg int dropchk, err = TRUE;
 	reg char ch;
-	int wghtchk();
 
 	inwhgt = TRUE;
 	if (pstats.s_pack > pstats.s_carry) {
 	    ch = CCHAR( mvwinch(stdscr, hero.y, hero.x) );
 	    if((ch != FLOOR && ch != PASSAGE)) {
 		extinguish(wghtchk);
-		fuse(wghtchk,TRUE,1,AFTER);
+		fuse(wghtchk,NULL,1,AFTER);
 		inwhgt = FALSE;
 		return;
 	    }
@@ -169,7 +174,8 @@
  *			-1 hit for heavy pack weight
  */
 
-hitweight()
+int
+hitweight(void)
 {
 	return(2 - foodlev);
 }
--- a/arogue5/fight.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/fight.c	Wed Mar 02 21:28:34 2016 -0500
@@ -13,10 +13,27 @@
  */
 
 #include "curses.h"
+#include <stdlib.h>
 #include <ctype.h>
 #include <string.h>
 #include "rogue.h"
 
+bool roll_em(struct thing *att_er, struct thing *def_er, struct object *weap, 
+             bool hurl, struct object *cur_weapon, bool back_stab);
+void hit(struct object *weapon, struct thing *tp, char *er, char *ee, 
+         bool back_stab);
+void miss(struct object *weapon, struct thing *tp, char *er, char *ee);
+int dext_plus(int dexterity);
+int str_plus(short str);
+int add_dam(short str);
+int hung_dam(void);
+void thunk(struct object *weap, struct thing *tp, char *mname);
+void m_thunk(struct object *weap, struct thing *tp, char *mname);
+void bounce(struct object *weap, struct thing *tp, char *mname);
+void m_bounce(struct object *weap, struct thing *tp, char *mname);
+struct object *wield_weap(struct object *thrown, struct thing *mp);
+void explode(struct thing *tp);
+
 #define CONF_DAMAGE	-1
 #define PARAL_DAMAGE	-2
 #define DEST_DAMAGE	-3
@@ -35,10 +52,8 @@
  *	The player attacks the monster.
  */
 
-fight(mp, weap, thrown)
-register coord *mp;
-struct object *weap;
-bool thrown;
+bool
+fight(coord *mp, struct object *weap, bool thrown)
 {
     register struct thing *tp;
     register struct linked_list *item;
@@ -204,10 +219,8 @@
  *	The monster attacks the player
  */
 
-attack(mp, weapon, thrown)
-register struct thing *mp;
-register struct object *weapon;
-bool thrown;
+bool
+attack(struct thing *mp, struct object *weapon, bool thrown)
 {
     register const char *mname;
     register bool did_hit = FALSE;
@@ -708,9 +721,8 @@
  *	returns true if the swing hits
  */
 
-swing(class, at_lvl, op_arm, wplus)
-short class;
-int at_lvl, op_arm, wplus;
+bool
+swing(short class, int at_lvl, int op_arm, int wplus)
 {
     register int res = rnd(20)+1;
     register int need;
@@ -730,12 +742,9 @@
  *	Roll several attacks
  */
 
-roll_em(att_er, def_er, weap, hurl, cur_weapon, back_stab)
-struct thing *att_er, *def_er;
-struct object *weap;
-bool hurl;
-struct object *cur_weapon;
-bool back_stab;
+bool
+roll_em(struct thing *att_er, struct thing *def_er, struct object *weap, 
+        bool hurl, struct object *cur_weapon, bool back_stab)
 {
     register struct stats *att, *def;
     register char *cp = NULL;
@@ -1028,9 +1037,7 @@
  */
 
 char *
-prname(who, upper)
-register char *who;
-bool upper;
+prname(char *who, bool upper)
 {
     static char tbuf[LINELEN];
 
@@ -1054,11 +1061,8 @@
  *	Print a message to indicate a succesful hit
  */
 
-hit(weapon, tp, er, ee, back_stab)
-register struct object *weapon;
-register struct thing *tp;
-register char *er, *ee;
-bool back_stab;
+void
+hit(struct object *weapon, struct thing *tp, char *er, char *ee, bool back_stab)
 {
     register char *s = NULL;
     char 
@@ -1114,10 +1118,8 @@
  *	Print a message to indicate a poor swing
  */
 
-miss(weapon, tp, er, ee)
-register struct object *weapon;
-register struct thing *tp;
-register char *er, *ee;
+void
+miss(struct object *weapon, struct thing *tp, char *er, char *ee)
 {
     register char *s = NULL;
     char
@@ -1161,8 +1163,8 @@
  *	compute to-hit bonus for dexterity
  */
 
-dext_plus(dexterity)
-register int dexterity;
+int
+dext_plus(int dexterity)
 {
 	return (dexterity > 10 ? (dexterity-13)/3 : (dexterity-10)/3);
 }
@@ -1173,8 +1175,8 @@
  *	compute armor class bonus for dexterity
  */
 
-dext_prot(dexterity)
-register int dexterity;
+int
+dext_prot(int dexterity)
 {
     return ((dexterity-10)/2);
 }
@@ -1183,8 +1185,8 @@
  *	compute bonus/penalties for strength on the "to hit" roll
  */
 
-str_plus(str)
-register short str;
+int
+str_plus(short str)
 {
     return((str-10)/3);
 }
@@ -1194,8 +1196,8 @@
  *	compute additional damage done for exceptionally high or low strength
  */
 
-add_dam(str)
-register short str;
+int
+add_dam(short str)
 {
     return((str-9)/2);
 }
@@ -1204,7 +1206,8 @@
  * hung_dam:
  *	Calculate damage depending on players hungry state
  */
-hung_dam()
+int
+hung_dam(void)
 {
 	reg int howmuch = 0;
 
@@ -1222,11 +1225,10 @@
  *	A missile hits a monster
  */
 
-thunk(weap, tp, mname)
-register struct object *weap;
-register struct thing *tp;	/* Defender */
-register char *mname;
+void
+thunk(struct object *weap, struct thing *tp, char *mname)
 {
+    /* tp: Defender */
     char *def_name;	/* Name of defender */
 
     /* What do we call the defender? */
@@ -1251,10 +1253,8 @@
  *	 A missile from a monster hits the player
  */
 
-m_thunk(weap, tp, mname)
-register struct object *weap;
-register struct thing *tp;
-register char *mname;
+void
+m_thunk(struct object *weap, struct thing *tp, char *mname)
 {
     char *att_name;	/* Name of attacker */
 
@@ -1280,11 +1280,10 @@
  *	A missile misses a monster
  */
 
-bounce(weap, tp, mname)
-register struct object *weap;
-register struct thing *tp;	/* Defender */
-register char *mname;
+void
+bounce(struct object *weap, struct thing *tp, char *mname)
 {
+    /* tp: Defender */
     char *def_name;	/* Name of defender */
 
     /* What do we call the defender? */
@@ -1309,10 +1308,8 @@
 	  A missle from a monster misses the player
  */
 
-m_bounce(weap, tp, mname)
-register struct object *weap;
-register struct thing *tp;
-register char *mname;
+void
+m_bounce(struct object *weap, struct thing *tp, char *mname)
 {
     char *att_name;	/* Name of attacker */
 
@@ -1339,8 +1336,8 @@
  *	Returns true if an object radiates magic
  */
 
-is_magic(obj)
-register struct object *obj;
+bool
+is_magic(struct object *obj)
 {
     switch (obj->o_type)
     {
@@ -1364,9 +1361,8 @@
  *	Called to put a monster to death
  */
 
-killed(item, pr, points)
-register struct linked_list *item;
-bool pr, points;
+void
+killed(struct linked_list *item, bool pr, bool points)
 {
     register struct thing *tp;
     register struct linked_list *pitem, *nexti;
@@ -1447,9 +1443,7 @@
  */
 
 struct object *
-wield_weap(thrown, mp)
-struct object *thrown;
-struct thing *mp;
+wield_weap(struct object *thrown, struct thing *mp)
 {
     int look_for = 0,	/* The projectile weapon we are looking for */
 	new_rate,	/* The rating of a prospective weapon */
@@ -1529,8 +1523,8 @@
     return(candidate);
 }
 
-explode(tp)
-register struct thing *tp;
+void
+explode(struct thing *tp)
 {
 
     register int x,y, damage;
--- a/arogue5/init.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/init.c	Wed Mar 02 21:28:34 2016 -0500
@@ -97,10 +97,8 @@
  * make sure all the percentages specified in the tables add up to the
  * right amounts
  */
-badcheck(name, magic, bound)
-char *name;
-register struct magic_item *magic;
-register int bound;
+void
+badcheck(char *name, struct magic_item *magic, int bound)
 {
     register struct magic_item *end;
 
@@ -120,7 +118,8 @@
  *	Initialize the potion color scheme for this time
  */
 
-init_colors()
+void
+init_colors(void)
 {
     register int i, j;
     bool used[NCOLORS];
@@ -148,7 +147,8 @@
  *	Initialize the construction materials for wands and staffs
  */
 
-init_materials()
+void
+init_materials(void)
 {
     register int i, j;
     register char *str;
@@ -201,7 +201,8 @@
  * do any initialization for miscellaneous magic
  */
 
-init_misc()
+void
+init_misc(void)
 {
     register int i;
 
@@ -221,7 +222,8 @@
  *	Generate the names of the various scrolls
  */
 
-init_names()
+void
+init_names(void)
 {
     register int nsyl;
     register char *cp, *sp;
@@ -258,7 +260,8 @@
  *	roll up the rogue
  */
 
-init_player()
+void
+init_player(void)
 {
     int stat_total, ch = 0, wpt = 0, i, j;
     struct linked_list *weap_item, *armor_item, *food_item;
@@ -459,7 +462,8 @@
  *	Initialize the ring stone setting scheme for this time
  */
 
-init_stones()
+void
+init_stones(void)
 {
     register int i, j;
     bool used[NSTONES];
@@ -487,7 +491,8 @@
  * init_things
  *	Initialize the probabilities for types of things
  */
-init_things()
+void
+init_things(void)
 {
     register struct magic_item *mp;
 
--- a/arogue5/io.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/io.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,6 +18,9 @@
 #include <stdarg.h>
 #include "rogue.h"
 
+void doadd(char *fmt, va_list ap);
+void ministat(void);
+
 /*
  * msg:
  *	Display a message at the top of the screen.
@@ -27,6 +30,7 @@
 static int newpos = 0;
 
 /*VARARGS1*/
+void
 msg(char *fmt, ...)
 {
     va_list ap;
@@ -54,6 +58,7 @@
 /*
  * add things to the current message
  */
+void
 addmsg(char *fmt, ...)
 {
     va_list ap;
@@ -66,7 +71,8 @@
  * Display a new msg (giving him a chance to see the previous one if it
  * is up there with the --More--)
  */
-endmsg()
+void
+endmsg(void)
 {
     strncpy(huh, msgbuf, sizeof(huh));
 
@@ -96,6 +102,7 @@
     draw(msgw);
 }
 
+void
 doadd(char *fmt, va_list ap)
 {
     /*
@@ -113,9 +120,8 @@
  *	flgptr will be NULL if we don't know what the monster is yet!
  */
 
-step_ok(y, x, can_on_monst, flgptr)
-register int y, x, can_on_monst;
-register struct thing *flgptr;
+bool
+step_ok(int y, int x, int can_on_monst, struct thing *flgptr)
 {
     /* can_on_monst = MONSTOK if all we care about are physical obstacles */
     register struct linked_list *item;
@@ -156,7 +162,8 @@
  *	returns true if it is ok for type to shoot over ch
  */
 
-shoot_ok(ch)
+bool
+shoot_ok(char ch)
 {
     switch (ch)
     {
@@ -177,7 +184,8 @@
  *	getchar.
  */
 
-readchar()
+int
+readchar(void)
 {
     int ch;
 
@@ -195,10 +203,11 @@
 /*
  * status:
  *	Display the important stats line.  Keep the cursor where it was.
+ *	If display is TRUE, display unconditionally
  */
 
-status(display)
-bool display;	/* is TRUE, display unconditionally */
+void
+status(bool display)
 {
     register struct stats *stat_ptr, *max_ptr;
     register int oy = 0, ox = 0, temp;
@@ -327,7 +336,8 @@
     wmove(cw, oy, ox);
 }
 
-ministat()
+void
+ministat(void)
 {
     register int oy, ox, temp;
     static char buf[LINELEN];
@@ -367,9 +377,8 @@
  *	Sit around until the guy types the right key
  */
 
-wait_for(win,ch)
-WINDOW *win;
-register char ch;
+void
+wait_for(WINDOW *win, char ch)
 {
     register char c;
 
@@ -386,9 +395,8 @@
  *	function used to display a window and wait before returning
  */
 
-show_win(scr, message)
-register WINDOW *scr;
-char *message;
+void
+show_win(WINDOW *scr, char *message)
 {
     mvwaddstr(scr, 0, 0, message);
     touchwin(scr);
@@ -403,9 +411,8 @@
  * dbotline:
  *	Displays message on bottom line and waits for a space to return
  */
-dbotline(scr,message)
-WINDOW *scr;
-char *message;
+void
+dbotline(WINDOW *scr, char *message)
 {
 	mvwaddstr(scr,LINES-1,0,message);
 	draw(scr);
@@ -417,8 +424,8 @@
  * restscr:
  *	Restores the screen to the terminal
  */
-restscr(scr)
-WINDOW *scr;
+void
+restscr(WINDOW *scr)
 {
 	clearok(scr,TRUE);
 	touchwin(scr);
@@ -431,10 +438,7 @@
  */
 
 unsigned long
-netread(error, size, stream)
-int *error;
-int size;
-FILE *stream;
+netread(int *error, int size, FILE *stream)
 {
     unsigned long result = 0L,	/* What we read in */
 		  partial;	/* Partial value */
@@ -469,12 +473,13 @@
 /*
  * netwrite:
  *	Write out a byte, short, or long machine independently.
+ * value:	What to write
+ * size:	How much to write out
+ * stream:	Where to write it
  */
 
-netwrite(value, size, stream)
-unsigned long value;	/* What to write */
-int size;	/* How much to write out */
-FILE *stream;	/* Where to write it */
+int
+netwrite(unsigned long value, int size, FILE *stream)
 {
     int i;	/* Goes through value one byte at a time */
     char outc;	/* The next character to be written */
--- a/arogue5/list.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/list.c	Wed Mar 02 21:28:34 2016 -0500
@@ -21,8 +21,8 @@
  *	Takes an item out of whatever linked list it might be in
  */
 
-_detach(list, item)
-register struct linked_list **list, *item;
+void
+_detach(struct linked_list **list, struct linked_list *item)
 {
     if (*list == item)
 	*list = next(item);
@@ -37,8 +37,8 @@
  *	add an item to the head of a list
  */
 
-_attach(list, item)
-register struct linked_list **list, *item;
+void
+_attach(struct linked_list **list, struct linked_list *item)
 {
     if (*list != NULL)
     {
@@ -60,8 +60,8 @@
  *	Throw the whole object list away
  */
 
-_o_free_list(ptr)
-register struct linked_list **ptr;
+void
+_o_free_list(struct linked_list **ptr)
 {
     register struct linked_list *item;
 
@@ -78,8 +78,8 @@
  *	free up an item and its object(and maybe contents)
  */
 
-o_discard(item)
-register struct linked_list *item;
+void
+o_discard(struct linked_list *item)
 {
     register struct object *obj;
     obj = OBJPTR(item);
@@ -95,8 +95,8 @@
  *	Throw the whole thing list away
  */
 
-_t_free_list(ptr)
-register struct linked_list **ptr;
+void
+_t_free_list(struct linked_list **ptr)
 {
     register struct linked_list *item;
 
@@ -113,8 +113,8 @@
  *	free up an item and its thing
  */
 
-t_discard(item)
-struct linked_list *item;
+void
+t_discard(struct linked_list *item)
 {
     total -= 2;
     FREE(item->l_data);
@@ -126,8 +126,8 @@
  *	get rid of an item structure -- don't worry about contents
  */
 
-destroy_item(item)
-register struct linked_list *item;
+void
+destroy_item(struct linked_list *item)
 {
     total--;
     FREE(item);
@@ -139,8 +139,7 @@
  */
 
 struct linked_list *
-new_item(size)
-int size;
+new_item(int size)
 {
     register struct linked_list *item;
 
@@ -158,7 +157,7 @@
  */
 
 struct linked_list *
-creat_item()
+creat_item(void)
 {
     register struct linked_list *item;
 
@@ -169,8 +168,7 @@
 }
 
 char *
-new(size)
-int size;
+new(int size)
 {
     register char *space = ALLOC(size);
     static char errbuf[LINELEN];
--- a/arogue5/main.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/main.c	Wed Mar 02 21:28:34 2016 -0500
@@ -43,10 +43,10 @@
 #define NFRUIT (sizeof(funfruit) / sizeof (char *))
 
 void open_records(void);
+bool holiday(void);
 
-main(argc, argv, envp)
-char **argv;
-char **envp;
+int
+main(int argc, char *argv[], char *envp[])
 {
     register char *env;
     int lowtime;
@@ -123,7 +123,6 @@
      * Check for a network update
      */
     if (argc == 2 && strcmp(argv[1], "-u") == 0) {
-	unsigned long netread();
 	int errcheck, errors = 0;
 	unsigned long amount;
 	short monster;
@@ -277,8 +276,8 @@
  *	Exit the program, printing a message.
  */
 
-fatal(s)
-char *s;
+void
+fatal(char *s)
 {
     clear();
     move(LINES-2, 0);
@@ -294,8 +293,8 @@
  *	Pick a very random number.
  */
 
-rnd(range)
-register int range;
+int
+rnd(int range)
 {
     return(range == 0 ? 0 : md_rand() % range);
 }
@@ -305,8 +304,8 @@
  *	roll a number of dice
  */
 
-roll(number, sides)
-register int number, sides;
+int
+roll(int number, int sides)
 {
     register int dtotal = 0;
 
@@ -336,10 +335,11 @@
 }
 # endif
 
-setup()
+void
+setup(void)
 {
 #ifdef CHECKTIME
-    int  checkout();
+    void  checkout();
 #endif
 
 #ifndef DUMP
@@ -392,7 +392,8 @@
  * refreshing things and looking at the proper times.
  */
 
-playit()
+void
+playit(void)
 {
     register char *opts;
 
@@ -416,7 +417,8 @@
 /*
  * see if the system is being used too much for this game
  */
-too_much()
+bool
+too_much(void)
 {
 #ifdef MAXLOAD
 	double avec[3];
@@ -435,7 +437,8 @@
  * author:
  *	See if a user is an author of the program
  */
-author()
+bool
+author(void)
 {
 	switch (md_getuid()) {
 #if AUTHOR
@@ -450,7 +453,24 @@
 
 
 #ifdef CHECKTIME
-checkout()
+/*
+ * checkout()'s version of msg.  If we are in the middle of a shell, do a
+ * printf instead of a msg to avoid the refresh.
+ */
+void
+chmsg(char *fmt, int arg)
+{
+	if (in_shell) {
+		printf(fmt, arg);
+		putchar('\n');
+		fflush(stdout);
+	}
+	else
+		msg(fmt, arg);
+}
+
+void
+checkout(void)
 {
 	static char *msgs[] = {
 	"The system is too loaded for games. Please leave in %d minutes",
@@ -482,23 +502,6 @@
 	    alarm(CHECKTIME * 60);
 	}
 }
-
-/*
- * checkout()'s version of msg.  If we are in the middle of a shell, do a
- * printf instead of a msg to avoid the refresh.
- */
-chmsg(fmt, arg)
-char *fmt;
-int arg;
-{
-	if (in_shell) {
-		printf(fmt, arg);
-		putchar('\n');
-		fflush(stdout);
-	}
-	else
-		msg(fmt, arg);
-}
 #endif
 
 #ifdef LOADAV
@@ -510,8 +513,8 @@
 	"_avenrun"
 };
 
-loadav(avg)
-reg double *avg;
+void
+loadav(double *avg)
 {
 	reg int kmem;
 
@@ -536,7 +539,8 @@
 #include <sys/types.h>
 #include <utmp.h>
 struct utmp buf;
-ucount()
+int
+ucount(void)
 {
 	reg struct utmp *up;
 	reg FILE *utmp;
@@ -559,7 +563,8 @@
  * holiday:
  *	Returns TRUE when it is a good time to play rogue
  */
-holiday()
+bool
+holiday(void)
 {
 	time_t now;
 	struct tm *localtime();
--- a/arogue5/maze.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/maze.c	Wed Mar 02 21:28:34 2016 -0500
@@ -30,15 +30,20 @@
 		*bits;
 static int	maze_lines, 
 		maze_cols;
-char		*moffset(), 
-		*foffset();
+
+void draw_maze(void);
+int findcells(int y, int x);
+char *foffset(int y, int x);
+char *moffset(int y, int x);
+void rmwall(int newy, int newx, int oldy, int oldx);
 
 
 /*
  * crankout:
  *	Does actual drawing of maze to window
  */
-crankout()
+void
+crankout(void)
 {
 	reg int x, y;
 
@@ -71,7 +76,8 @@
  * domaze:
  *	Draw the maze on this level.
  */
-do_maze()
+void
+do_maze(void)
 {
 	reg int least;
 	reg struct room *rp;
@@ -95,7 +101,7 @@
 	/*
 	 * add some gold to make it worth looking for 
 	 */
-	item = spec_item(GOLD, NULL, NULL, NULL);
+	item = spec_item(GOLD, 0, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_count *= (rnd(10) + 1);		/* add in one large hunk */
 	attach(lvl_obj, item);
@@ -108,7 +114,7 @@
 	/*
 	 * add in some food to make sure he has enough
 	 */
-	item = spec_item(FOOD, NULL, NULL, NULL);
+	item = spec_item(FOOD, 0, 0, 0);
 	obj = OBJPTR(item);
 	attach(lvl_obj, item);
 	do {
@@ -133,7 +139,8 @@
  * draw_maze:
  *	Generate and draw the maze on the screen
  */
-draw_maze()
+void
+draw_maze(void)
 {
 	reg int i, j, more;
 	reg char *ptr;
@@ -169,8 +176,8 @@
  * findcells:
  *	Figure out cells to open up 
  */
-findcells(y,x)
-reg int x, y;
+int
+findcells(int y, int x)
 {
 	reg int rtpos, i;
 
@@ -221,8 +228,7 @@
  *	Calculate memory address for frontier
  */
 char *
-foffset(y, x)
-int y, x;
+foffset(int y, int x)
 {
 
 	return (frontier + (y * maze_cols) + x);
@@ -236,8 +242,7 @@
  */
 
 bool
-maze_view(y, x)
-int y, x;
+maze_view(int y, int x)
 {
     register int start, goal, delta, ycheck = 0, xcheck = 0, absy, absx, see_radius;
     register bool row;
@@ -342,8 +347,7 @@
  *	Calculate memory address for bits
  */
 char *
-moffset(y, x)
-int y, x;
+moffset(int y, int x)
 {
 
 	return (bits + (y * (COLS - 1)) + x);
@@ -356,8 +360,8 @@
  * rmwall:
  *	Removes appropriate walls from the maze
  */
-rmwall(newy, newx, oldy, oldx)
-int newy, newx, oldy, oldx;
+void
+rmwall(int newy, int newx, int oldy, int oldx)
 {
 	reg int xdif,ydif;
 	
--- a/arogue5/mdport.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/mdport.c	Wed Mar 02 21:28:34 2016 -0500
@@ -55,6 +55,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include <ctype.h>
 
 #if defined(_WIN32) && !defined(__MINGW32__)
 #define PATH_MAX MAX_PATH
@@ -81,7 +82,7 @@
 #define MOD_MOVE(c) (toupper(c) )
 
 void
-md_init()
+md_init(void)
 {
 #ifdef __INTERIX
     char *term;
@@ -132,7 +133,7 @@
 static int md_standout_mode = 0;
 
 int
-md_raw_standout()
+md_raw_standout(void)
 {
 #ifdef _WIN32
     CONSOLE_SCREEN_BUFFER_INFO csbiInfo; 
@@ -155,7 +156,7 @@
 }
 
 int
-md_raw_standend()
+md_raw_standend(void)
 {
 #ifdef _WIN32
     CONSOLE_SCREEN_BUFFER_INFO csbiInfo; 
@@ -223,7 +224,7 @@
 }
 
 int
-md_normaluser()
+md_normaluser(void)
 {
 #ifndef _WIN32
     setuid(getuid());
@@ -232,7 +233,7 @@
 }
 
 int
-md_getuid()
+md_getuid(void)
 {
 #ifndef _WIN32
     return( getuid() );
@@ -242,7 +243,7 @@
 }
 
 char *
-md_getusername()
+md_getusername(void)
 {
     static char login[80];
     char *l = NULL;
@@ -279,7 +280,7 @@
 }
 
 char *
-md_gethomedir()
+md_gethomedir(void)
 {
     static char homedir[PATH_MAX];
     char *h = NULL;
@@ -335,7 +336,7 @@
 }
 
 char *
-md_getshell()
+md_getshell(void)
 {
     static char shell[PATH_MAX];
     char *s = NULL;
@@ -365,7 +366,7 @@
 }
 
 int
-md_shellescape()
+md_shellescape(void)
 {
 #if (!defined(_WIN32) && !defined(__DJGPP__))
     int ret_status;
@@ -427,7 +428,7 @@
 }
 
 char *
-md_getroguedir()
+md_getroguedir(void)
 {
     static char path[1024];
     char *end,*home;
@@ -491,8 +492,7 @@
 }
 
 char *
-md_getpass(prompt)
-char *prompt;
+md_getpass(char *prompt)
 {
 #ifdef _WIN32
     static char password_buffer[9];
@@ -587,7 +587,7 @@
 }
 
 int
-md_rand()
+md_rand(void)
 {
 #ifdef _WIN32
     return(rand());
@@ -597,8 +597,7 @@
 }
 
 int
-md_srand(seed)
-register int seed;
+md_srand(int seed)
 {
 #ifdef _WIN32
     srand(seed);
@@ -608,7 +607,7 @@
 }
 
 long
-md_memused()
+md_memused(void)
 {
 #ifdef _WIN32
     MEMORYSTATUS stat;
@@ -622,7 +621,7 @@
 }
 
 char *
-md_gethostname()
+md_gethostname(void)
 {
     static char nodename[80];
     char *n = NULL;
@@ -644,7 +643,7 @@
 }
 
 int
-md_erasechar()
+md_erasechar(void)
 {
 #ifdef BSD
     return(_tty.sg_erase); /* process erase character */
@@ -656,7 +655,7 @@
 }
 
 int
-md_killchar()
+md_killchar(void)
 {
 #ifdef BSD
     return(_tty.sg_kill);
@@ -673,8 +672,7 @@
  */
 
 char *
-md_unctrl(ch)
-char ch;
+md_unctrl(char ch)
 {
 #if USG5_0
     extern char *_unctrl[];		/* Defined in curses library */
@@ -686,7 +684,7 @@
 }
 
 void
-md_flushinp()
+md_flushinp(void)
 {
 #ifdef BSD
     ioctl(0, TIOCFLUSH);
--- a/arogue5/misc.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/misc.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,9 +18,7 @@
  * See if a monster has some magic it can use.  Use it and return TRUE if so.
  */
 bool
-m_use_item(monster, monst_pos, defend_pos)
-register struct thing *monster;
-register coord *monst_pos, *defend_pos;
+m_use_item(struct thing *monster, coord *monst_pos, coord *defend_pos)
 {
     register struct linked_list *pitem;
     register struct object *obj;
@@ -95,10 +93,11 @@
  
 /*
  * add something to the contents of something else
+ * bag: the holder of the items
+ * item: the item to put inside
  */
-put_contents(bag, item)
-register struct object *bag;		/* the holder of the items */
-register struct linked_list *item;	/* the item to put inside  */
+void
+put_contents(struct object *bag, struct linked_list *item)
 {
     register struct linked_list *titem;
     register struct object *tobj;
@@ -123,10 +122,10 @@
 
 /*
  * remove something from something else
+ * bag: the holder of the items
  */
-take_contents(bag, item)
-register struct object *bag;		/* the holder of the items */
-register struct linked_list *item;
+void
+take_contents(struct object *bag, struct linked_list *item)
 {
 
     if (bag->o_ac <= 0) {
@@ -140,8 +139,8 @@
 }
 
 
-do_bag(item)
-register struct linked_list *item;
+void
+do_bag(struct linked_list *item)
 {
 
     register struct linked_list *titem = NULL;
@@ -233,7 +232,8 @@
     }
 }
 
-do_panic()
+void
+do_panic(void)
 {
     register int x,y;
     register struct linked_list *mon;
@@ -272,8 +272,7 @@
  * print miscellaneous magic bonuses
  */
 char *
-misc_name(obj)
-register struct object *obj;
+misc_name(struct object *obj)
 {
     static char buf[LINELEN];
     char buf1[LINELEN];
@@ -340,7 +339,8 @@
     return buf;
 }
 
-use_emori()
+void
+use_emori(void)
 {
     char selection;	/* Cloak function */
     int state = 0;	/* Menu state */
@@ -442,8 +442,8 @@
     }
 }
 
-use_mm(which)
-int which;
+void
+use_mm(int which)
 {
     register struct object *obj = NULL;
     register struct linked_list *item = NULL;
@@ -496,7 +496,7 @@
 		msg("The jug is empty");
 		break;
 	    }
-	    quaff (obj->o_ac, NULL, FALSE);
+	    quaff (obj->o_ac, 0, FALSE);
 	    obj->o_ac = JUG_EMPTY;
 	    fuse (alchemy, obj, ALCHEMYTIME, AFTER);
 	    if (!(obj->o_flags & ISKNOW))
--- a/arogue5/monsters.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/monsters.c	Wed Mar 02 21:28:34 2016 -0500
@@ -14,6 +14,7 @@
 
 #include "curses.h"
 #include "rogue.h"
+#include <stdlib.h>
 #include <ctype.h>
 #include <string.h>
 
@@ -21,8 +22,8 @@
 /*
  * Check_residue takes care of any effect of the monster 
  */
-check_residue(tp)
-register struct thing *tp;
+void
+check_residue(struct thing *tp)
 {
     /*
      * Take care of special abilities
@@ -63,13 +64,11 @@
 
 /*
  * Creat_mons creates the specified monster -- any if 0 
+ * person: Where to create next to 
  */
 
 bool
-creat_mons(person, monster, report)
-struct thing *person;	/* Where to create next to */
-short monster;
-bool report;
+creat_mons(struct thing *person, short monster, bool report)
 {
     struct linked_list *nitem;
     register struct thing *tp;
@@ -121,9 +120,7 @@
  */
 
 void
-genmonsters(least, treas)
-register int least;
-bool treas;
+genmonsters(int least, bool treas)
 {
     reg int i;
     reg struct room *rp = &rooms[0];
@@ -166,8 +163,7 @@
  */
 
 short
-id_monst(monster)
-register char monster;
+id_monst(char monster)
 {
     register short result;
 
@@ -187,11 +183,8 @@
  *	Pick a new monster and add it to the list
  */
 
-new_monster(item, type, cp, max_monster)
-struct linked_list *item;
-short type;
-register coord *cp;
-bool max_monster;
+void
+new_monster(struct linked_list *item, short type, coord *cp, bool max_monster)
 {
     register struct thing *tp;
     register struct monster *mp;
@@ -379,8 +372,7 @@
  */
 
 short
-randmonster(wander, no_unique)
-register bool wander, no_unique;
+randmonster(bool wander, bool no_unique)
 {
     register int d, cur_level, range, i; 
 
@@ -418,8 +410,8 @@
  * to purchase something.
  */
 
-sell(tp)
-register struct thing *tp;
+void
+sell(struct thing *tp)
 {
     register struct linked_list *item;
     register struct object *obj;
@@ -731,8 +723,7 @@
  * what to do when the hero steps next to a monster
  */
 struct linked_list *
-wake_monster(y, x)
-int y, x;
+wake_monster(int y, int x)
 {
     register struct thing *tp;
     register struct linked_list *it;
@@ -957,7 +948,8 @@
  *	A wandering monster has awakened and is headed for the player
  */
 
-wanderer()
+void
+wanderer(void)
 {
     register int i;
     register struct room *hr = roomin(&hero);
--- a/arogue5/move.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/move.c	Wed Mar 02 21:28:34 2016 -0500
@@ -37,9 +37,8 @@
  *	The guy stepped on a trap.... Make him pay.
  */
 
-be_trapped(th, tc)
-register struct thing *th;
-register coord *tc;
+char
+be_trapped(struct thing *th, coord *tc)
 {
     register struct trap *tp;
     register char ch;
@@ -353,8 +352,7 @@
  */
 
 bool
-blue_light(blessed, cursed)
-bool blessed, cursed;
+blue_light(bool blessed, bool cursed)
 {
     register struct room *rp;
     bool ret_val=FALSE;	/* Whether or not affect is known */
@@ -413,8 +411,8 @@
  * 	If not, if player came from a legal place, then try to turn him.
  */
 
-corr_move(dy, dx)
-int dy, dx;
+void
+corr_move(int dy, int dx)
 {
     int legal=0;		/* Number of legal alternatives */
     register int y, x,		/* Indexes though possible positions */
@@ -491,7 +489,8 @@
  * dip_it:
  *	Dip an object into a magic pool
  */
-dip_it()
+void
+dip_it(void)
 {
 	reg struct linked_list *what;
 	reg struct object *ob;
@@ -667,8 +666,8 @@
  * consequences (fighting, picking up, etc.)
  */
 
-do_move(dy, dx)
-int dy, dx;
+void
+do_move(int dy, int dx)
 {
     register struct room *rp, *orp;
     register char ch;
@@ -878,8 +877,8 @@
  *	Start the hero running
  */
 
-do_run(ch)
-char ch;
+void
+do_run(char ch)
 {
     firstmove = TRUE;
     running = TRUE;
@@ -894,11 +893,9 @@
  *	Returns TRUE if it could find it, FALSE otherwise.
  */
 bool
-getdelta(match, dy, dx)
-char match;
-int *dy, *dx;
+getdelta(char match, int *dy, int *dx)
 {
-    register y, x;
+    int y, x;
 
     for (y = 0; y < 3; y++)
 	for (x = 0; x < 3; x++)
@@ -915,8 +912,8 @@
  * isatrap:
  *	Returns TRUE if this character is some kind of trap
  */
-isatrap(ch)
-reg char ch;
+bool
+isatrap(char ch)
 {
 	switch(ch) {
 		case DARTTRAP:
@@ -936,8 +933,8 @@
  * If it is dark, remove anything that might move.
  */
 
-light(cp)
-coord *cp;
+void
+light(coord *cp)
 {
     register struct room *rp;
     register int j, k, x, y;
@@ -1113,8 +1110,7 @@
  */
 
 bool
-lit_room(rp)
-register struct room *rp;
+lit_room(struct room *rp)
 {
     register struct linked_list *fire_item;
     register struct thing *fire_creature;
@@ -1150,8 +1146,7 @@
  */
 
 coord *
-rndmove(who)
-struct thing *who;
+rndmove(struct thing *who)
 {
     register int x, y;
     register int ex, ey, nopen = 0;
@@ -1192,9 +1187,8 @@
  *	set a trap at (y, x) on screen.
  */
 
-set_trap(tp, y, x)
-register struct thing *tp;
-register int y, x;
+void
+set_trap(struct thing *tp, int y, int x)
 {
     register bool is_player = (tp == &player);
     register char selection = rnd(7) + '1';
@@ -1330,8 +1324,8 @@
  *	returns what a certain thing will display as to the un-initiated
  */
 
-show(y, x)
-register int y, x;
+char
+show(int y, int x)
 {
     register char ch = CCHAR( winat(y, x) );
     register struct linked_list *it;
@@ -1371,8 +1365,7 @@
  */
 
 struct trap *
-trap_at(y, x)
-register int y, x;
+trap_at(int y, int x)
 {
     register struct trap *tp, *ep;
 
--- a/arogue5/new_level.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/new_level.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,8 +16,11 @@
 #include "rogue.h"
 #define TERRASAVE 3
 
-new_level(ltype)
-LEVTYPE	ltype;		/* designates type of level to create */
+void put_things(LEVTYPE ltype);
+
+/* ltype designates type of level to create */
+void
+new_level(LEVTYPE ltype)
 {
     register int rm = 0, i, cnt;
     register char ch;
@@ -409,7 +412,8 @@
  * Pick a room that is really there
  */
 
-rnd_room()
+int
+rnd_room(void)
 {
     register int rm;
 
@@ -425,10 +429,11 @@
 /*
  * put_things:
  *	put potions and scrolls on this level
+ *	ltype: designates type of level to create 
  */
 
-put_things(ltype)
-LEVTYPE	ltype;		/* designates type of level to create */
+void
+put_things(LEVTYPE ltype)
 {
     register int i, rm, cnt;
     register struct object *cur;
@@ -448,7 +453,7 @@
      * Increasing chance after level 9 
      */
     if (ltype != MAZELEV && rnd(HARDER) < level - 8) {	
-	register  j;
+	register int j;
 	register struct room *rp;
 
 	/* Count the number of free spaces */
--- a/arogue5/options.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/options.c	Wed Mar 02 21:28:34 2016 -0500
@@ -35,16 +35,16 @@
 
 typedef struct optstruct	OPTION;
 
-int	put_bool(), 
-	get_bool(),
-	put_str(),
-	get_str(),
-	get_restr(),
-	get_score(),
-	put_abil(),
-	get_abil(),
-	get_quest(),
-	put_quest();
+int get_ro(WINDOW *win, int oy, int ox);
+int get_restr(char *optstr, WINDOW *win);
+int get_score(char *optstr, WINDOW *win);
+void put_abil(int *ability, WINDOW *win);
+void get_abil(int *abil, WINDOW *win);
+void put_quest(int *quest, WINDOW *win);
+void get_quest(int *quest, WINDOW *win);
+void put_bool(bool *b, WINDOW *win);
+int get_bool(bool *bp, WINDOW *win);
+void put_str(char *str, WINDOW *win);
 
 OPTION	optlist[] = {
     {"terse",	 "Terse output: ",
@@ -111,9 +111,8 @@
 /*
  * The ability field is read-only
  */
-get_abil(abil, win)
-int *abil;
-WINDOW *win;
+void
+get_abil(int *abil, WINDOW *win)
 {
     register int oy, ox;
 
@@ -125,9 +124,8 @@
 /*
  * The quest field is read-only
  */
-get_quest(quest, win)
-int *quest;
-WINDOW *win;
+void
+get_quest(int *quest, WINDOW *win)
 {
     register int oy, ox;
 
@@ -141,9 +139,8 @@
  *	"Get" a read-only value.
  */
 
-get_ro(win, oy, ox)
-WINDOW *win;
-register int oy, ox;
+int
+get_ro(WINDOW *win, int oy, int ox)
 {
     register int ny, nx;
     register bool op_bad;
@@ -180,9 +177,8 @@
  * allow changing a boolean option and print it out
  */
 
-get_bool(bp, win)
-bool *bp;
-WINDOW *win;
+int
+get_bool(bool *bp, WINDOW *win)
 {
     register int oy, ox;
     register bool op_bad;
@@ -230,9 +226,8 @@
 /*
  * set a string option
  */
-get_str(opt, win)
-register char *opt;
-WINDOW *win;
+int
+get_str(char *opt, WINDOW *win)
 {
     register char *sp;
     register int c, oy, ox;
@@ -306,7 +301,8 @@
 /*
  * print and then set options from the terminal
  */
-option()
+void
+option(void)
 {
     register OPTION	*op;
     register int	retval;
@@ -362,8 +358,8 @@
  * or the end of the entire option string.
  */
 
-parse_opts(str)
-register char *str;
+void
+parse_opts(char *str)
 {
     register char *sp;
     register OPTION *op;
@@ -459,9 +455,8 @@
 /*
  * print the character type
  */
-put_abil(ability, win)
-int *ability;
-WINDOW *win;
+void
+put_abil(int *ability, WINDOW *win)
 {
     char *abil;
 
@@ -480,9 +475,8 @@
  * print out the quest
  */
 
-put_quest(quest, win)
-int *quest;
-WINDOW *win;
+void
+put_quest(int *quest, WINDOW *win)
 {
     waddstr(win, rel_magic[*quest].mi_name);
 }
@@ -491,9 +485,8 @@
 /*
  * put out a boolean
  */
-put_bool(b, win)
-bool	*b;
-WINDOW *win;
+void
+put_bool(bool *b, WINDOW *win)
 {
     waddstr(win, *b ? "True" : "False");
 }
@@ -504,9 +497,8 @@
 /*
  * put out a string
  */
-put_str(str, win)
-char *str;
-WINDOW *win;
+void
+put_str(char *str, WINDOW *win)
 {
     waddstr(win, str);
 }
--- a/arogue5/outside.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/outside.c	Wed Mar 02 21:28:34 2016 -0500
@@ -11,7 +11,8 @@
 #include "curses.h"
 #include "rogue.h"
 
-extern char rnd_terrain(), get_terrain();
+char rnd_terrain(void);
+char get_terrain(char one, char two, char three, char four);
 
 /*
  * init_terrain:
@@ -19,7 +20,7 @@
  */
 
 void
-init_terrain()
+init_terrain(void)
 {
     register struct room *rp;
 
@@ -38,11 +39,9 @@
 
 
 void
-do_terrain(basey, basex, deltay, deltax, fresh)
-int basey, basex, deltay, deltax;
-bool fresh;
+do_terrain(int basey, int basex, int deltay, int deltax, bool fresh)
 {
-    register cury, curx;	/* Current y and x positions */
+    int cury, curx;	/* Current y and x positions */
 
     /* Lay out the boundary */
     for (cury=1; cury<LINES-2; cury++) {	/* Vertical "walls" */
@@ -125,7 +124,7 @@
  */
 
 char
-rnd_terrain()
+rnd_terrain(void)
 {
     int chance = rnd(100);
 
@@ -149,8 +148,7 @@
  */
 
 char
-get_terrain(one, two, three, four)
-char one, two, three, four;
+get_terrain(char one, char two, char three, char four)
 {
     register int i;
     int forest = 0, mountain = 0, lake = 0, meadow = 0, total = 0;
@@ -203,8 +201,7 @@
  */
 
 void
-lake_check(place)
-coord *place;
+lake_check(coord *place)
 {
     NOOP(place);
 }
--- a/arogue5/pack.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/pack.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,15 +18,15 @@
 
 char outstring[512];	/* ridiculously long string for use with msg */
 
+bool is_type (struct object *obj, int type);
+
 /*
  * add_pack:
  *	Pick up an object and add it to the pack.  If the argument is non-null
  * use it as the linked_list pointer instead of gettting it off the ground.
  */
 bool
-add_pack(item, silent, packret)
-register struct linked_list *item, **packret;
-bool silent;
+add_pack(struct linked_list *item, bool silent, struct linked_list **packret)
 {
     register struct linked_list *ip, *lp = NULL, *ap;
     register struct object *obj, *op = NULL;
@@ -305,9 +305,8 @@
  * inventory:
  *	list what is in the pack
  */
-inventory(list, type)
-register struct linked_list *list;
-register int type;
+bool
+inventory(struct linked_list *list, int type)
 {
     register struct object *obj;
     register char ch;
@@ -390,8 +389,8 @@
  * pick_up:
  *	Add something to characters pack.
  */
-pick_up(ch)
-char ch;
+void
+pick_up(char ch)
 {
     switch (ch) {
 	default:
@@ -416,7 +415,7 @@
  *	Allow player to inventory a single item
  */
 void
-picky_inven()
+picky_inven(void)
 {
     register struct linked_list *item;
     register char ch, mch;
@@ -471,12 +470,10 @@
 /*
  * get_item:
  *	pick something out of a pack for a purpose
+ * 	purpose: NULL if we should be silent (no prompts) *
  */
 struct linked_list *
-get_item(list, purpose, type)
-reg struct linked_list *list;
-char *purpose;	/* NULL if we should be silent (no prompts) */
-int type;
+get_item(struct linked_list *list, char *purpose, int type)
 {
     reg struct linked_list *item;
     reg struct object *obj;
@@ -610,9 +607,8 @@
     }
 }
 
-pack_char(list, obj)
-register struct object *obj;
-struct linked_list *list;
+char
+pack_char(struct linked_list *list, struct object *obj)
 {
     register struct linked_list *item;
     register char c;
@@ -634,8 +630,8 @@
  * cur_null:
  *	This updates cur_weapon etc for dropping things
  */
-cur_null(op)
-reg struct object *op;
+void
+cur_null(struct object *op)
 {
 	if (op == cur_weapon)			cur_weapon = NULL;
 	else if (op == cur_armor)		cur_armor = NULL;
@@ -659,7 +655,8 @@
  * idenpack:
  *	Identify all the items in the pack
  */
-idenpack()
+void
+idenpack(void)
 {
 	reg struct linked_list *pc;
 
@@ -667,9 +664,8 @@
 		whatis(pc);
 }
 
-is_type (obj, type)
-register struct object *obj;
-register int type;
+bool
+is_type (struct object *obj, int type)
 {
     register bool current;
 
@@ -804,8 +800,8 @@
     return(FALSE);
 }
 
-del_pack(item)
-register struct linked_list *item;
+void
+del_pack(struct linked_list *item)
 {
     register struct object *obj;
 
@@ -827,9 +823,8 @@
  * it to him.
  */
 
-carry_obj(mp, chance)
-register struct thing *mp;
-int chance;
+void
+carry_obj(struct thing *mp, int chance)
 {
     reg struct linked_list *item;
     reg struct object *obj;
@@ -851,74 +846,74 @@
      * avoid it
      */
     if (on(*mp, CARRYDAGGER)) {
-	item = spec_item(RELIC, MUSTY_DAGGER, NULL, NULL);
+	item = spec_item(RELIC, MUSTY_DAGGER, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
 
     if (on(*mp, CARRYCLOAK)) {
-	item = spec_item(RELIC, EMORI_CLOAK, NULL, NULL);
+	item = spec_item(RELIC, EMORI_CLOAK, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
 
     if (on(*mp, CARRYANKH)) {
-	item = spec_item(RELIC, HEIL_ANKH, NULL, NULL);
+	item = spec_item(RELIC, HEIL_ANKH, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
 
     if (on(*mp, CARRYSTAFF)) {
-	item = spec_item(RELIC, MING_STAFF, NULL, NULL);
+	item = spec_item(RELIC, MING_STAFF, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
 
     if (on(*mp, CARRYWAND)) {
-	item = spec_item(RELIC, ORCUS_WAND, NULL, NULL);
+	item = spec_item(RELIC, ORCUS_WAND, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
 
     if (on(*mp, CARRYROD)) {
-	item = spec_item(RELIC, ASMO_ROD, NULL, NULL);
+	item = spec_item(RELIC, ASMO_ROD, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
 
     if (on(*mp, CARRYAMULET)) {
-	item = spec_item(RELIC, YENDOR_AMULET, NULL, NULL);
+	item = spec_item(RELIC, YENDOR_AMULET, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
 
     if (on(*mp, CARRYMANDOLIN)) {
-	item = spec_item(RELIC, BRIAN_MANDOLIN, NULL, NULL);
+	item = spec_item(RELIC, BRIAN_MANDOLIN, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
     if (on(*mp, CARRYMSTAR)) {
-	item = spec_item(RELIC, HRUGGEK_MSTAR, NULL, NULL);
+	item = spec_item(RELIC, HRUGGEK_MSTAR, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
     if (on(*mp, CARRYFLAIL)) {
-	item = spec_item(RELIC, YEENOGHU_FLAIL, NULL, NULL);
+	item = spec_item(RELIC, YEENOGHU_FLAIL, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
     }
     if (on(*mp, CARRYHORN)) {
-	item = spec_item(RELIC, GERYON_HORN, NULL, NULL);
+	item = spec_item(RELIC, GERYON_HORN, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_pos = mp->t_pos;
 	attach(mp->t_pack, item);
@@ -927,7 +922,7 @@
      * If it carries gold, give it some
      */
     if (on(*mp, CARRYGOLD) && rnd(100) < chance) {
-	    item = spec_item(GOLD, NULL, NULL, NULL);
+	    item = spec_item(GOLD, 0, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_count = GOLDCALC + GOLDCALC;
 	    obj->o_pos = mp->t_pos;
@@ -938,7 +933,7 @@
      * If it carries food, give it some
      */
     if (on(*mp, CARRYFOOD) && rnd(100) < chance) {
-	item = spec_item(FOOD, NULL, NULL, NULL);
+	item = spec_item(FOOD, 0, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_weight = things[TYP_FOOD].mi_wght;
 	obj->o_pos = mp->t_pos;
@@ -1041,8 +1036,8 @@
  *	he wants (* means everything).
  */
 
-grab(y, x)
-register y, x;
+int
+grab(int y, int x)
 {
     register struct linked_list *next_item, *item;
     register struct object *obj;
--- a/arogue5/passages.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/passages.c	Wed Mar 02 21:28:34 2016 -0500
@@ -14,15 +14,20 @@
  * See the file LICENSE.TXT for full copyright and licensing information.
  */
 
+#include <stdlib.h>
 #include "curses.h"
 #include "rogue.h"
 
+void conn(int r1, int r2);
+void door(struct room *rm, coord *cp);
+
 /*
  * do_passages:
  *	Draw all the passages on a level.
  */
 
-do_passages()
+void
+do_passages(void)
 {
     register struct rdes *r1, *r2 = NULL;
     register int i, j;
@@ -130,8 +135,8 @@
  *	Draw a corridor from a room in a certain direction.
  */
 
-conn(r1, r2)
-int r1, r2;
+void
+conn(int r1, int r2)
 {
     register struct room *rpf, *rpt = NULL;
     register char rmt;
@@ -266,9 +271,8 @@
  * also enters the door in the exits array of the room.
  */
 
-door(rm, cp)
-register struct room *rm;
-register coord *cp;
+void
+door(struct room *rm, coord *cp)
 {
     struct linked_list *newroom;
     coord *exit;
--- a/arogue5/player.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/player.c	Wed Mar 02 21:28:34 2016 -0500
@@ -17,7 +17,8 @@
  *	cleric affecting undead
  */
 
-affect()
+void
+affect(void)
 {
     register struct linked_list *item;
     register struct thing *tp;
@@ -121,7 +122,8 @@
 /*
  * the magic user is going to try and cast a spell
  */
-cast()
+void
+cast(void)
 {
     register int i, num_spells, spell_ability;
     int  which_spell;
@@ -271,7 +273,8 @@
 
 /* Constitution bonus */
 
-const_bonus()	/* Hit point adjustment for changing levels */
+int
+const_bonus(void)	/* Hit point adjustment for changing levels */
 {
     if (pstats.s_const > 6 && pstats.s_const <= 14) 
 	return(0);
@@ -290,7 +293,8 @@
  *	Sense gold
  */
 
-gsense()
+void
+gsense(void)
 {
     /* Only thieves can do this */
     if (player.t_ctype != C_THIEF) {
@@ -324,7 +328,8 @@
 /* 
  * the cleric asks his deity for a spell
  */
-pray()
+void
+pray(void)
 {
     register int i, num_prayers, prayer_ability;
     int which_prayer;
@@ -488,7 +493,8 @@
  *	Steal in direction given in delta
  */
 
-steal()
+void
+steal(void)
 {
     register struct linked_list *item;
     register struct thing *tp;
--- a/arogue5/potions.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/potions.c	Wed Mar 02 21:28:34 2016 -0500
@@ -17,14 +17,16 @@
 #include <stdlib.h>
 #include <string.h>
 
+void res_intelligence(void);
+void res_wisdom(void);
 
 
 /*
  * Increase player's constitution
  */
 
-add_const(cursed)
-bool cursed;
+void
+add_const(bool cursed)
 {
     /* Do the potion */
     if (cursed) {
@@ -47,8 +49,8 @@
  * Increase player's dexterity
  */
 
-add_dexterity(cursed)
-bool cursed;
+void
+add_dexterity(bool cursed)
 {
     int ring_str;	/* Value of ring strengths */
 
@@ -80,8 +82,8 @@
  *	add a haste to the player
  */
 
-add_haste(blessed)
-bool blessed;
+void
+add_haste(bool blessed)
 {
     int hasttime;
 
@@ -110,8 +112,8 @@
 /*
  * Increase player's intelligence
  */
-add_intelligence(cursed)
-bool cursed;
+void
+add_intelligence(bool cursed)
 {
     int ring_str;	/* Value of ring strengths */
 
@@ -141,7 +143,8 @@
 /*
  * this routine makes the hero move slower 
  */
-add_slow()
+void
+add_slow(void)
 {
     if (on(player, ISHASTE)) { /* Already sped up */
 	extinguish(nohaste);
@@ -164,8 +167,8 @@
  * Increase player's strength
  */
 
-add_strength(cursed)
-bool cursed;
+void
+add_strength(bool cursed)
 {
 
     if (cursed) {
@@ -182,8 +185,8 @@
  * Increase player's wisdom
  */
 
-add_wisdom(cursed)
-bool cursed;
+void
+add_wisdom(bool cursed)
 {
     int ring_str;	/* Value of ring strengths */
 
@@ -215,8 +218,8 @@
  * Lower a level of experience 
  */
 
-lower_level(who)
-short who;
+void
+lower_level(short who)
 {
     int fewer, nsides = 0;
 
@@ -239,10 +242,8 @@
 	death(who);
 }
 
-quaff(which, flag, is_potion)
-int which;
-int flag;
-bool is_potion;
+void
+quaff(int which, int flag, bool is_potion)
 {
     register struct object *obj = NULL;
     register struct linked_list *item, *titem;
@@ -625,8 +626,8 @@
  *	if called with zero the restore fully
  */
 
-res_dexterity(howmuch)
-int howmuch;
+void
+res_dexterity(int howmuch)
 {
     short save_max;
     int ring_str;
@@ -656,7 +657,8 @@
  *	Restore player's intelligence
  */
 
-res_intelligence()
+void
+res_intelligence(void)
 {
     short save_max;
     int ring_str;
@@ -680,7 +682,8 @@
  *	Restore player's wisdom
  */
 
-res_wisdom()
+void
+res_wisdom(void)
 {
     short save_max;
     int ring_str;
--- a/arogue5/rings.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/rings.c	Wed Mar 02 21:28:34 2016 -0500
@@ -20,8 +20,8 @@
 /*
  * how much food does this ring use up?
  */
-ring_eat(hand)
-register int hand;
+int
+ring_eat(int hand)
 {
     if (cur_ring[hand] == NULL)
 	return 0;
@@ -45,8 +45,8 @@
     return 0;
 }
 
-ring_on(obj)
-register struct object *obj;
+void
+ring_on(struct object *obj)
 {
     register int save_max;
     char buf[LINELEN];
@@ -112,8 +112,7 @@
  * print ring bonuses
  */
 char *
-ring_num(obj)
-register struct object *obj;
+ring_num(struct object *obj)
 {
     static char buf[5];
 
@@ -147,7 +146,8 @@
 /* 
  * Return the effect of the specified ring 
  */
-ring_value(type)
+int
+ring_value(int type)
 {
     int result = 0;
 
--- a/arogue5/rip.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/rip.c	Wed Mar 02 21:28:34 2016 -0500
@@ -71,15 +71,17 @@
     0
 };
 
-char	*killname();
-
-
-
+char *killname(short monst);
+void scorein(struct sc_ent scores[], int fd);
+void scoreout(struct sc_ent scores[], FILE *outf);
+void showpack(char *howso);
+int update(struct sc_ent top_ten[], unsigned long amount, short quest, 
+           char *whoami, short flags, short level, short monst, short ctype, 
+           char *system, char *login);
 
 
 void
-byebye(sig)
-int sig;
+byebye(int sig)
 {
     NOOP(sig);
     if (!isendwin()) {
@@ -96,8 +98,8 @@
  *	Do something really fun when he dies
  */
 
-death(monst)
-register short monst;
+void
+death(short monst)
 {
     register char **dp = rip, *killer;
     register struct tm *lt;
@@ -125,8 +127,7 @@
 }
 
 char *
-killname(monst)
-register short monst;
+killname(short monst)
 {
     static char mons_name[LINELEN];
     int i;
@@ -162,9 +163,8 @@
  */
 
 /* VARARGS2 */
-score(amount, flags, monst)
-unsigned long amount;
-short monst;
+void
+score(unsigned long amount, int flags, short monst)
 {
     static struct sc_ent top_ten[NUMSCORE];
     register struct sc_ent *scp;
@@ -626,9 +626,8 @@
  *	Convert a character string that has been translated from a
  * score file by scoreout() back to a score file structure.
  */
-scorein(scores, fd)
-struct sc_ent scores[];
-int fd;
+void
+scorein(struct sc_ent scores[], int fd)
 {
     int i;
     char scoreline[100];
@@ -652,9 +651,8 @@
  * this for compatibility sake since some machines write out fields in
  * different orders.
  */
-scoreout(scores, outf)
-struct sc_ent scores[];
-FILE *outf;
+void
+scoreout(struct sc_ent scores[], FILE *outf)
 {
     int i;
     char scoreline[100];
@@ -676,8 +674,8 @@
  * showpack:
  *	Display the contents of the hero's pack
  */
-showpack(howso)
-char *howso;
+void
+showpack(char *howso)
 {
 	reg char *iname;
 	reg int cnt, packnum;
@@ -706,7 +704,8 @@
 	refresh();
 }
 
-total_winner()
+void
+total_winner(void)
 {
     register struct linked_list *item;
     register struct object *obj;
@@ -760,11 +759,10 @@
     exit(0);
 }
 
-update(top_ten, amount, quest, whoami, flags, level, monst, ctype, system, login)
-struct sc_ent top_ten[];
-unsigned long amount;
-short quest, flags, level, monst, ctype;
-char *whoami, *system, *login;
+int
+update(struct sc_ent top_ten[], unsigned long amount, short quest, 
+       char *whoami, short flags, short level, short monst, short ctype, 
+       char *system, char *login)
 {
     register struct sc_ent *scp, *sc2;
     int retval=0;	/* 1 if a change, 0 otherwise */
--- a/arogue5/rogue.h	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/rogue.h	Wed Mar 02 21:28:34 2016 -0500
@@ -943,48 +943,260 @@
     int   s_flag;		/* is the spell blessed/cursed? */
 };
 
-struct linked_list	*find_mons(), *find_obj(), *get_item(), *new_item(),
-			*new_thing(), *wake_monster(), *get_hurl(), 
-			*spec_item(), *creat_item();
-struct object		*wield_weap();
-struct room		*roomin();
-struct trap		*trap_at();
+void    _attach(struct linked_list **list, struct linked_list *item);
+void    _detach(struct linked_list **list, struct linked_list *item);
+void    _o_free_list(struct linked_list **ptr);
+void    _t_free_list(struct linked_list **ptr);
+int     ac_compute(void);
+void    activity(void);
+void    add_dexterity(bool cursed);
+void    add_intelligence(bool cursed);
+bool    add_pack(struct linked_list *item, bool silent, 
+                 struct linked_list **packret);
+void    add_slow(void);
+void    add_wisdom(bool cursed);
+void    addmsg(char *fmt, ...);
+void    affect(void);
+void    aggravate(void);
+void    alchemy(struct object *obj);
+void    appear(void);
+bool    attack(struct thing *mp, struct object *weapon, bool thrown);
+void    auto_save(int sig);
+char    be_trapped(struct thing *th, coord *tc);
+char   *blesscurse(int flags);
+bool    blue_light(bool blessed, bool cursed);
+void    bugkill(int sig);
+void    buy_it(void);
+void    byebye(int sig);
+void    cast(void);
+bool    can_blink(struct thing *tp);
+coord  *can_shoot(coord *er, coord *ee);
+bool    cansee(int y, int x);
+void    carry_obj(struct thing *mp, int chance);
+long    check_level(bool get_spells);
+void    check_residue(struct thing *tp);
+void    chg_str(int amt);
+void    command(void);
+int     const_bonus(void);
+void    corr_move(int dy, int dx);
+struct linked_list *creat_item(void);
+bool    creat_mons(struct thing *person, short monster, bool report);
+void    create_obj(bool prompt, int which_item, int which_type);
+void    cur_null(struct object *op);
+void    cure_disease(void);
+void    dbotline(WINDOW *scr, char *message);
+void    death(short monst);
+void    del_pack(struct linked_list *item);
+void    destroy_item(struct linked_list *item);
+int     dex_compute(void);
+int     dext_prot(int dexterity);
+bool    diag_ok(coord *sp, coord *ep, struct thing *flgptr);
+void    dip_it(void);
+void    do_daemons(int flag);
+void    do_fuses(int flag);
+void    do_maze(void);
+void    do_motion(struct object *obj, int ydelta, int xdelta, struct thing *tp);
+void    do_move(int dy, int dx);
+void    do_passages(void);
+void    do_post(void);
+void    do_rooms(void);
+void    do_run(char ch);
+void    do_terrain(int basey, int basex, int deltay, int deltax, bool fresh);
+bool    do_zap(bool gotdir, int which, int flag);
+void    doctor(struct thing *tp);
+void    draw_room(struct room *rp);
+bool    drop(struct linked_list *item);
+bool    dropcheck(struct object *op);
+void    dust_appear(void);
+void    eat(void);
+int     encread(char *start, unsigned int size, int inf);
+int     encwrite(char *start, unsigned int size, FILE *outf);
+void    endit(int sig);
+void    endmsg(void);
+void    extinguish(int (*func)());
+void    fall(struct linked_list *item, bool pr);
+coord  *fallpos(coord *pos, bool be_clear, int range);
+void    fatal(char *s);
+bool    fight(coord *mp, struct object *weap, bool thrown);
+struct linked_list *find_mons(int y, int x);
+struct linked_list *find_obj(int y, int x);
+struct delayed_action *find_slot(int (*func)());
+void    fix_stick(struct object *cur);
+void    fumble(void);
+void    fuse(int (*func)(), void *arg, int time, int type);
+void    genmonsters(int least, bool treas);
+bool    get_dir(void);
+struct linked_list *get_item(struct linked_list *list, char *purpose, int type);
+int     get_str(char *opt, WINDOW *win);
+int     get_worth(struct object *obj);
+int     getbless(void);
+int     getdeath(void);
+bool    getdelta(char match, int *dy, int *dx);
+int     grab(int y, int x);
+void    gsense(void);
+bool    hit_monster(int y, int x, struct object *obj, struct thing *tp);
+int     hitweight(void);
+short   id_monst(char monster);
+void    idenpack(void);
+void    init_colors(void);
+void    init_materials(void);
+void    init_misc(void);
+void    init_names(void);
+void    init_player(void);
+void    init_stones(void);
+void    init_terrain(void);
+void    init_things(void);
+void    init_weapon(struct object *weap, char type);
+char   *inv_name(struct object *obj, bool drop);
+bool    inventory(struct linked_list *list, int type);
+bool    is_current(struct object *obj);
+bool    is_magic(struct object *obj);
+bool    isatrap(char ch);
+int     itemweight(struct object *wh);
+void    kill_daemon(int (*func)());
+void    killed(struct linked_list *item, bool pr, bool points);
+void    lake_check(coord *place);
+void    land(void);
+void    lengthen(int (*func)(), int xtime);
+void    light(coord *cp);
+bool    lit_room(struct room *rp);
+void    look(bool wakeup, bool runend);
+void    lower_level(short who);
+bool    m_use_item(struct thing *monster, coord *monst_pos, coord *defend_pos);
+short   makemonster(bool create);
+bool    maze_view(int y, int x);
+char   *misc_name(struct object *obj);
+void    missile(int ydelta, int xdelta, struct linked_list *item, 
+                struct thing *tp);
+void    msg(char *fmt, ...);
+unsigned long netread(int *error, int size, FILE *stream);
+int     netwrite(unsigned long value, int size, FILE *stream);
+char   *new(int size);
+struct linked_list *new_item(int size);
+void    new_level(LEVTYPE ltype);
+void    new_monster(struct linked_list *item, short type, coord *cp, 
+                 bool max_monster);
+struct linked_list *new_thing(int thing_type);
+void    nohaste(void);
+void    noslow(void);
+char   *num(int n1, int n2);
+void    o_discard(struct linked_list *item);
+void    option(void);
+char    pack_char(struct linked_list *list, struct object *obj);
+void    parse_opts(char *str);
+bool    passwd(void);
+int     pick_one(struct magic_item *magic, int nitems);
+void    pick_up(char ch);
+void    picky_inven(void);
+void    playit(void);
+void    pray(void);
+bool    price_it(void);
+void    quaff(int which, int flag, bool is_potion);
+void    quit(int sig);
+void    raise_level(bool get_spells);
+short   randmonster(bool wander, bool no_unique);
+void    read_scroll(int which, int flag, bool is_scroll);
+int     readchar(void);
+void    res_dexterity(int howmuch);
+void    res_strength(void);
+bool    restore(char *file, char **envp);
+void    restscr(WINDOW *scr);
+int     ring_eat(int hand);
+char   *ring_num(struct object *obj);
+void    ring_on(struct object *obj);
+void    ring_search(void);
+void    ring_teleport(void);
+int     ring_value(int type);
+int     rnd(int range);
+void    rnd_pos(struct room *rp, coord *cp);
+int     rnd_room(void);
+coord  *rndmove(struct thing *who);
+int     roll(int number, int sides);
+void    rollwand(void);
+struct room *roomin(coord *cp);
+int     rs_restore_file(int inf);
+int     rs_save_file(FILE *savef);
+void    runners(void);
+void    runto(struct thing *runner, coord *spot);
+bool    save(int which, struct thing *who, int adj);
+bool    save_game(void);
+void    score(unsigned long amount, int flags, short monst);
+void    search(bool is_thief, bool door_chime);
+char    secretdoor(int y, int x);
+void    sell(struct thing *tp);
+void    sell_it(void);
+void    set_trap(struct thing *tp, int y, int x);
+void    setup(void);
+bool    shoot_bolt(struct thing *shooter, coord start, coord dir, 
+                   bool get_points, short reason, char *name, int damage);
+bool    shoot_ok(char ch);
+char    show(int y, int x);
+void    sight(void);
+struct linked_list *spec_item(int type, int which, int hit, int damage);
+void    start_daemon(int (*func)(), void *arg, int type);
+void    status(bool display);
+void    steal(void);
+bool    step_ok(int y, int x, int can_on_monst, struct thing *flgptr);
+void    stomach(void);
+int     str_compute(void);
+void    strangle(void);
+void    strucpy(char *s1, char *s2, int len);
+void    suffocate(void);
+void    swander(void);
+bool    swing(short class, int at_lvl, int op_arm, int wplus);
+void    t_discard(struct linked_list *item);
+void    take_off(void);
+int     teleport(void);
+void    total_winner(void);
+int     totalenc(void);
+char   *tr_name(char ch);
+struct trap *trap_at(int y, int x);
+void    trap_look(void);
+void    un_itch(void);
+void    unchoke(void);
+void    unclrhead(void);
+void    unconfuse(void);
+void    undance(void);
+void    unphase(void);
+void    unsee(void);
+void    unstink(void);
+void    updpack(bool getmax);
+void    use_mm(int which);
+char   *vowelstr(char *str);
+void    wait_for(WINDOW *win, char ch);
+struct linked_list *wake_monster(int y, int x);
+void    waste_time(void);
+char   *weap_name(struct object *obj);
+void    wear(void);
+void    wghtchk(void);
+void    whatis(struct linked_list *what);
+void    wield(void);
+void    writelog(unsigned long amount, int flags, short monst);
 
-char	*tr_name(), *new(), 
-	*vowelstr(), *inv_name(), 
-	*ctime(), *num(), *ring_num(), *misc_num(), *blesscurse(), *typ_name(),
-	*weap_name(), *misc_name();
-coord	*rndmove(), *can_shoot(), *fallpos();
-short	randmonster(), id_monst();
-void    quit(int sig), tstp(int sig), auto_save(int sig), bugkill(int sig), endit(int sig);
-int	rnd(), wghtchk(), nohaste(), res_strength(),
-	doctor(), runners(), swander(), unconfuse(), unsee(), fumble(),
-	unclrhead(), unphase(), noslow(), rollwand(), stomach(), sight(),
-	unstink(), suffocate(), cure_disease(), un_itch(), shoot_bolt(),
-	appear(), dust_appear(), unchoke(), alchemy(), trap_look(), strangle(),
-	ring_teleport(), ring_search(), grab();
-bool	blue_light(), can_blink(), creat_mons(), add_pack(),
-	straight_shot(), maze_view(), lit_room(), getdelta(), save_file(),
-	save_game();
-long	check_level();
-void	byebye(int sig), genmonsters();
-int     land(), undance();
-void    writelog(unsigned long amount, int flags, short monst);
 #ifdef CHECKTIME
 int checkout();
 #endif
-extern char *md_getusername();
-extern char *md_gethomedir();
-extern void md_flushinp();
-extern char *md_getshell();
-extern char *md_gethostname();
-extern void md_dobinaryio();
-extern char *md_getpass();
-extern char *md_crypt();
-extern char *md_getroguedir();
-extern void md_init();
+extern char *md_getusername(void);
+extern char *md_gethomedir(void);
+extern void md_flushinp(void);
+extern char *md_getshell(void);
+extern char *md_gethostname(void);
+extern char *md_getpass(char *prompt);
+extern char *md_crypt(char *key, char *salt);
+extern char *md_getroguedir(void);
+extern void md_init(void);
 extern FILE * md_fdopen(int fd, char *mode);
 extern int md_unlink(char *file);
+extern int md_normaluser(void);
+extern int md_getuid(void);
+extern long md_memused(void);
+extern void md_reopen_score(void);
+extern int md_readchar(WINDOW *win);
+extern int md_shellescape(void);
+extern int md_srand(int seed);
+extern int md_rand(void);
+extern int md_erasechar(void);
+extern int md_killchar(void);
 
 /*
  * Now all the global variables
--- a/arogue5/rooms.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/rooms.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,7 +16,11 @@
 #include "rogue.h"
 #include <stdlib.h>
 
-do_rooms()
+void horiz(int cnt);
+void vert(int cnt);
+
+void
+do_rooms(void)
 {
     register int i;
     register struct room *rp;
@@ -99,7 +103,7 @@
 
 	    has_gold = TRUE;	/* This room has gold in it */
 
-	    item = spec_item(GOLD, NULL, NULL, NULL);
+	    item = spec_item(GOLD, 0, 0, 0);
 	    cur = OBJPTR(item);
 
 	    /* Put the gold into the level list of items */
@@ -153,8 +157,8 @@
  * Draw a box around a room
  */
 
-draw_room(rp)
-register struct room *rp;
+void
+draw_room(struct room *rp)
 {
     register int j, k;
 
@@ -181,8 +185,8 @@
  *	draw a horizontal line
  */
 
-horiz(cnt)
-register int cnt;
+void
+horiz(int cnt)
 {
     while (cnt--)
 	addch('-');
@@ -193,9 +197,8 @@
  *	pick a random spot in a room
  */
 
-rnd_pos(rp, cp)
-register struct room *rp;
-register coord *cp;
+void
+rnd_pos(struct room *rp, coord *cp)
 {
     cp->x = rp->r_pos.x + rnd(rp->r_max.x-2) + 1;
     cp->y = rp->r_pos.y + rnd(rp->r_max.y-2) + 1;
@@ -210,8 +213,7 @@
  */
 
 struct room *
-roomin(cp)
-register coord *cp;
+roomin(coord *cp)
 {
     register struct room *rp;
 
@@ -226,8 +228,8 @@
  *	draw a vertical line
  */
 
-vert(cnt)
-register int cnt;
+void
+vert(int cnt)
 {
     register int x, y;
 
--- a/arogue5/save.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/save.c	Wed Mar 02 21:28:34 2016 -0500
@@ -23,6 +23,8 @@
 #include <signal.h>
 #include "rogue.h"
 
+bool save_file(FILE *savef);
+
 typedef struct stat STAT;
 
 extern char version[], encstr[];
@@ -31,7 +33,7 @@
 STAT sbuf;
 
 bool
-save_game()
+save_game(void)
 {
     register FILE *savef;
     register int c;
@@ -122,8 +124,7 @@
  * write the saved game on the file
  */
 bool
-save_file(savef)
-register FILE *savef;
+save_file(FILE *savef)
 {
     int ret;
     int slines = LINES;
@@ -147,9 +148,8 @@
     return(ret);
 }
 
-restore(file, envp)
-register char *file;
-char **envp;
+bool
+restore(char *file, char **envp)
 {
     register int inf;
 #ifndef _AIX
@@ -264,13 +264,11 @@
 /*
  * perform an encrypted write
  */
-encwrite(start, size, outf)
-register char *start;
-register unsigned size;
-register FILE *outf;
+int
+encwrite(char *start, unsigned int size, FILE *outf)
 {
     register char *ep;
-    register num_written = 0;
+    register int num_written = 0;
 
     ep = encstr;
 
@@ -288,10 +286,8 @@
 /*
  * perform an encrypted read
  */
-encread(start, size, inf)
-register char *start;
-register unsigned size;
-register int inf;
+int
+encread(char *start, unsigned int size, int inf)
 {
     register char *ep;
     register int read_size;
--- a/arogue5/scrolls.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/scrolls.c	Wed Mar 02 21:28:34 2016 -0500
@@ -23,7 +23,8 @@
 /*
  * let the hero get rid of some type of monster (but not a UNIQUE!)
  */
-genocide()
+void
+genocide(void)
 {
     register struct linked_list *ip;
     register struct thing *mp;
@@ -37,7 +38,7 @@
 
     /* Print out the monsters */
     while (num_monst > 0) {
-	register left_limit;
+	int left_limit;
 
 	if (num_monst < num_lines) left_limit = (num_monst+1)/2;
 	else left_limit = num_lines/2;
@@ -112,10 +113,8 @@
     msg("You have wiped out the %s.", monsters[which_monst].m_name);
 }
 
-read_scroll(which, flag, is_scroll)
-register int which;
-int flag;
-bool is_scroll;
+void
+read_scroll(int which, int flag, bool is_scroll)
 {
     register struct object *obj = NULL, *nobj;
     register struct linked_list *item, *nitem;
--- a/arogue5/state.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/state.c	Wed Mar 02 21:28:34 2016 -0500
@@ -64,6 +64,12 @@
 #include <string.h>
 #include "rogue.h"
 
+int rs_read_int(int inf, int *i);
+int rs_write_int(FILE *savef, int c);
+int list_size(struct linked_list *l);
+int rs_write_object_list(FILE *savef, struct linked_list *l);
+int rs_read_object_list(int inf, struct linked_list **list);
+
 #define READSTAT (format_error || read_error )
 #define WRITESTAT (write_error)
 
@@ -1712,6 +1718,7 @@
     return(READSTAT);
 }
 
+int
 rs_write_room_reference(FILE *savef, struct room *rp)
 {
     int i, room = -1;
@@ -2224,7 +2231,7 @@
     return(READSTAT);
 }
 
-int
+void
 rs_fix_thing(struct thing *t)
 {
     struct thing *tp;
@@ -2434,6 +2441,7 @@
     return(WRITESTAT);
 }
 
+int
 rs_restore_file(int inf)
 {
     int i;
--- a/arogue5/sticks.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/sticks.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,14 +18,13 @@
 #include <string.h>
 #include "rogue.h"
 
+void drain(int ymin, int ymax, int xmin, int xmax);
 
 /*
  * zap a stick and see what happens
  */
-do_zap(gotdir, which, flag)
-bool gotdir;
-int which;
-int flag;
+bool
+do_zap(bool gotdir, int which, int flag)
 {
     register struct linked_list *item;
     register struct object *obj = NULL;
@@ -683,8 +682,8 @@
  *	Do drain hit points from player shtick
  */
 
-drain(ymin, ymax, xmin, xmax)
-int ymin, ymax, xmin, xmax;
+void
+drain(int ymin, int ymax, int xmin, int xmax)
 {
     register int i, j, count;
     register struct thing *ick;
@@ -745,8 +744,8 @@
 /*
  * initialize a stick
  */
-fix_stick(cur)
-register struct object *cur;
+void
+fix_stick(struct object *cur)
 {
     if (EQUAL(ws_type[cur->o_which], "staff")) {
 	cur->o_weight = 100;
@@ -787,13 +786,9 @@
  * 	      given direction
  */
 
-shoot_bolt(shooter, start, dir, get_points, reason, name, damage)
-struct thing *shooter;
-coord start, dir;
-bool get_points;
-short reason;
-char *name;
-int damage;
+bool
+shoot_bolt(struct thing *shooter, coord start, coord dir, bool get_points, 
+           short reason, char *name, int damage)
 {
     register char dirch = 0, ch;
     register bool used, change;
--- a/arogue5/things.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/things.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,12 +18,13 @@
 #include <string.h>
 #include "rogue.h"
 
+int extras(void);
+
 /*
  * print out the number of charges on a stick
  */
 char *
-charge_str(obj)
-register struct object *obj;
+charge_str(struct object *obj)
 {
     static char buf[20];
 
@@ -41,9 +42,7 @@
  *	inventory.
  */
 char *
-inv_name(obj, drop)
-register struct object *obj;
-bool drop;
+inv_name(struct object *obj, bool drop)
 {
     register char *pb;
 
@@ -296,8 +295,7 @@
  *	Return the name of a weapon.
  */
 char *
-weap_name(obj)
-register struct object *obj;
+weap_name(struct object *obj)
 {
     switch (obj->o_type) {
 	case WEAPON:
@@ -325,8 +323,8 @@
  * drop:
  *	put something down
  */
-drop(item)
-struct linked_list *item;
+bool
+drop(struct linked_list *item)
 {
     register char ch = 0;
     register struct linked_list *obj, *nobj;
@@ -413,8 +411,8 @@
 /*
  * do special checks for dropping or unweilding|unwearing|unringing
  */
-dropcheck(op)
-register struct object *op;
+bool
+dropcheck(struct object *op)
 {
     int save_max;
 
@@ -514,8 +512,7 @@
  * return a new thing
  */
 struct linked_list *
-new_thing(thing_type)
-int thing_type;
+new_thing(int thing_type)
 {
     register struct linked_list *item;
     register struct object *cur;
@@ -710,8 +707,7 @@
  * provide a new item tailored to specification
  */
 struct linked_list *
-spec_item(type, which, hit, damage)
-int type, which, hit, damage;
+spec_item(int type, int which, int hit, int damage)
 {
     register struct linked_list *item;
     register struct object *obj;
@@ -787,9 +783,8 @@
 /*
  * pick an item out of a list of nitems possible magic items
  */
-pick_one(magic, nitems)
-register struct magic_item *magic;
-int nitems;
+int
+pick_one(struct magic_item *magic, int nitems)
 {
     register struct magic_item *end;
     register int i;
@@ -821,8 +816,7 @@
  */
 
 char *
-blesscurse(flags)
-int flags;
+blesscurse(int flags)
 {
     if (flags & ISKNOW)  {
 	if (flags & ISCURSED) return("cursed ");
@@ -836,7 +830,8 @@
  * extras:
  *	Return the number of extra items to be created
  */
-extras()
+int
+extras(void)
 {
 	reg int i;
 
--- a/arogue5/trader.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/trader.c	Wed Mar 02 21:28:34 2016 -0500
@@ -14,17 +14,20 @@
 
 #include "curses.h"
 #include "rogue.h"
+#include <ctype.h>
 #include <string.h>
 
-
-
+bool open_market(void);
+void trans_line(void);
+char *typ_name(struct object *obj);
 
 
 /*
  * buy_it:
  *	Buy the item on which the hero stands
  */
-buy_it()
+void
+buy_it(void)
 {
 	reg int wh;
 	struct linked_list *item;
@@ -77,7 +80,8 @@
  * do_post:
  *	Put a trading post room and stuff on the screen
  */
-do_post()
+void
+do_post(void)
 {
 	coord tp;
 	reg int i;
@@ -124,8 +128,8 @@
  * get_worth:
  *	Calculate an objects worth in gold
  */
-get_worth(obj)
-reg struct object *obj;
+int
+get_worth(struct object *obj)
 {
 	reg int worth, wh;
 
@@ -195,7 +199,8 @@
  * open_market:
  *	Retruns TRUE when ok do to transacting
  */
-open_market()
+bool
+open_market(void)
 {
 	if (trader >= MAXPURCH && !wizard) {
 	    msg("The market is closed. The stairs are that-a-way.");
@@ -210,7 +215,8 @@
  * price_it:
  *	Price the object that the hero stands on
  */
-price_it()
+bool
+price_it(void)
 {
 	reg struct linked_list *item;
 	reg struct object *obj;
@@ -244,7 +250,8 @@
  * sell_it:
  *	Sell an item to the trading post
  */
-sell_it()
+void
+sell_it(void)
 {
 	reg struct linked_list *item;
 	reg struct object *obj;
@@ -291,7 +298,8 @@
  * trans_line:
  *	Show how many transactions the hero has left
  */
-trans_line()
+void
+trans_line(void)
 {
 	if (!wizard)
 	    sprintf(prbuf,"You have %d transactions remaining.",
@@ -309,8 +317,7 @@
  * 	Return the name for this type of object
  */
 char *
-typ_name(obj)
-reg struct object *obj;
+typ_name(struct object *obj)
 {
 	static char buff[20];
 	reg int wh;
--- a/arogue5/util.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/util.c	Wed Mar 02 21:28:34 2016 -0500
@@ -22,7 +22,8 @@
  *	aggravate all the monsters on this level
  */
 
-aggravate()
+void
+aggravate(void)
 {
     register struct linked_list *mi;
 
@@ -35,8 +36,8 @@
  *	returns true if the hero can see a certain coordinate.
  */
 
-cansee(y, x)
-register int y, x;
+bool
+cansee(int y, int x)
 {
     register struct room *rer;
     register int radius;
@@ -93,8 +94,7 @@
 };
 
 long
-check_level(get_spells)
-bool get_spells;
+check_level(bool get_spells)
 {
     register int i, j, add = 0;
     register unsigned long exp;
@@ -148,8 +148,8 @@
  * it keeps track of the highest it has been, just in case
  */
 
-chg_str(amt)
-register int amt;
+void
+chg_str(int amt)
 {
     register int ring_str;		/* ring strengths */
     register struct stats *ptr;		/* for speed */
@@ -172,7 +172,7 @@
  * this routine computes the players current AC without dex bonus's
  */
 int 
-ac_compute()
+ac_compute(void)
 {
     register int ac;
 
@@ -194,7 +194,8 @@
 /*
  * this routine computes the players current strength
  */
-str_compute()
+int
+str_compute(void)
 {
     if (cur_misc[WEAR_GAUNTLET] != NULL		&&
 	cur_misc[WEAR_GAUNTLET]->o_which == MM_G_OGRE) {
@@ -210,7 +211,8 @@
 /*
  * this routine computes the players current dexterity
  */
-dex_compute()
+int
+dex_compute(void)
 {
     if (cur_misc[WEAR_GAUNTLET] != NULL		&&
 	cur_misc[WEAR_GAUNTLET]->o_which == MM_G_DEXTERITY) {
@@ -229,9 +231,8 @@
  *	Check to see if the move is legal if it is diagonal
  */
 
-diag_ok(sp, ep, flgptr)
-register coord *sp, *ep;
-struct thing *flgptr;
+bool
+diag_ok(coord *sp, coord *ep, struct thing *flgptr)
 {
     register int numpaths = 0;
 
@@ -252,7 +253,8 @@
  *	He wants to eat something, so let him try
  */
 
-eat()
+void
+eat(void)
 {
     register struct linked_list *item;
 
@@ -282,10 +284,7 @@
  * pick a random position around the give (y, x) coordinates
  */
 coord *
-fallpos(pos, be_clear, range)
-register coord *pos;
-bool be_clear;
-int range;
+fallpos(coord *pos, bool be_clear, int range)
 {
 	register int tried, i, j;
 	register char ch;
@@ -364,9 +363,7 @@
  */
 
 struct linked_list *
-find_mons(y, x)
-register int y;
-register int x;
+find_mons(int y, int x)
 {
     register struct linked_list *item;
     register struct thing *th;
@@ -386,9 +383,7 @@
  */
 
 struct linked_list *
-find_obj(y, x)
-register int y;
-register int x;
+find_obj(int y, int x)
 {
     register struct linked_list *obj;
     register struct object *op;
@@ -406,7 +401,8 @@
 /*
  * set up the direction co_ordinate for use in varios "prefix" commands
  */
-get_dir()
+bool
+get_dir(void)
 {
     register char *prompt;
     register bool gotit;
@@ -446,8 +442,8 @@
 /* 
  * see if the object is one of the currently used items
  */
-is_current(obj)
-register struct object *obj;
+bool
+is_current(struct object *obj)
 {
     if (obj == NULL)
 	return FALSE;
@@ -483,11 +479,12 @@
 /*
  * Look:
  *	A quick glance all around the player
+ * wakeup: Should we wake up monsters
+ * runend: At end of a run -- for mazes
  */
 
-look(wakeup, runend)
-bool wakeup;	/* Should we wake up monsters */
-bool runend;	/* At end of a run -- for mazes */
+void
+look(bool wakeup, bool runend)
 {
     register int x, y, radius;
     register char ch, och;
@@ -738,8 +735,8 @@
  *	The guy just magically went up a level.
  */
 
-raise_level(get_spells)
-bool get_spells;
+void
+raise_level(bool get_spells)
 {
     unsigned long test;	/* Next level -- be sure it is not an overflow */
 
@@ -766,11 +763,12 @@
 /*
  * save:
  *	See if a creature saves against something
+ * which: which type of save 
+ * who: who is saving 
+ * adj: saving throw adjustment 
  */
-save(which, who, adj)
-int which;		/* which type of save */
-struct thing *who;	/* who is saving */
-int adj;		/* saving throw adjustment */
+bool
+save(int which, struct thing *who, int adj)
 {
     register int need, level;
 
@@ -814,8 +812,8 @@
  *	Figure out what a secret door looks like.
  */
 
-secretdoor(y, x)
-register int y, x;
+char
+secretdoor(int y, int x)
 {
     register int i;
     register struct room *rp;
@@ -838,9 +836,8 @@
 /*
  * copy string using unctrl for things
  */
-strucpy(s1, s2, len)
-register char *s1, *s2;
-register int len;
+void
+strucpy(char *s1, char *s2, int len)
 {
     register char *sp;
 
@@ -859,8 +856,7 @@
  */
 
 char *
-tr_name(ch)
-char ch;
+tr_name(char ch)
 {
     register char *s = NULL;
 
@@ -890,8 +886,7 @@
  * for printfs: if string starts with a vowel, return "n" for an "an"
  */
 char *
-vowelstr(str)
-register char *str;
+vowelstr(char *str)
 {
     switch (*str)
     {
@@ -911,7 +906,8 @@
  *	Do nothing but let other things happen
  */
 
-waste_time()
+void
+waste_time(void)
 {
     if (inwhgt)			/* if from wghtchk then done */
 	return;
--- a/arogue5/weapons.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/weapons.c	Wed Mar 02 21:28:34 2016 -0500
@@ -23,10 +23,8 @@
  * do the actual motion on the screen done by an object traveling
  * across the room
  */
-do_motion(obj, ydelta, xdelta, tp)
-register struct object *obj;
-register int ydelta, xdelta;
-register struct thing *tp;
+void
+do_motion(struct object *obj, int ydelta, int xdelta, struct thing *tp)
 {
 
 	/*
@@ -70,9 +68,8 @@
  *	Drop an item someplace around here.
  */
 
-fall(item, pr)
-register struct linked_list *item;
-bool pr;
+void
+fall(struct linked_list *item, bool pr)
 {
 	register struct object *obj;
 	register struct room *rp;
@@ -116,10 +113,8 @@
  * Does the missile hit the monster
  */
 
-hit_monster(y, x, obj, tp)
-register int y, x;
-struct object *obj;
-register struct thing *tp;
+bool
+hit_monster(int y, int x, struct object *obj, struct thing *tp)
 {
 	static coord mp;
 
@@ -144,9 +139,8 @@
  *	Set up the initial goodies for a weapon
  */
 
-init_weapon(weap, type)
-register struct object *weap;
-char type;
+void
+init_weapon(struct object *weap, char type)
 {
 	register struct init_weps *iwp;
 
@@ -169,10 +163,8 @@
  *	Fire a missile in a given direction
  */
 
-missile(ydelta, xdelta, item, tp)
-int ydelta, xdelta;
-register struct linked_list *item;
-register struct thing *tp;
+void
+missile(int ydelta, int xdelta, struct linked_list *item, struct thing *tp)
 {
 	register struct object *obj;
 	register struct linked_list *nitem;
@@ -247,8 +239,7 @@
  */
 
 char *
-num(n1, n2)
-register int n1, n2;
+num(int n1, int n2)
 {
 	static char numbuf[LINELEN];
 
@@ -268,7 +259,8 @@
  *	Pull out a certain weapon
  */
 
-wield()
+void
+wield(void)
 {
 	register struct linked_list *item;
 	register struct object *obj, *oweapon;
--- a/arogue5/wear.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/wear.c	Wed Mar 02 21:28:34 2016 -0500
@@ -23,7 +23,8 @@
  *	Get the armor off of the players back
  */
 
-take_off()
+void
+take_off(void)
 {
     register struct object *obj;
     register struct linked_list *item;
@@ -52,7 +53,8 @@
  *	The player wants to wear something, so let him/her put it on.
  */
 
-wear()
+void
+wear(void)
 {
     register struct linked_list *item;
     register struct object *obj;
--- a/arogue5/wizard.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/wizard.c	Wed Mar 02 21:28:34 2016 -0500
@@ -15,6 +15,7 @@
 
 #include "curses.h"
 #include <ctype.h>
+#include <string.h>
 #include <stdlib.h>
 #include "rogue.h"
 
@@ -23,9 +24,8 @@
  * create_obj:
  *	Create any object for wizard, scroll, magician, or cleric
  */
-create_obj(prompt, which_item, which_type)
-bool prompt;
-int which_item, which_type;
+void
+create_obj(bool prompt, int which_item, int which_type)
 {
     reg struct linked_list *item;
     reg struct object *obj;
@@ -311,7 +311,8 @@
  * getbless:
  *	Get a blessing for a wizards object
  */
-getbless()
+int
+getbless(void)
 {
 	reg char bless;
 
@@ -328,7 +329,8 @@
 /*
  * get a non-monster death type
  */
-getdeath()
+int
+getdeath(void)
 {
     register int i;
     int which_death;
@@ -358,8 +360,8 @@
 /*
  * make a monster for the wizard
  */
-makemonster(create) 
-bool create;
+short
+makemonster(bool create) 
 {
     register int i;
     register short which_monst;
@@ -368,7 +370,7 @@
 
     /* Print out the monsters */
     while (num_monst > 0) {
-	register left_limit;
+	register int left_limit;
 
 	if (num_monst < num_lines) left_limit = (num_monst+1)/2;
 	else left_limit = num_lines/2;
@@ -430,7 +432,8 @@
  *	see if user knows password
  */
 
-passwd()
+bool
+passwd(void)
 {
     register char *sp, c;
     char buf[LINELEN];
@@ -457,7 +460,8 @@
  *	Bamf the hero someplace else
  */
 
-teleport()
+int
+teleport(void)
 {
     register struct room *new_rp, *old_rp = roomin(&hero);
     register int rm;
@@ -525,8 +529,8 @@
  *	What a certin object is
  */
 
-whatis(what)
-struct linked_list *what;
+void
+whatis(struct linked_list *what)
 {
     register struct object *obj;
     register struct linked_list *item;
--- a/arogue5/xcrypt.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue5/xcrypt.c	Wed Mar 02 21:28:34 2016 -0500
@@ -52,6 +52,9 @@
 #include <sys/types.h>
 #include <string.h>
 
+unsigned long int md_htonl(unsigned long int x);
+unsigned long int md_ntohl(unsigned long int x);
+
 #ifdef DEBUG
 # include <stdio.h>
 #endif
--- a/arogue7/actions.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/actions.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,12 +18,21 @@
 #include "rogue.h"
 #define	MAXINT	INT_MAX
 #define	MININT	INT_MIN
+
+void m_breathe(struct thing *tp);
+void m_select(struct thing *th, bool flee);
+void m_sonic(struct thing *tp);
+void m_spell(struct thing *tp);
+void m_summon(struct thing *tp);
+bool m_use_it(struct thing *tp, bool flee, struct room *rer, struct room *ree);
+bool m_use_pack(struct thing *monster, coord *monst_pos, coord *defend_pos, 
+           int dist, coord *shoot_dir);
+
 /* 
  * Did we disrupt a spell? 
  */
-dsrpt_monster(tp, always, see_him)
-register struct thing *tp;
-bool always, see_him;
+void
+dsrpt_monster(struct thing *tp, bool always, bool see_him)
 {
     switch (tp->t_action) {
     case A_SUMMON:
@@ -52,7 +61,8 @@
     }
 }
 
-dsrpt_player()
+void
+dsrpt_player(void)
 {
     int which, action;
     struct linked_list *item;
@@ -81,7 +91,7 @@
 	if (purse > 0) {
 	    msg("Your gold goes flying everywhere!");
 	    do {
-		item = spec_item(GOLD, NULL, NULL, NULL);
+		item = spec_item(GOLD, 0, 0, 0);
 		obj = OBJPTR(item);
 		obj->o_count = min(purse, rnd(10)+1);
 		purse -= obj->o_count;
@@ -120,8 +130,8 @@
  *	Otherwise, let it perform its chosen action.
  */
 
-m_act(tp)
-register struct thing *tp;
+void
+m_act(struct thing *tp)
 {
     struct object *obj;
     bool flee;	/* Are we scared? */
@@ -235,8 +245,8 @@
  *	Breathe in the chosen direction.
  */
 
-m_breathe(tp)
-register struct thing *tp;
+void
+m_breathe(struct thing *tp)
 {
     register int damage;
     register char *breath = "";
@@ -344,11 +354,11 @@
 /*
  * m_select:
  *	Select an action for the monster.
+ * flee: True if running away or player is inaccessible in wall
  */
 
-m_select(th, flee)
-register struct thing *th;
-register bool flee; /* True if running away or player is inaccessible in wall */
+void
+m_select(struct thing *th, bool flee)
 {
     register struct room *rer, *ree;	/* room of chaser, room of chasee */
     int dist = MININT;
@@ -486,8 +496,8 @@
  *	The monster is sounding a sonic blast.
  */
 
-m_sonic(tp)
-register struct thing *tp;
+void
+m_sonic(struct thing *tp)
 {
     register int damage;
     static struct object blast =
@@ -515,8 +525,8 @@
  *	The monster casts a spell.  Currently this is limited to
  *	magic missile.
  */
-m_spell(tp)
-register struct thing *tp;
+void
+m_spell(struct thing *tp)
 {
     static struct object missile =
     {
@@ -538,8 +548,8 @@
  *	Summon aid.
  */
 
-m_summon(tp)
-register struct thing *tp;
+void
+m_summon(struct thing *tp)
 {
     register char *helpname, *mname;
     int fail, numsum;
@@ -612,10 +622,7 @@
  */
 
 bool
-m_use_it(tp, flee, rer, ree)
-register struct thing *tp;
-bool flee;
-register struct room *rer, *ree;
+m_use_it(struct thing *tp, bool flee, struct room *rer, struct room *ree)
 {
     int dist;
     register coord *ee = tp->t_dest, *er = &tp->t_pos; 
@@ -777,14 +784,15 @@
 /*
  * runners:
  *	Make all the awake monsters try to do something.
+ * segments: Number of segments since last called
  */
 
-runners(segments)
-int segments;    /* Number of segments since last called */
+int
+runners(int segments)
 {
     register struct linked_list *item;
     register struct thing *tp = NULL;
-    register min_time = 20;	/* Minimum time until a monster can act */
+    register int min_time = 20;	/* Minimum time until a monster can act */
 
     /*
      * loop thru the list of running (wandering) monsters and see what
@@ -870,11 +878,8 @@
  * Only care about relics and wands for now.
  */
 bool
-m_use_pack(monster, monst_pos, defend_pos, dist, shoot_dir)
-register struct thing *monster;
-register coord *monst_pos, *defend_pos;
-register int dist;
-register coord *shoot_dir;
+m_use_pack(struct thing *monster, coord *monst_pos, coord *defend_pos, 
+           int dist, coord *shoot_dir)
 {
     register struct object *obj;
     register struct linked_list *pitem, *relic, *stick;
--- a/arogue7/chase.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/chase.c	Wed Mar 02 21:28:34 2016 -0500
@@ -19,11 +19,13 @@
 
 #include <ctype.h>
 #include <limits.h>
+#include <stdlib.h>
 #include "curses.h"
 #include "rogue.h"
 #define	MAXINT	INT_MAX
 #define	MININT	INT_MIN
 
+bool straight_shot(int ery, int erx, int eey, int eex, coord *shooting);
 
 /*
  * Canblink checks if the monster can teleport (blink).  If so, it will
@@ -31,8 +33,7 @@
  */
 
 bool
-can_blink(tp)
-register struct thing *tp;
+can_blink(struct thing *tp)
 {
     register int y, x, index=9;
     coord tryp;	/* To hold the coordinates for use in diag_ok */
@@ -127,8 +128,7 @@
  */
 
 coord *
-can_shoot(er, ee)
-register coord *er, *ee;
+can_shoot(coord *er, coord *ee)
 {
     static coord shoot_dir;
 
@@ -147,16 +147,14 @@
  * chase:
  *	Find the spot for the chaser(er) to move closer to the
  *	chasee(ee).  Rer is the room of the chaser, and ree is the
- *	room of the creature being chased (chasee).
+ *	room of the creature being chased (chasee).  Flee is true if 
+ *	destination (ee) is player and monster is running away
+ *	or the player is in a wall and the monster can't get to it
  */
 
-chase(tp, ee, rer, ree, flee)
-register struct thing *tp;
-register coord *ee;
-register struct room *rer, *ree;
-bool flee; /* True if destination (ee) is player and monster is running away
-	    * or the player is in a wall and the monster can't get to it
-	    */
+void
+chase(struct thing *tp, coord *ee, struct room *rer, struct room *ree, 
+      bool flee)
 {
     int dist, thisdist, monst_dist = MAXINT; 
     register coord *er = &tp->t_pos; 
@@ -494,8 +492,8 @@
  *	Make one thing chase another.
  */
 
-do_chase(th)
-register struct thing *th;
+void
+do_chase(struct thing *th)
 {
     register struct room *orig_rer,	/* Original room of chaser */
 			 *new_room;	/* new room of monster */
@@ -803,8 +801,7 @@
  */
 
 struct linked_list *
-get_hurl(tp)
-register struct thing *tp;
+get_hurl(struct thing *tp)
 {
     struct linked_list *arrow=NULL, *bolt=NULL, *rock=NULL,
 	*spear = NULL, *dagger=NULL, *dart=NULL, *aklad=NULL;
@@ -851,9 +848,8 @@
  *	Set a monster running after something
  */
 
-runto(runner, spot)
-register struct thing *runner;
-coord *spot;
+void
+runto(struct thing *runner, coord *spot)
 {
     if (on(*runner, ISSTONE))
 	return;
@@ -881,9 +877,7 @@
  */
 
 bool
-straight_shot(ery, erx, eey, eex, shooting)
-register int ery, erx, eey, eex;
-register coord *shooting;
+straight_shot(int ery, int erx, int eey, int eex, coord *shooting)
 {
     register int dy, dx;	/* Deltas */
     char ch;
--- a/arogue7/command.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/command.c	Wed Mar 02 21:28:34 2016 -0500
@@ -29,12 +29,23 @@
 extern struct uwdata wdata;
 #endif
 
+void display(void);
+void help(void);
+void identify(char ch);
+void d_level(void);
+void u_level(void);
+void shell(void);
+void nameit(void);
+void namemonst(void);
+void count_gold(void);
+
 /*
  * command:
  *	Process the user commands
  */
 
-command()
+void
+command(void)
 {
     unsigned char ch;
     struct linked_list *item;
@@ -267,8 +278,8 @@
 			    after = FALSE;
 			}
 		    when C_COUNT : count_gold();
-		    when C_QUAFF : quaff(-1, NULL, NULL, TRUE);
-		    when C_READ : read_scroll(-1, NULL, TRUE);
+		    when C_QUAFF : quaff(-1, 0, 0, TRUE);
+		    when C_READ : read_scroll(-1, 0, TRUE);
 		    when C_EAT : eat();
 		    when C_WIELD : wield();
 		    when C_WEAR : wear();
@@ -280,7 +291,7 @@
 		    when '>' : after = FALSE; d_level();
 		    when '<' : after = FALSE; u_level();
 		    when '?' : after = FALSE; help();
-		    when '/' : after = FALSE; identify(NULL);
+		    when '/' : after = FALSE; identify(0);
 		    when C_USE : use_mm(-1);
 		    when CTRL('T') :
 			if (player.t_action == A_NIL) {
@@ -315,7 +326,7 @@
 			    search(FALSE, FALSE);
 			    player.t_action = A_NIL;
 			}
-		    when C_ZAP : if (!player_zap(NULL, FALSE))
+		    when C_ZAP : if (!player_zap(0, FALSE))
 				    after=FALSE;
 		    when C_PRAY : pray();
 		    when C_CHANT : chant();
@@ -553,7 +564,8 @@
  * 	tell the player what is at a certain coordinates assuming
  *	it can be seen.
  */
-display()
+void
+display(void)
 {
     coord c;
     struct linked_list *item;
@@ -587,8 +599,7 @@
  */
 
 void
-quit(sig)
-int sig;
+quit(int sig)
 {
     /*
      * Reset the signal in case we got here via an interrupt
@@ -628,8 +639,7 @@
  */
 
 void
-bugkill(sig)
-int sig;
+bugkill(int sig)
 {
     signal(sig, quit);	/* If we get it again, give up */
     death(D_SIGNAL);	/* Killed by a bug */
@@ -641,8 +651,8 @@
  *	Player gropes about him to find hidden things.
  */
 
-search(is_thief, door_chime)
-register bool is_thief, door_chime;
+void
+search(bool is_thief, bool door_chime)
 {
     register int x, y;
     register char ch,	/* The trap or door character */
@@ -752,7 +762,8 @@
  *	Give single character help, or the whole mess if he wants it
  */
 
-help()
+void
+help(void)
 {
     register struct h_list *strp = helpstr;
 #ifdef WIZARD
@@ -844,8 +855,8 @@
  *	Tell the player what a certain thing is.
  */
 
-identify(ch)
-register char ch;
+void
+identify(char ch)
 {
     register char *str;
 
@@ -907,6 +918,7 @@
  *	He wants to go down a level
  */
 
+void
 d_level()
 {
     bool no_phase=FALSE;
@@ -958,7 +970,8 @@
  *	He wants to go up a level
  */
 
-u_level()
+void
+u_level(void)
 {
     bool no_phase = FALSE;
     register struct linked_list *item;
@@ -1016,7 +1029,8 @@
  * Let him escape for a while
  */
 
-shell()
+void
+shell(void)
 {
     register char *sh;
 
@@ -1050,7 +1064,8 @@
 /*
  * see what we want to name -- an item or a monster.
  */
-nameit()
+void
+nameit(void)
 {
     char answer;
 
@@ -1073,9 +1088,8 @@
 /*
  * allow a user to call a potion, scroll, or ring something
  */
-nameitem(item, mark)
-struct linked_list *item;
-bool mark;
+void
+nameitem(struct linked_list *item, bool mark)
 {
     register struct object *obj;
     register char **guess = NULL, *elsewise = NULL;
@@ -1161,7 +1175,8 @@
 
 /* Name a monster */
 
-namemonst()
+void
+namemonst(void)
 {
     register struct thing *tp;
     struct linked_list *item;
@@ -1206,7 +1221,8 @@
     msg("There is no monster there to name.");
 }
 
-count_gold()
+void
+count_gold(void)
 {
 	if (player.t_action != C_COUNT) {
 	    msg("You take a break to count your money...");
--- a/arogue7/daemon.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/daemon.c	Wed Mar 02 21:28:34 2016 -0500
@@ -44,7 +44,7 @@
  *	Find an empty slot in the daemon list
  */
 struct delayed_action *
-d_slot()
+d_slot(void)
 {
 	reg int i;
 	reg struct delayed_action *dev;
@@ -60,7 +60,7 @@
  *	Find an empty slot in the fuses list
  */
 struct delayed_action *
-f_slot()
+f_slot(void)
 {
 	reg int i;
 	reg struct delayed_action *dev;
@@ -78,8 +78,7 @@
  *	Find a particular slot in the table
  */
 struct delayed_action *
-find_slot(func)
-reg int (*func)();
+find_slot(int (*func)())
 {
 	reg int i;
 	reg struct delayed_action *dev;
@@ -95,8 +94,8 @@
  * start_daemon:
  *	Start a daemon, takes a function.
  */
-start_daemon(func, arg, type)
-reg int arg, type, (*func)();
+void
+start_daemon(int (*func)(), int arg, int type)
 {
 	reg struct delayed_action *dev;
 
@@ -115,8 +114,8 @@
  * kill_daemon:
  *	Remove a daemon from the list
  */
-kill_daemon(func)
-reg int (*func)();
+void
+kill_daemon(int (*func)())
 {
 	reg struct delayed_action *dev;
 	reg int i;
@@ -142,8 +141,8 @@
  *	Run all the daemons that are active with the current flag,
  *	passing the argument to the function.
  */
-do_daemons(flag)
-reg int flag;
+void
+do_daemons(int flag)
 {
 	reg struct delayed_action *dev;
 
@@ -163,8 +162,8 @@
  * fuse:
  *	Start a fuse to go off in a certain number of turns
  */
-fuse(func, arg, time, type)
-reg int (*func)(), arg, time, type;
+void
+fuse(int (*func)(), int arg, int time, int type)
 {
 	reg struct delayed_action *wire;
 
@@ -183,8 +182,8 @@
  * lengthen:
  *	Increase the time until a fuse goes off
  */
-lengthen(func, xtime)
-reg int (*func)(), xtime;
+void
+lengthen(int (*func)(), int xtime)
 {
 	reg struct delayed_action *wire;
 
@@ -198,8 +197,8 @@
  * extinguish:
  *	Put out a fuse
  */
-extinguish(func)
-reg int (*func)();
+void
+extinguish(int (*func)())
 {
 	reg struct delayed_action *wire;
 
@@ -217,8 +216,8 @@
  * do_fuses:
  *	Decrement counters and start needed fuses
  */
-do_fuses(flag)
-reg int flag;
+void
+do_fuses(int flag)
 {
 	reg struct delayed_action *wire;
 
@@ -245,8 +244,9 @@
  * activity:
  *	Show wizard number of demaons and memory blocks used
  */
-activity()
+void
+activity(void)
 {
 	msg("Daemons = %d : Fuses = %d : Memory Items = %d : Memory Used = %d",
-	    demoncnt,fusecnt,total,md_memused(0));
+	    demoncnt,fusecnt,total,md_memused());
 }
--- a/arogue7/daemons.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/daemons.c	Wed Mar 02 21:28:34 2016 -0500
@@ -25,8 +25,8 @@
  *	A healing daemon that restors hit points after rest
  */
 
-doctor(tp)
-register struct thing *tp;
+void
+doctor(struct thing *tp)
 {
     register int ohp;
     register int limit, new_points;
@@ -108,7 +108,8 @@
  *	Called when it is time to start rolling for wandering monsters
  */
 
-swander()
+void
+swander(void)
 {
     start_daemon(rollwand, 0, BEFORE);
 }
@@ -120,7 +121,8 @@
 
 int between = 0;
 
-rollwand()
+void
+rollwand(void)
 {
 
     if (++between >= 4)
@@ -140,7 +142,8 @@
 /*
  * this function is a daemon called each turn when the character is a thief
  */
-trap_look()
+void
+trap_look(void)
 {
     if (rnd(100) < (2*dex_compute() + 5*pstats.s_lvl))
 	search(TRUE, FALSE);
@@ -151,7 +154,8 @@
  *	Release the poor player from his confusion
  */
 
-unconfuse()
+void
+unconfuse(void)
 {
     turn_off(player, ISHUH);
     msg("You feel less confused now");
@@ -162,7 +166,8 @@
  * unsee:
  *	He lost his see invisible power
  */
-unsee()
+void
+unsee(void)
 {
     if (!ISWEARING(R_SEEINVIS)) {
 	turn_off(player, CANSEE);
@@ -175,7 +180,8 @@
  *	Remove to-hit handicap from player
  */
 
-unstink()
+void
+unstink(void)
 {
     turn_off(player, HASSTINK);
 }
@@ -185,7 +191,8 @@
  *	Player is no longer immune to confusion
  */
 
-unclrhead()
+void
+unclrhead(void)
 {
     turn_off(player, ISCLEAR);
     msg("The blue aura about your head fades away.");
@@ -196,7 +203,8 @@
  *	Player can no longer walk through walls
  */
 
-unphase()
+void
+unphase(void)
 {
     turn_off(player, CANINWALL);
     msg("Your dizzy feeling leaves you.");
@@ -208,7 +216,8 @@
  *	Player can no longer fly
  */
 
-land()
+void
+land(void)
 {
     turn_off(player, ISFLY);
     msg("You regain your normal weight");
@@ -220,7 +229,8 @@
  *	He gets his sight back
  */
 
-sight()
+void
+sight(void)
 {
     if (on(player, ISBLIND))
     {
@@ -237,8 +247,7 @@
  */
 
 void
-res_strength(howmuch)
-int howmuch;
+res_strength(int howmuch)
 {
 
     /* If lost_str is non-zero, restore that amount of strength,
@@ -262,7 +271,8 @@
  *	End the hasting
  */
 
-nohaste()
+void
+nohaste(void)
 {
     turn_off(player, ISHASTE);
     msg("You feel yourself slowing down.");
@@ -273,7 +283,8 @@
  *	End the slowing
  */
 
-noslow()
+void
+noslow(void)
 {
     turn_off(player, ISSLOW);
     msg("You feel yourself speeding up.");
@@ -284,7 +295,8 @@
  *	If this gets called, the player has suffocated
  */
 
-suffocate()
+void
+suffocate(void)
 {
     death(D_SUFFOCATION);
 }
@@ -292,7 +304,8 @@
 /*
  * digest the hero's food
  */
-stomach()
+void
+stomach(void)
 {
     register int oldfood, old_hunger, food_use, i;
 
@@ -368,7 +381,8 @@
 /*
  * daemon for curing the diseased
  */
-cure_disease()
+void
+cure_disease(void)
 {
     turn_off(player, HASDISEASE);
     if (off (player, HASINFEST))
@@ -380,7 +394,8 @@
  * appear:
  *	Become visible again
  */
-appear()
+void
+appear(void)
 {
     turn_off(player, ISINVIS);
     PLAYER = VPLAYER;
@@ -391,7 +406,8 @@
  * dust_appear:
  *	dust of disappearance wears off
  */
-dust_appear()
+void
+dust_appear(void)
 {
     turn_off(player, ISINVIS);
     PLAYER = VPLAYER;
@@ -402,7 +418,8 @@
  * unchoke:
  * 	the effects of "dust of choking and sneezing" wear off
  */
-unchoke()
+void
+unchoke(void)
 {
     if (!find_slot(unconfuse))
 	turn_off(player, ISHUH);
@@ -414,8 +431,8 @@
 /*
  * make some potion for the guy in the Alchemy jug
  */
-alchemy(obj)
-register struct object *obj;
+void
+alchemy(struct object *obj)
 {
     register struct object *tobj = NULL;
     register struct linked_list *item;
@@ -464,7 +481,8 @@
  * otto's irresistable dance wears off 
  */
 
-undance()
+void
+undance(void)
 {
     turn_off(player, ISDANCE);
     msg ("Your feet take a break.....whew!");
@@ -473,14 +491,16 @@
 /* 
  * if he has our favorite necklace of strangulation then take damage every turn
  */
-strangle()
+void
+strangle(void)
 {
      if ((pstats.s_hpt -= 6) <= 0) death(D_STRANGLE);
 }
 /*
  * if he has on the gauntlets of fumbling he might drop his weapon each turn
  */
-fumble()
+void
+fumble(void)
 {
     register struct linked_list *item;
 
@@ -519,21 +539,24 @@
 /*
  * this is called each turn the hero has the ring of searching on
  */
-ring_search()
+void
+ring_search(void)
 {
     search(FALSE, FALSE);
 }
 /*
  * this is called each turn the hero has the ring of teleportation on
  */
-ring_teleport()
+void
+ring_teleport(void)
 {
     if (rnd(100) < 2) teleport();
 }
 /* 
  * this is called to charge up the quill of Nagrom
  */
-quill_charge()
+void
+quill_charge(void)
 {
     register struct object *tobj = NULL;
     register struct linked_list *item;
@@ -556,7 +579,8 @@
 /*
  * take the skills away gained (or lost) by the potion of skills
  */
-unskill()
+void
+unskill(void)
 {
     if (pstats.s_lvladj != 0) {
 	pstats.s_lvl -= pstats.s_lvladj;
@@ -569,8 +593,8 @@
  * charge up the cloak of Emori
  */
 
-cloak_charge(obj)
-register struct object *obj;
+void
+cloak_charge(struct object *obj)
 {
 	if (obj->o_charges < 1)
 		obj->o_charges = 1;
@@ -580,7 +604,8 @@
  * nofire:
  *	He lost his fire resistance
  */
-nofire()
+void
+nofire(void)
 {
     if (!ISWEARING(R_FIRE)) {
 	turn_off(player, NOFIRE);
@@ -592,7 +617,8 @@
  * nocold:
  *	He lost his cold resistance
  */
-nocold()
+void
+nocold(void)
 {
     if (!ISWEARING(R_WARMTH)) {
 	turn_off(player, NOCOLD);
@@ -604,7 +630,8 @@
  * nobolt:
  *	He lost his protection from lightning
  */
-nobolt()
+void
+nobolt(void)
 {
     turn_off(player, NOBOLT);
     msg("Your skin looses its bluish tint");
@@ -613,8 +640,8 @@
  * eat_gold:
  *	an artifact eats gold 
  */
-eat_gold(obj)
-register struct object *obj;
+void
+eat_gold(struct object *obj)
 {
     if (purse == 1)
 	msg("%s demand you find more gold", inv_name(obj, FALSE));
@@ -628,36 +655,39 @@
 /*
  * give the hero back some spell points
  */
-spell_recovery()
+void
+spell_recovery(void)
 {
     int time;
 
     time = SPELLTIME - max(17-pstats.s_intel, 0);
     time = max(time, 5);
     if (spell_power > 0) spell_power--;
-    fuse(spell_recovery, NULL, time, AFTER);
+    fuse(spell_recovery, 0, time, AFTER);
 }
 /*
  * give the hero back some prayer points
  */
-prayer_recovery()
+void
+prayer_recovery(void)
 {
     int time;
 
     time = SPELLTIME - max(17-pstats.s_wisdom, 0);
     time = max(time, 5);
     if (pray_time > 0) pray_time--;
-    fuse(prayer_recovery, NULL, time, AFTER);
+    fuse(prayer_recovery, 0, time, AFTER);
 }
 /*
  * give the hero back some chant points
  */
-chant_recovery()
+void
+chant_recovery(void)
 {
     int time;
 
     time = SPELLTIME - max(17-pstats.s_wisdom, 0);
     time = max(time, 5);
     if (chant_time > 0) chant_time--;
-    fuse(chant_recovery, NULL, time, AFTER);
+    fuse(chant_recovery, 0, time, AFTER);
 }
--- a/arogue7/eat.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/eat.c	Wed Mar 02 21:28:34 2016 -0500
@@ -20,7 +20,8 @@
  *	He wants to eat something, so let him try
  */
 
-eat()
+void
+eat(void)
 {
     register struct linked_list *item;
     int which;
--- a/arogue7/effects.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/effects.c	Wed Mar 02 21:28:34 2016 -0500
@@ -21,11 +21,9 @@
  *	Check for effects of one thing hitting another thing.  Return
  *	the reason code if the defender is killed.  Otherwise return 0.
  */
-effect(att, def, weap, thrown, see_att, see_def)
-register struct thing *att, *def;
-struct object *weap;
-bool thrown;
-register bool see_att, see_def;
+int
+effect(struct thing *att, struct thing *def, struct object *weap, bool thrown, 
+       bool see_att, bool see_def)
 {
     register bool att_player, def_player;
     char attname[LINELEN+1], defname[LINELEN+1];
--- a/arogue7/encumb.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/encumb.c	Wed Mar 02 21:28:34 2016 -0500
@@ -20,13 +20,14 @@
 #include "curses.h"
 #include "rogue.h"
 
+int packweight(struct thing *tp);
+
 /*
  * updpack:
  *	Update his pack weight and adjust fooduse accordingly
  */
-updpack(getmax, tp)
-int getmax;
-struct thing *tp;
+void
+updpack(int getmax, struct thing *tp)
 {
 
 	reg int topcarry, curcarry;
@@ -55,8 +56,8 @@
  * packweight:
  *	Get the total weight of the hero's pack
  */
-packweight(tp)
-register struct thing *tp;
+int
+packweight(struct thing *tp)
 {
 	reg struct object *obj;
 	reg struct linked_list *pc;
@@ -92,8 +93,8 @@
  * itemweight:
  *	Get the weight of an object
  */
-itemweight(wh)
-reg struct object *wh;
+int
+itemweight(struct object *wh)
 {
 	reg int weight;
 	reg int ac;
@@ -123,8 +124,8 @@
  * playenc:
  *	Get hero's carrying ability above norm
  */
-playenc(tp)
-register struct thing *tp;
+int
+playenc(struct thing *tp)
 {
 	register int strength;
 
@@ -139,8 +140,8 @@
  * totalenc:
  *	Get total weight that the hero can carry
  */
-totalenc(tp)
-register struct thing *tp;
+int
+totalenc(struct thing *tp)
 {
 	reg int wtotal;
 
@@ -162,11 +163,11 @@
  *	See if the hero can carry his pack
  */
 
-wghtchk()
+void
+wghtchk(void)
 {
 	reg int dropchk, err = TRUE;
 	reg char ch;
-	int wghtchk();
 
 	inwhgt = TRUE;
 	if (pstats.s_pack > pstats.s_carry) {
@@ -201,7 +202,8 @@
  *			-1 hit for heavy pack weight
  */
 
-hitweight()
+int
+hitweight(void)
 {
 	return(2 - foodlev);
 }
--- a/arogue7/fight.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/fight.c	Wed Mar 02 21:28:34 2016 -0500
@@ -20,9 +20,18 @@
 #include "curses.h"
 #include <ctype.h>
 #include <string.h>
+#include <stdlib.h>
 #include "rogue.h"
 
-int hit(struct object *weapon, bool see_att, bool see_def, char *er, char *ee, bool back_stab, bool thrown, bool short_msg);
+bool roll_em(struct thing *att_er, struct thing *def_er, struct object *weap, 
+        bool hurl, struct object *cur_weapon, bool back_stab);
+void hit(struct object *weapon, bool see_att, bool see_def, char *er, char *ee, 
+    bool back_stab, bool thrown, bool short_msg);
+void miss(struct object *weapon, bool see_att, bool see_def, char *er, char *ee,
+     bool thrown, bool short_msg);
+int add_dam(short str);
+int hung_dam(void);
+
 #define CONF_DAMAGE	-1
 #define PARAL_DAMAGE	-2
 #define DEST_DAMAGE	-3
@@ -31,9 +40,8 @@
 /*
  * returns true if player has a any chance to hit the monster
  */
-player_can_hit(tp, weap)
-register struct thing *tp;
-register struct object *weap;
+bool
+player_can_hit(struct thing *tp, struct object *weap)
 {
     if (off(*tp, CMAGICHIT) && off(*tp, BMAGICHIT) && off(*tp, MAGICHIT))
 	return(TRUE);
@@ -61,10 +69,8 @@
  *	The player attacks the monster.
  */
 
-fight(mp, weap, thrown)
-register coord *mp;
-struct object *weap;
-bool thrown;
+bool
+fight(coord *mp, struct object *weap, bool thrown)
 {
     register struct thing *tp;
     register struct linked_list *item;
@@ -225,10 +231,8 @@
  *	The monster attacks the player
  */
 
-attack(mp, weapon, thrown)
-register struct thing *mp;
-register struct object *weapon;
-bool thrown;
+bool
+attack(struct thing *mp, struct object *weapon, bool thrown)
 {
     register char *mname;
     register bool see_att, did_hit = FALSE;
@@ -301,9 +305,8 @@
  *	returns true if the swing hits
  */
 
-swing(class, at_lvl, op_arm, wplus)
-short class;
-int at_lvl, op_arm, wplus;
+bool
+swing(short class, int at_lvl, int op_arm, int wplus)
 {
     register int res = rnd(20)+1;
     register int need;
@@ -323,12 +326,9 @@
  *	Roll several attacks
  */
 
-roll_em(att_er, def_er, weap, hurl, cur_weapon, back_stab)
-struct thing *att_er, *def_er;
-struct object *weap;
-bool hurl;
-struct object *cur_weapon;
-bool back_stab;
+bool
+roll_em(struct thing *att_er, struct thing *def_er, struct object *weap, 
+        bool hurl, struct object *cur_weapon, bool back_stab)
 {
     register struct stats *att, *def;
     register char *cp = NULL;
@@ -700,9 +700,7 @@
  */
 
 char *
-prname(who, upper)
-register char *who;
-bool upper;
+prname(char *who, bool upper)
 {
     static char tbuf[LINELEN];
 
@@ -727,11 +725,9 @@
  *	Print a message to indicate a succesful hit
  */
 
-hit(weapon, see_att, see_def, er, ee, back_stab, thrown, short_msg)
-register struct object *weapon;
-bool see_att, see_def;
-register char *er, *ee;
-bool back_stab, thrown, short_msg;
+void
+hit(struct object *weapon, bool see_att, bool see_def, char *er, char *ee, 
+    bool back_stab, bool thrown, bool short_msg)
 {
     register char *s = "";
     char          att_name[LINELEN],	/* Name of attacker */
@@ -791,11 +787,9 @@
  *	Print a message to indicate a poor swing
  */
 
-miss(weapon, see_att, see_def, er, ee, thrown, short_msg)
-register struct object *weapon;
-bool see_att, see_def;
-register char *er, *ee;
-bool thrown, short_msg;
+void
+miss(struct object *weapon, bool see_att, bool see_def, char *er, char *ee, 
+     bool thrown, bool short_msg)
 {
     register char *s = "";
     char
@@ -836,8 +830,8 @@
  *	compute to-hit bonus for dexterity
  */
 
-dext_plus(dexterity)
-register int dexterity;
+int
+dext_plus(int dexterity)
 {
 	return (dexterity > 10 ? (dexterity-13)/3 : (dexterity-10)/3);
 }
@@ -848,8 +842,8 @@
  *	compute armor class bonus for dexterity
  */
 
-dext_prot(dexterity)
-register int dexterity;
+int
+dext_prot(int dexterity)
 {
     return ((dexterity-10)/2);
 }
@@ -858,8 +852,8 @@
  *	compute bonus/penalties for strength on the "to hit" roll
  */
 
-str_plus(str)
-register short str;
+int
+str_plus(short str)
 {
     return((str-10)/3);
 }
@@ -869,8 +863,8 @@
  *	compute additional damage done for exceptionally high or low strength
  */
 
-add_dam(str)
-register short str;
+int
+add_dam(short str)
 {
     return((str-9)/2);
 }
@@ -879,7 +873,8 @@
  * hung_dam:
  *	Calculate damage depending on players hungry state
  */
-hung_dam()
+int
+hung_dam(void)
 {
 	reg int howmuch;
 
@@ -897,12 +892,11 @@
 /*
  * thunk:
  *	A missile hits a monster
+ *	tp: defender
  */
 
-thunk(weap, tp, mname)
-register struct object *weap;
-register struct thing *tp;	/* Defender */
-register char *mname;
+void
+thunk(struct object *weap, struct thing *tp, char *mname)
 {
     char *def_name;	/* Name of defender */
 
@@ -924,10 +918,8 @@
  *	 A missile from a monster hits the player
  */
 
-m_thunk(weap, tp, mname)
-register struct object *weap;
-register struct thing *tp;
-register char *mname;
+void
+m_thunk(struct object *weap, struct thing *tp, char *mname)
 {
     char *att_name;	/* Name of attacker */
 
@@ -947,12 +939,11 @@
 /*
  * bounce:
  *	A missile misses a monster
+ *	tp: defender
  */
 
-bounce(weap, tp, mname)
-register struct object *weap;
-register struct thing *tp;	/* Defender */
-register char *mname;
+void
+bounce(struct object *weap, struct thing *tp, char *mname)
 {
     char *def_name;	/* Name of defender */
 
@@ -974,10 +965,8 @@
  *	A missle from a monster misses the player
  */
 
-m_bounce(weap, tp, mname)
-register struct object *weap;
-register struct thing *tp;
-register char *mname;
+void
+m_bounce(struct object *weap, struct thing *tp, char *mname)
 {
     char *att_name;	/* Name of attacker */
 
@@ -1001,8 +990,8 @@
  *	Returns true if an object radiates magic
  */
 
-is_magic(obj)
-register struct object *obj;
+bool
+is_magic(struct object *obj)
 {
     switch (obj->o_type)
     {
@@ -1028,9 +1017,8 @@
 
 int chance = 0;/* cumulative chance for goodies to loose it */
 
-killed(item, pr, points, treasure)
-register struct linked_list *item;
-bool pr, points, treasure;
+void
+killed(struct linked_list *item, bool pr, bool points, bool treasure)
 {
     register struct thing *tp, *mp;
     register struct linked_list *pitem, *nexti, *mitem;
@@ -1137,9 +1125,7 @@
  */
 
 struct linked_list *
-wield_weap(thrown, mp)
-struct object *thrown;
-struct thing *mp;
+wield_weap(struct object *thrown, struct thing *mp)
 {
     int look_for,	/* The projectile weapon we are looking for */
 	new_rate,	/* The rating of a prospective weapon */
@@ -1220,8 +1206,9 @@
 
     return(candidate);
 }
-explode(tp)
-register struct thing *tp;
+
+void
+explode(struct thing *tp)
 {
 
     register int x,y, damage;
@@ -1275,11 +1262,8 @@
  *	Called when one monster attacks another monster.
  */
 
-skirmish(attacker, mp, weap, thrown)
-register struct thing *attacker;
-register coord *mp;
-struct object *weap;
-bool thrown;
+bool
+skirmish(struct thing *attacker, coord *mp, struct object *weap, bool thrown)
 {
     register struct thing *defender;
     register struct linked_list *item;
--- a/arogue7/init.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/init.c	Wed Mar 02 21:28:34 2016 -0500
@@ -117,10 +117,8 @@
  * make sure all the percentages specified in the tables add up to the
  * right amounts
  */
-badcheck(name, magic, bound)
-char *name;
-register struct magic_item *magic;
-register int bound;
+void
+badcheck(char *name, struct magic_item *magic, int bound)
 {
     register struct magic_item *end;
 
@@ -140,7 +138,8 @@
  *	Initialize the potion color scheme for this time
  */
 
-init_colors()
+void
+init_colors(void)
 {
     register int i, j;
 
@@ -166,7 +165,8 @@
  * do any initialization for food
  */
 
-init_foods()
+void
+init_foods(void)
 {
     register int i;
 
@@ -182,7 +182,8 @@
  *	Initialize the construction materials for wands and staffs
  */
 
-init_materials()
+void
+init_materials(void)
 {
     register int i, j;
     register char *str;
@@ -232,7 +233,8 @@
  * do any initialization for miscellaneous magic
  */
 
-init_misc()
+void
+init_misc(void)
 {
     register int i;
 
@@ -250,7 +252,8 @@
  *	Generate the names of the various scrolls
  */
 
-init_names()
+void
+init_names(void)
 {
     register int nsyl;
     register char *cp, *sp;
@@ -287,7 +290,8 @@
  *	roll up the rogue
  */
 
-init_player()
+void
+init_player(void)
 {
     int stat_total, round, minimum, maximum, ch, i, j;
     short do_escape, *our_stats[NUMABILITIES-1];
@@ -587,7 +591,8 @@
  *	Initialize the ring stone setting scheme for this time
  */
 
-init_stones()
+void
+init_stones(void)
 {
     register int i, j;
 
@@ -613,7 +618,8 @@
  * init_things
  *	Initialize the probabilities for types of things
  */
-init_things()
+void
+init_things(void)
 {
     register struct magic_item *mp;
 
--- a/arogue7/io.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/io.c	Wed Mar 02 21:28:34 2016 -0500
@@ -30,7 +30,10 @@
 static char msgbuf[BUFSIZ];
 static int newpos = 0;
 
+void doadd(char *fmt, va_list ap);
+
 /*VARARGS1*/
+void
 msg(char *fmt, ...)
 {
     va_list ap;
@@ -58,6 +61,7 @@
 /*
  * add things to the current message
  */
+void
 addmsg(char *fmt, ...)
 {
     va_list ap;
@@ -71,7 +75,8 @@
  * Display a new msg (giving him a chance to see the previous one if it
  * is up there with the --More--)
  */
-endmsg()
+void
+endmsg(void)
 {
     /* Needed to track where we are for 5.0 (PC) curses */
     register int x, y;
@@ -111,6 +116,7 @@
     draw(msgw);
 }
 
+void
 doadd(char *fmt, va_list ap)
 {
 
@@ -127,9 +133,8 @@
  *	flgptr will be NULL if we don't know what the monster is yet!
  */
 
-step_ok(y, x, can_on_monst, flgptr)
-register int y, x, can_on_monst;
-register struct thing *flgptr;
+bool
+step_ok(int y, int x, int can_on_monst, struct thing *flgptr)
 {
     /* can_on_monst = MONSTOK if all we care about are physical obstacles */
     register struct linked_list *item;
@@ -188,7 +193,8 @@
  *	returns true if it is ok for type to shoot over ch
  */
 
-shoot_ok(ch)
+bool
+shoot_ok(char ch)
 {
     switch (ch)
     {
@@ -209,7 +215,8 @@
  *	getchar.
  */
 
-readchar()
+int
+readchar(void)
 {
     int ch;
 
@@ -227,10 +234,11 @@
 /*
  * status:
  *	Display the important stats line.  Keep the cursor where it was.
+ *	display: if TRUE, display unconditionally
  */
 
-status(display)
-bool display;	/* is TRUE, display unconditionally */
+void
+status(bool display)
 {
     register struct stats *stat_ptr, *max_ptr;
     register int oy, ox, temp;
@@ -358,8 +366,8 @@
  * wait_for
  *	Sit around until the guy types the right key
  */
-wait_for(ch)
-register char ch;
+void
+wait_for(char ch)
 {
     register char c;
 
@@ -383,10 +391,9 @@
  *	typed and then redraw the starting screen.
  */
 
-over_win(oldwin, newin, maxy, maxx, cursory, cursorx, redraw)
-WINDOW *oldwin, *newin;
-int maxy, maxx, cursory, cursorx;
-char redraw;
+void
+over_win(WINDOW *oldwin, WINDOW *newin, int maxy, int maxx, int cursory, 
+         int cursorx, char redraw)
 {
     static char blanks[LINELEN+1];
     register int line, i;
@@ -436,9 +443,8 @@
  *	function used to display a window and wait before returning
  */
 
-show_win(scr, message)
-register WINDOW *scr;
-char *message;
+void
+show_win(WINDOW *scr, char *message)
 {
     mvwaddstr(scr, 0, 0, message);
     touchwin(scr);
@@ -453,9 +459,8 @@
  * dbotline:
  *	Displays message on bottom line and waits for a space to return
  */
-dbotline(scr,message)
-WINDOW *scr;
-char *message;
+void
+dbotline(WINDOW *scr, char *message)
 {
 	mvwaddstr(scr,lines-1,0,message);
 	draw(scr);
@@ -467,8 +472,8 @@
  * restscr:
  *	Restores the screen to the terminal
  */
-restscr(scr)
-WINDOW *scr;
+void
+restscr(WINDOW *scr)
 {
 	clearok(scr,TRUE);
 	touchwin(scr);
@@ -481,10 +486,7 @@
  */
 
 unsigned long
-netread(error, size, stream)
-int *error;
-int size;
-FILE *stream;
+netread(int *error, int size, FILE *stream)
 {
     unsigned long result = 0L,	/* What we read in */
 		  partial;	/* Partial value */
@@ -519,12 +521,13 @@
 /*
  * netwrite:
  *	Write out a byte, short, or long machine independently.
+ *	value: What to write
+ *	size: How much to write out
+ *	stream: Where to write it
  */
 
-netwrite(value, size, stream)
-unsigned long value;	/* What to write */
-int size;	/* How much to write out */
-FILE *stream;	/* Where to write it */
+int
+netwrite(unsigned long value, int size, FILE *stream)
 {
     int i;	/* Goes through value one byte at a time */
     char outc;	/* The next character to be written */
--- a/arogue7/list.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/list.c	Wed Mar 02 21:28:34 2016 -0500
@@ -21,13 +21,16 @@
 #include <stdlib.h>
 #include "rogue.h"
 
+void r_discard(struct linked_list *item);
+void t_discard(struct linked_list *item);
+
 /*
  * detach:
  *	Takes an item out of whatever linked list it might be in
  */
 
-_detach(list, item)
-register struct linked_list **list, *item;
+void
+_detach(struct linked_list **list, struct linked_list *item)
 {
     if (*list == item)
 	*list = next(item);
@@ -42,8 +45,8 @@
  *	add an item to the head of a list
  */
 
-_attach(list, item)
-register struct linked_list **list, *item;
+void
+_attach(struct linked_list **list, struct linked_list *item)
 {
     if (*list != NULL)
     {
@@ -65,8 +68,8 @@
  *	Throw the whole object list away
  */
 
-_o_free_list(ptr)
-register struct linked_list **ptr;
+void
+_o_free_list(struct linked_list **ptr)
 {
     register struct linked_list *item;
 
@@ -83,8 +86,8 @@
  *	free up an item and its object(and maybe contents)
  */
 
-o_discard(item)
-register struct linked_list *item;
+void
+o_discard(struct linked_list *item)
 {
     register struct object *obj;
 
@@ -101,8 +104,8 @@
  *	Throw the whole list of room exits away
  */
 
-_r_free_list(ptr)
-register struct linked_list **ptr;
+void
+_r_free_list(struct linked_list **ptr)
 {
     register struct linked_list *item;
 
@@ -119,8 +122,8 @@
  *	free up an item and its room
  */
 
-r_discard(item)
-register struct linked_list *item;
+void
+r_discard(struct linked_list *item)
 {
     total -= 2;
     FREE(DOORPTR(item));
@@ -132,8 +135,8 @@
  *	Throw the whole thing list away
  */
 
-_t_free_list(ptr)
-register struct linked_list **ptr;
+void
+_t_free_list(struct linked_list **ptr)
 {
     register struct linked_list *item;
 
@@ -150,8 +153,8 @@
  *	free up an item and its thing
  */
 
-t_discard(item)
-register struct linked_list *item;
+void
+t_discard(struct linked_list *item)
 {
     register struct thing *tp;
 
@@ -167,8 +170,8 @@
  *	get rid of an item structure -- don't worry about contents
  */
 
-destroy_item(item)
-register struct linked_list *item;
+void
+destroy_item(struct linked_list *item)
 {
     total--;
     FREE(item);
@@ -180,8 +183,7 @@
  */
 
 struct linked_list *
-new_item(size)
-int size;
+new_item(int size)
 {
     register struct linked_list *item;
 
@@ -199,7 +201,7 @@
  */
 
 struct linked_list *
-creat_item()
+creat_item(void)
 {
     register struct linked_list *item;
 
@@ -210,8 +212,7 @@
 }
 
 char *
-new(size)
-int size;
+new(int size)
 {
     register char *space = ALLOC(size);
     static char errbuf[LINELEN];
--- a/arogue7/main.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/main.c	Wed Mar 02 21:28:34 2016 -0500
@@ -32,10 +32,19 @@
 #endif
 
 void open_records(void);
+bool too_much(void);
+bool author(void);
+void chmsg(char *fmt, int arg);
+#ifdef MAXPROCESSES
+int loadav(void);
+#endif
+#ifdef MAXUSERS
+int ucount(void);
+#endif
+bool holiday(void);
 
-main(argc, argv, envp)
-char **argv;
-char **envp;
+int
+main(int argc, char *argv[], char *envp[])
 {
     register char *env;
     int lowtime;
@@ -419,8 +428,7 @@
  */
 
 void
-endit(sig)
-int sig;
+endit(int sig)
 {
     fatal("Ok, if you want to exit that badly, I'll have to allow it\n");
 }
@@ -430,8 +438,8 @@
  *	Exit the program, printing a message.
  */
 
-fatal(s)
-char *s;
+void
+fatal(char *s)
 {
     clear();
     move(lines-2, 0);
@@ -449,8 +457,8 @@
  * rnd:
  *	Pick a very random number.
  */
-rnd(range)
-register int range;
+int
+rnd(int range)
 {
     return(range <= 0 ? 0 : md_rand() % range);
 }
@@ -460,8 +468,8 @@
  *	roll a number of dice
  */
 
-roll(number, sides)
-register int number, sides;
+int
+roll(int number, int sides)
 {
     register int dtotal = 0;
 
@@ -474,8 +482,7 @@
  * handle stop and start signals
  */
 void
-tstp(sig)
-int sig;
+tstp(int sig)
 {
     mvcur(0, cols - 1, lines - 1, 0);
     endwin();
@@ -493,7 +500,8 @@
 }
 # endif
 
-setup()
+void
+setup(void)
 {
 #ifdef CHECKTIME
     int  checkout();
@@ -563,7 +571,8 @@
  * refreshing things and looking at the proper times.
  */
 
-playit()
+void
+playit(void)
 {
     register char *opts;
 
@@ -585,7 +594,8 @@
 /*
  * see if the system is being used too much for this game
  */
-too_much()
+bool
+too_much(void)
 {
 #if MAXPROCESSES
 	if (loadav() > MAXPROCESSES)
@@ -602,7 +612,8 @@
  * author:
  *	See if a user is an author of the program
  */
-author()
+bool
+author(void)
 {
 	switch (md_getuid()) {
 #if AUTHOR
@@ -653,9 +664,8 @@
  * checkout()'s version of msg.  If we are in the middle of a shell, do a
  * printf instead of a msg to avoid the refresh.
  */
-chmsg(fmt, arg)
-char *fmt;
-int arg;
+void
+chmsg(char *fmt, int arg)
 {
 	if (in_shell) {
 		printf(fmt, arg);
@@ -671,7 +681,8 @@
 
 #include <fcntl.h>
 
-loadav()
+int
+loadav(void)
 {
 	char *sarcmd = "sar -v | cut -c17-20 | tail -2";
 	char *gettycmd = "grep getty /etc/inittab | wc -l";
@@ -724,7 +735,9 @@
 #include <sys/types.h>
 #include <utmp.h>
 struct utmp buf;
-ucount()
+
+int
+ucount(void)
 {
 	reg struct utmp *up;
 	reg FILE *utmp;
@@ -751,7 +764,8 @@
  * holiday:
  *	Returns TRUE when it is a good time to play rogue
  */
-holiday()
+bool
+holiday(void)
 {
 #ifdef CHECKTIME
 	long now;
--- a/arogue7/maze.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/maze.c	Wed Mar 02 21:28:34 2016 -0500
@@ -30,15 +30,20 @@
 		*bits;
 static int	maze_lines, 
 		maze_cols;
-char		*moffset(), 
-		*foffset();
+
+void draw_maze(void);
+int findcells(int y, int x);
+char *foffset(int y, int x);
+char *moffset(int y, int x);
+void rmwall(int newy, int newx, int oldy, int oldx);
 
 
 /*
  * crankout:
  *	Does actual drawing of maze to window
  */
-crankout()
+void
+crankout(void)
 {
 	reg int x, y;
 
@@ -71,7 +76,8 @@
  * domaze:
  *	Draw the maze on this level.
  */
-do_maze()
+void
+do_maze(void)
 {
 	reg int least;
 	reg struct room *rp;
@@ -95,7 +101,7 @@
 	/*
 	 * add some gold to make it worth looking for 
 	 */
-	item = spec_item(GOLD, NULL, NULL, NULL);
+	item = spec_item(GOLD, 0, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_count *= (rnd(5) + 5);		/* add in one large hunk */
 	attach(lvl_obj, item);
@@ -108,7 +114,7 @@
 	/*
 	 * add in some food to make sure he has enough
 	 */
-	item = spec_item(FOOD, NULL, NULL, NULL);
+	item = spec_item(FOOD, 0, 0, 0);
 	obj = OBJPTR(item);
 	attach(lvl_obj, item);
 	do {
@@ -133,7 +139,8 @@
  * draw_maze:
  *	Generate and draw the maze on the screen
  */
-draw_maze()
+void
+draw_maze(void)
 {
 	reg int i, j, more;
 	reg char *ptr;
@@ -169,8 +176,8 @@
  * findcells:
  *	Figure out cells to open up 
  */
-findcells(y,x)
-reg int x, y;
+int
+findcells(int y, int x)
 {
 	reg int rtpos, i;
 
@@ -221,8 +228,7 @@
  *	Calculate memory address for frontier
  */
 char *
-foffset(y, x)
-int y, x;
+foffset(int y, int x)
 {
 
 	return (frontier + (y * maze_cols) + x);
@@ -236,8 +242,7 @@
  */
 
 bool
-maze_view(y, x)
-int y, x;
+maze_view(int y, int x)
 {
     register int start, goal, delta, ycheck, xcheck, absy, absx, see_radius;
     register bool row;
@@ -341,8 +346,7 @@
  *	Calculate memory address for bits
  */
 char *
-moffset(y, x)
-int y, x;
+moffset(int y, int x)
 {
 
 	return (bits + (y * (cols - 1)) + x);
@@ -355,8 +359,8 @@
  * rmwall:
  *	Removes appropriate walls from the maze
  */
-rmwall(newy, newx, oldy, oldx)
-int newy, newx, oldy, oldx;
+void
+rmwall(int newy, int newx, int oldy, int oldx)
 {
 	reg int xdif,ydif;
 	
--- a/arogue7/mdport.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/mdport.c	Wed Mar 02 21:28:34 2016 -0500
@@ -65,6 +65,7 @@
 #endif
 
 #include <stdio.h>
+#include <ctype.h>
 #include <string.h>
 #include <fcntl.h>
 #include <limits.h>
@@ -74,7 +75,7 @@
 #define MOD_MOVE(c) (toupper(c) )
 
 void
-md_init()
+md_init(void)
 {
 #ifdef __INTERIX
     char *term;
@@ -107,7 +108,7 @@
 static int md_standout_mode = 0;
 
 int
-md_raw_standout()
+md_raw_standout(void)
 {
 #ifdef _WIN32
     CONSOLE_SCREEN_BUFFER_INFO csbiInfo; 
@@ -130,7 +131,7 @@
 }
 
 int
-md_raw_standend()
+md_raw_standend(void)
 {
 #ifdef _WIN32
     CONSOLE_SCREEN_BUFFER_INFO csbiInfo; 
@@ -209,7 +210,7 @@
 
 
 int
-md_normaluser()
+md_normaluser(void)
 {
 #ifndef _WIN32
     setuid(getuid());
@@ -218,7 +219,7 @@
 }
 
 int
-md_getuid()
+md_getuid(void)
 {
 #ifndef _WIN32
     return( getuid() );
@@ -228,7 +229,7 @@
 }
 
 char *
-md_getusername()
+md_getusername(void)
 {
     static char login[80];
     char *l = NULL;
@@ -263,7 +264,7 @@
 }
 
 char *
-md_gethomedir()
+md_gethomedir(void)
 {
     static char homedir[PATH_MAX];
     char *h = NULL;
@@ -318,7 +319,7 @@
 }
 
 char *
-md_getshell()
+md_getshell(void)
 {
     static char shell[PATH_MAX];
     char *s = NULL;
@@ -346,7 +347,7 @@
 }
 
 int
-md_shellescape()
+md_shellescape(void)
 {
 #if (!defined(_WIN32) && !defined(__DJGPP__))
     int ret_status;
@@ -408,7 +409,7 @@
 }
 
 char *
-md_getroguedir()
+md_getroguedir(void)
 {
     static char path[1024];
     char *end,*home;
@@ -472,8 +473,7 @@
 }
 
 char *
-md_getpass(prompt)
-char *prompt;
+md_getpass(char *prompt)
 {
 #ifdef _WIN32
     static char password_buffer[9];
@@ -568,7 +568,7 @@
 }
 
 int
-md_rand()
+md_rand(void)
 {
 #ifdef _WIN32
     return(rand());
@@ -578,8 +578,7 @@
 }
 
 int
-md_srand(seed)
-register int seed;
+md_srand(int seed)
 {
 #ifdef _WIN32
     srand(seed);
@@ -589,7 +588,7 @@
 }
 
 long
-md_memused()
+md_memused(void)
 {
 #ifdef _WIN32
     MEMORYSTATUS stat;
@@ -603,7 +602,7 @@
 }
 
 char *
-md_gethostname()
+md_gethostname(void)
 {
     static char nodename[80];
     char *n = NULL;
@@ -625,7 +624,7 @@
 }
 
 int
-md_erasechar()
+md_erasechar(void)
 {
 #ifdef BSD
     return(_tty.sg_erase); /* process erase character */
@@ -637,7 +636,7 @@
 }
 
 int
-md_killchar()
+md_killchar(void)
 {
 #ifdef BSD
     return(_tty.sg_kill);
@@ -654,8 +653,7 @@
  */
 
 char *
-md_unctrl(ch)
-char ch;
+md_unctrl(char ch)
 {
 #if USG5_0
     extern char *_unctrl[];		/* Defined in curses library */
@@ -667,7 +665,7 @@
 }
 
 void
-md_flushinp()
+md_flushinp(void)
 {
 #ifdef BSD
     ioctl(0, TIOCFLUSH);
--- a/arogue7/misc.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/misc.c	Wed Mar 02 21:28:34 2016 -0500
@@ -15,6 +15,7 @@
 #include "curses.h"
 #include <stdlib.h>
 #include <ctype.h>
+#include <string.h>
 #include "rogue.h"
 #ifdef PC7300
 #include "menu.h"
@@ -29,8 +30,8 @@
  *	Change the player's class to the specified one.
  */
 
-changeclass(newclass)
-int newclass;
+void
+changeclass(int newclass)
 {
     if (newclass == player.t_ctype) {
 	msg("You feel more skillful.");
@@ -132,8 +133,8 @@
 /*
  * Use the relic that our monster is wielding.
  */
-m_use_relic(monster)
-register struct thing *monster;
+void
+m_use_relic(struct thing *monster)
 {
     register struct object *obj;
 
@@ -161,7 +162,7 @@
 	}
 	when EMORI_CLOAK:
 	    debug("stunning with Emori's cloak");
-	    do_zap(monster, obj, &monster->t_newpos, WS_PARALYZE, NULL);
+	    do_zap(monster, obj, &monster->t_newpos, WS_PARALYZE, 0);
 	    obj->o_charges = 0;
 
 	when ASMO_ROD: {
@@ -228,10 +229,11 @@
  
 /*
  * add something to the contents of something else
+ * bag: the holder of the items
+ * item: the item to put inside
  */
-put_contents(bag, item)
-register struct object *bag;		/* the holder of the items */
-register struct linked_list *item;	/* the item to put inside  */
+void
+put_contents(struct object *bag, struct linked_list *item)
 {
     register struct linked_list *titem;
     register struct object *tobj;
@@ -256,10 +258,10 @@
 
 /*
  * remove something from something else
+ * bag: the holder of the items
  */
-take_contents(bag, item)
-register struct object *bag;		/* the holder of the items */
-register struct linked_list *item;
+void
+take_contents(struct object *bag, struct linked_list *item)
 {
 
     if (bag->o_ac <= 0) {
@@ -273,8 +275,8 @@
 }
 
 
-do_bag(item)
-register struct linked_list *item;
+void
+do_bag(struct linked_list *item)
 {
 
     register struct linked_list *titem = NULL;
@@ -395,8 +397,9 @@
     }
 }
 
-do_panic(who)
-int who;	/* Kind of monster to panic (all if who is NULL) */
+/* who: Kind of monster to panic (all if who is NULL) */
+void
+do_panic(int who)
 {
     register int x,y;
     register struct linked_list *mon, *item;
@@ -460,8 +463,7 @@
  * print miscellaneous magic bonuses
  */
 char *
-misc_name(obj)
-register struct object *obj;
+misc_name(struct object *obj)
 {
     static char buf[LINELEN];
     char buf1[LINELEN];
@@ -523,7 +525,8 @@
     return buf;
 }
 
-use_emori()
+void
+use_emori(void)
 {
     char selection;	/* Cloak function */
     int state = 0;	/* Menu state */
@@ -633,8 +636,8 @@
 /*
  * try to write a scroll with the quill of Nagrom
  */
-use_quill(obj)
-struct object *obj;
+void
+use_quill(struct object *obj)
 {
     struct linked_list	*item;
     register int	i,
@@ -766,7 +769,7 @@
 #endif
 	/* Should we overlay? */
 	if (menu_overlay && MAXQUILL + 3 < lines / 2) {
-	    over_win(cw, hw, MAXQUILL + 5, maxlen + 3, 0, curlen, NULL);
+	    over_win(cw, hw, MAXQUILL + 5, maxlen + 3, 0, curlen, '\0');
 	}
 	else draw(hw);
     }
@@ -795,7 +798,7 @@
 	    /* Should we overlay? */
 	    if (menu_overlay && MAXQUILL + 3 < lines / 2) {
 		over_win(cw, hw, MAXQUILL + 5, maxlen + 3,
-			    0, curlen, NULL);
+			    0, curlen, '\0');
 	    }
 	    else draw(hw);
 
@@ -835,8 +838,8 @@
     }
 }
 
-use_mm(which)
-int which;
+void
+use_mm(int which)
 {
     register struct object *obj = NULL;
     register struct linked_list *item = NULL;
@@ -915,7 +918,7 @@
 	    when GERYON_HORN:
 		/* Chase close monsters away */
 		msg("The horn blasts a shrill tone.");
-		do_panic(NULL);
+		do_panic(0);
 	    when HEIL_ANKH:
 	    case YENDOR_AMULET:
 	    case STONEBONES_AMULET:
@@ -938,7 +941,7 @@
 		msg("The jug is empty");
 		break;
 	    }
-	    quaff (obj->o_ac, NULL, NULL, FALSE);
+	    quaff (obj->o_ac, 0, 0, FALSE);
 	    obj->o_ac = JUG_EMPTY;
 	    fuse (alchemy, obj, ALCHEMYTIME, AFTER);
 	    if (!(obj->o_flags & ISKNOW))
@@ -1008,7 +1011,7 @@
 		break;
 	    }
 	    obj->o_charges--;
-	    do_panic(NULL);
+	    do_panic(0);
 	/*
 	 * dust of disappearance makes the player invisible for a while
 	 */
@@ -1124,8 +1127,7 @@
  */
 
 int
-usage_time(item)
-struct linked_list *item;
+usage_time(struct linked_list *item)
 {
     register struct object *obj;
     register int units = -1;
--- a/arogue7/monsters.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/monsters.c	Wed Mar 02 21:28:34 2016 -0500
@@ -21,13 +21,14 @@
 #include "rogue.h"
 #include <ctype.h>
 #include <string.h>
+#include <stdlib.h>
 
 
 /*
  * Check_residue takes care of any effect of the monster 
  */
-check_residue(tp)
-register struct thing *tp;
+void
+check_residue(struct thing *tp)
 {
     /*
      * Take care of special abilities
@@ -71,13 +72,11 @@
 
 /*
  * Creat_mons creates the specified monster -- any if 0 
+ * person: Where to create next to
  */
 
 bool
-creat_mons(person, monster, report)
-struct thing *person;	/* Where to create next to */
-short monster;
-bool report;
+creat_mons(struct thing *person, short monster, bool report)
 {
     struct linked_list *nitem;
     register struct thing *tp;
@@ -132,9 +131,7 @@
  */
 
 void
-genmonsters(least, treas)
-register int least;
-bool treas;
+genmonsters(int least, bool treas)
 {
     reg int i;
     reg struct room *rp = &rooms[0];
@@ -180,8 +177,7 @@
  */
 
 short
-id_monst(monster)
-register char monster;
+id_monst(char monster)
 {
     register short result;
 
@@ -201,11 +197,8 @@
  *	Pick a new monster and add it to the list
  */
 
-new_monster(item, type, cp, max_monster)
-struct linked_list *item;
-short type;
-coord *cp;
-bool max_monster;
+void
+new_monster(struct linked_list *item, short type, coord *cp, bool max_monster)
 {
     register struct thing *tp;
     register struct monster *mp;
@@ -415,8 +408,7 @@
  */
 
 short
-randmonster(wander, no_unique)
-register bool wander, no_unique;
+randmonster(bool wander, bool no_unique)
 {
     register int d, cur_level, range, i; 
 
@@ -455,8 +447,8 @@
  * to purchase something.
  */
 
-sell(tp)
-register struct thing *tp;
+void
+sell(struct thing *tp)
 {
     register struct linked_list *item, *seller;
     register struct linked_list *sellpack;
@@ -551,8 +543,7 @@
  * what to do when the hero steps next to a monster
  */
 struct linked_list *
-wake_monster(y, x)
-int y, x;
+wake_monster(int y, int x)
 {
     register struct thing *tp;
     register struct linked_list *it;
@@ -749,7 +740,8 @@
  *	A wandering monster has awakened and is headed for the player
  */
 
-wanderer()
+void
+wanderer(void)
 {
     register int i;
     register struct room *hr = roomin(&hero);
--- a/arogue7/move.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/move.c	Wed Mar 02 21:28:34 2016 -0500
@@ -19,6 +19,7 @@
 
 #include "curses.h"
 #include <ctype.h>
+#include <string.h>
 #include "rogue.h"
 #ifdef PC7300
 #include "menu.h"
@@ -41,9 +42,8 @@
  *	The guy stepped on a trap.... Make him pay.
  */
 
-be_trapped(th, tc)
-register struct thing *th;
-register coord *tc;
+char
+be_trapped(struct thing *th, coord *tc)
 {
     register struct trap *tp;
     register char ch, *mname = "";
@@ -426,8 +426,7 @@
  */
 
 bool
-blue_light(blessed, cursed)
-bool blessed, cursed;
+blue_light(bool blessed, bool cursed)
 {
     register struct room *rp;
     bool ret_val=FALSE;	/* Whether or not affect is known */
@@ -486,8 +485,8 @@
  * 	If not, if player came from a legal place, then try to turn him.
  */
 
-corr_move(dy, dx)
-int dy, dx;
+void
+corr_move(int dy, int dx)
 {
     int legal=0;		/* Number of legal alternatives */
     register int y, x,		/* Indexes though possible positions */
@@ -564,7 +563,8 @@
  * dip_it:
  *	Dip an object into a magic pool
  */
-dip_it()
+void
+dip_it(void)
 {
 	reg struct linked_list *what;
 	reg struct object *ob;
@@ -758,8 +758,8 @@
  * consequences (fighting, picking up, etc.)
  */
 
-do_move(dy, dx)
-int dy, dx;
+void
+do_move(int dy, int dx)
 {
     register struct room *rp, *orp;
     register char ch;
@@ -1103,8 +1103,8 @@
  *	Start the hero running
  */
 
-do_run(ch)
-char ch;
+void
+do_run(char ch)
 {
     firstmove = TRUE;
     running = TRUE;
@@ -1119,11 +1119,9 @@
  *	Returns TRUE if it could find it, FALSE otherwise.
  */
 bool
-getdelta(match, dy, dx)
-char match;
-int *dy, *dx;
+getdelta(char match, int *dy, int *dx)
 {
-    register y, x;
+    int y, x;
 
     for (y = 0; y < 3; y++)
 	for (x = 0; x < 3; x++)
@@ -1140,8 +1138,8 @@
  * isatrap:
  *	Returns TRUE if this character is some kind of trap
  */
-isatrap(ch)
-reg char ch;
+bool
+isatrap(char ch)
 {
 	switch(ch) {
 		case DARTTRAP:
@@ -1161,8 +1159,8 @@
  * If it is dark, remove anything that might move.
  */
 
-light(cp)
-coord *cp;
+void
+light(coord *cp)
 {
     register struct room *rp;
     register int j, k, x, y;
@@ -1338,8 +1336,7 @@
  */
 
 bool
-lit_room(rp)
-register struct room *rp;
+lit_room(struct room *rp)
 {
     register struct linked_list *fire_item;
     register struct thing *fire_creature;
@@ -1376,8 +1373,7 @@
  */
 
 short
-movement(tp)
-register struct thing *tp;
+movement(struct thing *tp)
 {
     register int result;
     register int carry;		/* Percentage carried */
@@ -1441,8 +1437,7 @@
  */
 
 coord *
-rndmove(who)
-struct thing *who;
+rndmove(struct thing *who)
 {
     register int x, y;
     register int ex, ey, nopen = 0;
@@ -1506,9 +1501,8 @@
  *	set a trap at (y, x) on screen.
  */
 
-set_trap(tp, y, x)
-register struct thing *tp;
-register int y, x;
+void
+set_trap(struct thing *tp, int y, int x)
 {
     register bool is_player = (tp == &player);
     register int selection = rnd(TRAPTYPES-WIZARDTRAPS) + '1';
@@ -1613,7 +1607,7 @@
 			     * Put out the selection.  The longest line is
 			     * the prompt line (39 characters long).
 			     */
-			    over_win(cw, hw, num_traps + 3, 41, 0, 39, NULL);
+			    over_win(cw, hw, num_traps + 3, 41, 0, 39, '\0');
 			else
 			    draw(hw);
 			state = 1;	/* Now in prompt window */
@@ -1673,7 +1667,7 @@
 				 * Put out the selection.  The longest line is
 				 * the prompt line (43 characters long).
 				 */
-				over_win(cw, hw, num_traps+3, 45, 0, 43, NULL);
+				over_win(cw, hw, num_traps+3, 45, 0, 43, '\0');
 			    else 
 				draw(hw);
 			}
@@ -1743,8 +1737,8 @@
  *	returns what a certain thing will display as to the un-initiated
  */
 
-show(y, x)
-register int y, x;
+char
+show(int y, int x)
 {
     register char ch = CCHAR( winat(y, x) );
     register struct linked_list *it;
@@ -1784,8 +1778,7 @@
  */
 
 struct trap *
-trap_at(y, x)
-register int y, x;
+trap_at(int y, int x)
 {
     register struct trap *tp, *ep;
 
@@ -1803,11 +1796,12 @@
  *	Calculate how many segments it will take to swing the given
  *	weapon (note that the weapon may actually be a stick or
  *	even something else).
+ * 	wielder: Who's wielding the weapon
+ * 	weap: The weapon
  */
 
-weap_move(wielder, weap)
-register struct thing *wielder;	/* Who's wielding the weapon */
-register struct object *weap;	/* The weapon */
+int
+weap_move(struct thing *wielder, struct object *weap)
 {
     register int weap_rate;
     int		 dexterity;
--- a/arogue7/new_level.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/new_level.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,14 +16,16 @@
 #include "rogue.h"
 #define TERRASAVE 3
 
+void put_things(LEVTYPE ltype);
+
 /*
  * new_level:
  *	Dig and draw a new level
- *
+ *	ltype: designates type of level to create
  */
 
-new_level(ltype)
-LEVTYPE	ltype;		/* designates type of level to create */
+void
+new_level(LEVTYPE ltype)
 {
     register int rm, i, cnt;
     register char ch;
@@ -434,14 +436,15 @@
     status(TRUE);
 
     /* Do we sense any food on this level? */
-    if (cur_relic[SURTUR_RING]) quaff(P_FFIND, NULL, NULL, FALSE);
+    if (cur_relic[SURTUR_RING]) quaff(P_FFIND, 0, 0, FALSE);
 }
 
 /*
  * Pick a room that is really there
  */
 
-rnd_room()
+int
+rnd_room(void)
 {
     register int rm;
 
@@ -457,10 +460,11 @@
 /*
  * put_things:
  *	put potions and scrolls on this level
+ *	ltype: designates type of level to create
  */
 
-put_things(ltype)
-LEVTYPE	ltype;		/* designates type of level to create */
+void
+put_things(LEVTYPE ltype)
 {
     register int i, rm, cnt;
     register struct object *cur;
@@ -478,7 +482,7 @@
      * There is a chance that there is a treasure room on this level 
      */
     if (ltype != MAZELEV && rnd(HARDER) < level - 10) {	
-	register  j;
+	int j;
 	register struct room *rp;
 
 	/* Count the number of free spaces */
--- a/arogue7/options.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/options.c	Wed Mar 02 21:28:34 2016 -0500
@@ -40,14 +40,15 @@
 
 typedef struct optstruct	OPTION;
 
-int	put_bool(), 
-	get_bool(),
-	put_str(),
-	get_str(),
-	put_abil(),
-	get_abil(),
-	get_quest(),
-	put_quest();
+void put_bool(bool *b, WINDOW *win);
+int get_bool(bool *bp, WINDOW *win);
+void put_str(char *str, WINDOW *win);
+int get_str(char *opt, WINDOW *win);
+void put_abil(int *ability, WINDOW *win);
+void get_abil(int *abil, WINDOW *win);
+void put_quest(int *quest, WINDOW *win);
+void get_quest(int *quest, WINDOW *win);
+int get_ro(WINDOW *win, int oy, int ox);
 
 int get_str_prot(char *opt, WINDOW *win);
 int get_score(char *opt, WINDOW *win);
@@ -83,9 +84,8 @@
 /*
  * The ability field is read-only
  */
-get_abil(abil, win)
-int *abil;
-WINDOW *win;
+void
+get_abil(int *abil, WINDOW *win)
 {
     register int oy, ox;
 
@@ -97,9 +97,8 @@
 /*
  * The quest field is read-only
  */
-get_quest(quest, win)
-int *quest;
-WINDOW *win;
+void
+get_quest(int *quest, WINDOW *win)
 {
     register int oy, ox;
 
@@ -113,9 +112,8 @@
  *	"Get" a read-only value.
  */
 
-get_ro(win, oy, ox)
-WINDOW *win;
-register int oy, ox;
+int
+get_ro(WINDOW *win, int oy, int ox)
 {
     register int ny, nx;
     register bool op_bad;
@@ -152,9 +150,8 @@
  * allow changing a boolean option and print it out
  */
 
-get_bool(bp, win)
-bool *bp;
-WINDOW *win;
+int
+get_bool(bool *bp, WINDOW *win)
 {
     register int oy, ox;
     register bool op_bad;
@@ -202,9 +199,8 @@
 /*
  * set a string option
  */
-get_str(opt, win)
-register char *opt;
-WINDOW *win;
+int
+get_str(char *opt, WINDOW *win)
 {
     register char *sp;
     register int c, oy, ox;
@@ -278,7 +274,8 @@
 /*
  * print and then set options from the terminal
  */
-option()
+void
+option(void)
 {
     register OPTION	*op;
     register int	retval;
@@ -334,8 +331,8 @@
  * or the end of the entire option string.
  */
 
-parse_opts(str)
-register char *str;
+void
+parse_opts(char *str)
 {
     register char *sp;
     register OPTION *op;
@@ -428,9 +425,8 @@
 /*
  * print the character type
  */
-put_abil(ability, win)
-int *ability;
-WINDOW *win;
+void
+put_abil(int *ability, WINDOW *win)
 {
     waddstr(win, char_class[*ability].name);
 }
@@ -440,9 +436,8 @@
  * print out the quest
  */
 
-put_quest(quest, win)
-int *quest;
-WINDOW *win;
+void
+put_quest(int *quest, WINDOW *win)
 {
     waddstr(win, rel_magic[*quest].mi_name);
 }
@@ -451,9 +446,8 @@
 /*
  * put out a boolean
  */
-put_bool(b, win)
-bool	*b;
-WINDOW *win;
+void
+put_bool(bool *b, WINDOW *win)
 {
     waddstr(win, *b ? "True" : "False");
 }
@@ -464,9 +458,8 @@
 /*
  * put out a string
  */
-put_str(str, win)
-char *str;
-WINDOW *win;
+void
+put_str(char *str, WINDOW *win)
 {
     waddstr(win, str);
 }
--- a/arogue7/outside.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/outside.c	Wed Mar 02 21:28:34 2016 -0500
@@ -15,7 +15,8 @@
 #include "curses.h"
 #include "rogue.h"
 
-extern char rnd_terrain(), get_terrain();
+char rnd_terrain(void);
+char get_terrain(char one, char two, char three, char four);
 
 /*
  * init_terrain:
@@ -23,7 +24,7 @@
  */
 
 void
-init_terrain()
+init_terrain(void)
 {
     register struct room *rp;
 
@@ -42,11 +43,9 @@
 
 
 void
-do_terrain(basey, basex, deltay, deltax, fresh)
-int basey, basex, deltay, deltax;
-bool fresh;
+do_terrain(int basey, int basex, int deltay, int deltax, bool fresh)
 {
-    register cury, curx;	/* Current y and x positions */
+    register int cury, curx;	/* Current y and x positions */
 
     /* Lay out the boundary */
     for (cury=1; cury<lines-2; cury++) {	/* Vertical "walls" */
@@ -129,7 +128,7 @@
  */
 
 char
-rnd_terrain()
+rnd_terrain(void)
 {
     int chance = rnd(100);
 
@@ -153,8 +152,7 @@
  */
 
 char
-get_terrain(one, two, three, four)
-char one, two, three, four;
+get_terrain(char one, char two, char three, char four)
 {
     register int i;
     int forest = 0, mountain = 0, lake = 0, meadow = 0, total = 0;
@@ -207,7 +205,6 @@
  */
 
 void
-lake_check(place)
-coord *place;
+lake_check(coord *place)
 {
 }
--- a/arogue7/pack.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/pack.c	Wed Mar 02 21:28:34 2016 -0500
@@ -20,6 +20,8 @@
 #include "menu.h"
 #endif
 
+bool is_type (struct object *obj, int type);
+
 /*
  * Routines to deal with the pack
  */
@@ -30,9 +32,7 @@
  * use it as the linked_list pointer instead of gettting it off the ground.
  */
 bool
-add_pack(item, silent, packret)
-register struct linked_list *item, **packret;
-bool silent;
+add_pack(struct linked_list *item, bool silent, struct linked_list **packret)
 {
     register struct linked_list *ip, *lp = NULL, *ap;
     register struct object *obj, *op = NULL;
@@ -372,9 +372,8 @@
  * inventory:
  *	list what is in the pack
  */
-inventory(list, type)
-register struct linked_list *list;
-register int type;
+bool
+inventory(struct linked_list *list, int type)
 {
     register struct object *obj;
     register char ch;
@@ -511,7 +510,7 @@
  *	Allow player to inventory a single item
  */
 void
-picky_inven()
+picky_inven(void)
 {
     register struct linked_list *item;
     register char ch, mch;
@@ -565,13 +564,11 @@
 /*
  * get_item:
  *	pick something out of a pack for a purpose
+ *	purpose: NULL if we should be silent (no prompts)
  */
 struct linked_list *
-get_item(list, purpose, type, askfirst, showcost)
-reg struct linked_list *list;
-char *purpose;	/* NULL if we should be silent (no prompts) */
-int type;
-bool askfirst, showcost;
+get_item(struct linked_list *list, char *purpose, int type, bool askfirst, 
+         bool showcost)
 {
     reg struct linked_list *item;
     reg struct object *obj;
@@ -754,7 +751,7 @@
 #endif
 	    /* Write the screen */
 	    if ((menu_overlay && cnt < lines / 2 + 2) || cnt == 1) {
-		over_win(cw, hw, cnt + 2, maxx + 3, cnt, curx, NULL);
+		over_win(cw, hw, cnt + 2, maxx + 3, cnt, curx, '\0');
 		cnt = -1;	/* Indicate we used over_win */
 	    }
 	    else draw(hw);
@@ -812,9 +809,8 @@
     }
 }
 
-pack_char(list, obj)
-register struct object *obj;
-struct linked_list *list;
+char
+pack_char(struct linked_list *list, struct object *obj)
 {
     register struct linked_list *item;
     register char c;
@@ -836,8 +832,8 @@
  * cur_null:
  *	This updates cur_weapon etc for dropping things
  */
-cur_null(op)
-reg struct object *op;
+void
+cur_null(struct object *op)
 {
 	if (op == cur_weapon)			cur_weapon = NULL;
 	else if (op == cur_armor)		cur_armor = NULL;
@@ -861,7 +857,8 @@
  * idenpack:
  *	Identify all the items in the pack
  */
-idenpack()
+void
+idenpack(void)
 {
 	reg struct linked_list *pc;
 
@@ -869,9 +866,8 @@
 		whatis(pc);
 }
 
-is_type (obj, type)
-register struct object *obj;
-register int type;
+bool
+is_type (struct object *obj, int type)
 {
     register bool current;
 
@@ -1024,8 +1020,8 @@
     return(FALSE);
 }
 
-del_pack(item)
-register struct linked_list *item;
+void
+del_pack(struct linked_list *item)
 {
     register struct object *obj;
 
@@ -1047,9 +1043,8 @@
  * it to him.
  */
 
-carry_obj(mp, chance)
-register struct thing *mp;
-int chance;
+void
+carry_obj(struct thing *mp, int chance)
 {
     reg struct linked_list *item;
     reg struct object *obj;
@@ -1072,75 +1067,75 @@
      */
     if (on(*mp, ISUNIQUE)) {
 	if (on(*mp, CARRYMDAGGER)) {
-	    item = spec_item(RELIC, MUSTY_DAGGER, NULL, NULL);
+	    item = spec_item(RELIC, MUSTY_DAGGER, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 
 	if (on(*mp, CARRYCLOAK)) {
-	    item = spec_item(RELIC, EMORI_CLOAK, NULL, NULL);
+	    item = spec_item(RELIC, EMORI_CLOAK, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 
 	if (on(*mp, CARRYANKH)) {
-	    item = spec_item(RELIC, HEIL_ANKH, NULL, NULL);
+	    item = spec_item(RELIC, HEIL_ANKH, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 
 	if (on(*mp, CARRYSTAFF)) {
-	    item = spec_item(RELIC, MING_STAFF, NULL, NULL);
+	    item = spec_item(RELIC, MING_STAFF, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 
 	if (on(*mp, CARRYWAND)) {
-	    item = spec_item(RELIC, ORCUS_WAND, NULL, NULL);
+	    item = spec_item(RELIC, ORCUS_WAND, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 
 	if (on(*mp, CARRYROD)) {
-	    item = spec_item(RELIC, ASMO_ROD, NULL, NULL);
+	    item = spec_item(RELIC, ASMO_ROD, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 
 	if (on(*mp, CARRYYAMULET)) {
-	    item = spec_item(RELIC, YENDOR_AMULET, NULL, NULL);
+	    item = spec_item(RELIC, YENDOR_AMULET, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 
 	if (on(*mp, CARRYBAMULET)) {
-	    item = spec_item(RELIC, STONEBONES_AMULET, NULL, NULL);
+	    item = spec_item(RELIC, STONEBONES_AMULET, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 
 	if (on(*mp, CARRYMANDOLIN)) {
-	    item = spec_item(RELIC, BRIAN_MANDOLIN, NULL, NULL);
+	    item = spec_item(RELIC, BRIAN_MANDOLIN, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 	if (on(*mp, CARRYEYE)) {
-	    item = spec_item(RELIC, EYE_VECNA, NULL, NULL);
+	    item = spec_item(RELIC, EYE_VECNA, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 	if (on(*mp, CARRYAXE)) {
-	    item = spec_item(RELIC, AXE_AKLAD, NULL, NULL);
+	    item = spec_item(RELIC, AXE_AKLAD, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
@@ -1148,7 +1143,7 @@
 	if (on(*mp, CARRYQUILL)) {
 	    register int i, howmany;
 
-	    item = spec_item(RELIC, QUILL_NAGROM, NULL, NULL);
+	    item = spec_item(RELIC, QUILL_NAGROM, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    obj->o_charges = rnd(QUILLCHARGES);
@@ -1165,25 +1160,25 @@
 	    }
 	}
 	if (on(*mp, CARRYMSTAR)) {
-	    item = spec_item(RELIC, HRUGGEK_MSTAR, NULL, NULL);
+	    item = spec_item(RELIC, HRUGGEK_MSTAR, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 	if (on(*mp, CARRYFLAIL)) {
-	    item = spec_item(RELIC, YEENOGHU_FLAIL, NULL, NULL);
+	    item = spec_item(RELIC, YEENOGHU_FLAIL, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 	if (on(*mp, CARRYHORN)) {
-	    item = spec_item(RELIC, GERYON_HORN, NULL, NULL);
+	    item = spec_item(RELIC, GERYON_HORN, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
 	}
 	if (on(*mp, CARRYSURTURRING)) {
-	    item = spec_item(RELIC, SURTUR_RING, NULL, NULL);
+	    item = spec_item(RELIC, SURTUR_RING, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_pos = mp->t_pos;
 	    attach(mp->t_pack, item);
@@ -1193,7 +1188,7 @@
      * If it carries gold, give it some
      */
     if (on(*mp, CARRYGOLD) && rnd(100) < chance) {
-	    item = spec_item(GOLD, NULL, NULL, NULL);
+	    item = spec_item(GOLD, 0, 0, 0);
 	    obj = OBJPTR(item);
 	    obj->o_count = GOLDCALC + GOLDCALC;
 	    obj->o_pos = mp->t_pos;
@@ -1204,7 +1199,7 @@
      * If it carries food, give it some
      */
     if (on(*mp, CARRYFOOD) && rnd(100) < chance) {
-	item = spec_item(FOOD, NULL, NULL, NULL);
+	item = spec_item(FOOD, 0, 0, 0);
 	obj = OBJPTR(item);
 	obj->o_weight = things[TYP_FOOD].mi_wght;
 	obj->o_pos = mp->t_pos;
@@ -1328,8 +1323,8 @@
  *	he wants (* means everything).
  */
 
-grab(y, x)
-register y, x;
+int
+grab(int y, int x)
 {
     register struct linked_list *next_item, *item;
     register struct object *obj;
@@ -1398,7 +1393,7 @@
 	 * to he right.
 	 */
 	if (menu_overlay && num_there < lines / 2 + 2) {
-	  over_win(cw, hw, num_there + 2, maxlen + 3, num_there, curlen, NULL);
+	  over_win(cw, hw, num_there + 2, maxlen + 3, num_there, curlen, '\0');
 	  pagecnt = -1;	/* Indicate we used over_win */
 	}
 	else draw(hw);		/* write screen */
@@ -1446,7 +1441,7 @@
 		 */
 		if (menu_overlay && num_there < lines / 2 + 2) {
 		    over_win(cw, hw, num_there + 2, maxlen + 3,
-				num_there, 49, NULL);
+				num_there, 49, '\0');
 		    cnt = -1;	/* Indicate we used over_win */
 		}
 		else draw(hw);		/* write screen */
@@ -1485,8 +1480,8 @@
  *	Create a pack for sellers (a la quartermaster)
  */
 
-make_sell_pack(tp)
-struct thing *tp;
+void
+make_sell_pack(struct thing *tp)
 {
     reg struct linked_list *item;
     reg struct object *obj;
--- a/arogue7/passages.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/passages.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,15 +18,20 @@
  * @(#)passages.c	3.4 (Berkeley) 6/15/81
  */
 
+#include <stdlib.h>
 #include "curses.h"
 #include "rogue.h"
 
+void conn(int r1, int r2);
+void door(struct room *rm, coord *cp);
+
 /*
  * do_passages:
  *	Draw all the passages on a level.
  */
 
-do_passages()
+void
+do_passages(void)
 {
     register struct rdes *r1, *r2 = NULL;
     register int i, j;
@@ -134,8 +139,8 @@
  *	Draw a corridor from a room in a certain direction.
  */
 
-conn(r1, r2)
-int r1, r2;
+void
+conn(int r1, int r2)
 {
     register struct room *rpf, *rpt = NULL;
     register char rmt;
@@ -348,9 +353,8 @@
  * also enters the door in the exits array of the room.
  */
 
-door(rm, cp)
-register struct room *rm;
-register coord *cp;
+void
+door(struct room *rm, coord *cp)
 {
     struct linked_list *newroom;
     coord *exit;
--- a/arogue7/player.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/player.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,19 +18,23 @@
  */
 
 #include <ctype.h>
+#include <string.h>
 #include "curses.h"
 #include "rogue.h"
 #ifdef PC7300
 #include "menu.h"
 #endif
 
+bool pick_spell(struct spells spells[], int ability, int num_spells, int power,
+           char *prompt, char *type);
 
 /*
  * affect:
  *	cleric affecting undead
  */
 
-affect()
+void
+affect(void)
 {
     register struct linked_list *item;
     register struct thing *tp;
@@ -147,7 +151,8 @@
 /*
  * the magic user is going to try and cast a spell
  */
-cast()
+void
+cast(void)
 {
     int		spell_ability,
 		which_spell,
@@ -202,7 +207,7 @@
 
     if (magic_spells[which_spell].s_type == TYP_POTION)
         quaff(	magic_spells[which_spell].s_which,
-		NULL,
+		0,
         	magic_spells[which_spell].s_flag,
 		FALSE);
     else if (magic_spells[which_spell].s_type == TYP_SCROLL)
@@ -222,7 +227,8 @@
 /* 
  * the druid asks his deity for a spell
  */
-chant()
+void
+chant(void)
 {
     register int	num_chants, 
 			chant_ability, 
@@ -290,7 +296,7 @@
 
     if (druid_spells[which_chant].s_type == TYP_POTION)
 	quaff(		druid_spells[which_chant].s_which,
-			NULL,
+			0,
 			druid_spells[which_chant].s_flag,
 			FALSE);
     else if (druid_spells[which_chant].s_type == TYP_SCROLL)
@@ -309,7 +315,8 @@
 
 /* Constitution bonus */
 
-const_bonus()	/* Hit point adjustment for changing levels */
+int
+const_bonus(void)	/* Hit point adjustment for changing levels */
 {
     register int bonus;
     if (pstats.s_const > 6 && pstats.s_const <= 14) 
@@ -343,7 +350,8 @@
  *	Sense gold
  */
 
-gsense()
+void
+gsense(void)
 {
     /* Only thieves can do this */
     if (player.t_ctype != C_THIEF && player.t_ctype != C_ASSASIN) {
@@ -351,13 +359,14 @@
 	return;
     }
 
-    read_scroll(S_GFIND, NULL, FALSE);
+    read_scroll(S_GFIND, 0, FALSE);
 }
 
 /* 
  * the cleric asks his deity for a spell
  */
-pray()
+void
+pray(void)
 {
     register int	num_prayers, 
 			prayer_ability, 
@@ -430,7 +439,7 @@
 
     if (cleric_spells[which_prayer].s_type == TYP_POTION)
 	quaff(		cleric_spells[which_prayer].s_which,
-			NULL,
+			0,
 			cleric_spells[which_prayer].s_flag,
 			FALSE);
     else if (cleric_spells[which_prayer].s_type == TYP_SCROLL)
@@ -454,7 +463,8 @@
  *	Steal in direction given in delta
  */
 
-steal()
+void
+steal(void)
 {
     register struct linked_list *item;
     register struct thing *tp;
@@ -586,14 +596,16 @@
 /*
  * this routine lets the player pick the spell that they
  * want to cast regardless of character class
+ * spells: spell list
+ * ability: spell ability
+ * num_spells: number of spells that can be cast
+ * power: spell power
+ * prompt: prompt for spell list
+ * type: type of thing--> spell, prayer, chant
  */
-pick_spell(spells, ability, num_spells, power, prompt, type)
-struct spells	spells[];	/* spell list				 */
-int		ability;	/* spell ability			 */
-int		num_spells;	/* number of spells that can be cast	 */
-int		power;		/* spell power				 */
-char		*prompt;	/* prompt for spell list		 */
-char		*type;		/* type of thing--> spell, prayer, chant */
+bool
+pick_spell(struct spells spells[], int ability, int num_spells, int power,
+           char *prompt, char *type)
 {
     bool		nohw = FALSE;
     register int	i;
@@ -754,7 +766,7 @@
 #endif
 	/* Should we overlay? */
 	if (menu_overlay && num_spells + 3 < lines / 2) {
-	    over_win(cw, hw, num_spells + 5, maxlen + 3, 0, curlen, NULL);
+	    over_win(cw, hw, num_spells + 5, maxlen + 3, 0, curlen, '\0');
 	}
 	else draw(hw);
     }
@@ -780,7 +792,7 @@
 	    /* Should we overlay? */
 	    if (menu_overlay && num_spells + 3 < lines / 2) {
 		over_win(cw, hw, num_spells + 5, maxlen + 3,
-			    0, curlen, NULL);
+			    0, curlen, '\0');
 	    }
 	    else draw(hw);
 
--- a/arogue7/potions.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/potions.c	Wed Mar 02 21:28:34 2016 -0500
@@ -46,8 +46,7 @@
  */
 
 void
-add_constitution(change)
-int change;
+add_constitution(int change)
 {
     /* Do the potion */
     if (change < 0) {
@@ -71,8 +70,7 @@
  */
 
 void
-add_charisma(change)
-int change;
+add_charisma(int change)
 {
     /* Do the potion */
     if (change < 0) msg("You feel less attractive now.");
@@ -92,8 +90,7 @@
  */
 
 void
-add_dexterity(change)
-int change;
+add_dexterity(int change)
 {
     int ring_str;	/* Value of ring strengths */
 
@@ -123,8 +120,8 @@
  *	add a haste to the player
  */
 
-add_haste(blessed)
-bool blessed;
+void
+add_haste(bool blessed)
 {
     int hasttime;
 
@@ -161,8 +158,7 @@
  * Increase player's intelligence
  */
 void
-add_intelligence(change)
-int change;
+add_intelligence(int change)
 {
     int ring_str;	/* Value of ring strengths */
 
@@ -190,7 +186,8 @@
 /*
  * this routine makes the hero move slower 
  */
-add_slow()
+void
+add_slow(void)
 {
     /* monks cannot be slowed or hasted */
     if (player.t_ctype == C_MONK || ISWEARING(R_FREEDOM)) { 
@@ -219,8 +216,7 @@
  */
 
 void
-add_strength(change)
-int change;
+add_strength(int change)
 {
 
     if (change < 0) {
@@ -238,8 +234,7 @@
  */
 
 void
-add_wisdom(change)
-int change;
+add_wisdom(int change)
 {
     int ring_str;	/* Value of ring strengths */
 
@@ -264,11 +259,8 @@
 	pstats.s_wisdom += ring_str;
 }
 
-quaff(which, kind, flags, is_potion)
-int which;
-int kind;
-int flags;
-bool is_potion;
+void
+quaff(int which, int kind, int flags, bool is_potion)
 {
     register struct object *obj;
     register struct linked_list *item, *titem;
@@ -869,8 +861,7 @@
  */
 
 void
-res_dexterity(howmuch)
-int howmuch;
+res_dexterity(int howmuch)
 {
     short save_max;
     int ring_str;
@@ -903,8 +894,7 @@
  */
 
 void
-res_intelligence(howmuch)
-int howmuch;
+res_intelligence(int howmuch)
 {
     short save_max;
     int ring_str;
@@ -931,8 +921,7 @@
  */
 
 void
-res_wisdom(howmuch)
-int howmuch;
+res_wisdom(int howmuch)
 {
     short save_max;
     int ring_str;
@@ -959,8 +948,7 @@
  */
 
 void
-res_constitution(howmuch)
-int howmuch;
+res_constitution(int howmuch)
 {
     if (howmuch > 0)
 	pstats.s_const = min(pstats.s_const + howmuch, max_stats.s_const);
@@ -972,8 +960,7 @@
  */
 
 void
-res_charisma(howmuch)
-int howmuch;
+res_charisma(int howmuch)
 {
     if (howmuch > 0)
 	pstats.s_charisma =
--- a/arogue7/rings.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/rings.c	Wed Mar 02 21:28:34 2016 -0500
@@ -12,6 +12,7 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
 #include "curses.h"
 #include "rogue.h"
 
@@ -23,8 +24,8 @@
 /*
  * how much food does this ring use up?
  */
-ring_eat(hand)
-register int hand;
+int
+ring_eat(int hand)
 {
     if (cur_ring[hand] == NULL)
 	return 0;
@@ -48,8 +49,8 @@
     return 0;
 }
 
-ring_on(item)
-register struct linked_list *item;
+void
+ring_on(struct linked_list *item)
 {
     register struct object *obj;
     register int save_max;
@@ -111,8 +112,7 @@
  * print ring bonuses
  */
 char *
-ring_num(obj)
-register struct object *obj;
+ring_num(struct object *obj)
 {
     static char buf[5];
 
@@ -146,7 +146,8 @@
 /* 
  * Return the effect of the specified ring 
  */
-ring_value(type)
+int
+ring_value(int type)
 {
     int result = 0;
 
--- a/arogue7/rip.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/rip.c	Wed Mar 02 21:28:34 2016 -0500
@@ -91,15 +91,15 @@
     0
 };
 
-char	*killname();
-
-
-
+char *killname(short monst);
+void showpack(char *howso);
+int update(struct sc_ent top_ten[], unsigned long amount, short quest, 
+           char *whoami, short flags, short level, short monst, short ctype,
+           char *system, char *login);
 
 
 void
-byebye(sig)
-int sig;
+byebye(int sig)
 {
     if (!isendwin()) {
         clear();
@@ -118,8 +118,8 @@
  *	Do something really fun when he dies
  */
 
-death(monst)
-register short monst;
+void
+death(short monst)
 {
     register char **dp = rip, *killer;
     register struct tm *lt;
@@ -154,7 +154,8 @@
 /*
  * Restore window characteristics on a hard window terminal (PC7300).
  */
-endhardwin()
+void
+endhardwin(void)
 {
     register int i;
     struct utdata labelbuf;
@@ -172,8 +173,7 @@
 #endif
 
 char *
-killname(monst)
-register short monst;
+killname(short monst)
 {
     static char mons_name[LINELEN];
     int i;
@@ -249,9 +249,8 @@
  */
 
 /* VARARGS2 */
-score(amount, flags, monst)
-unsigned long amount;
-short monst;
+void
+score(unsigned long amount, int flags, short monst)
 {
     static struct sc_ent top_ten[NUMSCORE];
     register struct sc_ent *scp;
@@ -672,11 +671,10 @@
  * scorein:
  *	Convert a character string that has been translated from a
  * score file by scoreout() back to a score file structure.
+ * num_bytes: Number of bytes of input that we want to convert
  */
-scorein(input, scores, num_bytes)
-unsigned char *input;
-struct sc_ent scores[];
-int num_bytes;	/* Number of bytes of input that we want to convert */
+void
+scorein(unsigned char *input, struct sc_ent scores[], int num_bytes)
 {
     register int i, j;
     unsigned long *lptr;
@@ -731,9 +729,8 @@
  * this for compatibility sake since some machines write out fields in
  * different orders.
  */
-scoreout(scores, output)
-struct sc_ent scores[];
-unsigned char *output;
+void
+scoreout(struct sc_ent scores[], unsigned char *output)
 {
     register int i, j;
     unsigned long *lptr;
@@ -783,8 +780,8 @@
  * showpack:
  *	Display the contents of the hero's pack
  */
-showpack(howso)
-char *howso;
+void
+showpack(char *howso)
 {
 	reg char *iname;
 	reg int cnt, packnum;
@@ -813,7 +810,8 @@
 	refresh();
 }
 
-total_winner()
+void
+total_winner(void)
 {
     register struct linked_list *item;
     register struct object *obj;
@@ -876,11 +874,10 @@
     exit(0);
 }
 
-update(top_ten, amount, quest, whoami, flags, level, monst, ctype, system, login)
-struct sc_ent top_ten[];
-unsigned long amount;
-short quest, flags, level, monst, ctype;
-char *whoami, *system, *login;
+int
+update(struct sc_ent top_ten[], unsigned long amount, short quest, char *whoami,
+       short flags, short level, short monst, short ctype, char *system, 
+       char *login)
 {
     register struct sc_ent *scp, *sc2;
     int retval=0;	/* 1 if a change, 0 otherwise */
--- a/arogue7/rogue.h	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/rogue.h	Wed Mar 02 21:28:34 2016 -0500
@@ -1121,45 +1121,317 @@
 	int d_time;
 } ;
 
-struct linked_list	*find_mons(), *find_obj(), *get_item(), *new_item(),
-			*new_thing(), *wake_monster(), *get_hurl(), 
-			*spec_item(), *creat_item(), *wield_weap();
-struct room		*roomin();
-struct trap		*trap_at();
+void    _attach(struct linked_list **list, struct linked_list *item);
+void    _detach(struct linked_list **list, struct linked_list *item);
+void    _o_free_list(struct linked_list **ptr);
+void    _r_free_list(struct linked_list **ptr);
+void    _t_free_list(struct linked_list **ptr);
+int     ac_compute(bool ignoremetal);
+void    activity(void);
+void    add_charisma(int change);
+void    add_constitution(int change);
+void    add_dexterity(int change);
+void    add_haste(bool blessed);
+void    add_intelligence(int change);
+bool    add_pack(struct linked_list *item, bool silent, 
+                 struct linked_list **packret);
+void    add_slow(void);
+void    add_strength(int change);
+void    add_wisdom(int change);
+void    addmsg(char *fmt, ...);
+void    affect(void);
+void    aggravate(bool do_uniques, bool do_good);
+void    alchemy(struct object *obj);
+void    appear(void);
+bool    attack(struct thing *mp, struct object *weapon, bool thrown);
+void    auto_save(int sig);
+char    be_trapped(struct thing *th, coord *tc);
+bool    blue_light(bool blessed, bool cursed);
+void    bugkill(int sig);
+void    buy_it(void);
+void    byebye(int sig);
+bool    can_blink(struct thing *tp);
+coord  *can_shoot(coord *er, coord *ee);
+bool    cansee(int y, int x);
+void    carry_obj(struct thing *mp, int chance);
+void    cast(void);
+void    changeclass(int newclass);
+void    chant(void);
+void    chant_recovery(void);
+void    chase(struct thing *tp, coord *ee, struct room *rer, struct room *ree, 
+              bool flee);
+long    check_level(void);
+void    check_residue(struct thing *tp);
+void    chg_str(int amt);
+void    cloak_charge(struct object *obj);
+void    command(void);
+void    confus_player(void);
+int     const_bonus(void);
+void    corr_move(int dy, int dx);
+struct linked_list *creat_item(void);
+bool    creat_mons(struct thing *person, short monster, bool report);
+void    create_obj(bool prompt, int which_item, int which_type);
+void    cur_null(struct object *op);
+void    cure_disease(void);
+void    dbotline(WINDOW *scr, char *message);
+void    death(short monst);
+void    del_pack(struct linked_list *item);
+void    destroy_item(struct linked_list *item);
+int     dex_compute(void);
+int     dext_plus(int dexterity);
+int     dext_prot(int dexterity);
+bool    diag_ok(coord *sp, coord *ep, struct thing *flgptr);
+void    dip_it(void);
+void    do_chase(struct thing *th);
+void    do_daemons(int flag);
+void    do_fuses(int flag);
+void    do_maze(void);
+void    do_motion(struct object *obj, int ydelta, int xdelta, struct thing *tp);
+void    do_move(int dy, int dx);
+void    do_passages(void);
+void    do_post(bool startup);
+void    do_rooms(void);
+void    do_run(char ch);
+void    do_terrain(int basey, int basex, int deltay, int deltax, bool fresh);
+void    do_zap(struct thing *zapper, struct object *obj, coord *direction,
+               int which, int flags);
+void    doctor(struct thing *tp);
+coord  *doorway(struct room *rp, coord *door);
+void    draw_room(struct room *rp);
+int     dress_units(struct linked_list *item);
+bool    drop(struct linked_list *item);
+bool    dropcheck(struct object *op);
+void    dsrpt_monster(struct thing *tp, bool always, bool see_him);
+void    dsrpt_player(void);
+void    dust_appear(void);
+void    eat(void);
+void    eat_gold(struct object *obj);
+int     effect(struct thing *att, struct thing *def, struct object *weap, 
+               bool thrown, bool see_att, bool see_def);
+int     encread(char *start, unsigned int size, int inf);
+int     encwrite(char *start, unsigned int size, int outf);
+void    endmsg(void);
+void    explode(struct thing *tp);
+void    extinguish(int (*func)());
+void    fall(struct linked_list *item, bool pr);
+coord  *fallpos(coord *pos, bool be_clear, int range);
+void    fatal(char *s);
+bool    fight(coord *mp, struct object *weap, bool thrown);
+struct linked_list *find_mons(int y, int x);
+struct linked_list *find_obj(int y, int x);
+struct delayed_action *find_slot(int (*func)());
+int     findmindex(char *name);
+void    fix_stick(struct object *cur);
+void    fumble(void);
+void    fuse(int (*func)(), int arg, int time, int type);
+void    genmonsters(int least, bool treas);
+coord   get_coordinates(void);
+bool    get_dir(coord *direction);
+struct linked_list *get_hurl(struct thing *tp);
+struct linked_list *get_item(struct linked_list *list, char *purpose, int type,
+                             bool askfirst, bool showcost);
+int     get_str(char *opt, WINDOW *win);
+int     get_worth(struct object *obj);
+int     getdeath(void);
+bool    getdelta(char match, int *dy, int *dx);
+int     grab(int y, int x);
+void    gsense(void);
+bool    hit_monster(int y, int x, struct object *obj, struct thing *tp);
+int     hitweight(void);
+short   id_monst(char monster);
+void    idenpack(void);
+void    init_colors(void);
+void    init_foods(void);
+void    init_materials(void);
+void    init_misc(void);
+void    init_names(void);
+void    init_player(void);
+void    init_stones(void);
+void    init_terrain(void);
+void    init_things(void);
+void    init_weapon(struct object *weap, char type);
+char   *inv_name(struct object *obj, bool drop);
+bool    inventory(struct linked_list *list, int type);
+bool    is_current(struct object *obj);
+bool    is_magic(struct object *obj);
+bool    isatrap(char ch);
+int     itemweight(struct object *wh);
+void    kill_daemon(int (*func)());
+void    killed(struct linked_list *item, bool pr, bool points, bool treasure);
+void    lake_check(coord *place);
+void    land(void);
+void    lengthen(int (*func)(), int xtime);
+void    light(coord *cp);
+bool    lit_room(struct room *rp);
+void    look(bool wakeup, bool runend);
+void    lower_level(short who);
+void    m_use_relic(struct thing *monster);
+void    m_use_wand(struct thing *monster);
+void    make_sell_pack(struct thing *tp);
+short   makemonster(bool showall, char *label, char *action) ;
+bool    maze_view(int y, int x);
+char   *misc_name(struct object *obj);
+void    missile(int ydelta, int xdelta, struct linked_list *item, 
+                struct thing *tp);
+char   *monster_name(struct thing *tp);
+bool    move_hero(int why);
+short   movement(struct thing *tp);
+void    msg(char *fmt, ...);
+void    nameitem(struct linked_list *item, bool mark);
+bool    need_dir(int type, int which);
+unsigned long netread(int *error, int size, FILE *stream);
+int     netwrite(unsigned long value, int size, FILE *stream);
+char   *new(int size);
+struct linked_list *new_item(int size);
+void    new_level(LEVTYPE ltype);
+void    new_monster(struct linked_list *item, short type, coord *cp, 
+                    bool max_monster);
+struct linked_list *new_thing(int thing_type, bool allow_curse);
+void    nobolt(void);
+void    nocold(void);
+void    nofire(void);
+void    nohaste(void);
+void    noslow(void);
+char   *num(int n1, int n2);
+void    o_discard(struct linked_list *item);
+void    option(void);
+void    over_win(WINDOW *oldwin, WINDOW *newin, int maxy, int maxx, int cursory,
+                 int cursorx, char redraw);
+char    pack_char(struct linked_list *list, struct object *obj);
+void    parse_opts(char *str);
+bool    passwd(void);
+void    picky_inven(void);
+bool    player_zap(int which, int flag);
+void    playit(void);
+void    pray(void);
+void    prayer_recovery(void);
+bool    price_it(void);
+char   *prname(char *who, bool upper);
+void    quaff(int which, int kind, int flags, bool is_potion);
+void    quill_charge(void);
+void    quit(int sig);
+void    raise_level(void);
+short   randmonster(bool wander, bool no_unique);
+void    read_scroll(int which, int flag, bool is_scroll);
+int     readchar(void);
+void    res_charisma(int howmuch);
+void    res_constitution(int howmuch);
+void    res_dexterity(int howmuch);
+void    res_intelligence(int howmuch);
+void    res_strength(int howmuch);
+void    res_wisdom(int howmuch);
+bool    restore(char *file, char *envp[]);
+void    restscr(WINDOW *scr);
+int     ring_eat(int hand);
+char   *ring_num(struct object *obj);
+int     ring_value(int type);
+void    ring_on(struct linked_list *item);
+void    ring_search(void);
+void    ring_teleport(void);
+int     rnd(int range);
+void    rnd_pos(struct room *rp, coord *cp);
+int     rnd_room(void);
+coord  *rndmove(struct thing *who);
+int     roll(int number, int sides);
+void    rollwand(void);
+struct room *roomin(coord *cp);
+int     rs_restore_file(int inf);
+int     rs_save_file(FILE *savef);
+int     runners(int segments);
+void    runto(struct thing *runner, coord *spot);
+bool    save(int which, struct thing *who, int adj);
+bool    save_game(void);
+void    score(unsigned long amount, int flags, short monst);
+void    search(bool is_thief, bool door_chime);
+char    secretdoor(int y, int x);
+void    sell(struct thing *tp);
+void    sell_it(void);
+void    set_trap(struct thing *tp, int y, int x);
+void    setup(void);
+void    shoot_bolt(struct thing *shooter, coord start, coord dir, 
+                   bool get_points, short reason, char *name, int damage);
+bool    shoot_ok(char ch);
+char    show(int y, int x);
+void    sight(void);
+bool    skirmish(struct thing *attacker, coord *mp, struct object *weap, 
+                 bool thrown);
+struct linked_list *spec_item(int type, int which, int hit, int damage);
+void    spell_recovery(void);
+void    start_daemon(int (*func)(), int arg, int type);
+void    status(bool display);
+void    steal(void);
+bool    step_ok(int y, int x, int can_on_monst, struct thing *flgptr);
+void    stomach(void);
+int     str_compute(void);
+int     str_plus(short str);
+void    strangle(void);
+void    strucpy(char *s1, char *s2, int len);
+void    suffocate(void);
+void    swander(void);
+bool    swing(short class, int at_lvl, int op_arm, int wplus);
+void    take_off(void);
+int     teleport(void);
+void    total_winner(void);
+int     totalenc(struct thing *tp);
+char   *tr_name(char ch);
+struct trap *trap_at(int y, int x);
+void    trap_look(void);
+void    updpack(int getmax, struct thing *tp);
+void    unclrhead(void);
+void    unchoke(void);
+void    unconfuse(void);
+void    undance(void);
+void    unphase(void);
+void    unsee(void);
+void    unskill(void);
+void    unstink(void);
+int     usage_time(struct linked_list *item);
+void    use_mm(int which);
+char   *vowelstr(char *str);
+void    wait_for(char ch);
+struct linked_list *wake_monster(int y, int x);
+void    wake_room(struct room *rp);
+void    wanderer(void);
+void    waste_time(void);
+int     weap_move(struct thing *wielder, struct object *weap);
+char   *weap_name(struct object *obj);
+void    wear(void);
+void    wghtchk(void);
+void    whatis(struct linked_list *what);
+void    wield(void);
+struct linked_list *wield_weap(struct object *thrown, struct thing *mp);
+void    writelog(unsigned long amount, int flags, short monst);
 
-/* char	*malloc(), *getenv(), *tr_name(), *new(), *sprintf(), */
-char	*getenv(), *tr_name(), *new(),
-	*vowelstr(), *inv_name(), *strcpy(), *strcat();
-char	*num(), *ring_num(), *misc_num(), *blesscurse(), *p_kind(),
-	*typ_name(), *prname(), *monster_name(), *weap_name(), *misc_name();
-coord	*rndmove(), *can_shoot(), *fallpos(), *doorway(), get_coordinates();
-short	randmonster(), id_monst(), movement();
-void    quit(int), auto_save(int), bugkill(int), endit(int), tstp(int), 
-        byebye(int);
-int	nohaste(), spell_recovery(),
-	doctor(), runners(), swander(), unconfuse(), unsee(), fumble(),
-	unclrhead(), unphase(), noslow(), rollwand(), stomach(), sight(),
-	unstink(), suffocate(), cure_disease(), shoot_bolt(), changeclass(),
-	appear(), dust_appear(), unchoke(), alchemy(), trap_look(), strangle(),
-	ring_teleport(), ring_search(), grab(), dsrpt_player(), quill_charge(),
-	make_sell_pack(), unskill(), findmindex(), nobolt(), nofire(), nocold(),
-	usage_time(), eat_gold(), chant_recovery(), prayer_recovery(), 
-	dsrpt_monster();
-bool	blue_light(), can_blink(), creat_mons(), add_pack(),
-	straight_shot(), maze_view(), lit_room(), getdelta(), save_file(),
-	save_game(), m_use_it(), m_use_pack(), get_dir(), need_dir();
-long	lseek(), check_level();
-void	genmonsters(), 
-	add_intelligence(), add_strength(), add_wisdom(), add_dexterity(),
-	add_constitution(), add_charisma(), res_intelligence(), res_strength(int),
-	res_wisdom(), res_dexterity(), res_constitution(), res_charisma();
-
-void writelog(unsigned long amount, int flags, short monst);
+char   *md_crypt(char *key, char *salt);
+int     md_erasechar(void);
+FILE   *md_fdopen(int fd, char *mode);
+int     md_fileno(FILE *fp);
+void    md_flushinp(void);
+char   *md_gethomedir(void);
+char   *md_gethostname(void);
+char   *md_getpass(char *prompt);
+char   *md_getroguedir(void);
+int     md_getuid(void);
+char   *md_getusername(void);
+void    md_init(void);
+int     md_killchar(void);
+long    md_memused(void);
+int     md_normaluser(void);
+int     md_rand(void);
+void    md_reopen_score(void);
+int     md_readchar(WINDOW *win);
+int     md_shellescape(void);
+int     md_srand(int seed);
+int     md_unlink(char *file);
+int     md_unlink_open_file(char *file, int inf);
 
 #ifdef CHECKTIME
 int checkout();
 #endif
 
+#ifdef PC7300
+void endhardwin(void);
+#endif
 
 /*
  * Now all the global variables
@@ -1297,11 +1569,7 @@
 extern void (*res_abil[NUMABILITIES])(); /* Functions to change abilities */
 extern int  cNCOLORS, cNWOOD, cNMETAL, cNSTONES;
 extern char *rainbow[], *stones[], *wood[], *metal[];
-extern int  land(), wghtchk(), undance(), cloak_charge(struct object *);
 extern struct delayed_action d_list[MAXDAEMONS];
 extern struct delayed_action f_list[MAXFUSES];
 extern int demoncnt, fusecnt, between, chance;
 #define CCHAR(x) ( (char) (x & A_CHARTEXT) )
-extern char *md_gethostname(), *md_getusername(), *md_gethomedir(), *md_getroguedir(), *md_crypt();
-extern FILE * md_fdopen(int fd, char *mode);
-extern int md_fileno(FILE *fp);
--- a/arogue7/rooms.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/rooms.c	Wed Mar 02 21:28:34 2016 -0500
@@ -21,7 +21,11 @@
 #include "curses.h"
 #include "rogue.h"
 
-do_rooms()
+void horiz(int cnt);
+void vert(int cnt);
+
+void
+do_rooms(void)
 {
     register int i;
     register struct room *rp;
@@ -108,7 +112,7 @@
 
 	    has_gold = TRUE;	/* This room has gold in it */
 
-	    item = spec_item(GOLD, NULL, NULL, NULL);
+	    item = spec_item(GOLD, 0, 0, 0);
 	    cur = OBJPTR(item);
 
 	    /* Put the gold into the level list of items */
@@ -178,9 +182,7 @@
  */
 
 coord *
-doorway(rp, door)
-register struct room *rp;
-register coord *door;
+doorway(struct room *rp, coord *door)
 {
     register int misses = 0;
     static coord answer;
@@ -209,8 +211,8 @@
  * Draw a box around a room
  */
 
-draw_room(rp)
-register struct room *rp;
+void
+draw_room(struct room *rp)
 {
     register int j, k;
 
@@ -237,8 +239,8 @@
  *	draw a horizontal line
  */
 
-horiz(cnt)
-register int cnt;
+void
+horiz(int cnt)
 {
     while (cnt--)
 	addch('-');
@@ -249,9 +251,8 @@
  *	pick a random spot in a room
  */
 
-rnd_pos(rp, cp)
-register struct room *rp;
-register coord *cp;
+void
+rnd_pos(struct room *rp, coord *cp)
 {
     cp->x = rp->r_pos.x + rnd(rp->r_max.x-2) + 1;
     cp->y = rp->r_pos.y + rnd(rp->r_max.y-2) + 1;
@@ -266,8 +267,7 @@
  */
 
 struct room *
-roomin(cp)
-register coord *cp;
+roomin(coord *cp)
 {
     register struct room *rp;
 
@@ -282,8 +282,8 @@
  *	draw a vertical line
  */
 
-vert(cnt)
-register int cnt;
+void
+vert(int cnt)
 {
     register int x, y;
 
--- a/arogue7/save.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/save.c	Wed Mar 02 21:28:34 2016 -0500
@@ -42,6 +42,8 @@
 #define ENCWRITE encwrite
 #endif
 
+bool save_file(int savefd);
+
 typedef struct stat STAT;
 
 extern char version[], encstr[];
@@ -51,7 +53,7 @@
 STAT sbuf;
 
 bool
-save_game()
+save_game(void)
 {
     register int savefd;
     register int c;
@@ -122,8 +124,7 @@
  * recieved
  */
 void
-auto_save(sig)
-int sig;
+auto_save(int sig)
 {
     register int savefd;
     register int i;
@@ -145,8 +146,7 @@
  * write the saved game on the file
  */
 bool
-save_file(savefd)
-register int savefd;
+save_file(int savefd)
 {
     register unsigned num_to_write, num_written;
     FILE *savef;
@@ -167,9 +167,8 @@
     else return(FALSE);
 }
 
-restore(file, envp)
-register char *file;
-char **envp;
+bool
+restore(char *file, char *envp[])
 {
     register int inf;
     extern char **environ;
@@ -265,10 +264,8 @@
 /*
  * perform an encrypted write
  */
-encwrite(start, size, outf)
-register char *start;
-register unsigned size;
-register int outf;
+int
+encwrite(char *start, unsigned int size, int outf)
 {
     register char *ep;
     register int i = 0;
@@ -298,10 +295,8 @@
 /*
  * perform an encrypted read
  */
-encread(start, size, inf)
-register char *start;
-register unsigned size;
-register int inf;
+int
+encread(char *start, unsigned int size, int inf)
 {
     register char *ep;
     register int read_size;
--- a/arogue7/scrolls.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/scrolls.c	Wed Mar 02 21:28:34 2016 -0500
@@ -20,12 +20,14 @@
 #include "curses.h"
 #include <stdlib.h>
 #include <ctype.h>
+#include <string.h>
 #include "rogue.h"
 
 /*
  * let the hero get rid of some type of monster (but not a UNIQUE!)
  */
-genocide()
+void
+genocide(void)
 {
     register struct linked_list *ip;
     register struct thing *mp;
@@ -57,10 +59,8 @@
     msg("You have wiped out the %s.", monsters[which_monst].m_name);
 }
 
-read_scroll(which, flag, is_scroll)
-register int which;
-int flag;
-bool is_scroll;
+void
+read_scroll(int which, int flag, bool is_scroll)
 {
     register struct object *obj = NULL, *nobj;
     register struct linked_list *item, *nitem;
--- a/arogue7/state.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/state.c	Wed Mar 02 21:28:34 2016 -0500
@@ -73,6 +73,12 @@
 static int endian = 0x01020304;
 #define  big_endian ( *((char *)&endian) == 0x01 )
 
+int list_size(struct linked_list *l);
+int rs_write_int(FILE *savef, int c);
+int rs_read_int(int inf, int *i);
+int rs_write_object_list(FILE *savef, struct linked_list *l);
+int rs_read_object_list(int inf, struct linked_list **list);
+
 int
 rs_write(FILE *savef, void *ptr, size_t size)
 {
@@ -2346,7 +2352,7 @@
     return(READSTAT);
 }
 
-int
+void
 rs_fix_thing(struct thing *t)
 {
     struct thing *tp;
--- a/arogue7/sticks.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/sticks.c	Wed Mar 02 21:28:34 2016 -0500
@@ -22,16 +22,14 @@
 #include <string.h>
 #include "rogue.h"
 
+void drain(int ymin, int ymax, int xmin, int xmax);
 
 /*
  * zap a stick and see what happens
  */
-do_zap(zapper, obj, direction, which, flags)
-struct thing *zapper;
-struct object *obj;
-coord *direction;
-int which;
-int flags;
+void
+do_zap(struct thing *zapper, struct object *obj, coord *direction, int which, 
+       int flags)
 {
     register struct linked_list *item = NULL;
     register struct thing *tp;
@@ -499,7 +497,7 @@
 		if (pstats.s_hpt <= 0) {
 		    msg("Your life has been sucked from you -- More --");
 		    wait_for(' ');
-		    death(zapper);
+		    death(zapper->t_index);
 		}
 		else
 		    msg("You feel a great drain on your system");
@@ -625,8 +623,8 @@
  *	Do drain hit points from player shtick
  */
 
-drain(ymin, ymax, xmin, xmax)
-int ymin, ymax, xmin, xmax;
+void
+drain(int ymin, int ymax, int xmin, int xmax)
 {
     register int i, j, count;
     register struct thing *ick;
@@ -698,8 +696,8 @@
 /*
  * initialize a stick
  */
-fix_stick(cur)
-register struct object *cur;
+void
+fix_stick(struct object *cur)
 {
     if (EQUAL(ws_type[cur->o_which], "staff")) {
 	cur->o_weight = 100;
@@ -738,8 +736,8 @@
 /*
  * Use the wand that our monster is wielding.
  */
-m_use_wand(monster)
-register struct thing *monster;
+void
+m_use_wand(struct thing *monster)
 {
     register struct object *obj;
 
@@ -764,14 +762,16 @@
      */
     msg("%s points a %s at you!", prname(monster_name(monster), TRUE),
 	ws_type[obj->o_which]);
-    do_zap(monster, obj, &monster->t_newpos, obj->o_which, NULL);
+    do_zap(monster, obj, &monster->t_newpos, obj->o_which, 0);
     monster->t_wand /= 2; /* chance lowers with each use */
 }
 
+/*
+ * type: type of item, NULL means stick
+ * which: which item
+ */
 bool
-need_dir(type, which)
-int	type,		/* type of item, NULL means stick */
-	which;		/* which item			  */
+need_dir(int type, int which)
 {
     if (type == STICK || type == 0) {
 	switch (which) {
@@ -799,9 +799,8 @@
 /*
  * let the player zap a stick and see what happens
  */
-player_zap(which, flag)
-int which;
-int flag;
+bool
+player_zap(int which, int flag)
 {
     register struct linked_list *item;
     register struct object *obj;
@@ -868,13 +867,9 @@
  * 	      given direction
  */
 
-shoot_bolt(shooter, start, dir, get_points, reason, name, damage)
-struct thing *shooter;
-coord start, dir;
-bool get_points;
-short reason;
-char *name;
-int damage;
+void
+shoot_bolt(struct thing *shooter, coord start, coord dir, bool get_points, 
+           short reason, char *name, int damage)
 {
     register char dirch, ch;
     register bool used, change;
--- a/arogue7/things.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/things.c	Wed Mar 02 21:28:34 2016 -0500
@@ -23,12 +23,16 @@
 #include <string.h>
 #include "rogue.h"
 
+int pick_one(struct magic_item *magic, int nitems);
+char *blesscurse(int flags);
+char *p_kind(struct object *obj);
+int extras(void);
+
 /*
  * print out the number of charges on a stick
  */
 char *
-charge_str(obj)
-register struct object *obj;
+charge_str(struct object *obj)
 {
     static char buf[20];
 
@@ -46,9 +50,7 @@
  *	inventory.
  */
 char *
-inv_name(obj, drop)
-register struct object *obj;
-bool drop;
+inv_name(struct object *obj, bool drop)
 {
     register char *pb;
 
@@ -324,8 +326,7 @@
  *	Return the name of a weapon.
  */
 char *
-weap_name(obj)
-register struct object *obj;
+weap_name(struct object *obj)
 {
     switch (obj->o_type) {
 	case WEAPON:
@@ -357,8 +358,8 @@
  * drop:
  *	put something down
  */
-drop(item)
-struct linked_list *item;
+bool
+drop(struct linked_list *item)
 {
     register char ch;
     register struct linked_list *obj, *nobj;
@@ -464,8 +465,8 @@
 /*
  * do special checks for dropping or unweilding|unwearing|unringing
  */
-dropcheck(op)
-register struct object *op;
+bool
+dropcheck(struct object *op)
 {
     int save_max;
 
@@ -566,9 +567,7 @@
  * return a new thing
  */
 struct linked_list *
-new_thing(thing_type, allow_curse)
-int thing_type;
-bool allow_curse;
+new_thing(int thing_type, bool allow_curse)
 {
     register struct linked_list *item;
     register struct object *cur;
@@ -779,8 +778,7 @@
  * provide a new item tailored to specification
  */
 struct linked_list *
-spec_item(type, which, hit, damage)
-int type, which, hit, damage;
+spec_item(int type, int which, int hit, int damage)
 {
     register struct linked_list *item;
     register struct object *obj;
@@ -858,9 +856,8 @@
 /*
  * pick an item out of a list of nitems possible magic items
  */
-pick_one(magic, nitems)
-register struct magic_item *magic;
-int nitems;
+int
+pick_one(struct magic_item *magic, int nitems)
 {
     register struct magic_item *end;
     register int i;
@@ -889,8 +886,7 @@
  */
 
 char *
-blesscurse(flags)
-int flags;
+blesscurse(int flags)
 {
     if (flags & ISKNOW)  {
 	if (flags & ISCURSED) return("cursed ");
@@ -903,11 +899,11 @@
 /*
  * p_kind returns the type of potion for some types of identified potions;
  * otherwise, it returns the color.
+ * We assume that obj points to a potion
  */
 
 char *
-p_kind(obj)
-struct object *obj;	/* We assume that obj points to a potion */
+p_kind(struct object *obj)
 {
     if (obj->o_which == P_ABIL) return(abilities[obj->o_kind]);
     else return(p_colors[obj->o_which]);
@@ -917,7 +913,8 @@
  * extras:
  *	Return the number of extra items to be created
  */
-extras()
+int
+extras(void)
 {
 	reg int i;
 
--- a/arogue7/trader.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/trader.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,18 +16,22 @@
  * Anything to do with trading posts
  */
 
+#include <ctype.h>
+#include <string.h>
 #include "curses.h"
 #include "rogue.h"
 
-
-
+bool open_market(void);
+void trans_line(void);
+char *typ_name(struct object *obj);
 
 
 /*
  * buy_it:
  *	Buy the item on which the hero stands
  */
-buy_it()
+void
+buy_it(void)
 {
 	reg int wh;
 	struct linked_list *item;
@@ -79,9 +83,10 @@
 /*
  * do_post:
  *	Put a trading post room and stuff on the screen
+ * startup: True if equipping the player at the beginning of the game
  */
-do_post(startup)
-bool startup;	/* True if equipping the player at the beginning of the game */
+void
+do_post(bool startup)
 {
 	coord tp;
 	reg int i, j, k;
@@ -322,8 +327,8 @@
  * get_worth:
  *	Calculate an objects worth in gold
  */
-get_worth(obj)
-reg struct object *obj;
+int
+get_worth(struct object *obj)
 {
 	reg int worth, wh;
 
@@ -393,7 +398,8 @@
  * open_market:
  *	Retruns TRUE when ok do to transacting
  */
-open_market()
+bool
+open_market(void)
 {
 	if (trader >= MAXPURCH && !wizard && level != 0) {
 	    msg("The market is closed. The stairs are that-a-way.");
@@ -408,7 +414,8 @@
  * price_it:
  *	Price the object that the hero stands on
  */
-price_it()
+bool
+price_it(void)
 {
 	reg struct linked_list *item;
 	reg struct object *obj;
@@ -445,7 +452,8 @@
  * sell_it:
  *	Sell an item to the trading post
  */
-sell_it()
+void
+sell_it(void)
 {
 	reg struct linked_list *item;
 	reg struct object *obj;
@@ -491,7 +499,8 @@
  * trans_line:
  *	Show how many transactions the hero has left
  */
-trans_line()
+void
+trans_line(void)
 {
 	if (level == 0)
 	    sprintf(prbuf, "You are welcome to spend whatever you have.");
@@ -511,8 +520,7 @@
  * 	Return the name for this type of object
  */
 char *
-typ_name(obj)
-reg struct object *obj;
+typ_name(struct object *obj)
 {
 	static char buff[20];
 	reg int wh;
--- a/arogue7/util.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/util.c	Wed Mar 02 21:28:34 2016 -0500
@@ -35,8 +35,7 @@
  * this routine computes the players current AC without dex bonus's
  */
 int 
-ac_compute(ignoremetal)
-bool ignoremetal;
+ac_compute(bool ignoremetal)
 {
     register int ac;
 
@@ -69,8 +68,8 @@
  *	aggravate all the monsters on this level
  */
 
-aggravate(do_uniques, do_good)
-bool do_uniques, do_good;
+void
+aggravate(bool do_uniques, bool do_good)
 {
     register struct linked_list *mi;
     register struct thing *thingptr;
@@ -87,8 +86,8 @@
  *	returns true if the hero can see a certain coordinate.
  */
 
-cansee(y, x)
-register int y, x;
+bool
+cansee(int y, int x)
 {
     register struct room *rer;
     register int radius;
@@ -134,7 +133,7 @@
  * further levels
  */
 long
-check_level()
+check_level(void)
 {
     register int i, j, add = 0;
     register unsigned long exp;
@@ -178,8 +177,8 @@
  * it keeps track of the highest it has been, just in case
  */
 
-chg_str(amt)
-register int amt;
+void
+chg_str(int amt)
 {
     register int ring_str;		/* ring strengths */
     register struct stats *ptr;		/* for speed */
@@ -201,7 +200,8 @@
 /*
  * let's confuse the player
  */
-confus_player()
+void
+confus_player(void)
 {
     if (off(player, ISCLEAR))
     {
@@ -218,7 +218,8 @@
 /*
  * this routine computes the players current dexterity
  */
-dex_compute()
+int
+dex_compute(void)
 {
     if (cur_misc[WEAR_GAUNTLET] != NULL		&&
 	cur_misc[WEAR_GAUNTLET]->o_which == MM_G_DEXTERITY) {
@@ -236,9 +237,8 @@
  *	Check to see if the move is legal if it is diagonal
  */
 
-diag_ok(sp, ep, flgptr)
-register coord *sp, *ep;
-struct thing *flgptr;
+bool
+diag_ok(coord *sp, coord *ep, struct thing *flgptr)
 {
     register int numpaths = 0;
 
@@ -258,10 +258,7 @@
  * pick a random position around the give (y, x) coordinates
  */
 coord *
-fallpos(pos, be_clear, range)
-register coord *pos;
-bool be_clear;
-int range;
+fallpos(coord *pos, bool be_clear, int range)
 {
 	register int tried, i, j;
 	register char ch;
@@ -339,8 +336,8 @@
  *	Find the index into the monster table of a monster given its name.
  */
 
-findmindex(name)
-char *name;
+int
+findmindex(char *name)
 {
     int which;
 
@@ -361,9 +358,7 @@
  */
 
 struct linked_list *
-find_mons(y, x)
-register int y;
-register int x;
+find_mons(int y, int x)
 {
     register struct linked_list *item;
     register struct thing *th;
@@ -383,9 +378,7 @@
  */
 
 struct linked_list *
-find_obj(y, x)
-register int y;
-register int x;
+find_obj(int y, int x)
 {
     register struct linked_list *obj;
     register struct object *op;
@@ -403,7 +396,7 @@
  * get coordinates from the player using the cursor keys (or mouse)
  */
 coord 
-get_coordinates()
+get_coordinates(void)
 {
     register int which;
     coord c;
@@ -550,8 +543,7 @@
  * set up the direction co_ordinate for use in various "prefix" commands
  */
 bool
-get_dir(direction)
-coord *direction;
+get_dir(coord *direction)
 {
     register char *prompt;
     register bool gotit;
@@ -610,8 +602,8 @@
 /* 
  * see if the object is one of the currently used items
  */
-is_current(obj)
-register struct object *obj;
+bool
+is_current(struct object *obj)
 {
     if (obj == NULL)
 	return FALSE;
@@ -650,11 +642,12 @@
 /*
  * Look:
  *	A quick glance all around the player
+ * wakeup: Should we wake up monsters
+ * runend: At end of a run -- for mazes
  */
 
-look(wakeup, runend)
-bool wakeup;	/* Should we wake up monsters */
-bool runend;	/* At end of a run -- for mazes */
+void
+look(bool wakeup, bool runend)
 {
     register int x, y, radius;
     register char ch, och;
@@ -938,8 +931,8 @@
  * Lower a level of experience 
  */
 
-lower_level(who)
-short who;
+void
+lower_level(short who)
 {
     int fewer, nsides;
     unsigned int exp;
@@ -971,8 +964,7 @@
  * print out the name of a monster
  */
 char *
-monster_name(tp)
-register struct thing *tp;
+monster_name(struct thing *tp)
 {
     prbuf[0] = '\0';
     if (on(*tp, ISFLEE) || on(*tp, WASTURNED))
@@ -1003,8 +995,7 @@
  */
 
 bool
-move_hero(why)
-int why;
+move_hero(int why)
 {
     char *action = "";
     char which;
@@ -1049,7 +1040,8 @@
  *	The guy just magically went up a level.
  */
 
-raise_level()
+void
+raise_level(void)
 {
     unsigned long test;	/* Next level -- be sure it is not an overflow */
 
@@ -1081,11 +1073,12 @@
 /*
  * save:
  *	See if a creature saves against something
+ * which: which type of save
+ * who: who is saving
+ * adj: saving throw adjustment
  */
-save(which, who, adj)
-int which;		/* which type of save */
-struct thing *who;	/* who is saving */
-int adj;		/* saving throw adjustment */
+bool
+save(int which, struct thing *who, int adj)
 {
     register int need, level, protect;
 
@@ -1144,8 +1137,8 @@
  *	Figure out what a secret door looks like.
  */
 
-secretdoor(y, x)
-register int y, x;
+char
+secretdoor(int y, int x)
 {
     register int i;
     register struct room *rp;
@@ -1168,7 +1161,8 @@
 /*
  * this routine computes the players current strength
  */
-str_compute()
+int
+str_compute(void)
 {
     if (cur_misc[WEAR_GAUNTLET] != NULL		&&
 	cur_misc[WEAR_GAUNTLET]->o_which == MM_G_OGRE) {
@@ -1184,9 +1178,8 @@
 /*
  * copy string using unctrl for things
  */
-strucpy(s1, s2, len)
-register char *s1, *s2;
-register int len;
+void
+strucpy(char *s1, char *s2, int len)
 {
     register char *sp;
 
@@ -1204,8 +1197,7 @@
  */
 
 char *
-tr_name(ch)
-char ch;
+tr_name(char ch)
 {
     register char *s = "";
 
@@ -1235,8 +1227,7 @@
  * for printfs: if string starts with a vowel, return "n" for an "an"
  */
 char *
-vowelstr(str)
-register char *str;
+vowelstr(char *str)
 {
     switch (*str)
     {
@@ -1254,8 +1245,8 @@
 /*
  * wake up a room full (hopefully) of creatures
  */
-wake_room(rp)
-register struct room *rp;
+void
+wake_room(struct room *rp)
 {
 	register struct linked_list *item;
 	register struct thing *tp;
@@ -1273,7 +1264,8 @@
  *	Do nothing but let other things happen
  */
 
-waste_time()
+void
+waste_time(void)
 {
     if (inwhgt)			/* if from wghtchk then done */
 	return;
--- a/arogue7/weapons.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/weapons.c	Wed Mar 02 21:28:34 2016 -0500
@@ -22,10 +22,8 @@
 #include <string.h>
 #include "rogue.h"
 
-boomerang(ydelta, xdelta, item, tp)
-int ydelta, xdelta;
-register struct linked_list *item;
-register struct thing *tp;
+void
+boomerang(int ydelta, int xdelta, struct linked_list *item, struct thing *tp)
 {
 	register struct object *obj;
 	struct thing midpoint;
@@ -56,10 +54,8 @@
  * across the room.  Note that we should not look at any field in
  * tp other than t_pos unless we change boomerang().
  */
-do_motion(obj, ydelta, xdelta, tp)
-register struct object *obj;
-register int ydelta, xdelta;
-register struct thing *tp;
+void
+do_motion(struct object *obj, int ydelta, int xdelta, struct thing *tp)
 {
 
 	/*
@@ -115,9 +111,8 @@
  *	Drop an item someplace around here.
  */
 
-fall(item, pr)
-register struct linked_list *item;
-bool pr;
+void
+fall(struct linked_list *item, bool pr)
 {
 	register struct object *obj;
 	register struct room *rp;
@@ -170,10 +165,8 @@
  * Does the missile hit the monster
  */
 
-hit_monster(y, x, obj, tp)
-register int y, x;
-struct object *obj;
-register struct thing *tp;
+bool
+hit_monster(int y, int x, struct object *obj, struct thing *tp)
 {
 	static coord mp;
 
@@ -203,9 +196,8 @@
  *	Set up the initial goodies for a weapon
  */
 
-init_weapon(weap, type)
-register struct object *weap;
-char type;
+void
+init_weapon(struct object *weap, char type)
 {
 	register struct init_weps *iwp;
 
@@ -228,10 +220,8 @@
  *	Fire a missile in a given direction
  */
 
-missile(ydelta, xdelta, item, tp)
-int ydelta, xdelta;
-register struct linked_list *item;
-register struct thing *tp;
+void
+missile(int ydelta, int xdelta, struct linked_list *item, struct thing *tp)
 {
 	register struct object *obj;
 	register struct linked_list *nitem;
@@ -303,8 +293,7 @@
  */
 
 char *
-num(n1, n2)
-register int n1, n2;
+num(int n1, int n2)
 {
 	static char numbuf[LINELEN];
 
@@ -324,7 +313,8 @@
  *	Pull out a certain weapon
  */
 
-wield()
+void
+wield(void)
 {
 	register struct linked_list *item;
 	register struct object *obj, *oweapon;
--- a/arogue7/wear.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/wear.c	Wed Mar 02 21:28:34 2016 -0500
@@ -26,7 +26,8 @@
  *	Get the armor off of the players back
  */
 
-take_off()
+void
+take_off(void)
 {
     register struct object *obj;
     register struct linked_list *item;
@@ -75,7 +76,8 @@
  *	The player wants to wear something, so let him/her put it on.
  */
 
-wear()
+void
+wear(void)
 {
     register struct linked_list *item;
     register struct object *obj;
@@ -389,8 +391,8 @@
  *	How many movements periods does it take to put on or remove the
  *	given item of "clothing"?
  */
-dress_units(item)
-struct linked_list *item;
+int
+dress_units(struct linked_list *item)
 {
     register struct object *obj;
 
--- a/arogue7/wizard.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/arogue7/wizard.c	Wed Mar 02 21:28:34 2016 -0500
@@ -19,20 +19,21 @@
 
 #include "curses.h"
 #include <stdlib.h>
+#include <string.h>
 #include <ctype.h>
 #include "rogue.h"
 #ifdef PC7300
 #include "menu.h"
 #endif
 
+int getbless(void);
 
 /*
  * create_obj:
  *	Create any object for wizard, scroll, magician, or cleric
  */
-create_obj(prompt, which_item, which_type)
-bool prompt;
-int which_item, which_type;
+void
+create_obj(bool prompt, int which_item, int which_type)
 {
     reg struct linked_list *item;
     reg struct object *obj;
@@ -329,7 +330,8 @@
  * getbless:
  *	Get a blessing for a wizards object
  */
-getbless()
+int
+getbless(void)
 {
 	reg char bless;
 
@@ -346,7 +348,8 @@
 /*
  * get a non-monster death type
  */
-getdeath()
+int
+getdeath(void)
 {
     register int i;
     int which_death;
@@ -381,10 +384,10 @@
 
 /*
  * make a monster for the wizard
+ *  showall -> show uniques and genocided creatures
  */
-makemonster(showall, label, action) 
-bool showall;	/* showall -> show uniques and genocided creatures */
-char *label, *action;
+short
+makemonster(bool showall, char *label, char *action) 
 {
 #ifdef PC7300
     register int nextmonst;
@@ -439,7 +442,7 @@
 
     /* Print out the monsters */
     while (num_monst > 0) {
-	register left_limit;
+	int left_limit;
 
 	if (num_monst < num_lines) left_limit = (num_monst+1)/2;
 	else left_limit = num_lines/2;
@@ -508,7 +511,8 @@
  *	see if user knows password
  */
 
-passwd()
+bool
+passwd(void)
 {
     register char *sp, c;
     char buf[LINELEN], *crypt();
@@ -535,7 +539,8 @@
  *	Bamf the hero someplace else
  */
 
-teleport()
+int
+teleport(void)
 {
     register struct room *new_rp = NULL, *old_rp = roomin(&hero);
     register int rm, which;
@@ -636,8 +641,8 @@
  *	What a certin object is
  */
 
-whatis(what)
-struct linked_list *what;
+void
+whatis(struct linked_list *what)
 {
     register struct object *obj;
     register struct linked_list *item;
--- a/rogue3/main.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue3/main.c	Wed Mar 02 21:28:34 2016 -0500
@@ -25,9 +25,8 @@
 FILE   *scoreboard = NULL;
 FILE   *logfi = NULL;
 
-main(argc, argv, envp)
-char **argv;
-char **envp;
+int
+main(int argc, char *argv[], char *envp[])
 {
     char *env;
     struct linked_list *item;
--- a/rogue4/armor.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/armor.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,7 +16,8 @@
  * wear:
  *	The player wants to wear something, so let him/her put it on.
  */
-wear()
+void
+wear(void)
 {
     register THING *obj;
     register char *sp;
@@ -50,7 +51,8 @@
  * take_off:
  *	Get the armor off of the players back
  */
-take_off()
+void
+take_off(void)
 {
     register THING *obj;
 
@@ -77,7 +79,8 @@
  * waste_time:
  *	Do nothing but let other things happen
  */
-waste_time()
+void
+waste_time(void)
 {
     do_daemons(BEFORE);
     do_fuses(BEFORE);
--- a/rogue4/chase.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/chase.c	Wed Mar 02 21:28:34 2016 -0500
@@ -10,6 +10,7 @@
  * See the file LICENSE.TXT for full copyright and licensing information.
  */
 
+#include <stdlib.h>
 #include <curses.h>
 #include "rogue.h"
 
@@ -17,11 +18,16 @@
 
 coord ch_ret;				/* Where chasing takes you */
 
+bool chase(THING *tp, coord *ee);
+int do_chase(THING *th);
+coord *find_dest(THING *tp);
+
 /*
  * runners:
  *	Make all the running monsters move.
  */
-runners()
+void
+runners(void)
 {
     register THING *tp;
 	register THING *ntp;
@@ -46,8 +52,8 @@
  * do_chase:
  *	Make one thing chase another.
  */
-do_chase(th)
-register THING *th;
+int
+do_chase(THING *th)
 {
     register struct room *rer, *ree;	/* room of chaser, room of chasee */
     register int mindist = 32767, i, dist;
@@ -184,8 +190,8 @@
  * see_monst:
  *	Return TRUE if the hero can see the monster
  */
-see_monst(mp)
-register THING *mp;
+bool
+see_monst(THING *mp)
 {
     if (on(player, ISBLIND))
 	return FALSE;
@@ -203,9 +209,8 @@
  *	Set a mosnter running after something or stop it from running
  *	(for when it dies)
  */
-runto(runner, spot)
-register coord *runner;
-coord *spot;
+void
+runto(coord *runner, coord *spot)
 {
     register THING *tp;
 
@@ -234,9 +239,8 @@
  *	chasee(ee).  Returns TRUE if we want to keep on chasing later
  *	FALSE if we reach the goal.
  */
-chase(tp, ee)
-THING *tp;
-coord *ee;
+bool
+chase(THING *tp, coord *ee)
 {
     register int x, y;
     register int dist, thisdist;
@@ -339,8 +343,7 @@
  *	in any room.
  */
 struct room *
-roomin(cp)
-register coord *cp;
+roomin(coord *cp)
 {
     register struct room *rp;
     register char *fp;
@@ -360,8 +363,8 @@
  * diag_ok:
  *	Check to see if the move is legal if it is diagonal
  */
-diag_ok(sp, ep)
-register coord *sp, *ep;
+bool
+diag_ok(coord *sp, coord *ep)
 {
     if (ep->x == sp->x || ep->y == sp->y)
 	return TRUE;
@@ -372,8 +375,8 @@
  * cansee:
  *	Returns true if the hero can see a certain coordinate.
  */
-cansee(y, x)
-register int y, x;
+bool
+cansee(int y, int x)
 {
     register struct room *rer;
     coord tp;
@@ -396,8 +399,7 @@
  *	find the proper destination for the monster
  */
 coord *
-find_dest(tp)
-register THING *tp;
+find_dest(THING *tp)
 {
     register THING *obj;
     register int prob;
--- a/rogue4/command.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/command.c	Wed Mar 02 21:28:34 2016 -0500
@@ -19,15 +19,30 @@
 
 char countch, direction, newcount = FALSE;
 
+void call(void);
+void d_level(void);
+void help(void);
+void identify(void);
+void illcom(char ch);
+void search(void);
+void u_level(void);
+
+#ifdef WIZARD
+extern void add_pass(void);
+extern void create_obj(void);
+extern bool passwd(void);
+extern void show_map(void);
+#endif
+
 /*
  * command:
  *	Process the user commands
  */
-command()
+void
+command(void)
 {
     register char ch;
     register int ntimes = 1;			/* Number of player moves */
-    char *unctrol();
 
     if (on(player, ISHASTE))
 	ntimes++;
@@ -344,8 +359,8 @@
  * illcom:
  *	What to do with an illegal command
  */
-illcom(ch)
-char ch;
+void
+illcom(char ch)
 {
     save_msg = FALSE;
     count = 0;
@@ -357,7 +372,8 @@
  * search:
  *	Player gropes about him to find hidden things.
  */
-search()
+void
+search(void)
 {
     register int y, x;
     register char *fp;
@@ -400,7 +416,8 @@
  * help:
  *	Give single character help, or the whole mess if he wants it
  */
-help()
+void
+help(void)
 {
     register const struct h_list *strp = helpstr;
     register char helpch;
@@ -457,7 +474,8 @@
  * identify:
  *	Tell the player what a certain thing is.
  */
-identify()
+void
+identify(void)
 {
     register char ch;
     register const char *str;
@@ -502,7 +520,8 @@
  * d_level:
  *	He wants to go down a level
  */
-d_level()
+void
+d_level(void)
 {
     if (chat(hero.y, hero.x) != STAIRS)
 	msg("I see no way down");
@@ -517,7 +536,8 @@
  * u_level:
  *	He wants to go up a level
  */
-u_level()
+void
+u_level(void)
 {
     if (chat(hero.y, hero.x) == STAIRS)
 	if (amulet)
@@ -538,7 +558,8 @@
  * call:
  *	Allow a user to call a potion, scroll, or ring something
  */
-call()
+void
+call(void)
 {
     register THING *obj;
     register char **guess;
--- a/rogue4/daemon.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/daemon.c	Wed Mar 02 21:28:34 2016 -0500
@@ -29,7 +29,7 @@
  *	Find an empty slot in the daemon/fuse list
  */
 struct delayed_action *
-d_slot()
+d_slot(void)
 {
     register int i;
     register struct delayed_action *dev;
@@ -48,8 +48,7 @@
  *	Find a particular slot in the table
  */
 struct delayed_action *
-find_slot(func)
-register int (*func)();
+find_slot(int (*func)())
 {
     register int i;
     register struct delayed_action *dev;
@@ -64,8 +63,8 @@
  * start_daemon:
  *	Start a daemon, takes a function.
  */
-start_daemon(func, arg, type)
-int (*func)(), arg, type;
+void
+start_daemon(int (*func)(), int arg, int type)
 {
     register struct delayed_action *dev;
 
@@ -80,8 +79,8 @@
  * kill_daemon:
  *	Remove a daemon from the list
  */
-kill_daemon(func)
-int (*func)();
+void
+kill_daemon(int (*func)())
 {
     register struct delayed_action *dev;
 
@@ -98,8 +97,8 @@
  *	Run all the daemons that are active with the current flag,
  *	passing the argument to the function.
  */
-do_daemons(flag)
-register int flag;
+void
+do_daemons(int flag)
 {
     register struct delayed_action *dev;
 
@@ -118,8 +117,8 @@
  * fuse:
  *	Start a fuse to go off in a certain number of turns
  */
-fuse(func, arg, time, type)
-int (*func)(), arg, time, type;
+void
+fuse(int (*func)(), int arg, int time, int type)
 {
     register struct delayed_action *wire;
 
@@ -134,9 +133,8 @@
  * lengthen:
  *	Increase the time until a fuse goes off
  */
-lengthen(func, xtime)
-int (*func)();
-int xtime;
+void
+lengthen(int (*func)(), int xtime)
 {
     register struct delayed_action *wire;
 
@@ -149,8 +147,8 @@
  * extinguish:
  *	Put out a fuse
  */
-extinguish(func)
-int (*func)();
+void
+extinguish(int (*func)())
 {
     register struct delayed_action *wire;
 
@@ -163,8 +161,8 @@
  * do_fuses:
  *	Decrement counters and start needed fuses
  */
-do_fuses(flag)
-register int flag;
+void
+do_fuses(int flag)
 {
     register struct delayed_action *wire;
 
--- a/rogue4/daemons.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/daemons.c	Wed Mar 02 21:28:34 2016 -0500
@@ -19,7 +19,8 @@
  * doctor:
  *	A healing daemon that restors hit points after rest
  */
-doctor()
+void
+doctor(void)
 {
     register int lv, ohp;
 
@@ -50,7 +51,8 @@
  * Swander:
  *	Called when it is time to start rolling for wandering monsters
  */
-swander()
+void
+swander(void)
 {
     start_daemon(rollwand, 0, BEFORE);
 }
@@ -59,7 +61,8 @@
  * rollwand:
  *	Called to roll to see if a wandering monster starts up
  */
-rollwand()
+void
+rollwand(void)
 {
     if (++between >= 4)
     {
@@ -77,7 +80,8 @@
  * unconfuse:
  *	Release the poor player from his confusion
  */
-unconfuse()
+void
+unconfuse(void)
 {
     player.t_flags &= ~ISHUH;
     msg("you feel less confused now");
@@ -87,7 +91,8 @@
  * unsee:
  *	Turn off the ability to see invisible
  */
-unsee()
+void
+unsee(void)
 {
     register THING *th;
 
@@ -104,7 +109,8 @@
  * sight:
  *	He gets his sight back
  */
-sight()
+void
+sight(void)
 {
     if (on(player, ISBLIND))
     {
@@ -120,7 +126,8 @@
  * nohaste:
  *	End the hasting
  */
-nohaste()
+void
+nohaste(void)
 {
     player.t_flags &= ~ISHASTE;
     msg("you feel yourself slowing down");
@@ -130,7 +137,8 @@
  * stomach:
  *	Digest the hero's food
  */
-stomach()
+void
+stomach(void)
 {
     register int oldfood;
 
--- a/rogue4/extern.h	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/extern.h	Wed Mar 02 21:28:34 2016 -0500
@@ -52,17 +52,9 @@
  * Function types
  */
 
-char	*charge_str(), *ctime(), *getenv(), *inv_name(),
-	*killname(), *nothing(), *num(), *ring_num(),
-	*tr_name(),
-	*unctrol(), *vowelstr();
+char	*ctime(), *getenv();
 
-void    leave(int), quit(int), tstp(), auto_save(int), endit(int);
-int	doctor(), nohaste(),
-	rollwand(), runners(), sight(), stomach(), swander(),
-	turn_see(), unconfuse(), unsee();
-
-void	checkout();
+void    tstp(), endit(int);
 
 long	lseek();
 
@@ -86,6 +78,18 @@
 #define O_BINARY 0
 #endif
 
+extern int   md_erasechar(void);
 extern FILE *md_fdopen(int fd, char *mode);
+extern int   md_fileno(FILE *fp);
 extern char *md_getusername(int uid);
 extern char *md_gethomedir();
+extern int   md_getuid(void);
+extern void  md_ignore_signals(void);
+extern void  md_init(void);
+extern int   md_killchar(void);
+extern void  md_normaluser(void);
+extern int   md_readchar(WINDOW *win);
+extern int   md_shellescape(void);
+extern void  md_sleep(int s);
+extern int   md_unlink(char *file);
+extern int   md_unlink_open_file(char *file, int inf);
--- a/rogue4/fight.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/fight.c	Wed Mar 02 21:28:34 2016 -0500
@@ -10,6 +10,7 @@
  * See the file LICENSE.TXT for full copyright and licensing information.
  */
 
+#include <stdlib.h>
 #include <curses.h>
 #include <ctype.h>
 #include <string.h>
@@ -20,15 +21,20 @@
     40920L, 81920L, 163840L, 327680L, 655360L, 1310720L, 2621440L, 0L
 };
 
+bool roll_em(THING *thatt, THING *thdef, THING *weap, bool hurl);
+void hit(char *er, char *ee);
+void miss(char *er, char *ee);
+int str_plus(str_t str);
+int add_dam(str_t str);
+void thunk(THING *weap, const char *mname);
+void bounce(THING *weap, const char *mname);
+
 /*
  * fight:
  *	The player attacks the monster.
  */
-fight(mp, mn, weap, thrown)
-register coord *mp;
-char mn;
-register THING *weap;
-bool thrown;
+bool
+fight(coord *mp, char mn, THING *weap, bool thrown)
 {
     register THING *tp;
     register bool did_hit = TRUE;
@@ -96,8 +102,8 @@
  * attack:
  *	The monster attacks the player
  */
-attack(mp)
-register THING *mp;
+int
+attack(THING *mp)
 {
     register const char *mname;
 
@@ -295,8 +301,8 @@
  * swing:
  *	Returns true if the swing hits
  */
-swing(at_lvl, op_arm, wplus)
-int at_lvl, op_arm, wplus;
+bool
+swing(int at_lvl, int op_arm, int wplus)
 {
     register int res = rnd(20);
     register int need = (20 - at_lvl) - op_arm;
@@ -308,7 +314,8 @@
  * check_level:
  *	Check to see if the guy has gone up a level.
  */
-check_level()
+void
+check_level(void)
 {
     register int i, add, olevel;
 
@@ -332,9 +339,8 @@
  * roll_em:
  *	Roll several attacks
  */
-roll_em(thatt, thdef, weap, hurl)
-THING *thatt, *thdef, *weap;
-bool hurl;
+bool
+roll_em(THING *thatt, THING *thdef, THING *weap, bool hurl)
 {
     register struct stats *att, *def;
     register char *cp;
@@ -440,9 +446,7 @@
  *	The print name of a combatant
  */
 char *
-prname(who, upper)
-register char *who;
-bool upper;
+prname(char *who, bool upper)
 {
     static char tbuf[MAXSTR];
 
@@ -465,8 +469,8 @@
  * hit:
  *	Print a message to indicate a succesful hit
  */
-hit(er, ee)
-register char *er, *ee;
+void
+hit(char *er, char *ee)
 {
     register char *s = "";
 
@@ -491,8 +495,8 @@
  * miss:
  *	Print a message to indicate a poor swing
  */
-miss(er, ee)
-register char *er, *ee;
+void
+miss(char *er, char *ee)
 {
     register char *s = "";
 
@@ -514,9 +518,8 @@
  * save_throw:
  *	See if a creature save against something
  */
-save_throw(which, tp)
-int which;
-THING *tp;
+bool
+save_throw(int which, THING *tp)
 {
     register int need;
 
@@ -528,8 +531,8 @@
  * save:
  *	See if he saves against various nasty things
  */
-save(which)
-register int which;
+bool
+save(int which)
 {
     if (which == VS_MAGIC)
     {
@@ -545,8 +548,8 @@
  * str_plus:
  *	Compute bonus/penalties for strength on the "to hit" roll
  */
-str_plus(str)
-register str_t str;
+int
+str_plus(str_t str)
 {
     if (str == 31)
 	return 3;
@@ -563,9 +566,9 @@
  * add_dam:
  *	Compute additional damage done for exceptionally high or low strength
  */
- add_dam(str)
- register str_t str;
- {
+int
+add_dam(str_t str)
+{
     if (str == 31)
 	return 6;
     if (str > 21)
@@ -587,7 +590,8 @@
  * raise_level:
  *	The guy just magically went up a level.
  */
-raise_level()
+void
+raise_level(void)
 {
     pstats.s_exp = e_levels[pstats.s_lvl-1] + 1L;
     check_level();
@@ -597,9 +601,8 @@
  * thunk:
  *	A missile hits a monster
  */
-thunk(weap, mname)
-register THING *weap;
-register const char *mname;
+void
+thunk(THING *weap, const char *mname)
 {
     if (weap->o_type == WEAPON)
 	addmsg("the %s hits ", w_names[weap->o_which]);
@@ -615,9 +618,8 @@
  * bounce:
  *	A missile misses a monster
  */
-bounce(weap, mname)
-register THING *weap;
-register const char *mname;
+void
+bounce(THING *weap, const char *mname)
 {
     if (weap->o_type == WEAPON)
 	addmsg("the %s misses ", w_names[weap->o_which]);
@@ -633,10 +635,8 @@
  * remove:
  *	Remove a monster from the screen
  */
-remove_monster(mp, tp, waskill)
-register coord *mp;
-register THING *tp;
-bool waskill;
+void
+remove_monster(coord *mp, THING *tp, bool waskill)
 {
     register THING *obj, *nexti;
 
@@ -660,8 +660,8 @@
  * is_magic:
  *	Returns true if an object radiates magic
  */
-is_magic(obj)
-register THING *obj;
+bool
+is_magic(THING *obj)
 {
     switch (obj->o_type)
     {
@@ -683,9 +683,8 @@
  * killed:
  *	Called to put a monster to death
  */
-killed(tp, pr)
-register THING *tp;
-bool pr;
+void
+killed(THING *tp, bool pr)
 {
     pstats.s_exp += tp->t_stats.s_exp;
     /*
--- a/rogue4/init.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/init.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,11 +16,16 @@
 #include <string.h>
 #include "rogue.h"
 
+#ifdef WIZARD
+void badcheck(char *name, struct magic_item *magic, int bound);
+#endif
+
 /*
  * init_player:
  *	Roll up the rogue
  */
-init_player()
+void
+init_player(void)
 {
     register THING *obj;
 
@@ -236,7 +241,8 @@
  * init_things
  *	Initialize the probabilities for types of things
  */
-init_things()
+void
+init_things(void)
 {
     register struct magic_item *mp;
 
@@ -251,7 +257,8 @@
  * init_colors:
  *	Initialize the potion color scheme for this time
  */
-init_colors()
+void
+init_colors(void)
 {
     register int i, j;
     bool used[NCOLORS];
@@ -281,7 +288,8 @@
  */
 #define MAXNAME	40	/* Max number of characters in a name */
 
-init_names()
+void
+init_names(void)
 {
     register int nsyl;
     register char *cp;
@@ -322,7 +330,8 @@
  * init_stones:
  *	Initialize the ring stone setting scheme for this time
  */
-init_stones()
+void
+init_stones(void)
 {
     register int i, j;
     bool used[NSTONES];
@@ -351,7 +360,8 @@
  * init_materials:
  *	Initialize the construction materials for wands and staffs
  */
-init_materials()
+void
+init_materials(void)
 {
     register int i, j;
     register const char *str;
@@ -402,10 +412,8 @@
  * badcheck:
  *	Check to see if a series of probabilities sums to 100
  */
-badcheck(name, magic, bound)
-char *name;
-register struct magic_item *magic;
-register int bound;
+void
+badcheck(char *name, struct magic_item *magic, int bound)
 {
     register struct magic_item *end;
 
--- a/rogue4/io.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/io.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,6 +16,8 @@
 #include "rogue.h"
 #include <stdarg.h>
 
+void doadd(char *fmt, va_list ap);
+
 /*
  * msg:
  *	Display a message at the top of the screen.
@@ -23,6 +25,7 @@
 static char msgbuf[BUFSIZ];
 static int newpos = 0;
 
+void
 msg(char *fmt, ...)
 {
     va_list ap;
@@ -50,6 +53,7 @@
  *	Add things to the current message
  */
 
+void
 addmsg(char *fmt, ...)
 {
     va_list ap;
@@ -65,7 +69,8 @@
  *	if it is up there with the --More--)
  */
 
-endmsg()
+void
+endmsg(void)
 {
     if (save_msg)
     {
@@ -99,6 +104,7 @@
  *	Perform an add onto the message buffer
  */
 
+void
 doadd(char *fmt, va_list ap)
 {
     vsprintf(&msgbuf[newpos], fmt, ap);
@@ -109,7 +115,8 @@
  * step_ok:
  *	Returns true if it is ok to step on ch
  */
-step_ok(ch)
+bool
+step_ok(char ch)
 {
     switch (ch)
     {
@@ -127,8 +134,8 @@
  *	Flushes stdout so that screen is up to date and then returns
  *	getchar().
  */
-readcharw(win)
-WINDOW *win;
+int
+readcharw(WINDOW *win)
 {
     int ch;
 
@@ -143,14 +150,14 @@
     return(ch);
 }
 
-readchar()
+int
+readchar(void)
 {
     return( readcharw(stdscr) );
 }
 
 char *
-unctrol(ch)
-char ch;
+unctrol(char ch)
 {
     return( (char *) unctrl(ch) );
 }
@@ -159,7 +166,8 @@
  * status:
  *	Display the important stats line.  Keep the cursor where it was.
  */
-status()
+void
+status(void)
 {
     register int oy, ox, temp;
     static int hpwidth = 0, s_hungry;
@@ -215,15 +223,14 @@
 
 
 
-wait_for(ch)
-register char ch;
+void
+wait_for(char ch)
 {
     w_wait_for(stdscr, ch);
 }
 
-w_wait_for(win,ch)
-WINDOW *win;
-register char ch;
+void
+w_wait_for(WINDOW *win, char ch)
 {
     register char c;
 
@@ -239,9 +246,8 @@
  * show_win:
  *	Function used to display a window and wait before returning
  */
-show_win(scr, message)
-register WINDOW *scr;
-char *message;
+void
+show_win(WINDOW *scr, char *message)
 {
     mvwaddstr(scr, 0, 0, message);
     touchwin(scr);
--- a/rogue4/list.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/list.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,8 +18,8 @@
  * detach:
  *	Takes an item out of whatever linked list it might be in
  */
-_detach(list, item)
-register THING **list, *item;
+void
+_detach(THING **list, THING *item)
 {
     if (*list == item)
 	*list = next(item);
@@ -33,8 +33,8 @@
  * _attach:
  *	add an item to the head of a list
  */
-_attach(list, item)
-register THING **list, *item;
+void
+_attach(THING **list, THING *item)
 {
     if (*list != NULL)
     {
@@ -54,8 +54,8 @@
  * _free_list:
  *	Throw the whole blamed thing away
  */
-_free_list(ptr)
-register THING **ptr;
+void
+_free_list(THING **ptr)
 {
     register THING *item;
 
@@ -71,8 +71,8 @@
  * discard:
  *	Free up an item
  */
-discard(item)
-register THING *item;
+void
+discard(THING *item)
 {
     total--;
     free((char *) item);
@@ -83,7 +83,7 @@
  *	Get a new item with a specified size
  */
 THING *
-new_item()
+new_item(void)
 {
     register THING *item;
 
--- a/rogue4/mach_dep.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/mach_dep.c	Wed Mar 02 21:28:34 2016 -0500
@@ -47,11 +47,17 @@
 #endif
 #endif
 
+int too_much(void);
+bool author(void);
+void checkout(int s);
+void chmsg(char *fmt, int arg);
+
 /*
  * init_check:
  *	Check out too see if it is proper to play the game now
  */
-init_check()
+void
+init_check(void)
 {
     if (too_much())
     {
@@ -70,7 +76,8 @@
  *	Open up the score file for future use, and then
  *	setuid(getuid()) in case we are running setuid.
  */
-open_score()
+void
+open_score(void)
 {
 #ifdef SCOREFILE
     fd = open(SCOREFILE, O_RDWR | O_CREAT, 0666 );
@@ -82,7 +89,8 @@
     return;
 }
 
-void open_log(void)
+void
+open_log(void)
 {
 #ifdef LOGFILE
     lfd = open(LOGFILE, O_WRONLY | O_APPEND | O_CREAT, 0666);
@@ -96,12 +104,10 @@
  * setup:
  *	Get starting setup for all games
  */
-setup()
+void
+setup(void)
 {
     void  auto_save(), quit(), endit(), tstp();
-#ifdef CHECKTIME
-    int  checkout();
-#endif
 
     /*
      * make sure that large terminals don't overflow the bounds
@@ -158,7 +164,8 @@
  * start_score:
  *	Start the scoring sequence
  */
-start_score()
+void
+start_score(void)
 {
 #ifdef SIGALRM
     signal(SIGALRM, SIG_IGN);
@@ -169,8 +176,8 @@
  * issymlink:
  *	See if the file has a symbolic link
  */
-issymlink(sp)
-char *sp;
+bool
+issymlink(char *sp)
 {
 #ifdef S_IFLNK
     struct stat sbuf2;
@@ -188,7 +195,8 @@
  * too_much:
  *	See if the system is being used too much for this game
  */
-too_much()
+int
+too_much(void)
 {
 #ifdef MAXLOAD
     double avec[3];
@@ -208,7 +216,8 @@
  * author:
  *	See if a user is an author of the program
  */
-author()
+bool
+author(void)
 {
 #ifdef WIZARD
     if (wizard)
@@ -246,7 +255,7 @@
 	if (author())
 	{
 	    num_checks = 1;
-	    chmsg("The load is rather high, O exaulted one");
+	    chmsg("The load is rather high, O exaulted one", 0);
 	}
 	else if (num_checks++ == 3)
 	    fatal("Sorry.  You took to long.  You are dead\n");
@@ -265,7 +274,7 @@
 	if (num_checks)
 	{
 	    num_checks = 0;
-	    chmsg("The load has dropped back down.  You have a reprieve");
+	    chmsg("The load has dropped back down.  You have a reprieve", 0);
 	}
 #ifdef CHECKTIME
 #ifdef SIGALRM
@@ -280,9 +289,8 @@
  *	checkout()'s version of msg.  If we are in the middle of a
  *	shell, do a printf instead of a msg to avoid the refresh.
  */
-chmsg(fmt, arg)
-char *fmt;
-int arg;
+void
+chmsg(char *fmt, int arg)
 {
     if (in_shell)
     {
@@ -299,7 +307,8 @@
  *	lock the score file.  If it takes too long, ask the user if
  *	they care to wait.  Return TRUE if the lock is successful.
  */
-lock_sc()
+bool
+lock_sc(void)
 {
 #ifdef SCOREFILE
 #ifdef LOCKFILE
@@ -361,7 +370,8 @@
  * unlock_sc:
  *	Unlock the score file
  */
-unlock_sc()
+void
+unlock_sc(void)
 {
 #ifdef SCOREFILE
 #ifdef LOCKFILE
@@ -374,7 +384,8 @@
  * flush_type:
  *	Flush typeahead for traps, etc.
  */
-flush_type()
+void
+flush_type(void)
 {
     flushinp();
 }
--- a/rogue4/main.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/main.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,15 +18,15 @@
 #include <signal.h>
 #include <limits.h>
 #include <string.h>
+#include <time.h>
 #include "rogue.h"
 
 /*
  * main:
  *	The main program, of course
  */
-main(argc, argv, envp)
-char **argv;
-char **envp;
+int
+main(int argc, char *argv[], char *envp[])
 {
     register char *env;
     int lowtime;
@@ -113,7 +113,7 @@
     if (argc == 2 && strcmp(argv[1], "-s") == 0)
     {
 	noscore = TRUE;
-	score(0, -1);
+	score(0, -1, 0);
 	exit(0);
     }
     init_check();			/* check for legal startup */
@@ -227,8 +227,8 @@
  * fatal:
  *	Exit the program, printing a message.
  */
-fatal(s)
-char *s;
+void
+fatal(char *s)
 {
     clear();
     move(LINES-2, 0);
@@ -242,8 +242,8 @@
  * rnd:
  *	Pick a very random number.
  */
-rnd(range)
-register int range;
+int
+rnd(int range)
 {
     return range == 0 ? 0 : abs((int) RN) % range;
 }
@@ -252,8 +252,8 @@
  * roll:
  *	Roll a number of dice
  */
-roll(number, sides)
-register int number, sides;
+int
+roll(int number, int sides)
 {
     register int dtotal = 0;
 
@@ -299,7 +299,8 @@
  *	The main loop of the program.  Loop until the game is over,
  *	refreshing things and looking at the proper times.
  */
-playit()
+void
+playit(void)
 {
     register char *opts;
 
@@ -352,7 +353,7 @@
 	move(LINES - 1, 0);
 	refresh();
 	writelog(purse, 1, 0);
-	score(purse, 1);
+	score(purse, 1, 0);
 	printf("[Press return to exit]\n");
 	fflush(NULL);
 	getchar();
@@ -391,7 +392,8 @@
  * shell:
  *	Let him escape for a while
  */
-shell()
+void
+shell(void)
 {
     /*
      * Set the terminal back to original mode
--- a/rogue4/mdport.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/mdport.c	Wed Mar 02 21:28:34 2016 -0500
@@ -59,6 +59,7 @@
 char *strdup(const char *s);
 #endif
 
+#include <ctype.h>
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
@@ -85,7 +86,7 @@
 #define MOD_MOVE(c) (toupper(c) )
 
 void
-md_init()
+md_init(void)
 {
 #ifdef __INTERIX
     char *term;
@@ -104,7 +105,7 @@
 }
 
 int
-md_hasclreol()
+md_hasclreol(void)
 {
 #ifdef CE
     return((CE != NULL) && (*CE != 0));
@@ -126,7 +127,7 @@
 static int md_standout_mode = 0;
 
 void
-md_raw_standout()
+md_raw_standout(void)
 {
 #ifdef _WIN32
     CONSOLE_SCREEN_BUFFER_INFO csbiInfo; 
@@ -149,7 +150,7 @@
 }
 
 void
-md_raw_standend()
+md_raw_standend(void)
 {
 #ifdef _WIN32
     CONSOLE_SCREEN_BUFFER_INFO csbiInfo; 
@@ -230,7 +231,7 @@
 
 
 void
-md_normaluser()
+md_normaluser(void)
 {
 #ifndef _WIN32
     setuid(getuid());
@@ -239,7 +240,7 @@
 }
 
 int
-md_getuid()
+md_getuid(void)
 {
 #ifndef _WIN32
     return( getuid() );
@@ -296,7 +297,7 @@
 }
 
 char *
-md_gethomedir()
+md_gethomedir(void)
 {
     static char homedir[PATH_MAX];
     char *h = NULL;
@@ -348,7 +349,7 @@
 }
 
 char *
-md_getshell()
+md_getshell(void)
 {
     static char shell[PATH_MAX];
     char *s = NULL;
@@ -378,7 +379,7 @@
 }
 
 void
-md_ignore_signals()
+md_ignore_signals(void)
 {
 #ifndef _WIN32
     int i;
@@ -395,7 +396,7 @@
 }
 
 int
-md_shellescape()
+md_shellescape(void)
 {
 #if (!defined(_WIN32) && !defined(__DJGPP__))
     int ret_status;
@@ -465,7 +466,7 @@
 #endif
 }
 
-extern char *xcrypt(char *key, char *salt);
+extern char *xcrypt(const char *key, const char *setting);
 
 char *
 md_crypt(char *key, char *salt)
@@ -569,7 +570,7 @@
 }
 
 int
-md_ucount()
+md_ucount(void)
 {
 #ifdef __DJGPP__
     return(1);
@@ -606,7 +607,7 @@
 }
 
 long
-md_random()
+md_random(void)
 {
 #ifdef _WIN32
     return(rand());
@@ -626,7 +627,7 @@
 }
 
 int
-md_rand()
+md_rand(void)
 {
 #ifdef _WIN32
     return(rand());
@@ -656,7 +657,7 @@
 }
 
 long
-md_memused()
+md_memused(void)
 {
 #ifdef _WIN32
     MEMORYSTATUS stat;
@@ -670,7 +671,7 @@
 }
 
 int
-md_erasechar()
+md_erasechar(void)
 {
 #ifdef BSD
     return(_tty.sg_erase); /* process erase character */
@@ -682,7 +683,7 @@
 }
 
 int
-md_killchar()
+md_killchar(void)
 {
 #ifdef BSD
     return(_tty.sg_kill);
@@ -711,7 +712,7 @@
 }
 
 void
-md_flushinp()
+md_flushinp(void)
 {
 #ifdef BSD
     ioctl(0, TIOCFLUSH);
@@ -1012,7 +1013,7 @@
 int uindex = -1;
 
 int
-reread()
+reread(void)
 {
     int redo;
 
@@ -1046,6 +1047,7 @@
     int mode2 = M_NORMAL;
     int nodelayf = 0;
     int count = 0;
+    extern void auto_save(int sig);
 
     for(;;)
     {
--- a/rogue4/misc.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/misc.c	Wed Mar 02 21:28:34 2016 -0500
@@ -21,8 +21,7 @@
  *	Print the name of a trap
  */
 char *
-tr_name(type)
-char type;
+tr_name(char type)
 {
     switch (type)
     {
@@ -47,8 +46,8 @@
  * look:
  *	A quick glance all around the player
  */
-look(wakeup)
-bool wakeup;
+void
+look(bool wakeup)
 {
     register int x, y;
     register unsigned char ch;
@@ -204,8 +203,7 @@
  *	Find the unclaimed object at y, x
  */
 THING *
-find_obj(y, x)
-register int y, x;
+find_obj(int y, int x)
 {
     register THING *op;
 
@@ -225,7 +223,8 @@
  * eat:
  *	She wants to eat something, so let her try
  */
-eat()
+void
+eat(void)
 {
     register THING *obj;
 
@@ -272,8 +271,8 @@
  *	Used to modify the playes strength.  It keeps track of the
  *	highest it has been, just in case
  */
-chg_str(amt)
-register int amt;
+void
+chg_str(int amt)
 {
     str_t comp;
 
@@ -293,9 +292,8 @@
  * add_str:
  *	Perform the actual add, checking upper and lower bound limits
  */
-add_str(sp, amt)
-register str_t *sp;
-int amt;
+void
+add_str(str_t *sp, int amt)
 {
     if ((*sp += amt) < 3)
 	*sp = 3;
@@ -307,8 +305,8 @@
  * add_haste:
  *	Add a haste to the player
  */
-add_haste(potion)
-bool potion;
+bool
+add_haste(bool potion)
 {
     if (on(player, ISHASTE))
     {
@@ -332,7 +330,8 @@
  * aggravate:
  *	Aggravate all the monsters on this level
  */
-aggravate()
+void
+aggravate(void)
 {
     register THING *mi;
 
@@ -346,8 +345,7 @@
  *	"an".
  */
 char *
-vowelstr(str)
-register char *str;
+vowelstr(char *str)
 {
     switch (*str)
     {
@@ -366,8 +364,8 @@
  * is_current:
  *	See if the object is one of the currently used items
  */
-is_current(obj)
-register THING *obj;
+bool
+is_current(THING *obj)
 {
     if (obj == NULL)
 	return FALSE;
@@ -387,7 +385,8 @@
  *      Set up the direction co_ordinate for use in varios "prefix"
  *	commands
  */
-get_dir()
+bool
+get_dir(void)
 {
     register char *prompt;
     register bool gotit;
@@ -430,8 +429,8 @@
  * sign:
  *	Return the sign of the number
  */
-sign(nm)
-register int nm;
+int
+sign(int nm)
 {
     if (nm < 0)
 	return -1;
@@ -443,8 +442,8 @@
  * spread:
  *	Give a spread around a given number (+/- 10%)
  */
-spread(nm)
-register int nm;
+int
+spread(int nm)
 {
     return nm - nm / 10 + rnd(nm / 5);
 }
@@ -453,9 +452,8 @@
  * call_it:
  *	Call an object something after use.
  */
-call_it(know, guess)
-register bool know;
-register char **guess;
+void
+call_it(bool know, char **guess)
 {
     if (know && *guess)
     {
--- a/rogue4/monsters.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/monsters.c	Wed Mar 02 21:28:34 2016 -0500
@@ -15,6 +15,8 @@
 #include <ctype.h>
 #include "rogue.h"
 
+int exp_add(THING *tp);
+
 /*
  * List of monsters in rough order of vorpalness
  *
@@ -39,8 +41,8 @@
  *	Pick a monster to show up.  The lower the level,
  *	the meaner the monster.
  */
-randmonster(wander)
-bool wander;
+char
+randmonster(bool wander)
 {
     register int d;
     register char *mons;
@@ -61,10 +63,8 @@
  * new_monster:
  *	Pick a new monster and add it to the list
  */
-new_monster(tp, type, cp)
-register THING *tp;
-char type;
-register coord *cp;
+void
+new_monster(THING *tp, char type, coord *cp)
 {
     register struct monster *mp;
     register int lev_add;
@@ -109,8 +109,8 @@
  * expadd:
  *	Experience to add for this monster's level/hit points
  */
-exp_add(tp)
-register THING *tp;
+int
+exp_add(THING *tp)
 {
     register int mod;
 
@@ -129,7 +129,8 @@
  * wanderer:
  *	Create a new wandering monster and aim it at the player
  */
-wanderer()
+void
+wanderer(void)
 {
     register int i;
     register struct room *rp;
@@ -166,8 +167,7 @@
  *	What to do when the hero steps next to a monster
  */
 THING *
-wake_monster(y, x)
-int y, x;
+wake_monster(int y, int x)
 {
     register THING *tp;
     register struct room *rp;
@@ -226,7 +226,8 @@
  * genocide:
  *	Wipe one monster out of existence (for now...)
  */
-genocide()
+void
+genocide(void)
 {
     register THING *mp;
     register char c;
@@ -270,8 +271,8 @@
  * give_pack:
  *	Give a pack to a monster if it deserves one
  */
-give_pack(tp)
-register THING *tp;
+void
+give_pack(THING *tp)
 {
     if (rnd(100) < monsters[tp->t_type-'A'].m_carry)
 	attach(tp->t_pack, new_thing());
--- a/rogue4/move.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/move.c	Wed Mar 02 21:28:34 2016 -0500
@@ -14,6 +14,9 @@
 #include <ctype.h>
 #include "rogue.h"
 
+void turnref(void);
+char be_trapped(coord *tc);
+
 /*
  * Used to hold the new hero position
  */
@@ -24,8 +27,8 @@
  * do_run:
  *	Start the hero running
  */
-do_run(ch)
-char ch;
+void
+do_run(char ch)
 {
     running = TRUE;
     after = FALSE;
@@ -37,8 +40,8 @@
  *	Check to see that a move is legal.  If it is handle the
  * consequences (fighting, picking up, etc.)
  */
-do_move(dy, dx)
-int dy, dx;
+void
+do_move(int dy, int dx)
 {
     register char ch, fl;
 
@@ -189,7 +192,8 @@
  * turnref:
  *	Decide whether to refresh at a passage turning or not
  */
-turnref()
+void
+turnref(void)
 {
     register int index;
 
@@ -211,8 +215,8 @@
  *	Called to illuminate a room.  If it is dark, remove anything
  *	that might move.
  */
-door_open(rp)
-struct room *rp;
+void
+door_open(struct room *rp)
 {
     register int j, k;
     register char ch;
@@ -238,8 +242,8 @@
  * be_trapped:
  *	The guy stepped on a trap.... Make him pay.
  */
-be_trapped(tc)
-register coord *tc;
+char
+be_trapped(coord *tc)
 {
     register char tr;
     register int index;
@@ -316,8 +320,7 @@
  *	Move in a random direction if the monster/person is confused
  */
 coord *
-rndmove(who)
-THING *who;
+rndmove(THING *who)
 {
     register int x, y;
     register char ch;
--- a/rogue4/new_level.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/new_level.c	Wed Mar 02 21:28:34 2016 -0500
@@ -11,6 +11,7 @@
  * See the file LICENSE.TXT for full copyright and licensing information.
  */
 
+#include <stdlib.h>
 #include <time.h>
 #include <curses.h>
 #include <string.h>
@@ -20,7 +21,11 @@
 #define MAXTREAS 10	/* maximum number of treasures in a treasure room */
 #define MINTREAS 2	/* minimum number of treasures in a treasure room */
 
-new_level()
+void put_things(void);
+void treas_room(void);
+
+void
+new_level(void)
 {
     register int rm, i;
     register THING *tp;
@@ -112,7 +117,8 @@
  * rnd_room:
  *	Pick a room that is really there
  */
-rnd_room()
+int
+rnd_room(void)
 {
     register int rm;
 
@@ -127,7 +133,8 @@
  * put_things:
  *	Put potions and scrolls on this level
  */
-put_things()
+void
+put_things(void)
 {
     register int i;
     register THING *cur;
@@ -197,7 +204,8 @@
  */
 #define MAXTRIES 10	/* max number of tries to put down a monster */
 
-treas_room()
+void
+treas_room(void)
 {
     register int nm, index;
     register THING *tp;
--- a/rogue4/options.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/options.c	Wed Mar 02 21:28:34 2016 -0500
@@ -36,7 +36,10 @@
 
 int allowchange(OPTION *opt);
 
-int	put_bool(), get_bool(), put_str(), get_str();
+void put_bool(bool *b);
+void put_str(char *str);
+int get_bool(bool *bp, WINDOW *win);
+int get_str(char *opt, WINDOW *win);
 
 OPTION	optlist[] = {
     {"terse",	 "Terse output: ",
@@ -63,7 +66,8 @@
  * option:
  *	Print and then set options from the terminal
  */
-option()
+void
+option(void)
 {
     register OPTION	*op;
     register int	retval;
@@ -125,8 +129,8 @@
  * put_bool
  *	Put out a boolean
  */
-put_bool(b)
-bool	*b;
+void
+put_bool(bool *b)
 {
     waddstr(hw, *b ? "True" : "False");
 }
@@ -135,8 +139,8 @@
  * put_str:
  *	Put out a string
  */
-put_str(str)
-char *str;
+void
+put_str(char *str)
 {
     waddstr(hw, str);
 }
@@ -145,9 +149,8 @@
  * get_bool:
  *	Allow changing a boolean option and print it out
  */
-get_bool(bp, win)
-bool *bp;
-WINDOW *win;
+int
+get_bool(bool *bp, WINDOW *win)
 {
     register int oy, ox;
     register bool op_bad;
@@ -196,9 +199,8 @@
  */
 #define MAXINP	50	/* max string to read from terminal or environment */
 
-get_str(opt, win)
-register char *opt;
-WINDOW *win;
+int
+get_str(char *opt, WINDOW *win)
 {
     register char *sp;
     register int c, oy, ox;
@@ -274,9 +276,8 @@
  * get_num:
  *	Get a numeric option
  */
-get_num(opt, win)
-short *opt;
-WINDOW *win;
+int
+get_num(short *opt, WINDOW *win)
 {
     register int i;
     char buf[MAXSTR];
@@ -295,8 +296,8 @@
  *	being "name=....", with the string being defined up to a comma
  *	or the end of the entire option string.
  */
-parse_opts(str)
-register char *str;
+void
+parse_opts(char *str)
 {
     register char *sp;
     register OPTION *op;
@@ -373,9 +374,8 @@
  * strucpy:
  *	Copy string using unctrol for things
  */
-strucpy(s1, s2, len)
-register char *s1, *s2;
-register int len;
+void
+strucpy(char *s1, char *s2, int len)
 {
     if (len > MAXINP)
 	len = MAXINP;
--- a/rogue4/pack.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/pack.c	Wed Mar 02 21:28:34 2016 -0500
@@ -14,14 +14,16 @@
 #include <ctype.h>
 #include "rogue.h"
 
+void money(int value);
+
 /*
  * update_mdest:
  *	Called after picking up an object, before discarding it.
  *	If this was the object of something's desire, that monster will
  *	get mad and run at the hero
  */
-update_mdest(obj)
-register THING *obj;
+void
+update_mdest(THING *obj)
 {
     register THING *mp;
 
@@ -36,9 +38,8 @@
  *	non-null use it as the linked_list pointer instead of gettting
  *	it off the ground.
  */
-add_pack(obj, silent)
-register THING *obj;
-bool silent;
+void
+add_pack(THING *obj, bool silent)
 {
     register THING *op, *lp = NULL;
     register bool exact, from_floor;
@@ -216,9 +217,8 @@
  * inventory:
  *	List what is in the pack
  */
-inventory(list, type)
-THING *list;
-int type;
+bool
+inventory(THING *list, int type)
 {
     register char ch;
     register int n_objs;
@@ -253,8 +253,8 @@
  * pick_up:
  *	Add something to characters pack.
  */
-pick_up(ch)
-char ch;
+void
+pick_up(char ch)
 {
     register THING *obj, *mp;
 
@@ -290,7 +290,8 @@
  * picky_inven:
  *	Allow player to inventory a single item
  */
-picky_inven()
+void
+picky_inven(void)
 {
     register THING *obj;
     register char ch, mch;
@@ -325,9 +326,7 @@
  *	Pick something out of a pack for a purpose
  */
 THING *
-get_item(purpose, type)
-char *purpose;
-int type;
+get_item(char *purpose, int type)
 {
     register THING *obj;
     register char ch, och;
@@ -384,8 +383,8 @@
  * pack_char:
  *	Return which character would address a pack object
  */
-pack_char(obj)
-register THING *obj;
+char
+pack_char(THING *obj)
 {
     register THING *item;
     register char c;
@@ -403,8 +402,8 @@
  * money:
  *	Add or subtract gold from the pack
  */
-money(value)
-register int value;
+void
+money(int value)
 {
     register char floor;
 
--- a/rogue4/passages.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/passages.c	Wed Mar 02 21:28:34 2016 -0500
@@ -10,14 +10,21 @@
  * See the file LICENSE.TXT for full copyright and licensing information.
  */
 
+#include <stdlib.h>
 #include <curses.h>
 #include "rogue.h"
 
+void conn(int r1, int r2);
+void door(struct room *rm, coord *cp);
+void passnum(void);
+void numpass(int y, int x);
+
 /*
  * do_passages:
  *	Draw all the passages on a level.
  */
-do_passages()
+void
+do_passages(void)
 {
     register struct rdes *r1, *r2 = NULL;
     register int i, j;
@@ -125,8 +132,8 @@
  * conn:
  *	Draw a corridor from a room in a certain direction.
  */
-conn(r1, r2)
-int r1, r2;
+void
+conn(int r1, int r2)
 {
     register struct room *rpf, *rpt = NULL;
     register char rmt;
@@ -269,9 +276,8 @@
  *	Add a door or possibly a secret door.  Also enters the door in
  *	the exits array of the room.
  */
-door(rm, cp)
-register struct room *rm;
-register coord *cp;
+void
+door(struct room *rm, coord *cp)
 {
     register int index;
 
@@ -291,7 +297,8 @@
  * add_pass:
  *	Add the passages to the current window (wizard command)
  */
-add_pass()
+void
+add_pass(void)
 {
     register int y, x, ch;
 
@@ -309,7 +316,8 @@
 static int pnum;
 static bool newpnum;
 
-passnum()
+void
+passnum(void)
 {
     register struct room *rp;
     register int i;
@@ -330,8 +338,8 @@
  * numpass:
  *	Number a passageway square and its brethren
  */
-numpass(y, x)
-register int y, x;
+void
+numpass(int y, int x)
 {
     register char *fp;
     register struct room *rp;
--- a/rogue4/potions.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/potions.c	Wed Mar 02 21:28:34 2016 -0500
@@ -17,7 +17,8 @@
  * quaff:
  *	Quaff a potion from the pack
  */
-quaff()
+void
+quaff(void)
 {
     register THING *obj, *th;
     register bool discardit = FALSE;
@@ -203,7 +204,8 @@
  * invis_on:
  *	Turn on the ability to see invisible
  */
-invis_on()
+void
+invis_on(void)
 {
     register THING *th;
 
@@ -220,8 +222,8 @@
  * see_monst:
  *	Put on or off seeing monsters on this level
  */
-turn_see(turn_off)
-register bool turn_off;
+bool
+turn_see(bool turn_off)
 {
     register THING *mp;
     register bool can_see, add_new;
--- a/rogue4/rings.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/rings.c	Wed Mar 02 21:28:34 2016 -0500
@@ -14,11 +14,14 @@
 #include <string.h>
 #include "rogue.h"
 
+int gethand(void);
+
 /*
  * ring_on:
  *	Put a ring on a hand
  */
-ring_on()
+void
+ring_on(void)
 {
     register THING *obj;
     register int ring;
@@ -88,7 +91,8 @@
  * ring_off:
  *	Take off a ring
  */
-ring_off()
+void
+ring_off(void)
 {
     register int ring;
     register THING *obj;
@@ -125,7 +129,8 @@
  * gethand:
  *	Which hand is the hero interested in?
  */
-gethand()
+int
+gethand(void)
 {
     register int c;
 
@@ -153,8 +158,8 @@
  * ring_eat:
  *	How much food does this ring use up?
  */
-ring_eat(hand)
-register int hand;
+int
+ring_eat(int hand)
 {
     if (cur_ring[hand] == NULL)
 	return 0;
@@ -186,8 +191,7 @@
  *	Print ring bonuses
  */
 char *
-ring_num(obj)
-register THING *obj;
+ring_num(THING *obj)
 {
     static char buf[5];
 
--- a/rogue4/rip.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/rip.c	Wed Mar 02 21:28:34 2016 -0500
@@ -19,6 +19,8 @@
 #include <stdlib.h>
 #include "rogue.h"
 
+char *killname(char monst, bool doart);
+
 static char *rip[] = {
 "                       __________",
 "                      /          \\",
@@ -41,9 +43,8 @@
  *	Figure score and post it.
  */
 /* VARARGS2 */
-score(amount, flags, monst)
-int amount, flags;
-char monst;
+void
+score(int amount, int flags, char monst)
 {
     register struct sc_ent *scp;
     register int i;
@@ -297,8 +298,8 @@
  * death:
  *	Do something really fun when he dies
  */
-death(monst)
-register char monst;
+void
+death(char monst)
 {
     register char **dp = rip, *killer;
     register struct tm *lt;
@@ -341,7 +342,8 @@
  * total_winner:
  *	Code for a winner
  */
-total_winner()
+void
+total_winner(void)
 {
     register THING *obj;
     register int worth = 0;
@@ -461,9 +463,7 @@
  *	Convert a code to a monster name
  */
 char *
-killname(monst, doart)
-register char monst;
-bool doart;
+killname(char monst, bool doart)
 {
     register const char *sp;
     register bool article;
--- a/rogue4/rogue.h	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/rogue.h	Wed Mar 02 21:28:34 2016 -0500
@@ -107,6 +107,7 @@
 #define STICK		'/'
 #define CALLABLE	-1
 
+int spread(int nm);
 /*
  * Various constants
  */
@@ -477,7 +478,157 @@
 THING	*find_mons(), *find_obj(), *get_item(), *new_item(),
 	*new_thing(), *wake_monster();
 
-struct room	*roomin();
+struct room	*roomin(coord *cp);
+
+void    _attach(THING **list, THING *item);
+void    _detach(THING **list, THING *item);
+void    _free_list(THING **ptr);
+bool    add_haste(bool potion);
+void    add_pack(THING *obj, bool silent);
+void    add_str(str_t *sp, int amt);
+void    addmsg(char *fmt, ...);
+void    aggravate(void);
+int     attack(THING *mp);
+void    auto_save(int sig);
+void    call_it(bool know, char **guess);
+bool    cansee(int y, int x);
+char   *charge_str(THING *obj);
+void    check_level(void);
+void    chg_str(int amt);
+void    command(void);
+void    death(char monst);
+bool    diag_ok(coord *sp, coord *ep);
+void    discard(THING *item);
+void    discovered(void);
+void    do_daemons(int flag);
+void    do_fuses(int flag);
+void    do_motion(THING *obj, int ydelta, int xdelta);
+void    do_move(int dy, int dx);
+void    do_passages(void);
+void    do_rooms(void);
+void    do_run(char ch);
+void    do_zap(void);
+void    doctor(void);
+void    door_open(struct room *rp);
+void    drop(void);
+bool    dropcheck(THING *op);
+void    eat(void);
+int     encread(void *starta, int size, int inf);
+void    encwrite(void *starta, int size, FILE *outf);
+void    endmsg(void);
+void    enter_room(coord *cp);
+void    extinguish(int (*func)());
+void    fall(THING *obj, bool pr);
+bool    fallpos(coord *pos, coord *newpos, bool pass);
+void    fatal(char *s);
+bool    fight(coord *mp, char mn, THING *weap, bool thrown);
+THING  *find_obj(int y, int x);
+void    fire_bolt(coord *start, coord *dir, char *name);
+void    fix_stick(THING *cur);
+void    flush_type(void);
+void    fuse(int (*func)(), int arg, int time, int type);
+void    genocide(void);
+bool    get_dir(void);
+THING  *get_item(char *purpose, int type);
+int     get_str(char *opt, WINDOW *win);
+void    give_pack(THING *tp);
+bool    hit_monster(int y, int x, THING *obj);
+void    init_check(void);
+void    init_colors(void);
+void    init_materials(void);
+void    init_names(void);
+void    init_player(void);
+void    init_stones(void);
+void    init_things(void);
+void    init_weapon(THING *weap, char type);
+char   *inv_name(THING *obj, bool drop);
+bool    inventory(THING *list, int type);
+void    invis_on(void);
+bool    is_current(THING *obj);
+bool    is_magic(THING *obj);
+bool    issymlink(char *sp);
+void    kill_daemon(int (*func)());
+void    killed(THING *tp, bool pr);
+void    leave(int sig);
+void    leave_room(coord *cp);
+void    lengthen(int (*func)(), int xtime);
+bool    lock_sc(void);
+void    look(bool wakeup);
+void    missile(int ydelta, int xdelta);
+void    msg(char *fmt, ...);
+THING  *new_item(void);
+void    new_level(void);
+void    new_monster(THING *tp, char type, coord *cp);
+THING  *new_thing(void);
+void    nohaste(void);
+char   *num(int n1, int n2, char type);
+void    open_log(void);
+void    open_score(void);
+void    option(void);
+char    pack_char(THING *obj);
+void    parse_opts(char *str);
+void    pick_up(char ch);
+void    picky_inven(void);
+void    playit(void);
+void    quaff(void);
+void    quit(int a);
+void    raise_level(void);
+char    randmonster(bool wander);
+void    read_scroll(void);
+int     readchar(void);
+int     readcharw(WINDOW *win);
+void    remove_monster(coord *mp, THING *tp, bool waskill);
+bool    restore(char *file, char **envp);
+int     ring_eat(int hand);
+char   *ring_num(THING *obj);
+void    ring_off(void);
+void    ring_on(void);
+int     rnd(int range);
+void    rnd_pos(struct room *rp, coord *cp);
+int     rnd_room(void);
+coord  *rndmove(THING *who);
+int     roll(int number, int sides);
+void    rollwand(void);
+void    runners(void);
+void    runto(coord *runner, coord *spot);
+bool    save(int which);
+bool    save_game(void);
+bool    save_throw(int which, THING *tp);
+void    score(int amount, int flags, char monst);
+bool    see_monst(THING *mp);
+void    setup(void);
+void    shell(void);
+void    show_win(WINDOW *scr, char *message);
+void    sight(void);
+int     sign(int nm);
+void    start_daemon(int (*func)(), int arg, int type);
+void    start_score(void);
+void    status(void);
+bool    step_ok(char ch);
+void    stomach(void);
+void    strucpy(char *s1, char *s2, int len);
+void    swander(void);
+bool    swing(int at_lvl, int op_arm, int wplus);
+void    take_off(void);
+int     teleport(void);
+void    total_winner(void);
+char   *tr_name(char type);
+bool    turn_see(bool turn_off);
+void    unconfuse(void);
+char   *unctrol(char ch);
+void    unlock_sc(void);
+void    unsee(void);
+char   *vowelstr(char *str);
+char   *xcrypt(const char *key, const char *setting);
+void    w_wait_for(WINDOW *win, char ch);
+void    wait_for(char ch);
+THING  *wake_monster(int y, int x);
+void    wanderer(void);
+void    waste_time(void);
+void    wear(void);
+void    whatis(bool insist);
+void    wield(void);
+void    writelog(int amount, int flags, char monst);
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
--- a/rogue4/rooms.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/rooms.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,11 +16,16 @@
 
 #define GOLDGRP 1
 
+void draw_room(struct room *rp);
+void vert(struct room *rp, int startx);
+void horiz(struct room *rp, int starty);
+
 /*
  * do_rooms:
  *	Create rooms and corridors with a connectivity graph
  */
-do_rooms()
+void
+do_rooms(void)
 {
     register int i;
     register struct room *rp;
@@ -120,8 +125,8 @@
  * draw_room:
  *	Draw a box around a room and lay down the floor
  */
-draw_room(rp)
-register struct room *rp;
+void
+draw_room(struct room *rp)
 {
     register int y, x;
 
@@ -147,9 +152,8 @@
  * vert:
  *	Draw a vertical line
  */
-vert(rp, startx)
-register struct room *rp;
-register int startx;
+void
+vert(struct room *rp, int startx)
 {
     register int y;
 
@@ -161,9 +165,8 @@
  * horiz:
  *	Draw a horizontal line
  */
-horiz(rp, starty)
-register struct room *rp;
-int starty;
+void
+horiz(struct room *rp, int starty)
 {
     register int x;
 
@@ -175,9 +178,8 @@
  * rnd_pos:
  *	Pick a random spot in a room
  */
-rnd_pos(rp, cp)
-register struct room *rp;
-register coord *cp;
+void
+rnd_pos(struct room *rp, coord *cp)
 {
     cp->x = rp->r_pos.x + rnd(rp->r_max.x - 2) + 1;
     cp->y = rp->r_pos.y + rnd(rp->r_max.y - 2) + 1;
@@ -187,8 +189,8 @@
  * enter_room:
  *	Code that is executed whenver you appear in a room
  */
-enter_room(cp)
-register coord *cp;
+void
+enter_room(coord *cp)
 {
     register struct room *rp;
     register int y, x;
@@ -220,8 +222,8 @@
  * leave_room:
  *	Code for when we exit a room
  */
-leave_room(cp)
-register coord *cp;
+void
+leave_room(coord *cp)
 {
     register int y, x;
     register struct room *rp;
--- a/rogue4/save.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/save.c	Wed Mar 02 21:28:34 2016 -0500
@@ -21,6 +21,10 @@
 #undef KERNEL
 #include "rogue.h"
 
+void save_file(FILE *savef);
+extern int rs_save_file(FILE *savef);
+extern int rs_restore_file(int inf);
+
 typedef struct stat STAT;
 
 extern char version[], encstr[];
@@ -33,7 +37,8 @@
  *	Implement the "save game" command
  */
 /* This has to be cleaned up, these goto's are annoying. */
-save_game()
+bool
+save_game(void)
 {
     register FILE *savef;
     register int c;
@@ -151,8 +156,8 @@
  * save_file:
  *	Write the saved game on the file
  */
-save_file(savef)
-register FILE *savef;
+void
+save_file(FILE *savef)
 {
     int slines = LINES;
     int scols  = COLS;
@@ -189,9 +194,8 @@
  *	Restore a saved game from a file with elaborate checks for file
  *	integrity from cheaters
  */
-restore(file, envp)
-register char *file;
-char **envp;
+bool
+restore(char *file, char **envp)
 {
     register int inf;
     register bool syml;
@@ -324,10 +328,8 @@
  * encwrite:
  *	Perform an encrypted write
  */
-encwrite(starta, size, outf)
-void *starta;
-unsigned int size;
-register FILE *outf;
+void
+encwrite(void *starta, int size, FILE *outf)
 {
     register char *ep;
     register char *start = (char *) starta;
@@ -345,10 +347,8 @@
  * encread:
  *	Perform an encrypted read
  */
-encread(starta, size, inf)
-register void *starta;
-unsigned int size;
-register int inf;
+int
+encread(void *starta, int size, int inf)
 {
     register char *ep;
     register int read_size;
--- a/rogue4/scrolls.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/scrolls.c	Wed Mar 02 21:28:34 2016 -0500
@@ -18,7 +18,8 @@
  * read_scroll:
  *	Read a scroll from the pack and do the appropriate thing
  */
-read_scroll()
+void
+read_scroll(void)
 {
     register THING *obj;
     register int y, x;
--- a/rogue4/state.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/state.c	Wed Mar 02 21:28:34 2016 -0500
@@ -1335,7 +1335,7 @@
         {
             for (i = 0; i < cnt; i++) 
             {
-                l = new_item(sizeof(THING));
+                l = new_item();
                 memset(l,0,sizeof(THING));
                 l->l_prev = previous;
                 if (previous != NULL)
--- a/rogue4/sticks.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/sticks.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,12 +16,14 @@
 #include <string.h>
 #include "rogue.h"
 
+void drain(void);
+
 /*
  * fix_stick:
  *	Set up a new stick
  */
-fix_stick(cur)
-register THING *cur;
+void
+fix_stick(THING *cur)
 {
     if (strcmp(ws_type[cur->o_which], "staff") == 0)
 	strcpy(cur->o_damage,"2d3");
@@ -45,7 +47,8 @@
  * do_zap:
  *	Perform a zap with a wand
  */
-do_zap()
+void
+do_zap(void)
 {
     register THING *obj, *tp;
     register int y, x;
@@ -272,7 +275,8 @@
  * drain:
  *	Do drain hit points from player shtick
  */
-drain()
+void
+drain(void)
 {
     register THING *mp;
     register int cnt;
@@ -321,9 +325,8 @@
  * fire_bolt:
  *	Fire a bolt in a given direction from a specific starting place
  */
-fire_bolt(start, dir, name)
-coord *start, *dir;
-char *name;
+void
+fire_bolt(coord *start, coord *dir, char *name)
 {
     register char dirch, ch;
     register THING *tp;
@@ -446,8 +449,7 @@
  *	Return an appropriate string for a wand charge
  */
 char *
-charge_str(obj)
-register THING *obj;
+charge_str(THING *obj)
 {
     static char buf[20];
 
--- a/rogue4/things.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/things.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,6 +16,11 @@
 #include <string.h>
 #include "rogue.h"
 
+int pick_one(struct magic_item *magic, int nitems);
+void print_disc(char type);
+void set_order(short *order, int numthings);
+char *nothing(char type);
+
 bool got_genocide = FALSE;
 
 /*
@@ -24,9 +29,7 @@
  *	inventory.
  */
 char *
-inv_name(obj, drop)
-register THING *obj;
-register bool drop;
+inv_name(THING *obj, bool drop)
 {
     register char *pb;
 
@@ -163,7 +166,8 @@
  * drop:
  *	Put something down
  */
-drop()
+void
+drop(void)
 {
     register char ch;
     register THING *nobj, *op;
@@ -211,8 +215,8 @@
  * dropcheck:
  *	Do special checks for dropping or unweilding|unwearing|unringing
  */
-dropcheck(op)
-register THING *op;
+bool
+dropcheck(THING *op)
 {
     if (op == NULL)
 	return TRUE;
@@ -253,7 +257,7 @@
  *	Return a new thing
  */
 THING *
-new_thing()
+new_thing(void)
 {
     register THING *cur;
     register int j, k;
@@ -361,9 +365,8 @@
  * pick_one:
  *	Pick an item out of a list of nitems possible magic items
  */
-pick_one(magic, nitems)
-register struct magic_item *magic;
-int nitems;
+int
+pick_one(struct magic_item *magic, int nitems)
 {
     register struct magic_item *end;
     register int i;
@@ -398,7 +401,8 @@
 
 static char *lastfmt, *lastarg;
 
-discovered()
+void
+discovered(void)
 {
     register char ch;
     register bool disc_list;
@@ -456,8 +460,8 @@
 
 #define MAX(a,b,c,d)	(a > b ? (a > c ? (a > d ? a : d) : (c > d ? c : d)) : (b > c ? (b > d ? b : d) : (c > d ? c : d)))
 
-print_disc(type)
-char type;
+void
+print_disc(char type)
 {
     register bool *know = NULL;
     register char **guess = NULL;
@@ -508,9 +512,8 @@
  * set_order:
  *	Set up order for list
  */
-set_order(order, numthings)
-short *order;
-int numthings;
+void
+set_order(short *order, int numthings)
 {
     register int i, r, t;
 
@@ -591,8 +594,7 @@
  *	Set up prbuf so that message for "nothing found" is there
  */
 char *
-nothing(type)
-register char type;
+nothing(char type)
 {
     register char *sp, *tystr = NULL;
 
--- a/rogue4/weapons.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/weapons.c	Wed Mar 02 21:28:34 2016 -0500
@@ -39,8 +39,8 @@
  * missile:
  *	Fire a missile in a given direction
  */
-missile(ydelta, xdelta)
-int ydelta, xdelta;
+void
+missile(int ydelta, int xdelta)
 {
     register THING *obj, *nitem;
 
@@ -86,9 +86,8 @@
  *	Do the actual motion on the screen done by an object traveling
  *	across the room
  */
-do_motion(obj, ydelta, xdelta)
-register THING *obj;
-register int ydelta, xdelta;
+void
+do_motion(THING *obj, int ydelta, int xdelta)
 {
     /*
      * Come fly with us ...
@@ -129,9 +128,8 @@
  * fall:
  *	Drop an item someplace around here.
  */
-fall(obj, pr)
-register THING *obj;
-register bool pr;
+void
+fall(THING *obj, bool pr)
 {
     static coord fpos;
     register int index;
@@ -163,9 +161,8 @@
  * init_weapon:
  *	Set up the initial goodies for a weapon
  */
-init_weapon(weap, type)
-register THING *weap;
-char type;
+void
+init_weapon(THING *weap, char type)
 {
     register struct init_weps *iwp;
 
@@ -187,9 +184,8 @@
  * hit_monster:
  *	Does the missile hit the monster?
  */
-hit_monster(y, x, obj)
-register int y, x;
-THING *obj;
+bool
+hit_monster(int y, int x, THING *obj)
 {
     static coord mp;
 
@@ -203,9 +199,7 @@
  *	Figure out the plus number for armor/weapons
  */
 char *
-num(n1, n2, type)
-register int n1, n2;
-register char type;
+num(int n1, int n2, char type)
 {
     static char numbuf[10];
 
@@ -219,7 +213,8 @@
  * wield:
  *	Pull out a certain weapon
  */
-wield()
+void
+wield(void)
 {
     register THING *obj, *oweapon;
     register char *sp;
@@ -257,9 +252,8 @@
  * fallpos:
  *	Pick a random position around the give (y, x) coordinates
  */
-fallpos(pos, newpos, pass)
-register coord *pos, *newpos;
-register bool pass;
+bool
+fallpos(coord *pos, coord *newpos, bool pass)
 {
     register int y, x, cnt, ch;
 
--- a/rogue4/wizard.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/rogue4/wizard.c	Wed Mar 02 21:28:34 2016 -0500
@@ -16,8 +16,8 @@
  * whatis:
  *	What a certin object is
  */
-whatis(insist)
-bool insist;
+void
+whatis(bool insist)
 {
     register THING *obj;
 
@@ -80,7 +80,8 @@
  * create_obj:
  *	Wizard command for getting anything he wants
  */
-create_obj()
+void
+create_obj(void)
 {
     register THING *obj;
     register char ch, bless;
@@ -150,7 +151,8 @@
  * telport:
  *	Bamf the hero someplace else
  */
-teleport()
+int
+teleport(void)
 {
     register int rm;
     coord c;
@@ -194,7 +196,8 @@
  * passwd:
  *	See if user knows password
  */
-passwd()
+bool
+passwd(void)
 {
     register char *sp, c;
     char buf[MAXSTR], *xcrypt();
@@ -219,7 +222,8 @@
  * show_map: