]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - rogue/level.c
off-by-one. aaron@openbsd
[bsdgames-darwin.git] / rogue / level.c
index b298bb044a19b030eaa5411f142e3cc44a0cf47f..ecf1046844351004b13e68c044af642a63f2fd79 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: level.c,v 1.3 1995/04/22 10:27:37 cgd Exp $    */
+/*     $NetBSD: level.c,v 1.7 2003/08/07 09:37:38 agc Exp $    */
 
 /*
  * Copyright (c) 1988, 1993
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
  * 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.7 2003/08/07 09:37:38 agc Exp $");
 #endif
 #endif /* not lint */
 
@@ -63,11 +60,11 @@ static char rcsid[] = "$NetBSD: level.c,v 1.3 1995/04/22 10:27:37 cgd Exp $";
 short cur_level = 0;
 short max_level = 1;
 short cur_room;
-char *new_level_message = 0;
+const char *new_level_message = 0;
 short party_room = NO_ROOM;
 short r_de;
 
-long level_points[MAX_EXP_LEVEL] = {
+const long level_points[MAX_EXP_LEVEL] = {
                  10L,
                  20L,
                  40L,
@@ -93,16 +90,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 +189,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;
@@ -260,7 +257,7 @@ short rn, r1, r2, r3;
        case BIG_ROOM:
                top_row = get_rand(MIN_ROW, MIN_ROW+5);
                bottom_row = get_rand(DROWS-7, DROWS-2);
-               left_col = get_rand(0, 10);;
+               left_col = get_rand(0, 10);
                right_col = get_rand(DCOLS-11, DCOLS-1);
                rn = 0;
                goto B;
@@ -303,8 +300,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 +348,7 @@ short room1, room2;
        return(1);
 }
 
+void
 clear_level()
 {
        short i, j;
@@ -376,10 +375,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 +413,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 +455,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 +501,7 @@ add_mazes()
        }
 }
 
+void
 fill_out_level()
 {
        short i, rn;
@@ -515,9 +522,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 +584,11 @@ boolean do_rec_de;
        }
 }
 
+void
 recursive_deadend(rn, offsets, srow, scol)
-short rn;
-short *offsets;
-short srow, scol;
+       short rn;
+       const short *offsets;
+       short srow, scol;
 {
        short i, de;
        short drow, dcol, tunnel_dir;
@@ -613,9 +622,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 +640,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 +706,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 +742,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 +775,7 @@ short nr;           /* try not to put in this room */
        mvaddch(rogue.row, rogue.col, rogue.fchar);
 }
 
+int
 drop_check()
 {
        if (wizard) {
@@ -779,6 +792,7 @@ drop_check()
        return(0);
 }
 
+int
 check_up()
 {
        if (!wizard) {
@@ -801,9 +815,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 +847,9 @@ boolean promotion;
        }
 }
 
+int
 get_exp_level(e)
-long e;
+       long e;
 {
        short i;
 
@@ -845,6 +861,7 @@ long e;
        return(i+1);
 }
 
+int
 hp_raise()
 {
        int hp;
@@ -853,6 +870,7 @@ hp_raise()
        return(hp);
 }
 
+void
 show_average_hp()
 {
        char mbuf[80];
@@ -872,6 +890,7 @@ show_average_hp()
        message(mbuf, 0);
 }
 
+void
 mix_random_rooms()
 {
        short i, t;