summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rogue/curses.c21
-rw-r--r--rogue/hit.c79
-rw-r--r--rogue/init.c48
-rw-r--r--rogue/inventory.c140
-rw-r--r--rogue/level.c75
-rw-r--r--rogue/machdep.c53
-rw-r--r--rogue/main.c17
-rw-r--r--rogue/message.c55
-rw-r--r--rogue/monster.c100
-rw-r--r--rogue/move.c54
-rw-r--r--rogue/object.c84
-rw-r--r--rogue/pack.c68
-rw-r--r--rogue/play.c10
-rw-r--r--rogue/random.c23
-rw-r--r--rogue/ring.c28
-rw-r--r--rogue/rogue.68
-rw-r--r--rogue/rogue.h438
-rw-r--r--rogue/room.c73
-rw-r--r--rogue/save.c97
-rw-r--r--rogue/score.c74
-rw-r--r--rogue/spec_hit.c75
-rw-r--r--rogue/throw.c30
-rw-r--r--rogue/trap.c26
-rw-r--r--rogue/use.c37
-rw-r--r--rogue/zap.c28
25 files changed, 1139 insertions, 602 deletions
diff --git a/rogue/curses.c b/rogue/curses.c
index 743e9ee5..0f160894 100644
--- a/rogue/curses.c
+++ b/rogue/curses.c
@@ -1,4 +1,4 @@
-/* $NetBSD: curses.c,v 1.3 1995/04/22 10:27:27 cgd Exp $ */
+/* $NetBSD: curses.c,v 1.4 1997/10/12 11:45:01 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)curses.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: curses.c,v 1.3 1995/04/22 10:27:27 cgd Exp $";
+__RCSID("$NetBSD: curses.c,v 1.4 1997/10/12 11:45:01 lukem Exp $");
#endif
#endif /* not lint */
@@ -172,7 +173,7 @@ char *str;
}
addch(ch)
-register int ch;
+ int ch;
{
short row, col;
@@ -197,7 +198,7 @@ int ch;
refresh()
{
- register i, j, line;
+ int i, j, line;
short old_row, old_col, first_row;
if (screen_dirty) {
@@ -307,7 +308,7 @@ nonl()
clear_buffers()
{
- register i, j;
+ int i, j;
screen_dirty = 0;
@@ -321,7 +322,7 @@ clear_buffers()
}
put_char_at(row, col, ch)
-register row, col, ch;
+ int row, col, ch;
{
put_cursor(row, col);
put_st_char(ch);
@@ -330,9 +331,9 @@ register row, col, ch;
}
put_cursor(row, col)
-register row, col;
+ int row, col;
{
- register i, rdif, cdif;
+ int i, rdif, cdif;
short ch, t;
rdif = (row > cur_row) ? row - cur_row : cur_row - row;
@@ -384,7 +385,7 @@ register row, col;
}
put_st_char(ch)
-register ch;
+ int ch;
{
if ((ch & ST_MASK) && (!term_stand_out)) {
ch &= ~ST_MASK;
@@ -697,4 +698,4 @@ tc_cmget()
cm_end[j] = 0;
}
-#endif
+#endif /* CURSES */
diff --git a/rogue/hit.c b/rogue/hit.c
index cbcd8691..e796f4ad 100644
--- a/rogue/hit.c
+++ b/rogue/hit.c
@@ -1,4 +1,4 @@
-/* $NetBSD: hit.c,v 1.3 1995/04/22 10:27:30 cgd Exp $ */
+/* $NetBSD: hit.c,v 1.4 1997/10/12 11:45:05 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)hit.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: hit.c,v 1.3 1995/04/22 10:27:30 cgd Exp $";
+__RCSID("$NetBSD: hit.c,v 1.4 1997/10/12 11:45:05 lukem Exp $");
#endif
#endif /* not lint */
@@ -61,12 +62,9 @@ static char rcsid[] = "$NetBSD: hit.c,v 1.3 1995/04/22 10:27:30 cgd Exp $";
object *fight_monster = 0;
char hit_message[80] = "";
-extern short halluc, blind, cur_level;
-extern short add_strength, ring_exp, r_rings;
-extern boolean being_held, interrupted, wizard, con_mon;
-
+void
mon_hit(monster)
-register object *monster;
+ object *monster;
{
short damage, hit_chance;
char *mn;
@@ -92,7 +90,8 @@ register object *monster;
if (!rand_percent(hit_chance)) {
if (!fight_monster) {
- sprintf(hit_message + strlen(hit_message), "the %s misses", mn);
+ sprintf(hit_message + strlen(hit_message),
+ "the %s misses", mn);
message(hit_message, 1);
hit_message[0] = 0;
}
@@ -126,9 +125,10 @@ register object *monster;
}
}
+void
rogue_hit(monster, force_hit)
-register object *monster;
-boolean force_hit;
+ object *monster;
+ boolean force_hit;
{
short damage, hit_chance;
@@ -164,10 +164,11 @@ RET: check_gold_seeker(monster);
}
}
+void
rogue_damage(d, monster, other)
-short d;
-object *monster;
-short other;
+ short d;
+ object *monster;
+ short other;
{
if (d >= rogue.hp_current) {
rogue.hp_current = 0;
@@ -180,11 +181,12 @@ short other;
}
}
+int
get_damage(ds, r)
-char *ds;
-boolean r;
+ char *ds;
+ boolean r;
{
- register i = 0, j, n, d, total = 0;
+ int i = 0, j, n, d, total = 0;
while (ds[i]) {
n = get_number(ds+i);
@@ -206,12 +208,13 @@ boolean r;
return(total);
}
+int
get_w_damage(obj)
-object *obj;
+ object *obj;
{
char new_damage[12];
- register to_hit, damage;
- register i = 0;
+ int to_hit, damage;
+ int i = 0;
if ((!obj) || (obj->what_is != WEAPON)) {
return(-1);
@@ -225,11 +228,12 @@ object *obj;
return(get_damage(new_damage, 1));
}
+int
get_number(s)
-register char *s;
+ char *s;
{
- register i = 0;
- register total = 0;
+ int i = 0;
+ int total = 0;
while ((s[i] >= '0') && (s[i] <= '9')) {
total = (10 * total) + (s[i] - '0');
@@ -240,7 +244,7 @@ register char *s;
long
lget_number(s)
-char *s;
+ char *s;
{
short i = 0;
long total = 0;
@@ -252,8 +256,9 @@ char *s;
return(total);
}
+int
to_hit(obj)
-object *obj;
+ object *obj;
{
if (!obj) {
return(1);
@@ -261,6 +266,7 @@ object *obj;
return(get_number(obj->damage) + obj->hit_enchant);
}
+int
damage_for_strength()
{
short strength;
@@ -291,9 +297,10 @@ damage_for_strength()
return(8);
}
+int
mon_damage(monster, damage)
-object *monster;
-short damage;
+ object *monster;
+ short damage;
{
char *mn;
short row, col;
@@ -324,8 +331,9 @@ short damage;
return(1);
}
+void
fight(to_the_death)
-boolean to_the_death;
+ boolean to_the_death;
{
short ch, c, d;
short row, col;
@@ -333,6 +341,7 @@ boolean to_the_death;
short possible_damage;
object *monster;
+ ch = 0;
while (!is_direction(ch = rgetchar(), &d)) {
sound_bell();
if (first_miss) {
@@ -375,10 +384,11 @@ boolean to_the_death;
}
}
+void
get_dir_rc(dir, row, col, allow_off_screen)
-short dir;
-short *row, *col;
-short allow_off_screen;
+ short dir;
+ short *row, *col;
+ short allow_off_screen;
{
switch(dir) {
case LEFT:
@@ -428,8 +438,9 @@ short allow_off_screen;
}
}
+int
get_hit_chance(weapon)
-object *weapon;
+ object *weapon;
{
short hit_chance;
@@ -439,8 +450,9 @@ object *weapon;
return(hit_chance);
}
+int
get_weapon_damage(weapon)
-object *weapon;
+ object *weapon;
{
short damage;
@@ -450,8 +462,9 @@ object *weapon;
return(damage);
}
+void
s_con_mon(monster)
-object *monster;
+ object *monster;
{
if (con_mon) {
monster->m_flags |= CONFUSED;
diff --git a/rogue/init.c b/rogue/init.c
index 339a495f..e40ca408 100644
--- a/rogue/init.c
+++ b/rogue/init.c
@@ -1,4 +1,4 @@
-/* $NetBSD: init.c,v 1.4 1995/04/28 23:49:19 mycroft Exp $ */
+/* $NetBSD: init.c,v 1.5 1997/10/12 11:45:08 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)init.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: init.c,v 1.4 1995/04/28 23:49:19 mycroft Exp $";
+__RCSID("$NetBSD: init.c,v 1.5 1997/10/12 11:45:08 lukem Exp $");
#endif
#endif /* not lint */
@@ -56,7 +57,6 @@ static char rcsid[] = "$NetBSD: init.c,v 1.4 1995/04/28 23:49:19 mycroft Exp $";
*
*/
-#include <stdio.h>
#include "rogue.h"
char login_name[MAX_OPT_LEN];
@@ -73,18 +73,15 @@ boolean passgo = 0;
char *error_file = "rogue.esave";
char *byebye_string = "Okay, bye bye!";
-extern char *fruit;
-extern char *save_file;
-extern short party_room;
-extern boolean jump;
-
+int
init(argc, argv)
-int argc;
-char *argv[];
+ int argc;
+ char *argv[];
{
char *pn;
int seed;
+ seed = 0;
pn = md_gln();
if ((!pn) || (strlen(pn) >= MAX_OPT_LEN)) {
clean_up("Hey! Who are you?");
@@ -129,6 +126,7 @@ char *argv[];
return(0);
}
+void
player_init()
{
object *obj;
@@ -177,8 +175,9 @@ player_init()
(void) add_to_pack(obj, &rogue.pack, 1);
}
+void
clean_up(estr)
-char *estr;
+ char *estr;
{
if (save_is_interactive) {
if (init_curses) {
@@ -191,6 +190,7 @@ char *estr;
md_exit(0);
}
+void
start_window()
{
crmode();
@@ -200,13 +200,15 @@ start_window()
#endif
}
+void
stop_window()
{
endwin();
}
void
-byebye()
+byebye(dummy)
+ int dummy;
{
md_ignore_signals();
if (ask_quit) {
@@ -218,7 +220,8 @@ byebye()
}
void
-onintr()
+onintr(dummy)
+ int dummy;
{
md_ignore_signals();
if (cant_int) {
@@ -231,16 +234,18 @@ onintr()
}
void
-error_save()
+error_save(dummy)
+ int dummy;
{
save_is_interactive = 0;
save_into_file(error_file);
clean_up("");
}
+void
do_args(argc, argv)
-int argc;
-char *argv[];
+ int argc;
+ char *argv[];
{
short i, j;
@@ -259,11 +264,12 @@ char *argv[];
}
}
+void
do_opts()
{
char *eptr;
- if (eptr = md_getenv("ROGUEOPTS")) {
+ if ((eptr = md_getenv("ROGUEOPTS")) != NULL) {
for (;;) {
while ((*eptr) == ' ') {
eptr++;
@@ -306,9 +312,10 @@ do_opts()
init_str(&fruit, "slime-mold");
}
+void
env_get_value(s, e, add_blank)
-char **s, *e;
-boolean add_blank;
+ char **s, *e;
+ boolean add_blank;
{
short i = 0;
char *t;
@@ -332,8 +339,9 @@ boolean add_blank;
(*s)[i] = '\0';
}
+void
init_str(str, dflt)
-char **str, *dflt;
+ char **str, *dflt;
{
if (!(*str)) {
*str = md_malloc(MAX_OPT_LEN + 2);
diff --git a/rogue/inventory.c b/rogue/inventory.c
index 0a42e12f..202950b8 100644
--- a/rogue/inventory.c
+++ b/rogue/inventory.c
@@ -1,4 +1,4 @@
-/* $NetBSD: inventory.c,v 1.4 1997/05/17 19:26:24 pk Exp $ */
+/* $NetBSD: inventory.c,v 1.5 1997/10/12 11:45:11 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)inventory.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: inventory.c,v 1.4 1997/05/17 19:26:24 pk Exp $";
+__RCSID("$NetBSD: inventory.c,v 1.5 1997/10/12 11:45:11 lukem Exp $");
#endif
#endif /* not lint */
@@ -163,62 +164,60 @@ struct id_com_s {
};
struct id_com_s com_id_tab[COMS] = {
- '?', "? prints help",
- 'r', "r read scroll",
- '/', "/ identify object",
- 'e', "e eat food",
- 'h', "h left ",
- 'w', "w wield a weapon",
- 'j', "j down",
- 'W', "W wear armor",
- 'k', "k up",
- 'T', "T take armor off",
- 'l', "l right",
- 'P', "P put on ring",
- 'y', "y up & left",
- 'R', "R remove ring",
- 'u', "u up & right",
- 'd', "d drop object",
- 'b', "b down & left",
- 'c', "c call object",
- 'n', "n down & right",
- '\0', "<SHIFT><dir>: run that way",
- ')', ") print current weapon",
- '\0', "<CTRL><dir>: run till adjacent",
- ']', "] print current armor",
- 'f', "f<dir> fight till death or near death",
- '=', "= print current rings",
- 't', "t<dir> throw something",
- '\001', "^A print Hp-raise average",
- 'm', "m<dir> move onto without picking up",
- 'z', "z<dir> zap a wand in a direction",
- 'o', "o examine/set options",
- '^', "^<dir> identify trap type",
- '\022', "^R redraw screen",
- '&', "& save screen into 'rogue.screen'",
- 's', "s search for trap/secret door",
- '\020', "^P repeat last message",
- '>', "> go down a staircase",
- '\033', "^[ cancel command",
- '<', "< go up a staircase",
- 'S', "S save game",
- '.', ". rest for a turn",
- 'Q', "Q quit",
- ',', ", pick something up",
- '!', "! shell escape",
- 'i', "i inventory",
- 'F', "F<dir> fight till either of you dies",
- 'I', "I inventory single item",
- 'v', "v print version number",
- 'q', "q quaff potion"
+ {'?', "? prints help"},
+ {'r', "r read scroll"},
+ {'/', "/ identify object"},
+ {'e', "e eat food"},
+ {'h', "h left "},
+ {'w', "w wield a weapon"},
+ {'j', "j down"},
+ {'W', "W wear armor"},
+ {'k', "k up"},
+ {'T', "T take armor off"},
+ {'l', "l right"},
+ {'P', "P put on ring"},
+ {'y', "y up & left"},
+ {'R', "R remove ring"},
+ {'u', "u up & right"},
+ {'d', "d drop object"},
+ {'b', "b down & left"},
+ {'c', "c call object"},
+ {'n', "n down & right"},
+ {'\0', "<SHIFT><dir>: run that way"},
+ {')', ") print current weapon"},
+ {'\0', "<CTRL><dir>: run till adjacent"},
+ {']', "] print current armor"},
+ {'f', "f<dir> fight till death or near death"},
+ {'=', "= print current rings"},
+ {'t', "t<dir> throw something"},
+ {'\001', "^A print Hp-raise average"},
+ {'m', "m<dir> move onto without picking up"},
+ {'z', "z<dir> zap a wand in a direction"},
+ {'o', "o examine/set options"},
+ {'^', "^<dir> identify trap type"},
+ {'\022', "^R redraw screen"},
+ {'&', "& save screen into 'rogue.screen'"},
+ {'s', "s search for trap/secret door"},
+ {'\020', "^P repeat last message"},
+ {'>', "> go down a staircase"},
+ {'\033', "^[ cancel command"},
+ {'<', "< go up a staircase"},
+ {'S', "S save game"},
+ {'.', ". rest for a turn"},
+ {'Q', "Q quit"},
+ {',', ", pick something up"},
+ {'!', "! shell escape"},
+ {'i', "i inventory"},
+ {'F', "F<dir> fight till either of you dies"},
+ {'I', "I inventory single item"},
+ {'v', "v print version number"},
+ {'q', "q quaff potion" }
};
-extern boolean wizard;
-extern char *m_names[], *more;
-
+void
inventory(pack, mask)
-object *pack;
-unsigned short mask;
+ object *pack;
+ unsigned short mask;
{
object *obj;
short i = 0, j, maxlen = 0, n;
@@ -271,6 +270,7 @@ unsigned short mask;
}
}
+void
id_com()
{
int ch = 0;
@@ -288,7 +288,7 @@ id_com()
{
char save[(((COMS / 2) + (COMS % 2)) + 1)][DCOLS];
short rows = (((COMS / 2) + (COMS % 2)) + 1);
- boolean need_two_screens;
+ boolean need_two_screens = FALSE;
if (rows > LINES) {
need_two_screens = 1;
@@ -347,8 +347,9 @@ MORE:
}
}
+int
pr_com_id(ch)
-int ch;
+ int ch;
{
int i;
@@ -360,9 +361,10 @@ int ch;
return(1);
}
+int
get_com_id(index, ch)
-int *index;
-short ch;
+ int *index;
+ short ch;
{
short i;
@@ -375,8 +377,9 @@ short ch;
return(0);
}
+int
pr_motion_char(ch)
-int ch;
+ int ch;
{
if ( (ch == 'J') ||
(ch == 'K') ||
@@ -414,6 +417,7 @@ int ch;
}
}
+void
mix_colors()
{
short i, j, k;
@@ -428,6 +432,7 @@ mix_colors()
}
}
+void
make_scroll_titles()
{
short i, j, n;
@@ -446,9 +451,10 @@ make_scroll_titles()
}
}
+void
get_desc(obj, desc)
-object *obj;
-char *desc;
+ object *obj;
+ char *desc;
{
char *item_name;
struct id *id_table;
@@ -609,6 +615,7 @@ ANA:
}
}
+void
get_wand_and_ring_materials()
{
short i, j;
@@ -637,8 +644,9 @@ get_wand_and_ring_materials()
}
}
+void
single_inv(ichar)
-short ichar;
+ short ichar;
{
short ch;
char desc[DCOLS];
@@ -663,7 +671,7 @@ short ichar;
struct id *
get_id_table(obj)
-object *obj;
+ object *obj;
{
switch(obj->what_is) {
case SCROL:
@@ -682,8 +690,9 @@ object *obj;
return((struct id *) 0);
}
+void
inv_armor_weapon(is_weapon)
-boolean is_weapon;
+ boolean is_weapon;
{
if (is_weapon) {
if (rogue.weapon) {
@@ -700,6 +709,7 @@ boolean is_weapon;
}
}
+void
id_type()
{
char *id;
diff --git a/rogue/level.c b/rogue/level.c
index b298bb04..42fff035 100644
--- a/rogue/level.c
+++ b/rogue/level.c
@@ -1,4 +1,4 @@
-/* $NetBSD: level.c,v 1.3 1995/04/22 10:27:37 cgd Exp $ */
+/* $NetBSD: level.c,v 1.4 1997/10/12 11:45:16 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)level.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: level.c,v 1.3 1995/04/22 10:27:37 cgd Exp $";
+__RCSID("$NetBSD: level.c,v 1.4 1997/10/12 11:45:16 lukem Exp $");
#endif
#endif /* not lint */
@@ -93,16 +94,14 @@ long level_points[MAX_EXP_LEVEL] = {
short random_rooms[MAXROOMS] = {3, 7, 5, 2, 0, 6, 1, 4, 8};
-extern boolean being_held, wizard, detect_monster;
-extern boolean see_invisible;
-extern short bear_trap, levitate, extra_hp, less_hp, cur_room;
-
+void
make_level()
{
short i, j;
short must_1, must_2, must_3;
boolean big_room;
+ must_2 = must_3 = 0;
if (cur_level < LAST_DUNGEON) {
cur_level++;
}
@@ -194,14 +193,16 @@ make_level()
}
}
+void
make_room(rn, r1, r2, r3)
-short rn, r1, r2, r3;
+ short rn, r1, r2, r3;
{
short left_col, right_col, top_row, bottom_row;
short width, height;
short row_offset, col_offset;
short i, j, ch;
+ left_col = right_col = top_row = bottom_row = 0;
switch(rn) {
case 0:
left_col = 0;
@@ -303,8 +304,9 @@ END:
rooms[rn].right_col = right_col;
}
+int
connect_rooms(room1, room2)
-short room1, room2;
+ short room1, room2;
{
short row1, col1, row2, col2, dir;
@@ -350,6 +352,7 @@ short room1, room2;
return(1);
}
+void
clear_level()
{
short i, j;
@@ -376,10 +379,11 @@ clear_level()
clear();
}
+void
put_door(rm, dir, row, col)
-room *rm;
-short dir;
-short *row, *col;
+ room *rm;
+ short dir;
+ short *row, *col;
{
short wall_width;
@@ -413,8 +417,9 @@ short *row, *col;
rm->doors[dir/2].door_col = *col;
}
+void
draw_simple_passage(row1, col1, row2, col2, dir)
-short row1, col1, row2, col2, dir;
+ short row1, col1, row2, col2, dir;
{
short i, middle, t;
@@ -454,16 +459,21 @@ short row1, col1, row2, col2, dir;
}
}
+int
same_row(room1, room2)
+ int room1, room2;
{
return((room1 / 3) == (room2 / 3));
}
+int
same_col(room1, room2)
+ int room1, room2;
{
return((room1 % 3) == (room2 % 3));
}
+void
add_mazes()
{
short i, j;
@@ -495,6 +505,7 @@ add_mazes()
}
}
+void
fill_out_level()
{
short i, rn;
@@ -515,9 +526,10 @@ fill_out_level()
}
}
+void
fill_it(rn, do_rec_de)
-int rn;
-boolean do_rec_de;
+ int rn;
+ boolean do_rec_de;
{
short i, tunnel_dir, door_dir, drow, dcol;
short target_room, rooms_found = 0;
@@ -576,10 +588,11 @@ boolean do_rec_de;
}
}
+void
recursive_deadend(rn, offsets, srow, scol)
-short rn;
-short *offsets;
-short srow, scol;
+ short rn;
+ short *offsets;
+ short srow, scol;
{
short i, de;
short drow, dcol, tunnel_dir;
@@ -613,9 +626,9 @@ short srow, scol;
boolean
mask_room(rn, row, col, mask)
-short rn;
-short *row, *col;
-unsigned short mask;
+ short rn;
+ short *row, *col;
+ unsigned short mask;
{
short i, j;
@@ -631,8 +644,9 @@ unsigned short mask;
return(0);
}
+void
make_maze(r, c, tr, br, lc, rc)
-short r, c, tr, br, lc, rc;
+ short r, c, tr, br, lc, rc;
{
char dirs[4];
short i, t;
@@ -696,8 +710,9 @@ short r, c, tr, br, lc, rc;
}
}
+void
hide_boxed_passage(row1, col1, row2, col2, n)
-short row1, col1, row2, col2, n;
+ short row1, col1, row2, col2, n;
{
short i, j, t;
short row, col, row_cut, col_cut;
@@ -731,8 +746,9 @@ short row1, col1, row2, col2, n;
}
}
+void
put_player(nr)
-short nr; /* try not to put in this room */
+ short nr; /* try not to put in this room */
{
short rn = nr, misses;
short row, col;
@@ -763,6 +779,7 @@ short nr; /* try not to put in this room */
mvaddch(rogue.row, rogue.col, rogue.fchar);
}
+int
drop_check()
{
if (wizard) {
@@ -779,6 +796,7 @@ drop_check()
return(0);
}
+int
check_up()
{
if (!wizard) {
@@ -801,9 +819,10 @@ check_up()
return(0);
}
+void
add_exp(e, promotion)
-int e;
-boolean promotion;
+ int e;
+ boolean promotion;
{
char mbuf[40];
short new_exp;
@@ -832,8 +851,9 @@ boolean promotion;
}
}
+int
get_exp_level(e)
-long e;
+ long e;
{
short i;
@@ -845,6 +865,7 @@ long e;
return(i+1);
}
+int
hp_raise()
{
int hp;
@@ -853,6 +874,7 @@ hp_raise()
return(hp);
}
+void
show_average_hp()
{
char mbuf[80];
@@ -872,6 +894,7 @@ show_average_hp()
message(mbuf, 0);
}
+void
mix_random_rooms()
{
short i, t;
diff --git a/rogue/machdep.c b/rogue/machdep.c
index 1862d40a..c195cae6 100644
--- a/rogue/machdep.c
+++ b/rogue/machdep.c
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.5 1995/04/28 23:49:22 mycroft Exp $ */
+/* $NetBSD: machdep.c,v 1.6 1997/10/12 11:45:19 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)machdep.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: machdep.c,v 1.5 1995/04/28 23:49:22 mycroft Exp $";
+__RCSID("$NetBSD: machdep.c,v 1.6 1997/10/12 11:45:19 lukem Exp $");
#endif
#endif /* not lint */
@@ -97,8 +98,8 @@ static char rcsid[] = "$NetBSD: machdep.c,v 1.5 1995/04/28 23:49:22 mycroft Exp
#ifdef UNIX
-#include <stdio.h>
#include <sys/types.h>
+#include <sys/wait.h>
#include <sys/file.h>
#include <sys/stat.h>
#include <pwd.h>
@@ -112,7 +113,9 @@ static char rcsid[] = "$NetBSD: machdep.c,v 1.5 1995/04/28 23:49:22 mycroft Exp
#endif
#include <signal.h>
+#include <stdlib.h>
#include <termios.h>
+#include <unistd.h>
#include "rogue.h"
#include "pathnames.h"
@@ -128,6 +131,7 @@ static char rcsid[] = "$NetBSD: machdep.c,v 1.5 1995/04/28 23:49:22 mycroft Exp
* big deal.
*/
+void
md_slurp()
{
(void)fpurge(stdin);
@@ -149,6 +153,7 @@ md_slurp()
* input, this is not usually critical.
*/
+void
md_heed_signals()
{
signal(SIGINT, onintr);
@@ -168,6 +173,7 @@ md_heed_signals()
* file, corruption.
*/
+void
md_ignore_signals()
{
signal(SIGQUIT, SIG_IGN);
@@ -186,7 +192,7 @@ md_ignore_signals()
int
md_get_file_id(fname)
-char *fname;
+ char *fname;
{
struct stat sbuf;
@@ -228,10 +234,11 @@ char *fname;
* saved-game files and play them.
*/
+void
md_gct(rt_buf)
-struct rogue_time *rt_buf;
+ struct rogue_time *rt_buf;
{
- struct tm *t, *localtime();
+ struct tm *t;
time_t seconds;
time(&seconds);
@@ -261,9 +268,10 @@ struct rogue_time *rt_buf;
* saved-games that have been modified.
*/
+void
md_gfmt(fname, rt_buf)
-char *fname;
-struct rogue_time *rt_buf;
+ char *fname;
+ struct rogue_time *rt_buf;
{
struct stat sbuf;
time_t seconds;
@@ -294,7 +302,7 @@ struct rogue_time *rt_buf;
boolean
md_df(fname)
-char *fname;
+ char *fname;
{
if (unlink(fname)) {
return(0);
@@ -330,8 +338,9 @@ md_gln()
* delaying execution, which is useful to this program at some times.
*/
+void
md_sleep(nsecs)
-int nsecs;
+ int nsecs;
{
(void) sleep(nsecs);
}
@@ -375,10 +384,9 @@ int nsecs;
char *
md_getenv(name)
-char *name;
+ char *name;
{
char *value;
- char *getenv();
value = getenv(name);
@@ -395,9 +403,8 @@ char *name;
char *
md_malloc(n)
-int n;
+ int n;
{
- char *malloc();
char *t;
t = malloc(n);
@@ -422,6 +429,7 @@ int n;
* exactly the same way given the same input.
*/
+int
md_gseed()
{
return(getpid());
@@ -434,8 +442,9 @@ md_gseed()
* hang when it should quit.
*/
+void
md_exit(status)
-int status;
+ int status;
{
exit(status);
}
@@ -451,8 +460,9 @@ int status;
* the lock is released.
*/
+void
md_lock(l)
-boolean l;
+ boolean l;
{
static int fd;
short tries;
@@ -480,10 +490,11 @@ boolean l;
* The effective user id is restored after the shell completes.
*/
+void
md_shell(shell)
-char *shell;
+ char *shell;
{
- long w[2];
+ int w;
if (!fork()) {
int uid;
@@ -492,7 +503,7 @@ char *shell;
setuid(uid);
execl(shell, shell, 0);
}
- wait(w);
+ wait(&w);
}
/* If you have a viable curses/termlib library, then use it and don't bother
@@ -531,8 +542,9 @@ char *shell;
*
*/
+void
md_cbreak_no_echo_nonl(on)
-boolean on;
+ boolean on;
{
struct termios tty_buf;
static struct termios tty_save;
@@ -579,6 +591,7 @@ md_gdtcf()
*
*/
+void
md_tstp()
{
#ifdef UNIX_BSD4_2
diff --git a/rogue/main.c b/rogue/main.c
index 5e472e15..bf33ab03 100644
--- a/rogue/main.c
+++ b/rogue/main.c
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.3 1995/04/22 10:27:41 cgd Exp $ */
+/* $NetBSD: main.c,v 1.4 1997/10/12 11:45:22 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,17 +36,17 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
-static char copyright[] =
-"@(#) Copyright (c) 1988, 1993\n\
- The Regents of the University of California. All rights reserved.\n";
+__COPYRIGHT("@(#) Copyright (c) 1988, 1993\n\
+ The Regents of the University of California. All rights reserved.\n");
#endif /* not lint */
#ifndef lint
#if 0
static char sccsid[] = "@(#)main.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: main.c,v 1.3 1995/04/22 10:27:41 cgd Exp $";
+__RCSID("$NetBSD: main.c,v 1.4 1997/10/12 11:45:22 lukem Exp $");
#endif
#endif /* not lint */
@@ -64,11 +64,12 @@ static char rcsid[] = "$NetBSD: main.c,v 1.3 1995/04/22 10:27:41 cgd Exp $";
#include "rogue.h"
-extern short party_room;
+int main __P((int, char **));
+int
main(argc, argv)
-int argc;
-char *argv[];
+ int argc;
+ char *argv[];
{
if (init(argc, argv)) { /* restored game */
goto PL;
diff --git a/rogue/message.c b/rogue/message.c
index 3e12c51c..54ae5b91 100644
--- a/rogue/message.c
+++ b/rogue/message.c
@@ -1,4 +1,4 @@
-/* $NetBSD: message.c,v 1.5 1995/04/22 10:27:43 cgd Exp $ */
+/* $NetBSD: message.c,v 1.6 1997/10/12 11:45:25 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)message.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: message.c,v 1.5 1995/04/22 10:27:43 cgd Exp $";
+__RCSID("$NetBSD: message.c,v 1.6 1997/10/12 11:45:25 lukem Exp $");
#endif
#endif /* not lint */
@@ -56,9 +57,8 @@ static char rcsid[] = "$NetBSD: message.c,v 1.5 1995/04/22 10:27:43 cgd Exp $";
*
*/
-#include <stdio.h>
-#include <termios.h>
#include <signal.h>
+#include <termios.h>
#include "rogue.h"
char msgs[NMESSAGES][DCOLS] = {"", "", "", "", ""};
@@ -67,13 +67,10 @@ boolean msg_cleared = 1, rmsg = 0;
char hunger_str[8] = "";
char *more = "-more-";
-extern boolean cant_int, did_int, interrupted, save_is_interactive;
-extern short add_strength;
-extern short cur_level;
-
+void
message(msg, intrpt)
-char *msg;
-boolean intrpt;
+ char *msg;
+ boolean intrpt;
{
cant_int = 1;
@@ -105,12 +102,13 @@ boolean intrpt;
if (did_int) {
did_int = 0;
- onintr();
+ onintr(0);
}
}
+void
remessage(c)
-short c;
+ short c;
{
if (imsg != -1) {
check_message();
@@ -125,6 +123,7 @@ short c;
}
}
+void
check_message()
{
if (msg_cleared) {
@@ -136,11 +135,12 @@ check_message()
msg_cleared = 1;
}
+int
get_input_line(prompt, insert, buf, if_cancelled, add_blank, do_echo)
-char *prompt, *buf, *insert;
-char *if_cancelled;
-boolean add_blank;
-boolean do_echo;
+ char *prompt, *buf, *insert;
+ char *if_cancelled;
+ boolean add_blank;
+ boolean do_echo;
{
short ch;
short i = 0, n;
@@ -194,9 +194,10 @@ boolean do_echo;
return(i);
}
+int
rgetchar()
{
- register ch;
+ int ch;
for(;;) {
ch = getchar();
@@ -220,13 +221,15 @@ rgetchar()
}
}
}
+
/*
Level: 99 Gold: 999999 Hp: 999(999) Str: 99(99) Arm: 99 Exp: 21/10000000 Hungry
0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5
*/
+void
print_stats(stat_mask)
-register stat_mask;
+ int stat_mask;
{
char buf[16];
boolean label;
@@ -311,9 +314,10 @@ register stat_mask;
refresh();
}
+void
pad(s, n)
-char *s;
-short n;
+ char *s;
+ short n;
{
short i;
@@ -322,6 +326,7 @@ short n;
}
}
+void
save_screen()
{
FILE *fp;
@@ -350,6 +355,7 @@ save_screen()
}
}
+void
sound_bell()
{
putchar(7);
@@ -358,15 +364,16 @@ sound_bell()
boolean
is_digit(ch)
-short ch;
+ short ch;
{
return((ch >= '0') && (ch <= '9'));
}
+int
r_index(str, ch, last)
-char *str;
-int ch;
-boolean last;
+ char *str;
+ int ch;
+ boolean last;
{
int i = 0;
diff --git a/rogue/monster.c b/rogue/monster.c
index 176ac756..ccb73708 100644
--- a/rogue/monster.c
+++ b/rogue/monster.c
@@ -1,4 +1,4 @@
-/* $NetBSD: monster.c,v 1.3 1995/04/22 10:27:45 cgd Exp $ */
+/* $NetBSD: monster.c,v 1.4 1997/10/12 11:45:28 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)monster.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: monster.c,v 1.3 1995/04/22 10:27:45 cgd Exp $";
+__RCSID("$NetBSD: monster.c,v 1.4 1997/10/12 11:45:28 lukem Exp $");
#endif
#endif /* not lint */
@@ -123,12 +124,7 @@ object mon_tab[MONSTERS] = {
{(ASLEEP|WAKENS|WANDERS),"1d7",21,'Z',8,5,14,69,0,0,0,0,0}
};
-extern short cur_level;
-extern short cur_room, party_room;
-extern short blind, halluc, haste_self;
-extern boolean detect_monster, see_invisible, r_see_invisible;
-extern short stealthy;
-
+void
put_mons()
{
short i;
@@ -150,8 +146,8 @@ put_mons()
object *
gr_monster(monster, mn)
-register object *monster;
-register mn;
+ object *monster;
+ int mn;
{
if (!monster) {
monster = alloc_object();
@@ -175,9 +171,10 @@ register mn;
return(monster);
}
+void
mv_mons()
{
- register object *monster, *next_monster;
+ object *monster, *next_monster;
boolean flew;
if (haste_self % 2) {
@@ -220,14 +217,16 @@ NM: monster = next_monster;
}
}
+void
party_monsters(rn, n)
-int rn, n;
+ int rn, n;
{
short i, j;
short row, col;
object *monster;
boolean found;
+ row = col = 0;
n += n;
for (i = 0; i < MONSTERS; i++) {
@@ -260,12 +259,13 @@ int rn, n;
}
}
+char
gmc_row_col(row, col)
-register row, col;
+ int row, col;
{
- register object *monster;
+ object *monster;
- if (monster = object_at(&level_monsters, row, col)) {
+ if ((monster = object_at(&level_monsters, row, col)) != NULL) {
if ((!(detect_monster || see_invisible || r_see_invisible) &&
(monster->m_flags & INVISIBLE)) || blind) {
return(monster->trail_char);
@@ -279,8 +279,9 @@ register row, col;
}
}
+char
gmc(monster)
-object *monster;
+ object *monster;
{
if ((!(detect_monster || see_invisible || r_see_invisible) &&
(monster->m_flags & INVISIBLE))
@@ -293,9 +294,10 @@ object *monster;
return(monster->m_char);
}
+void
mv_1_monster(monster, row, col)
-register object *monster;
-short row, col;
+ object *monster;
+ short row, col;
{
short i, n;
boolean tried[6];
@@ -432,9 +434,10 @@ O:
}
}
+int
mtry(monster, row, col)
-register object *monster;
-register short row, col;
+ object *monster;
+ short row, col;
{
if (mon_can_go(monster, row, col)) {
move_mon_to(monster, row, col);
@@ -443,12 +446,13 @@ register short row, col;
return(0);
}
+void
move_mon_to(monster, row, col)
-register object *monster;
-register short row, col;
+ object *monster;
+ short row, col;
{
short c;
- register mrow, mcol;
+ int mrow, mcol;
mrow = monster->row;
mcol = monster->col;
@@ -493,9 +497,10 @@ register short row, col;
}
}
+int
mon_can_go(monster, row, col)
-register object *monster;
-register short row, col;
+ object *monster;
+ short row, col;
{
object *obj;
short dr, dc;
@@ -534,18 +539,20 @@ register short row, col;
return(1);
}
+void
wake_up(monster)
-object *monster;
+ object *monster;
{
if (!(monster->m_flags & NAPPING)) {
monster->m_flags &= (~(ASLEEP | IMITATES | WAKENS));
}
}
+void
wake_room(rn, entering, row, col)
-short rn;
-boolean entering;
-short row, col;
+ short rn;
+ boolean entering;
+ short row, col;
{
object *monster;
short wake_percent;
@@ -580,7 +587,7 @@ short row, col;
char *
mon_name(monster)
-object *monster;
+ object *monster;
{
short ch;
@@ -596,8 +603,9 @@ object *monster;
return(m_names[ch]);
}
+int
rogue_is_around(row, col)
-register row, col;
+ int row, col;
{
short rdif, cdif, retval;
@@ -608,6 +616,7 @@ register row, col;
return(retval);
}
+void
wanderer()
{
object *monster;
@@ -638,6 +647,7 @@ wanderer()
}
}
+void
show_monsters()
{
object *monster;
@@ -659,6 +669,7 @@ show_monsters()
}
}
+void
create_monster()
{
short row, col;
@@ -694,9 +705,10 @@ create_monster()
}
}
+void
put_m_at(row, col, monster)
-short row, col;
-object *monster;
+ short row, col;
+ object *monster;
{
monster->row = row;
monster->col = col;
@@ -706,8 +718,9 @@ object *monster;
aim_monster(monster);
}
+void
aim_monster(monster)
-object *monster;
+ object *monster;
{
short i, rn, d, r;
@@ -724,10 +737,11 @@ object *monster;
}
}
+int
rogue_can_see(row, col)
-register row, col;
+ int row, col;
{
- register retval;
+ int retval;
retval = !blind &&
(((get_room_number(row, col) == cur_room) &&
@@ -737,8 +751,9 @@ register row, col;
return(retval);
}
+int
move_confused(monster)
-object *monster;
+ object *monster;
{
short i, row, col;
@@ -767,8 +782,9 @@ object *monster;
return(0);
}
+int
flit(monster)
-object *monster;
+ object *monster;
{
short i, row, col;
@@ -793,6 +809,7 @@ object *monster;
return(1);
}
+char
gr_obj_char()
{
short r;
@@ -803,8 +820,9 @@ gr_obj_char()
return(rs[r]);
}
+int
no_room_for_monster(rn)
-int rn;
+ int rn;
{
short i, j;
@@ -818,6 +836,7 @@ int rn;
return(1);
}
+void
aggravate()
{
object *monster;
@@ -838,7 +857,7 @@ aggravate()
boolean
mon_sees(monster, row, col)
-object *monster;
+ object *monster;
{
short rn, rdif, cdif, retval;
@@ -856,6 +875,7 @@ object *monster;
return(retval);
}
+void
mv_aquatars()
{
object *monster;
diff --git a/rogue/move.c b/rogue/move.c
index 86e36cf7..544ffc1f 100644
--- a/rogue/move.c
+++ b/rogue/move.c
@@ -1,4 +1,4 @@
-/* $NetBSD: move.c,v 1.3 1995/04/22 10:27:47 cgd Exp $ */
+/* $NetBSD: move.c,v 1.4 1997/10/12 11:45:31 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)move.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: move.c,v 1.3 1995/04/22 10:27:47 cgd Exp $";
+__RCSID("$NetBSD: move.c,v 1.4 1997/10/12 11:45:31 lukem Exp $");
#endif
#endif /* not lint */
@@ -62,15 +63,9 @@ short m_moves = 0;
boolean jump = 0;
char *you_can_move_again = "you can move again";
-extern short cur_room, halluc, blind, levitate;
-extern short cur_level, max_level;
-extern short bear_trap, haste_self, confused;
-extern short e_rings, regeneration, auto_search;
-extern char hunger_str[];
-extern boolean being_held, interrupted, r_teleport, passgo;
-
+int
one_move_rogue(dirch, pickup)
-short dirch, pickup;
+ short dirch, pickup;
{
short row, col;
object *obj;
@@ -141,7 +136,7 @@ short dirch, pickup;
return(STOPPED_ON_SOMETHING);
}
if (pickup && !levitate) {
- if (obj = pick_up(row, col, &status)) {
+ if ((obj = pick_up(row, col, &status)) != NULL) {
get_desc(obj, desc);
if (obj->what_is == GOLD) {
free_object(obj);
@@ -182,8 +177,9 @@ MVED: if (reg_move()) { /* fainted from hunger */
return((confused ? STOPPED_ON_SOMETHING : MOVED));
}
+void
multiple_move_rogue(dirch)
-short dirch;
+ short dirch;
{
short row, col;
short m;
@@ -229,8 +225,9 @@ short dirch;
}
}
+boolean
is_passable(row, col)
-register row, col;
+ int row, col;
{
if ((row < MIN_ROW) || (row > (DROWS - 2)) || (col < 0) ||
(col > (DCOLS-1))) {
@@ -242,8 +239,9 @@ register row, col;
return(dungeon[row][col] & (FLOOR | TUNNEL | DOOR | STAIRS | TRAP));
}
+boolean
next_to_something(drow, dcol)
-register drow, dcol;
+ int drow, dcol;
{
short i, j, i_end, j_end, row, col;
short pass_count = 0;
@@ -303,7 +301,9 @@ register drow, dcol;
return(0);
}
+boolean
can_move(row1, col1, row2, col2)
+ int row1, col1, row2, col2;
{
if (!is_passable(row2, col2)) {
return(0);
@@ -319,6 +319,7 @@ can_move(row1, col1, row2, col2)
return(1);
}
+void
move_onto()
{
short ch, d;
@@ -339,8 +340,8 @@ move_onto()
boolean
is_direction(c, d)
-short c;
-short *d;
+ short c;
+ short *d;
{
switch(c) {
case 'h':
@@ -377,9 +378,9 @@ short *d;
boolean
check_hunger(msg_only)
-boolean msg_only;
+ boolean msg_only;
{
- register short i, n;
+ short i, n;
boolean fainted = 0;
if (rogue.moves_left == HUNGRY) {
@@ -501,7 +502,9 @@ reg_move()
return(fainted);
}
+void
rest(count)
+ int count;
{
int i;
@@ -515,6 +518,7 @@ rest(count)
}
}
+char
gr_dir()
{
short d;
@@ -550,6 +554,7 @@ gr_dir()
return(d);
}
+void
heal()
{
static short heal_exp = -1, n, c = 0;
@@ -604,7 +609,7 @@ heal()
if (++c >= n) {
c = 0;
rogue.hp_current++;
- if (alt = !alt) {
+ if ((alt = !alt) != 0) {
rogue.hp_current++;
}
if ((rogue.hp_current += regeneration) > rogue.hp_max) {
@@ -614,9 +619,9 @@ heal()
}
}
-static boolean
+boolean
can_turn(nrow, ncol)
-short nrow, ncol;
+ short nrow, ncol;
{
if ((dungeon[nrow][ncol] & TUNNEL) && is_passable(nrow, ncol)) {
return(1);
@@ -624,12 +629,13 @@ short nrow, ncol;
return(0);
}
+void
turn_passage(dir, fast)
-short dir;
-boolean fast;
+ short dir;
+ boolean fast;
{
short crow = rogue.row, ccol = rogue.col, turns = 0;
- short ndir;
+ short ndir = 0;
if ((dir != 'h') && can_turn(crow, ccol + 1)) {
turns++;
diff --git a/rogue/object.c b/rogue/object.c
index b6f5043a..c6a493e4 100644
--- a/rogue/object.c
+++ b/rogue/object.c
@@ -1,4 +1,4 @@
-/* $NetBSD: object.c,v 1.3 1995/04/22 10:27:50 cgd Exp $ */
+/* $NetBSD: object.c,v 1.4 1997/10/12 11:45:34 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)object.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: object.c,v 1.3 1995/04/22 10:27:50 cgd Exp $";
+__RCSID("$NetBSD: object.c,v 1.4 1997/10/12 11:45:34 lukem Exp $");
#endif
#endif /* not lint */
@@ -65,13 +66,18 @@ object *free_list = (object *) 0;
char *fruit = (char *) 0;
fighter rogue = {
- INIT_AW, /* armor, weapon */
- INIT_RINGS, /* rings */
- INIT_HP, /* Hp current,max */
- INIT_STR, /* Str current,max */
+ INIT_AW, /* armor */
+ INIT_AW, /* weapon */
+ INIT_RINGS, /* left ring */
+ INIT_RINGS, /* right ring */
+ INIT_HP, /* Hp current */
+ INIT_HP, /* Hp max */
+ INIT_STR, /* Str current */
+ INIT_STR, /* Str max */
INIT_PACK, /* pack */
INIT_GOLD, /* gold */
- INIT_EXP, /* exp level,points */
+ INIT_EXPLEVEL, /* exp level */
+ INIT_EXP, /* exp points */
0, 0, /* row, col */
INIT_CHAR, /* char */
INIT_MOVES /* moves */
@@ -159,11 +165,7 @@ struct id id_rings[RINGS] = {
{270, " ", "of searching ",0},
};
-extern short cur_level, max_level;
-extern short party_room;
-extern char *error_file;
-extern boolean is_wood[];
-
+void
put_objects()
{
short i, n;
@@ -186,6 +188,7 @@ put_objects()
put_gold();
}
+void
put_gold()
{
short i, j;
@@ -215,9 +218,10 @@ put_gold()
}
}
+void
plant_gold(row, col, is_maze)
-short row, col;
-boolean is_maze;
+ short row, col;
+ boolean is_maze;
{
object *obj;
@@ -232,8 +236,9 @@ boolean is_maze;
(void) add_to_pack(obj, &level_objects, 0);
}
+void
place_at(obj, row, col)
-object *obj;
+ object *obj;
{
obj->row = row;
obj->col = col;
@@ -243,8 +248,8 @@ object *obj;
object *
object_at(pack, row, col)
-register object *pack;
-short row, col;
+ object *pack;
+ short row, col;
{
object *obj = (object *) 0;
@@ -274,8 +279,9 @@ get_letter_object(ch)
return(obj);
}
+void
free_stuff(objlist)
-object *objlist;
+ object *objlist;
{
object *obj;
@@ -289,7 +295,7 @@ object *objlist;
char *
name_of(obj)
-object *obj;
+ object *obj;
{
char *retstring;
@@ -409,8 +415,9 @@ gr_what_is()
return(what_is);
}
+void
gr_scroll(obj)
-object *obj;
+ object *obj;
{
short percent;
@@ -447,8 +454,9 @@ object *obj;
}
}
+void
gr_potion(obj)
-object *obj;
+ object *obj;
{
short percent;
@@ -487,9 +495,10 @@ object *obj;
}
}
+void
gr_weapon(obj, assign_wk)
-object *obj;
-int assign_wk;
+ object *obj;
+ int assign_wk;
{
short percent;
short i;
@@ -552,8 +561,9 @@ int assign_wk;
}
}
+void
gr_armor(obj)
-object *obj;
+ object *obj;
{
short percent;
short blessing;
@@ -578,17 +588,19 @@ object *obj;
}
}
+void
gr_wand(obj)
-object *obj;
+ object *obj;
{
obj->what_is = WAND;
obj->which_kind = get_rand(0, (WANDS - 1));
obj->class = get_rand(3, 7);
}
+void
get_food(obj, force_ration)
-object *obj;
-boolean force_ration;
+ object *obj;
+ boolean force_ration;
{
obj->what_is = FOOD;
@@ -599,6 +611,7 @@ boolean force_ration;
}
}
+void
put_stairs()
{
short row, col;
@@ -607,8 +620,9 @@ put_stairs()
dungeon[row][col] |= STAIRS;
}
+int
get_armor_class(obj)
-object *obj;
+ object *obj;
{
if (obj) {
return(obj->class + obj->d_enchant);
@@ -637,13 +651,15 @@ alloc_object()
return(obj);
}
+void
free_object(obj)
-object *obj;
+ object *obj;
{
obj->next_object = free_list;
free_list = obj;
}
+void
make_party()
{
short n;
@@ -656,6 +672,7 @@ make_party()
}
}
+void
show_objects()
{
object *obj;
@@ -671,7 +688,8 @@ show_objects()
rc = get_mask_char(obj->what_is);
if (dungeon[row][col] & MONSTER) {
- if (monster = object_at(&level_monsters, row, col)) {
+ if ((monster =
+ object_at(&level_monsters, row, col)) != NULL) {
monster->trail_char = rc;
}
}
@@ -693,6 +711,7 @@ show_objects()
}
}
+void
put_amulet()
{
object *obj;
@@ -702,8 +721,9 @@ put_amulet()
rand_place(obj);
}
+void
rand_place(obj)
-object *obj;
+ object *obj;
{
short row, col;
@@ -711,12 +731,14 @@ object *obj;
place_at(obj, row, col);
}
+void
c_object_for_wizard()
{
short ch, max, wk;
object *obj;
char buf[80];
+ max = 0;
if (pack_count((object *) 0) >= MAX_PACK_COUNT) {
message("pack full", 0);
return;
diff --git a/rogue/pack.c b/rogue/pack.c
index b91bc5a8..fdf0943d 100644
--- a/rogue/pack.c
+++ b/rogue/pack.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pack.c,v 1.3 1995/04/22 10:27:54 cgd Exp $ */
+/* $NetBSD: pack.c,v 1.4 1997/10/12 11:45:37 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)pack.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: pack.c,v 1.3 1995/04/22 10:27:54 cgd Exp $";
+__RCSID("$NetBSD: pack.c,v 1.4 1997/10/12 11:45:37 lukem Exp $");
#endif
#endif /* not lint */
@@ -60,16 +61,14 @@ static char rcsid[] = "$NetBSD: pack.c,v 1.3 1995/04/22 10:27:54 cgd Exp $";
char *curse_message = "you can't, it appears to be cursed";
-extern short levitate;
-
object *
add_to_pack(obj, pack, condense)
-object *obj, *pack;
+ object *obj, *pack;
{
object *op;
if (condense) {
- if (op = check_duplicate(obj, pack)) {
+ if ((op = check_duplicate(obj, pack)) != NULL) {
free_object(obj);
return(op);
} else {
@@ -90,8 +89,9 @@ object *obj, *pack;
return(obj);
}
+void
take_from_pack(obj, pack)
-object *obj, *pack;
+ object *obj, *pack;
{
while (pack->next_object != obj) {
pack = pack->next_object;
@@ -105,7 +105,7 @@ object *obj, *pack;
object *
pick_up(row, col, status)
-short *status;
+ short *status;
{
object *obj;
@@ -150,6 +150,7 @@ short *status;
return(obj);
}
+void
drop()
{
object *obj, *new;
@@ -214,7 +215,7 @@ drop()
object *
check_duplicate(obj, pack)
-object *obj, *pack;
+ object *obj, *pack;
{
object *op;
@@ -246,10 +247,11 @@ object *obj, *pack;
return(0);
}
+short
next_avail_ichar()
{
- register object *obj;
- register i;
+ object *obj;
+ int i;
boolean ichars[26];
for (i = 0; i < 26; i++) {
@@ -268,14 +270,16 @@ next_avail_ichar()
return('?');
}
+void
wait_for_ack()
{
while (rgetchar() != ' ') ;
}
+short
pack_letter(prompt, mask)
-char *prompt;
-unsigned short mask;
+ char *prompt;
+ unsigned short mask;
{
short ch;
unsigned short tmask = mask;
@@ -310,6 +314,7 @@ unsigned short mask;
return(ch);
}
+void
take_off()
{
char desc[DCOLS];
@@ -333,10 +338,11 @@ take_off()
}
}
+void
wear()
{
short ch;
- register object *obj;
+ object *obj;
char desc[DCOLS];
if (rogue.armor) {
@@ -365,8 +371,9 @@ wear()
(void) reg_move();
}
+void
unwear(obj)
-object *obj;
+ object *obj;
{
if (obj) {
obj->in_use_flags &= (~BEING_WORN);
@@ -374,18 +381,20 @@ object *obj;
rogue.armor = (object *) 0;
}
+void
do_wear(obj)
-object *obj;
+ object *obj;
{
rogue.armor = obj;
obj->in_use_flags |= BEING_WORN;
obj->identified = 1;
}
+void
wield()
{
short ch;
- register object *obj;
+ object *obj;
char desc[DCOLS];
if (rogue.weapon && rogue.weapon->is_cursed) {
@@ -419,15 +428,17 @@ wield()
}
}
+void
do_wield(obj)
-object *obj;
+ object *obj;
{
rogue.weapon = obj;
obj->in_use_flags |= BEING_WIELDED;
}
+void
unwield(obj)
-object *obj;
+ object *obj;
{
if (obj) {
obj->in_use_flags &= (~BEING_WIELDED);
@@ -435,10 +446,11 @@ object *obj;
rogue.weapon = (object *) 0;
}
+void
call_it()
{
short ch;
- register object *obj;
+ object *obj;
struct id *id_table;
char buf[MAX_TITLE_LENGTH+2];
@@ -463,8 +475,9 @@ call_it()
}
}
+short
pack_count(new_obj)
-object *new_obj;
+ object *new_obj;
{
object *obj;
short count = 0;
@@ -492,8 +505,8 @@ object *new_obj;
boolean
mask_pack(pack, mask)
-object *pack;
-unsigned short mask;
+ object *pack;
+ unsigned short mask;
{
while (pack->next_object) {
pack = pack->next_object;
@@ -504,9 +517,10 @@ unsigned short mask;
return(0);
}
+boolean
is_pack_letter(c, mask)
-short *c;
-unsigned short *mask;
+ short *c;
+ unsigned short *mask;
{
if (((*c == '?') || (*c == '!') || (*c == ':') || (*c == '=') ||
(*c == ')') || (*c == ']') || (*c == '/') || (*c == ','))) {
@@ -542,11 +556,13 @@ unsigned short *mask;
return(((*c >= 'a') && (*c <= 'z')) || (*c == CANCEL) || (*c == LIST));
}
+boolean
has_amulet()
{
return(mask_pack(&rogue.pack, AMULET));
}
+void
kick_into_pack()
{
object *obj;
@@ -556,7 +572,7 @@ kick_into_pack()
if (!(dungeon[rogue.row][rogue.col] & OBJECT)) {
message("nothing here", 0);
} else {
- if (obj = pick_up(rogue.row, rogue.col, &stat)) {
+ if ((obj = pick_up(rogue.row, rogue.col, &stat)) != NULL) {
get_desc(obj, desc);
if (obj->what_is == GOLD) {
message(desc, 0);
diff --git a/rogue/play.c b/rogue/play.c
index 601f8924..a9d02eb1 100644
--- a/rogue/play.c
+++ b/rogue/play.c
@@ -1,4 +1,4 @@
-/* $NetBSD: play.c,v 1.3 1995/04/22 10:28:04 cgd Exp $ */
+/* $NetBSD: play.c,v 1.4 1997/10/12 11:45:40 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)play.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: play.c,v 1.3 1995/04/22 10:28:04 cgd Exp $";
+__RCSID("$NetBSD: play.c,v 1.4 1997/10/12 11:45:40 lukem Exp $");
#endif
#endif /* not lint */
@@ -61,10 +62,7 @@ static char rcsid[] = "$NetBSD: play.c,v 1.3 1995/04/22 10:28:04 cgd Exp $";
boolean interrupted = 0;
char *unknown_command = "unknown command";
-extern short party_room, bear_trap;
-extern char hit_message[];
-extern boolean wizard, trap_door;
-
+void
play_level()
{
short ch;
diff --git a/rogue/random.c b/rogue/random.c
index 6e2abc60..83f65f5c 100644
--- a/rogue/random.c
+++ b/rogue/random.c
@@ -1,4 +1,4 @@
-/* $NetBSD: random.c,v 1.3 1995/04/22 10:28:06 cgd Exp $ */
+/* $NetBSD: random.c,v 1.4 1997/10/12 11:45:43 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,14 +36,17 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)random.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: random.c,v 1.3 1995/04/22 10:28:06 cgd Exp $";
+__RCSID("$NetBSD: random.c,v 1.4 1997/10/12 11:45:43 lukem Exp $");
#endif
#endif /* not lint */
+#include "rogue.h"
+
/*
* random.c
*
@@ -74,11 +77,11 @@ static int rand_deg = 31;
static int rand_sep = 3;
static long *end_ptr = &rntb[32];
+void
srrandom(x)
-int x;
+ int x;
{
- register int i;
- long rrandom();
+ int i;
state[0] = (long) x;
if (rand_type != 0) {
@@ -115,10 +118,11 @@ rrandom()
return(i);
}
+int
get_rand(x, y)
-register int x, y;
+ int x, y;
{
- register int r, t;
+ int r, t;
long lr;
if (x > y) {
@@ -133,14 +137,15 @@ register int x, y;
return(r);
}
+int
rand_percent(percentage)
-register int percentage;
+ int percentage;
{
return(get_rand(1, 100) <= percentage);
}
+int
coin_toss()
{
-
return(((rrandom() & 01) ? 1 : 0));
}
diff --git a/rogue/ring.c b/rogue/ring.c
index b531fa47..b79a3d3f 100644
--- a/rogue/ring.c
+++ b/rogue/ring.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ring.c,v 1.3 1995/04/22 10:28:09 cgd Exp $ */
+/* $NetBSD: ring.c,v 1.4 1997/10/12 11:45:47 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)ring.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: ring.c,v 1.3 1995/04/22 10:28:09 cgd Exp $";
+__RCSID("$NetBSD: ring.c,v 1.4 1997/10/12 11:45:47 lukem Exp $");
#endif
#endif /* not lint */
@@ -72,9 +73,7 @@ boolean r_see_invisible;
boolean sustain_strength;
boolean maintain_armor;
-extern char *curse_message;
-extern boolean wizard;
-
+void
put_on_ring()
{
short ch;
@@ -135,9 +134,10 @@ put_on_ring()
* serious problems when do_put_on() is called from read_pack() in restore().
*/
+void
do_put_on(ring, on_left)
-object *ring;
-boolean on_left;
+ object *ring;
+ boolean on_left;
{
if (on_left) {
ring->in_use_flags |= ON_LEFT_HAND;
@@ -148,6 +148,7 @@ boolean on_left;
}
}
+void
remove_ring()
{
boolean left = 0, right = 0;
@@ -155,6 +156,7 @@ remove_ring()
char buf[DCOLS];
object *ring;
+ ring = NULL;
if (r_rings == 0) {
inv_rings();
} else if (rogue.left_ring && !rogue.right_ring) {
@@ -197,8 +199,9 @@ remove_ring()
}
}
+void
un_put_on(ring)
-object *ring;
+ object *ring;
{
if (ring && (ring->in_use_flags & ON_LEFT_HAND)) {
ring->in_use_flags &= (~ON_LEFT_HAND);
@@ -210,9 +213,10 @@ object *ring;
ring_stats(1);
}
+void
gr_ring(ring, assign_wk)
-object *ring;
-boolean assign_wk;
+ object *ring;
+ boolean assign_wk;
{
ring->what_is = RING;
if (assign_wk) {
@@ -251,6 +255,7 @@ boolean assign_wk;
}
}
+void
inv_rings()
{
char buf[DCOLS];
@@ -276,8 +281,9 @@ inv_rings()
}
}
+void
ring_stats(pr)
-boolean pr;
+ boolean pr;
{
short i;
object *ring;
diff --git a/rogue/rogue.6 b/rogue/rogue.6
index 001a8719..083c5c16 100644
--- a/rogue/rogue.6
+++ b/rogue/rogue.6
@@ -1,4 +1,4 @@
-.\" $NetBSD: rogue.6,v 1.5 1995/04/22 10:28:12 cgd Exp $
+.\" $NetBSD: rogue.6,v 1.6 1997/10/12 11:45:49 lukem Exp $
.\"
.\" Copyright (c) 1988, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -40,13 +40,13 @@
.Nm rogue
.Nd Exploring The Dungeons of Doom
.Sh SYNOPSIS
-.Nm /usr/games/rogue
+.Nm
.Op Fl s
.Op Ar save_file
.\" .Op Fl r
.\" .Op Fl d
.Sh DESCRIPTION
-.Nm Rogue
+.Nm
is a computer fantasy game with a new twist. It is crt oriented and the
object of the game is to survive the attacks of various monsters and get
a lot of gold, rather than the puzzle solving orientation of most computer
@@ -66,7 +66,7 @@ among heroes.
.Pp
When the game ends, either by your death, when you quit, or if you (by
some miracle) manage to win,
-.Nm rogue
+.Nm
will give you a list of the top-ten scorers. The scoring is based entirely
upon how much gold you get. There is a 10% penalty for getting yourself
killed.
diff --git a/rogue/rogue.h b/rogue/rogue.h
index c9b09874..2a112815 100644
--- a/rogue/rogue.h
+++ b/rogue/rogue.h
@@ -1,11 +1,11 @@
-/* $NetBSD: rogue.h,v 1.4 1995/04/24 12:25:04 cgd Exp $ */
+/* $NetBSD: rogue.h,v 1.5 1997/10/12 11:45:52 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
- * Timoth C. Stoehr.
+ * Timothy C. Stoehr.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -155,13 +155,13 @@
#define RATION 0
#define FRUIT 1
-#define NOT_USED ((unsigned short) 0)
+#define NOT_USED ((unsigned short) 0)
#define BEING_WIELDED ((unsigned short) 01)
-#define BEING_WORN ((unsigned short) 02)
+#define BEING_WORN ((unsigned short) 02)
#define ON_LEFT_HAND ((unsigned short) 04)
#define ON_RIGHT_HAND ((unsigned short) 010)
#define ON_EITHER_HAND ((unsigned short) 014)
-#define BEING_USED ((unsigned short) 017)
+#define BEING_USED ((unsigned short) 017)
#define NO_TRAP -1
#define TRAP_DOOR 0
@@ -175,9 +175,9 @@
#define STEALTH_FACTOR 3
#define R_TELE_PERCENT 8
-#define UNIDENTIFIED ((unsigned short) 00) /* MUST BE ZERO! */
-#define IDENTIFIED ((unsigned short) 01)
-#define CALLED ((unsigned short) 02)
+#define UNIDENTIFIED ((unsigned short) 00) /* MUST BE ZERO! */
+#define IDENTIFIED ((unsigned short) 01)
+#define CALLED ((unsigned short) 02)
#define DROWS 24
#define DCOLS 80
@@ -245,15 +245,16 @@ struct obj { /* comment is monster meaning */
typedef struct obj object;
-#define INIT_AW (object*)0,(object*)0
-#define INIT_RINGS (object*)0,(object*)0
-#define INIT_HP 12,12
-#define INIT_STR 16,16
-#define INIT_EXP 1,0
-#define INIT_PACK {0}
-#define INIT_GOLD 0
-#define INIT_CHAR '@'
-#define INIT_MOVES 1250
+#define INIT_AW (object*)0
+#define INIT_RINGS (object*)0
+#define INIT_HP 12
+#define INIT_STR 16
+#define INIT_EXPLEVEL 1
+#define INIT_EXP 0
+#define INIT_PACK {0}
+#define INIT_GOLD 0
+#define INIT_CHAR '@'
+#define INIT_MOVES 1250
struct fightr {
object *armor;
@@ -426,42 +427,6 @@ extern object level_monsters;
#define MIN_ROW 1
-/* external routine declarations.
- */
-#include <string.h>
-
-char *mon_name();
-char *get_ench_color();
-char *name_of();
-char *md_gln();
-char *md_getenv();
-char *md_malloc();
-boolean is_direction();
-boolean mon_sees();
-boolean mask_pack();
-boolean mask_room();
-boolean is_digit();
-boolean check_hunger();
-boolean reg_move();
-boolean md_df();
-boolean has_been_touched();
-object *add_to_pack();
-object *alloc_object();
-object *get_letter_object();
-object *gr_monster();
-object *get_thrown_at_monster();
-object *get_zapped_monster();
-object *check_duplicate();
-object *gr_object();
-object *object_at();
-object *pick_up();
-struct id *get_id_table();
-unsigned short gr_what_is();
-long rrandom();
-long lget_number();
-long xxx();
-void byebye(), onintr(), error_save();
-
struct rogue_time {
short year; /* >= 1987 */
short month; /* 1 - 12 */
@@ -483,8 +448,371 @@ extern int LINES, COLS;
extern WINDOW *curscr;
extern char *CL;
-char *md_gdtcf();
-
#else
#include <curses.h>
#endif
+
+/*
+ * external routine declarations.
+ */
+#include <stdio.h>
+#include <string.h>
+
+object *alloc_object __P((void));
+object *check_duplicate __P((object *, object *));
+char *get_ench_color __P((void));
+object *get_letter_object __P((int));
+object *get_thrown_at_monster __P((object *, short, short *, short *));
+object *get_zapped_monster __P((short, short *, short *));
+object *gr_monster __P((object *, int));
+object *gr_object __P((void));
+char *md_getenv __P((char *));
+char *md_gln __P((void));
+char *md_malloc __P((int));
+char *mon_name __P((object *));
+char *name_of __P((object *));
+object *object_at __P((object *, short, short));
+object *pick_up __P((int, int, short *));
+void add_exp __P((int, boolean));
+void add_mazes __P((void));
+void add_traps __P((void));
+void aggravate __P((void));
+void aim_monster __P((object *));
+void bounce __P((short, short, short, short, short));
+void byebye __P((int));
+void c_object_for_wizard __P((void));
+void call_it __P((void));
+boolean can_move __P((int, int, int, int));
+boolean can_turn __P((int, int));
+void center __P((short, char *));
+void check_gold_seeker __P((object *));
+boolean check_hunger __P((boolean));
+boolean check_imitator __P((object *));
+void check_message __P((void));
+int check_up __P((void));
+void clean_up __P((char *));
+void clear_level __P((void));
+void cnfs __P((void));
+int coin_toss __P((void));
+int connect_rooms __P((short, short));
+void cough_up __P((object *));
+void create_monster __P((void));
+int damage_for_strength __P((void));
+void darken_room __P((short));
+void disappear __P((object *));
+void do_args __P((int, char **));
+void do_opts __P((void));
+void do_put_on __P((object *, boolean));
+void do_shell __P((void));
+void do_wear __P((object *));
+void do_wield __P((object *));
+void dr_course __P((object *, boolean, short, short));
+void drain_life __P((void));
+void draw_magic_map __P((void));
+void draw_simple_passage __P((short, short, short, short, short));
+void drop __P((void));
+int drop_check __P((void));
+void drop_level __P((void));
+void eat __P((void));
+void edit_opts __P((void));
+void env_get_value __P((char **, char *, boolean));
+void error_save __P((int));
+void fight __P((int));
+void fill_it __P((int, boolean));
+void fill_out_level __P((void));
+boolean flame_broil __P((object *));
+int flit __P((object *));
+void flop_weapon __P((object *, short, short));
+void free_object __P((object *));
+void free_stuff __P((object *));
+void freeze __P((object *));
+int get_armor_class __P((object *));
+int get_com_id __P((int *, short));
+int get_damage __P((char *, boolean));
+void get_desc __P((object *, char *));
+int get_dir __P((short, short, short, short));
+void get_dir_rc __P((short, short *, short *, short));
+char get_dungeon_char __P((short, short));
+int get_exp_level __P((long));
+void get_food __P((object *, boolean));
+int get_hit_chance __P((object *));
+int get_input_line __P((char *, char *, char *, char *, boolean, boolean));
+char get_mask_char __P((unsigned short));
+int get_number __P((char *));
+boolean get_oth_room __P((short, short *, short *));
+int get_rand __P((int, int));
+short get_room_number __P((int, int));
+int get_value __P((object *));
+int get_w_damage __P((object *));
+void get_wand_and_ring_materials __P((void));
+int get_weapon_damage __P((object *));
+char gmc __P((object *));
+char gmc_row_col __P((int, int));
+void go_blind __P((void));
+boolean gold_at __P((int, int));
+void gr_armor __P((object *));
+char gr_dir __P((void));
+char gr_obj_char __P((void));
+void gr_potion __P((object *));
+void gr_ring __P((object *, boolean));
+short gr_room __P((void));
+void gr_row_col __P((short *, short *, unsigned short));
+void gr_scroll __P((object *));
+void gr_wand __P((object *));
+void gr_weapon __P((object *, int));
+void hallucinate __P((void));
+boolean has_amulet __P((void));
+boolean has_been_touched __P((struct rogue_time *, struct rogue_time *));
+void heal __P((void));
+void hide_boxed_passage __P((int, int, int, int, int));
+void hold_monster __P((void));
+int hp_raise __P((void));
+void id_all __P((void));
+void id_com __P((void));
+void id_trap __P((void));
+void id_type __P((void));
+void idntfy __P((void));
+boolean imitating __P((int, int));
+int init __P((int, char **));
+void init_str __P((char **, char *));
+void insert_score __P((char [][], char [][], char *, short, short, object *, int));
+void inv_armor_weapon __P((boolean));
+void inv_rings __P((void));
+void inventory __P((object *, unsigned short));
+boolean is_all_connected __P((void));
+boolean is_digit __P((int));
+boolean is_direction __P((short, short *));
+boolean is_pack_letter __P((short *, unsigned short *));
+boolean is_passable __P((int, int));
+boolean is_vowel __P((short));
+void kick_into_pack __P((void));
+void killed_by __P((object *, short));
+long lget_number __P((char *));
+void light_passage __P((int, int));
+void light_up_room __P((int));
+boolean m_confuse __P((object *));
+void make_level __P((void));
+void make_maze __P((short, short, short, short, short, short));
+void make_party __P((void));
+void make_room __P((short, short, short, short));
+void make_scroll_titles __P((void));
+boolean mask_pack __P((object *, unsigned short));
+boolean mask_room __P((short, short *, short *, unsigned short));
+void md_cbreak_no_echo_nonl __P((boolean));
+boolean md_df __P((char *));
+void md_exit __P((int));
+void md_gct __P((struct rogue_time *));
+char *md_gdtcf __P((void));
+int md_get_file_id __P((char *));
+void md_gfmt __P((char *, struct rogue_time *));
+int md_gseed __P((void));
+void md_heed_signals __P((void));
+void md_ignore_signals __P((void));
+int md_link_count __P((char *));
+void md_lock __P((boolean));
+void md_shell __P((char *));
+void md_sleep __P((int));
+void md_slurp __P((void));
+void md_tstp __P((void));
+void message __P((char *, boolean));
+void mix_colors __P((void));
+void mix_colors __P((void));
+void mix_random_rooms __P((void));
+int mon_can_go __P((object *, int, int));
+int mon_damage __P((object *, short));
+void mon_hit __P((object *));
+boolean mon_sees __P((object *, int, int));
+int move_confused __P((object *));
+void move_mon_to __P((object *, int, int));
+void move_onto __P((void));
+int mtry __P((object *, int, int));
+void multiple_move_rogue __P((short));
+void mv_1_monster __P((object *, int, int));
+void mv_aquatars __P((void));
+void mv_mons __P((void));
+int name_cmp __P((char *, char *));
+short next_avail_ichar __P((void));
+boolean next_to_something __P((int, int));
+void nickize __P((char *, char *, char *));
+int no_room_for_monster __P((int));
+int one_move_rogue __P((short, short));
+void onintr __P((int));
+void opt_erase __P((int));
+void opt_go __P((int));
+void opt_show __P((int));
+short pack_count __P((object *));
+short pack_letter __P((char *, unsigned short));
+void pad __P((char *, short));
+void party_monsters __P((int, int));
+short party_objects __P((int));
+void place_at __P((object *, int, int));
+void plant_gold __P((int, int, boolean));
+void play_level __P((void));
+void player_init __P((void));
+void player_init __P((void));
+void potion_heal __P((int));
+int pr_com_id __P((int));
+int pr_motion_char __P((int));
+void print_stats __P((int));
+void put_amulet __P((void));
+void put_door __P((room *, short, short *, short *));
+void put_gold __P((void));
+void put_m_at __P((int, int, object *));
+void put_mons __P((void));
+void put_objects __P((void));
+void put_on_ring __P((void));
+void put_player __P((short));
+void put_scores __P((object *, short));
+void put_stairs __P((void));
+void quaff __P((void));
+void quit __P((boolean));
+int r_index __P((char *, int, boolean));
+void r_read __P((FILE *, char *, int));
+void r_write __P((FILE *, char *, int));
+void rand_around __P((short, short *, short *));
+int rand_percent __P((int));
+void rand_place __P((object *));
+void read_pack __P((object *, FILE *, boolean));
+void read_scroll __P((void));
+void read_string __P((char *, FILE *));
+void recursive_deadend __P((short, short *, short, short));
+boolean reg_move __P((void));
+void relight __P((void));
+void remessage __P((short));
+void remove_ring __P((void));
+void rest __P((int));
+void restore __P((char *));
+int rgetchar __P((void));
+void ring_stats __P((boolean));
+int rogue_can_see __P((int, int));
+void rogue_damage __P((short, object *, short));
+void rogue_hit __P((object *, boolean));
+int rogue_is_around __P((int, int));
+long rrandom __P((void));
+void rust __P((object *));
+void rw_dungeon __P((FILE *, boolean));
+void rw_id __P((struct id *, FILE *, int, boolean));
+void rw_rooms __P((FILE *, boolean));
+void s_con_mon __P((object *));
+int same_col __P((int, int));
+int same_row __P((int, int));
+void save_game __P((void));
+void save_into_file __P((char *));
+void save_screen __P((void));
+void search __P((short, boolean));
+boolean seek_gold __P((object *));
+void sell_pack __P((void));
+void sf_error __P((void));
+void show_average_hp __P((void));
+void show_monsters __P((void));
+void show_objects __P((void));
+void show_traps __P((void));
+void single_inv __P((short));
+void sound_bell __P((void));
+void special_hit __P((object *));
+void srrandom __P((int));
+void start_window __P((void));
+void start_window __P((void));
+void steal_gold __P((object *));
+void steal_item __P((object *));
+void sting __P((object *));
+void stop_window __P((void));
+void stop_window __P((void));
+void take_a_nap __P((void));
+void take_from_pack __P((object *, object *));
+void take_off __P((void));
+void tele __P((void));
+void tele_away __P((object *));
+void throw __P((void));
+boolean throw_at_monster __P((object *, object *));
+int to_hit __P((object *));
+short trap_at __P((int, int));
+void trap_player __P((int, int));
+boolean try_to_cough __P((short, short, object *));
+void turn_passage __P((short, boolean));
+void un_put_on __P((object *));
+void unblind __P((void));
+void unconfuse __P((void));
+void uncurse_all __P((void));
+void unhallucinate __P((void));
+void unwear __P((object *));
+void unwield __P((object *));
+void vanish __P((object *, short, object *));
+void visit_rooms __P((int));
+void wait_for_ack __P((void));
+void wake_room __P((short, boolean, short, short));
+void wake_up __P((object *));
+void wanderer __P((void));
+void wdrain_life __P((object *));
+void wear __P((void));
+void wield __P((void));
+void win __P((void));
+void wizardize __P((void));
+void write_pack __P((object *, FILE *));
+void write_string __P((char *, FILE *));
+long xxx __P((boolean));
+void xxxx __P((char *, short));
+void zap_monster __P((object *, unsigned short));
+void zapp __P((void));
+object *add_to_pack __P((object *, object *, int));
+struct id *get_id_table __P((object *));
+unsigned short gr_what_is __P((void));
+
+extern boolean ask_quit;
+extern boolean being_held;
+extern boolean cant_int;
+extern boolean con_mon;
+extern boolean detect_monster;
+extern boolean did_int;
+extern boolean interrupted;
+extern boolean is_wood[];
+extern boolean jump;
+extern boolean maintain_armor;
+extern boolean mon_disappeared;
+extern boolean msg_cleared;
+extern boolean no_skull;
+extern boolean passgo;
+extern boolean r_see_invisible;
+extern boolean r_teleport;
+extern boolean save_is_interactive;
+extern boolean score_only;
+extern boolean see_invisible;
+extern boolean sustain_strength;
+extern boolean trap_door;
+extern boolean wizard;
+extern char hit_message[];
+extern char hunger_str[];
+extern char login_name[];
+extern char *byebye_string;
+extern char *curse_message;
+extern char *error_file;
+extern char *fruit;
+extern char *m_names[];
+extern char *more;
+extern char *new_level_message;
+extern char *nick_name;
+extern char *press_space;
+extern char *save_file;
+extern char *you_can_move_again;
+extern long level_points[];
+extern short add_strength;
+extern short auto_search;
+extern short bear_trap;
+extern short blind;
+extern short confused;
+extern short cur_level;
+extern short cur_room;
+extern short e_rings;
+extern short extra_hp;
+extern short foods;
+extern short halluc;
+extern short haste_self;
+extern short less_hp;
+extern short levitate;
+extern short m_moves;
+extern short max_level;
+extern short party_room;
+extern short r_rings;
+extern short regeneration;
+extern short ring_exp;
+extern short stealthy;
diff --git a/rogue/room.c b/rogue/room.c
index 88cd0e36..9aec0e74 100644
--- a/rogue/room.c
+++ b/rogue/room.c
@@ -1,4 +1,4 @@
-/* $NetBSD: room.c,v 1.3 1995/04/22 10:28:17 cgd Exp $ */
+/* $NetBSD: room.c,v 1.4 1997/10/12 11:45:56 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)room.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: room.c,v 1.3 1995/04/22 10:28:17 cgd Exp $";
+__RCSID("$NetBSD: room.c,v 1.4 1997/10/12 11:45:56 lukem Exp $");
#endif
#endif /* not lint */
@@ -61,10 +62,6 @@ static char rcsid[] = "$NetBSD: room.c,v 1.3 1995/04/22 10:28:17 cgd Exp $";
room rooms[MAXROOMS];
boolean rooms_visited[MAXROOMS];
-extern short blind;
-extern boolean detect_monster, jump, passgo, no_skull, ask_quit;
-extern char *nick_name, *fruit, *save_file, *press_space;
-
#define NOPTS 7
struct option {
@@ -103,8 +100,9 @@ struct option {
}
};
+void
light_up_room(rn)
-int rn;
+ int rn;
{
short i, j;
@@ -116,7 +114,8 @@ int rn;
if (dungeon[i][j] & MONSTER) {
object *monster;
- if (monster = object_at(&level_monsters, i, j)) {
+ if ((monster = object_at(
+ &level_monsters, i, j)) != NULL) {
dungeon[monster->row][monster->col] &= (~MONSTER);
monster->trail_char =
get_dungeon_char(monster->row, monster->col);
@@ -130,6 +129,7 @@ int rn;
}
}
+void
light_passage(row, col)
{
short i, j, i_end, j_end;
@@ -149,8 +149,9 @@ light_passage(row, col)
}
}
+void
darken_room(rn)
-short rn;
+ short rn;
{
short i, j;
@@ -173,10 +174,11 @@ short rn;
}
}
+char
get_dungeon_char(row, col)
-register row, col;
+ short row, col;
{
- register unsigned short mask = dungeon[row][col];
+ unsigned short mask = dungeon[row][col];
if (mask & MONSTER) {
return(gmc_row_col(row, col));
@@ -221,8 +223,9 @@ register row, col;
return(' ');
}
+char
get_mask_char(mask)
-register unsigned short mask;
+ unsigned short mask;
{
switch(mask) {
case SCROL:
@@ -248,9 +251,10 @@ register unsigned short mask;
}
}
+void
gr_row_col(row, col, mask)
-short *row, *col;
-unsigned short mask;
+ short *row, *col;
+ unsigned short mask;
{
short rn;
short r, c;
@@ -269,6 +273,7 @@ unsigned short mask;
*col = c;
}
+short
gr_room()
{
short i;
@@ -280,13 +285,16 @@ gr_room()
return(i);
}
+short
party_objects(rn)
+ int rn;
{
short i, j, nf = 0;
object *obj;
short n, N, row, col;
boolean found;
+ row = col = 0;
N = ((rooms[rn].bottom_row - rooms[rn].top_row) - 1) *
((rooms[rn].right_col - rooms[rn].left_col) - 1);
n = get_rand(5, 10);
@@ -312,8 +320,9 @@ party_objects(rn)
return(nf);
}
+short
get_room_number(row, col)
-register row, col;
+ int row, col;
{
short i;
@@ -326,10 +335,12 @@ register row, col;
return(NO_ROOM);
}
+boolean
is_all_connected()
{
short i, starting_room;
+ starting_room = 0;
for (i = 0; i < MAXROOMS; i++) {
rooms_visited[i] = 0;
if (rooms[i].is_room & (R_ROOM | R_MAZE)) {
@@ -347,8 +358,9 @@ is_all_connected()
return(1);
}
+void
visit_rooms(rn)
-int rn;
+ int rn;
{
short i;
short oth_rn;
@@ -363,6 +375,7 @@ int rn;
}
}
+void
draw_magic_map()
{
short i, j, ch, och;
@@ -399,8 +412,11 @@ draw_magic_map()
if (s & MONSTER) {
object *monster;
- if (monster = object_at(&level_monsters, i, j)) {
- monster->trail_char = ch;
+ if ((monster = object_at(
+ &level_monsters, i, j))
+ != NULL) {
+ monster->trail_char =
+ ch;
}
}
}
@@ -409,10 +425,11 @@ draw_magic_map()
}
}
+void
dr_course(monster, entering, row, col)
-object *monster;
-boolean entering;
-short row, col;
+ object *monster;
+ boolean entering;
+ short row, col;
{
short i, j, k, rn;
short r, rr;
@@ -483,8 +500,9 @@ short row, col;
}
}
+boolean
get_oth_room(rn, row, col)
-short rn, *row, *col;
+ short rn, *row, *col;
{
short d = -1;
@@ -505,6 +523,7 @@ short rn, *row, *col;
return(0);
}
+void
edit_opts()
{
char save[NOPTS+1][DCOLS];
@@ -603,8 +622,9 @@ CH:
}
}
+void
opt_show(i)
-int i;
+ int i;
{
char *s;
struct option *opt = &options[i];
@@ -619,8 +639,9 @@ int i;
addstr(s);
}
+void
opt_erase(i)
-int i;
+ int i;
{
struct option *opt = &options[i];
@@ -628,12 +649,14 @@ int i;
clrtoeol();
}
+void
opt_go(i)
-int i;
+ int i;
{
move(i, strlen(options[i].prompt));
}
+void
do_shell()
{
#ifdef UNIX
diff --git a/rogue/save.c b/rogue/save.c
index 135e0db0..910f3cdf 100644
--- a/rogue/save.c
+++ b/rogue/save.c
@@ -1,4 +1,4 @@
-/* $NetBSD: save.c,v 1.3 1995/04/22 10:28:21 cgd Exp $ */
+/* $NetBSD: save.c,v 1.4 1997/10/12 11:45:58 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)save.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: save.c,v 1.3 1995/04/22 10:28:21 cgd Exp $";
+__RCSID("$NetBSD: save.c,v 1.4 1997/10/12 11:45:58 lukem Exp $");
#endif
#endif /* not lint */
@@ -62,29 +63,7 @@ static char rcsid[] = "$NetBSD: save.c,v 1.3 1995/04/22 10:28:21 cgd Exp $";
short write_failed = 0;
char *save_file = (char *) 0;
-extern boolean detect_monster;
-extern short cur_level, max_level;
-extern char hunger_str[];
-extern char login_name[];
-extern short party_room;
-extern short foods;
-extern boolean is_wood[];
-extern short cur_room;
-extern boolean being_held;
-extern short bear_trap;
-extern short halluc;
-extern short blind;
-extern short confused;
-extern short levitate;
-extern short haste_self;
-extern boolean see_invisible;
-extern boolean detect_monster;
-extern boolean wizard;
-extern boolean score_only;
-extern short m_moves;
-
-extern boolean msg_cleared;
-
+void
save_game()
{
char fname[64];
@@ -98,8 +77,9 @@ save_game()
save_into_file(fname);
}
+void
save_into_file(sfile)
-char *sfile;
+ char *sfile;
{
FILE *fp;
int file_id;
@@ -108,7 +88,7 @@ char *sfile;
struct rogue_time rt_buf;
if (sfile[0] == '~') {
- if (hptr = md_getenv("HOME")) {
+ if ((hptr = md_getenv("HOME")) != NULL) {
(void) strcpy(name_buffer, hptr);
(void) strcat(name_buffer, sfile+1);
sfile = name_buffer;
@@ -167,8 +147,9 @@ char *sfile;
}
}
+void
restore(fname)
-char *fname;
+ char *fname;
{
FILE *fp;
struct rogue_time saved_time, mod_time;
@@ -176,6 +157,7 @@ char *fname;
char tbuf[40];
int new_file_id, saved_file_id;
+ fp = NULL;
if ( ((new_file_id = md_get_file_id(fname)) == -1) ||
((fp = fopen(fname, "r")) == NULL)) {
clean_up("cannot open file");
@@ -247,23 +229,25 @@ char *fname;
fclose(fp);
}
+void
write_pack(pack, fp)
-object *pack;
-FILE *fp;
+ object *pack;
+ FILE *fp;
{
object t;
- while (pack = pack->next_object) {
+ while ((pack = pack->next_object) != NULL) {
r_write(fp, (char *) pack, sizeof(object));
}
t.ichar = t.what_is = 0;
r_write(fp, (char *) &t, sizeof(object));
}
+void
read_pack(pack, fp, is_rogue)
-object *pack;
-FILE *fp;
-boolean is_rogue;
+ object *pack;
+ FILE *fp;
+ boolean is_rogue;
{
object read_obj, *new_obj;
@@ -290,9 +274,10 @@ boolean is_rogue;
}
}
+void
rw_dungeon(fp, rw)
-FILE *fp;
-boolean rw;
+ FILE *fp;
+ boolean rw;
{
short i, j;
char buf[DCOLS];
@@ -314,11 +299,12 @@ boolean rw;
}
}
+void
rw_id(id_table, fp, n, wr)
-struct id id_table[];
-FILE *fp;
-int n;
-boolean wr;
+ struct id id_table[];
+ FILE *fp;
+ int n;
+ boolean wr;
{
short i;
@@ -337,9 +323,10 @@ boolean wr;
}
}
+void
write_string(s, fp)
-char *s;
-FILE *fp;
+ char *s;
+ FILE *fp;
{
short n;
@@ -349,9 +336,10 @@ FILE *fp;
r_write(fp, s, n);
}
+void
read_string(s, fp)
-char *s;
-FILE *fp;
+ char *s;
+ FILE *fp;
{
short n;
@@ -360,9 +348,10 @@ FILE *fp;
xxxx(s, n);
}
+void
rw_rooms(fp, rw)
-FILE *fp;
-boolean rw;
+ FILE *fp;
+ boolean rw;
{
short i;
@@ -372,20 +361,22 @@ boolean rw;
}
}
+void
r_read(fp, buf, n)
-FILE *fp;
-char *buf;
-int n;
+ FILE *fp;
+ char *buf;
+ int n;
{
if (fread(buf, sizeof(char), n, fp) != n) {
clean_up("read() failed, don't know why");
}
}
+void
r_write(fp, buf, n)
-FILE *fp;
-char *buf;
-int n;
+ FILE *fp;
+ char *buf;
+ int n;
{
if (!write_failed) {
if (fwrite(buf, sizeof(char), n, fp) != n) {
@@ -398,7 +389,7 @@ int n;
boolean
has_been_touched(saved_time, mod_time)
-struct rogue_time *saved_time, *mod_time;
+ struct rogue_time *saved_time, *mod_time;
{
if (saved_time->year < mod_time->year) {
return(1);
diff --git a/rogue/score.c b/rogue/score.c
index 814c1d39..4bfcaccc 100644
--- a/rogue/score.c
+++ b/rogue/score.c
@@ -1,4 +1,4 @@
-/* $NetBSD: score.c,v 1.5 1995/04/22 10:28:26 cgd Exp $ */
+/* $NetBSD: score.c,v 1.6 1997/10/12 11:46:01 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)score.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: score.c,v 1.5 1995/04/22 10:28:26 cgd Exp $";
+__RCSID("$NetBSD: score.c,v 1.6 1997/10/12 11:46:01 lukem Exp $");
#endif
#endif /* not lint */
@@ -60,15 +61,10 @@ static char rcsid[] = "$NetBSD: score.c,v 1.5 1995/04/22 10:28:26 cgd Exp $";
#include "rogue.h"
#include "pathnames.h"
-extern char login_name[];
-extern char *m_names[];
-extern short max_level;
-extern boolean score_only, no_skull, msg_cleared;
-extern char *byebye_string, *nick_name;
-
+void
killed_by(monster, other)
-object *monster;
-short other;
+ object *monster;
+ short other;
{
char buf[128];
@@ -134,6 +130,7 @@ short other;
put_scores(monster, other);
}
+void
win()
{
unwield(rogue.weapon); /* disarm and relax */
@@ -157,13 +154,16 @@ win()
put_scores((object *) 0, WIN);
}
+void
quit(from_intrpt)
-boolean from_intrpt;
+ boolean from_intrpt;
{
char buf[128];
short i, orow, ocol;
boolean mc;
+ orow = ocol = 0;
+ mc = FALSE;
md_ignore_signals();
if (from_intrpt) {
@@ -198,9 +198,10 @@ boolean from_intrpt;
killed_by((object *) 0, QUIT);
}
+void
put_scores(monster, other)
-object *monster;
-short other;
+ object *monster;
+ short other;
{
short i, n, rank = 10, x, ne = 0, found_player = -1;
char scores[10][82];
@@ -274,8 +275,8 @@ short other;
rank = ne;
}
if (rank < 10) {
- insert_score(scores, n_names, nick_name, rank, ne, monster,
- other);
+ insert_score(scores, n_names, nick_name, rank, ne,
+ monster, other);
if (ne < 10) {
ne++;
}
@@ -324,12 +325,14 @@ short other;
clean_up("");
}
+void
insert_score(scores, n_names, n_name, rank, n, monster, other)
-char scores[][82];
-char n_names[][30];
-char *n_name;
-short rank, n;
-object *monster;
+ char scores[][82];
+ char n_names[][30];
+ char *n_name;
+ short rank, n;
+ object *monster;
+ int other;
{
short i;
char buf[128];
@@ -342,7 +345,8 @@ object *monster;
}
}
}
- sprintf(buf, "%2d %6d %s: ", rank+1, rogue.gold, login_name);
+ sprintf(buf, "%2d %6ld %s: ", rank+1, (long)rogue.gold,
+ login_name);
if (other) {
switch(other) {
@@ -386,8 +390,9 @@ object *monster;
(void) strcpy(n_names[rank], n_name);
}
+boolean
is_vowel(ch)
-short ch;
+ short ch;
{
return( (ch == 'a') ||
(ch == 'e') ||
@@ -396,6 +401,7 @@ short ch;
(ch == 'u') );
}
+void
sell_pack()
{
object *obj;
@@ -428,12 +434,14 @@ sell_pack()
message("", 0);
}
+int
get_value(obj)
-object *obj;
+ object *obj;
{
short wc;
int val;
+ val = 0;
wc = obj->which_kind;
switch(obj->what_is) {
@@ -475,6 +483,7 @@ object *obj;
return(val);
}
+void
id_all()
{
short i;
@@ -496,8 +505,9 @@ id_all()
}
}
+int
name_cmp(s1, s2)
-char *s1, *s2;
+ char *s1, *s2;
{
short i = 0;
int r;
@@ -511,9 +521,10 @@ char *s1, *s2;
return(r);
}
+void
xxxx(buf, n)
-char *buf;
-short n;
+ char *buf;
+ short n;
{
short i;
unsigned char c;
@@ -529,7 +540,7 @@ short n;
long
xxx(st)
-boolean st;
+ boolean st;
{
static long f, s;
long r;
@@ -545,8 +556,9 @@ boolean st;
return(r);
}
+void
nickize(buf, score, n_name)
-char *buf, *score, *n_name;
+ char *buf, *score, *n_name;
{
short i = 15, j;
@@ -570,9 +582,10 @@ char *buf, *score, *n_name;
}
}
+void
center(row, buf)
-short row;
-char *buf;
+ short row;
+ char *buf;
{
short margin;
@@ -580,6 +593,7 @@ char *buf;
mvaddstr(row, margin, buf);
}
+void
sf_error()
{
md_lock(0);
diff --git a/rogue/spec_hit.c b/rogue/spec_hit.c
index e4de5a03..137f0b0b 100644
--- a/rogue/spec_hit.c
+++ b/rogue/spec_hit.c
@@ -1,4 +1,4 @@
-/* $NetBSD: spec_hit.c,v 1.3 1995/04/22 10:28:29 cgd Exp $ */
+/* $NetBSD: spec_hit.c,v 1.4 1997/10/12 11:46:04 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)spec_hit.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: spec_hit.c,v 1.3 1995/04/22 10:28:29 cgd Exp $";
+__RCSID("$NetBSD: spec_hit.c,v 1.4 1997/10/12 11:46:04 lukem Exp $");
#endif
#endif /* not lint */
@@ -61,14 +62,9 @@ static char rcsid[] = "$NetBSD: spec_hit.c,v 1.3 1995/04/22 10:28:29 cgd Exp $";
short less_hp = 0;
boolean being_held;
-extern short cur_level, max_level, blind, levitate, ring_exp;
-extern long level_points[];
-extern boolean detect_monster, mon_disappeared;
-extern boolean sustain_strength, maintain_armor;
-extern char *you_can_move_again;
-
+void
special_hit(monster)
-object *monster;
+ object *monster;
{
if ((monster->m_flags & CONFUSED) && rand_percent(66)) {
return;
@@ -98,8 +94,9 @@ object *monster;
}
}
+void
rust(monster)
-object *monster;
+ object *monster;
{
if ((!rogue.armor) || (get_armor_class(rogue.armor) <= 1) ||
(rogue.armor->which_kind == LEATHER)) {
@@ -117,8 +114,9 @@ object *monster;
}
}
+void
freeze(monster)
-object *monster;
+ object *monster;
{
short freeze_percent = 99;
short i, n;
@@ -150,8 +148,9 @@ object *monster;
}
}
+void
steal_gold(monster)
-object *monster;
+ object *monster;
{
int amount;
@@ -170,11 +169,12 @@ object *monster;
disappear(monster);
}
+void
steal_item(monster)
-object *monster;
+ object *monster;
{
object *obj;
- short i, n, t;
+ short i, n, t = 0;
char desc[80];
boolean has_something = 0;
@@ -224,8 +224,9 @@ DSPR:
disappear(monster);
}
+void
disappear(monster)
-object *monster;
+ object *monster;
{
short row, col;
@@ -241,8 +242,9 @@ object *monster;
mon_disappeared = 1;
}
+void
cough_up(monster)
-object *monster;
+ object *monster;
{
object *obj;
short row, col, i, n;
@@ -285,11 +287,13 @@ object *monster;
free_object(obj);
}
+boolean
try_to_cough(row, col, obj)
-short row, col;
-object *obj;
+ short row, col;
+ object *obj;
{
- if ((row < MIN_ROW) || (row > (DROWS-2)) || (col < 0) || (col>(DCOLS-1))) {
+ if ((row < MIN_ROW) ||
+ (row > (DROWS-2)) || (col < 0) || (col>(DCOLS-1))) {
return(0);
}
if ((!(dungeon[row][col] & (OBJECT | STAIRS | TRAP))) &&
@@ -304,8 +308,9 @@ object *obj;
return(0);
}
+boolean
seek_gold(monster)
-object *monster;
+ object *monster;
{
short i, j, rn, s;
@@ -336,8 +341,9 @@ object *monster;
return(0);
}
+boolean
gold_at(row, col)
-short row, col;
+ short row, col;
{
if (dungeon[row][col] & OBJECT) {
object *obj;
@@ -350,14 +356,16 @@ short row, col;
return(0);
}
+void
check_gold_seeker(monster)
-object *monster;
+ object *monster;
{
monster->m_flags &= (~SEEKS_GOLD);
}
+boolean
check_imitator(monster)
-object *monster;
+ object *monster;
{
char msg[80];
@@ -375,13 +383,14 @@ object *monster;
return(0);
}
+boolean
imitating(row, col)
-register short row, col;
+ short row, col;
{
if (dungeon[row][col] & MONSTER) {
- object *object_at(), *monster;
+ object *monster;
- if (monster = object_at(&level_monsters, row, col)) {
+ if ((monster = object_at(&level_monsters, row, col)) != NULL) {
if (monster->m_flags & IMITATES) {
return(1);
}
@@ -390,8 +399,9 @@ register short row, col;
return(0);
}
+void
sting(monster)
-object *monster;
+ object *monster;
{
short sting_chance = 35;
char msg[80];
@@ -413,6 +423,7 @@ object *monster;
}
}
+void
drop_level()
{
int hp;
@@ -432,6 +443,7 @@ drop_level()
add_exp(1, 0);
}
+void
drain_life()
{
short n;
@@ -460,8 +472,9 @@ drain_life()
print_stats((STAT_STRENGTH | STAT_HP));
}
+boolean
m_confuse(monster)
-object *monster;
+ object *monster;
{
char msg[80];
@@ -482,8 +495,9 @@ object *monster;
return(0);
}
+boolean
flame_broil(monster)
-object *monster;
+ object *monster;
{
short row, col, dir;
@@ -508,8 +522,9 @@ object *monster;
return(1);
}
+int
get_dir(srow, scol, drow, dcol)
-short srow, scol, drow, dcol;
+ short srow, scol, drow, dcol;
{
if (srow == drow) {
if (scol < dcol) {
diff --git a/rogue/throw.c b/rogue/throw.c
index a5cf0dad..ca772053 100644
--- a/rogue/throw.c
+++ b/rogue/throw.c
@@ -1,4 +1,4 @@
-/* $NetBSD: throw.c,v 1.3 1995/04/22 10:28:32 cgd Exp $ */
+/* $NetBSD: throw.c,v 1.4 1997/10/12 11:46:07 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)throw.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: throw.c,v 1.3 1995/04/22 10:28:32 cgd Exp $";
+__RCSID("$NetBSD: throw.c,v 1.4 1997/10/12 11:46:07 lukem Exp $");
#endif
#endif /* not lint */
@@ -58,10 +59,7 @@ static char rcsid[] = "$NetBSD: throw.c,v 1.3 1995/04/22 10:28:32 cgd Exp $";
#include "rogue.h"
-extern short cur_room;
-extern char *curse_message;
-extern char hit_message[];
-
+void
throw()
{
short wch, d;
@@ -125,8 +123,9 @@ throw()
vanish(weapon, 1, &rogue.pack);
}
+boolean
throw_at_monster(monster, weapon)
-object *monster, *weapon;
+ object *monster, *weapon;
{
short damage, hit_chance;
short t;
@@ -162,9 +161,9 @@ object *monster, *weapon;
object *
get_thrown_at_monster(obj, dir, row, col)
-object *obj;
-short dir;
-short *row, *col;
+ object *obj;
+ short dir;
+ short *row, *col;
{
short orow, ocol;
short i, ch;
@@ -205,9 +204,10 @@ short *row, *col;
return(0);
}
+void
flop_weapon(weapon, row, col)
-object *weapon;
-short row, col;
+ object *weapon;
+ short row, col;
{
object *new_weapon, *monster;
short i = 0;
@@ -241,7 +241,8 @@ short row, col;
dch = get_dungeon_char(row, col);
if (mon) {
mch = mvinch(row, col);
- if (monster = object_at(&level_monsters, row, col)) {
+ if ((monster = object_at(&level_monsters,
+ row, col)) != NULL) {
monster->trail_char = dch;
}
if ((mch < 'A') || (mch > 'Z')) {
@@ -264,8 +265,9 @@ short row, col;
}
}
+void
rand_around(i, r, c)
-short i, *r, *c;
+ short i, *r, *c;
{
static char* pos = "\010\007\001\003\004\005\002\006\0";
static short row, col;
diff --git a/rogue/trap.c b/rogue/trap.c
index bd2aff37..68284d9d 100644
--- a/rogue/trap.c
+++ b/rogue/trap.c
@@ -1,4 +1,4 @@
-/* $NetBSD: trap.c,v 1.3 1995/04/22 10:28:35 cgd Exp $ */
+/* $NetBSD: trap.c,v 1.4 1997/10/12 11:46:09 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)trap.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: trap.c,v 1.3 1995/04/22 10:28:35 cgd Exp $";
+__RCSID("$NetBSD: trap.c,v 1.4 1997/10/12 11:46:09 lukem Exp $");
#endif
#endif /* not lint */
@@ -77,15 +78,9 @@ char *trap_strings[TRAPS * 2] = {
"a gush of water hits you on the head"
};
-extern short cur_level, party_room;
-extern char *new_level_message;
-extern boolean interrupted;
-extern short ring_exp;
-extern boolean sustain_strength;
-extern short blind;
-
+short
trap_at(row, col)
-register row, col;
+ int row, col;
{
short i;
@@ -97,8 +92,9 @@ register row, col;
return(NO_TRAP);
}
+void
trap_player(row, col)
-short row, col;
+ short row, col;
{
short t;
@@ -149,6 +145,7 @@ short row, col;
}
}
+void
add_traps()
{
short i, n, tries = 0;
@@ -193,6 +190,7 @@ add_traps()
}
}
+void
id_trap()
{
short dir, row, col, d, t;
@@ -220,6 +218,7 @@ id_trap()
}
}
+void
show_traps()
{
short i, j;
@@ -233,9 +232,10 @@ show_traps()
}
}
+void
search(n, is_auto)
-short n;
-boolean is_auto;
+ short n;
+ boolean is_auto;
{
short s, i, j, row, col, t;
short shown = 0, found = 0;
diff --git a/rogue/use.c b/rogue/use.c
index ebc82b78..06319e65 100644
--- a/rogue/use.c
+++ b/rogue/use.c
@@ -1,4 +1,4 @@
-/* $NetBSD: use.c,v 1.3 1995/04/22 10:28:38 cgd Exp $ */
+/* $NetBSD: use.c,v 1.4 1997/10/12 11:46:11 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)use.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: use.c,v 1.3 1995/04/22 10:28:38 cgd Exp $";
+__RCSID("$NetBSD: use.c,v 1.4 1997/10/12 11:46:11 lukem Exp $");
#endif
#endif /* not lint */
@@ -69,14 +70,7 @@ boolean detect_monster = 0;
boolean con_mon = 0;
char *strange_feeling = "you have a strange feeling for a moment, then it passes";
-extern short bear_trap;
-extern char hunger_str[];
-extern short cur_room;
-extern long level_points[];
-extern boolean being_held;
-extern char *fruit, *you_can_move_again;
-extern boolean sustain_strength;
-
+void
quaff()
{
short ch;
@@ -190,6 +184,7 @@ quaff()
vanish(obj, 1, &rogue.pack);
}
+void
read_scroll()
{
short ch;
@@ -302,10 +297,11 @@ read_scroll()
* arrow (or whatever) in the quiver. It will only decrement the count.
*/
+void
vanish(obj, rm, pack)
-object *obj;
-short rm;
-object *pack;
+ object *obj;
+ short rm;
+ object *pack;
{
if (obj->quantity > 1) {
obj->quantity--;
@@ -325,7 +321,9 @@ object *pack;
}
}
+void
potion_heal(extra)
+ int extra;
{
float ratio;
short add;
@@ -370,6 +368,7 @@ potion_heal(extra)
}
}
+void
idntfy()
{
short ch;
@@ -397,6 +396,7 @@ AGAIN:
message(desc, 0);
}
+void
eat()
{
short ch;
@@ -438,6 +438,7 @@ eat()
vanish(obj, 1, &rogue.pack);
}
+void
hold_monster()
{
short i, j;
@@ -470,6 +471,7 @@ hold_monster()
}
}
+void
tele()
{
mvaddch(rogue.row, rogue.col, get_dungeon_char(rogue.row, rogue.col));
@@ -482,6 +484,7 @@ tele()
bear_trap = 0;
}
+void
hallucinate()
{
object *obj, *monster;
@@ -511,6 +514,7 @@ hallucinate()
}
}
+void
unhallucinate()
{
halluc = 0;
@@ -518,6 +522,7 @@ unhallucinate()
message("everything looks SO boring now", 1);
}
+void
unblind()
{
blind = 0;
@@ -531,6 +536,7 @@ unblind()
}
}
+void
relight()
{
if (cur_room == PASSAGE) {
@@ -541,6 +547,7 @@ relight()
mvaddch(rogue.row, rogue.col, rogue.fchar);
}
+void
take_a_nap()
{
short i;
@@ -555,6 +562,7 @@ take_a_nap()
message(you_can_move_again, 0);
}
+void
go_blind()
{
short i, j;
@@ -597,11 +605,13 @@ get_ench_color()
return("blue ");
}
+void
cnfs()
{
confused += get_rand(12, 22);
}
+void
unconfuse()
{
char msg[80];
@@ -611,6 +621,7 @@ unconfuse()
message(msg, 1);
}
+void
uncurse_all()
{
object *obj;
diff --git a/rogue/zap.c b/rogue/zap.c
index 401d4493..09b30797 100644
--- a/rogue/zap.c
+++ b/rogue/zap.c
@@ -1,4 +1,4 @@
-/* $NetBSD: zap.c,v 1.3 1995/04/22 10:28:41 cgd Exp $ */
+/* $NetBSD: zap.c,v 1.4 1997/10/12 11:46:15 lukem Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -36,11 +36,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)zap.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: zap.c,v 1.3 1995/04/22 10:28:41 cgd Exp $";
+__RCSID("$NetBSD: zap.c,v 1.4 1997/10/12 11:46:15 lukem Exp $");
#endif
#endif /* not lint */
@@ -60,9 +61,7 @@ static char rcsid[] = "$NetBSD: zap.c,v 1.3 1995/04/22 10:28:41 cgd Exp $";
boolean wizard = 0;
-extern boolean being_held, score_only, detect_monster;
-extern short cur_room;
-
+void
zapp()
{
short wch;
@@ -119,8 +118,8 @@ zapp()
object *
get_zapped_monster(dir, row, col)
-short dir;
-short *row, *col;
+ short dir;
+ short *row, *col;
{
short orow, ocol;
@@ -140,9 +139,10 @@ short *row, *col;
}
}
+void
zap_monster(monster, kind)
-object *monster;
-unsigned short kind;
+ object *monster;
+ unsigned short kind;
{
short row, col;
object *nm;
@@ -207,8 +207,9 @@ unsigned short kind;
}
}
+void
tele_away(monster)
-object *monster;
+ object *monster;
{
short row, col;
@@ -226,6 +227,7 @@ object *monster;
}
}
+void
wizardize()
{
char buf[100];
@@ -248,8 +250,9 @@ wizardize()
}
}
+void
wdrain_life(monster)
-object *monster;
+ object *monster;
{
short hp;
object *lmon, *nm;
@@ -277,8 +280,9 @@ object *monster;
relight();
}
+void
bounce(ball, dir, row, col, r)
-short ball, dir, row, col, r;
+ short ball, dir, row, col, r;
{
short orow, ocol;
char buf[DCOLS], *s;