]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - rogue/spec_hit.c
Merge upstream (can't test, hopefully nothing broke)
[bsdgames-darwin.git] / rogue / spec_hit.c
index 137f0b0b4686194c5af7ed04f048d8a35305f55b..69e314c307f889ef00a4aa060c863eebcfbb0ac4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: spec_hit.c,v 1.4 1997/10/12 11:46:04 lukem Exp $       */
+/*     $NetBSD: spec_hit.c,v 1.9 2011/05/23 23:01:17 joerg 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.
  *
@@ -41,7 +37,7 @@
 #if 0
 static char sccsid[] = "@(#)spec_hit.c 8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: spec_hit.c,v 1.4 1997/10/12 11:46:04 lukem Exp $");
+__RCSID("$NetBSD: spec_hit.c,v 1.9 2011/05/23 23:01:17 joerg Exp $");
 #endif
 #endif /* not lint */
 
@@ -59,12 +55,22 @@ __RCSID("$NetBSD: spec_hit.c,v 1.4 1997/10/12 11:46:04 lukem Exp $");
 
 #include "rogue.h"
 
+static void    disappear(object *);
+static void    drain_life(void);
+static void    drop_level(void);
+static void    freeze(object *);
+static int     get_dir(short, short, short, short);
+static boolean gold_at(short, short);
+static void    steal_gold(object *);
+static void    steal_item(object *);
+static void    sting(object *);
+static boolean try_to_cough(short, short, object *);
+
 short less_hp = 0;
 boolean being_held;
 
 void
-special_hit(monster)
-       object *monster;
+special_hit(object *monster)
 {
        if ((monster->m_flags & CONFUSED) && rand_percent(66)) {
                return;
@@ -95,8 +101,7 @@ special_hit(monster)
 }
 
 void
-rust(monster)
-       object *monster;
+rust(object *monster)
 {
        if ((!rogue.armor) || (get_armor_class(rogue.armor) <= 1) ||
                (rogue.armor->which_kind == LEATHER)) {
@@ -104,19 +109,18 @@ rust(monster)
        }
        if ((rogue.armor->is_protected) || maintain_armor) {
                if (monster && (!(monster->m_flags & RUST_VANISHED))) {
-                       message("the rust vanishes instantly", 0);
+                       messagef(0, "the rust vanishes instantly");
                        monster->m_flags |= RUST_VANISHED;
                }
        } else {
                rogue.armor->d_enchant--;
-               message("your armor weakens", 0);
+               messagef(0, "your armor weakens");
                print_stats(STAT_ARMOR);
        }
 }
 
 void
-freeze(monster)
-       object *monster;
+freeze(object *monster)
 {
        short freeze_percent = 99;
        short i, n;
@@ -131,7 +135,7 @@ freeze(monster)
 
        if (freeze_percent > 10) {
                monster->m_flags |= FREEZING_ROGUE;
-               message("you are frozen", 1);
+               messagef(1, "you are frozen");
 
                n = get_rand(4, 8);
                for (i = 0; i < n; i++) {
@@ -141,16 +145,15 @@ freeze(monster)
                        for (i = 0; i < 50; i++) {
                                mv_mons();
                        }
-                       killed_by((object *)0, HYPOTHERMIA);
+                       killed_by(NULL, HYPOTHERMIA);
                }
-               message(you_can_move_again, 1);
+               messagef(1, "%s", you_can_move_again);
                monster->m_flags &= (~FREEZING_ROGUE);
        }
 }
 
 void
-steal_gold(monster)
-       object *monster;
+steal_gold(object *monster)
 {
        int amount;
 
@@ -164,14 +167,13 @@ steal_gold(monster)
                amount = rogue.gold;
        }
        rogue.gold -= amount;
-       message("your purse feels lighter", 0);
+       messagef(0, "your purse feels lighter");
        print_stats(STAT_GOLD);
        disappear(monster);
 }
 
 void
-steal_item(monster)
-       object *monster;
+steal_item(object *monster)
 {
        object *obj;
        short i, n, t = 0;
@@ -209,13 +211,12 @@ steal_item(monster)
                        }
                }
        }
-       (void) strcpy(desc, "she stole ");
        if (obj->what_is != WEAPON) {
                t = obj->quantity;
                obj->quantity = 1;
        }
-       get_desc(obj, desc+10);
-       message(desc, 0);
+       get_desc(obj, desc, sizeof(desc));
+       messagef(0, "she stole %s", desc);
 
        obj->quantity = ((obj->what_is != WEAPON) ? t : 1);
 
@@ -224,9 +225,8 @@ DSPR:
        disappear(monster);
 }
 
-void
-disappear(monster)
-       object *monster;
+static void
+disappear(object *monster)
 {
        short row, col;
 
@@ -243,8 +243,7 @@ disappear(monster)
 }
 
 void
-cough_up(monster)
-       object *monster;
+cough_up(object *monster)
 {
        object *obj;
        short row, col, i, n;
@@ -258,7 +257,7 @@ cough_up(monster)
                obj->what_is = GOLD;
                obj->quantity = get_rand((cur_level * 15), (cur_level * 30));
        } else {
-               if (!rand_percent((int) monster->drop_percent)) {
+               if (!rand_percent((int)monster->drop_percent)) {
                        return;
                }
                obj = gr_object();
@@ -287,10 +286,8 @@ cough_up(monster)
        free_object(obj);
 }
 
-boolean
-try_to_cough(row, col, obj)
-       short row, col;
-       object *obj;
+static boolean
+try_to_cough(short row, short col, object *obj)
 {
        if ((row < MIN_ROW) ||
            (row > (DROWS-2)) || (col < 0) || (col>(DCOLS-1))) {
@@ -309,8 +306,7 @@ try_to_cough(row, col, obj)
 }
 
 boolean
-seek_gold(monster)
-       object *monster;
+seek_gold(object *monster)
 {
        short i, j, rn, s;
 
@@ -341,9 +337,8 @@ seek_gold(monster)
        return(0);
 }
 
-boolean
-gold_at(row, col)
-       short row, col;
+static boolean
+gold_at(short row, short col)
 {
        if (dungeon[row][col] & OBJECT) {
                object *obj;
@@ -357,26 +352,21 @@ gold_at(row, col)
 }
 
 void
-check_gold_seeker(monster)
-       object *monster;
+check_gold_seeker(object *monster)
 {
        monster->m_flags &= (~SEEKS_GOLD);
 }
 
 boolean
-check_imitator(monster)
-       object *monster;
+check_imitator(object *monster)
 {
-       char msg[80];
-
        if (monster->m_flags & IMITATES) {
                wake_up(monster);
                if (!blind) {
                        mvaddch(monster->row, monster->col,
                                        get_dungeon_char(monster->row, monster->col));
                        check_message();
-                       sprintf(msg, "wait, that's a %s!", mon_name(monster));
-                       message(msg, 1);
+                       messagef(1, "wait, that's a %s!", mon_name(monster));
                }
                return(1);
        }
@@ -384,8 +374,7 @@ check_imitator(monster)
 }
 
 boolean
-imitating(row, col)
-       short row, col;
+imitating(short row, short col)
 {
        if (dungeon[row][col] & MONSTER) {
                object *monster;
@@ -399,12 +388,10 @@ imitating(row, col)
        return(0);
 }
 
-void
-sting(monster)
-       object *monster;
+static void
+sting(object *monster)
 {
        short sting_chance = 35;
-       char msg[80];
 
        if ((rogue.str_current <= 3) || sustain_strength) {
                return;
@@ -415,16 +402,15 @@ sting(monster)
                sting_chance -= (6 * ((rogue.exp + ring_exp) - 8));
        }
        if (rand_percent(sting_chance)) {
-               sprintf(msg, "the %s's bite has weakened you",
-               mon_name(monster));
-               message(msg, 0);
+               messagef(0, "the %s's bite has weakened you",
+                       mon_name(monster));
                rogue.str_current--;
                print_stats(STAT_STRENGTH);
        }
 }
 
-void
-drop_level()
+static void
+drop_level(void)
 {
        int hp;
 
@@ -444,7 +430,7 @@ drop_level()
 }
 
 void
-drain_life()
+drain_life(void)
 {
        short n;
 
@@ -454,7 +440,7 @@ drain_life()
        n = get_rand(1, 3);             /* 1 Hp, 2 Str, 3 both */
 
        if ((n != 2) || (!sustain_strength)) {
-               message("you feel weaker", 0);
+               messagef(0, "you feel weaker");
        }
        if (n != 2) {
                rogue.hp_max--;
@@ -473,11 +459,8 @@ drain_life()
 }
 
 boolean
-m_confuse(monster)
-       object *monster;
+m_confuse(object *monster)
 {
-       char msg[80];
-
        if (!rogue_can_see(monster->row, monster->col)) {
                return(0);
        }
@@ -487,8 +470,8 @@ m_confuse(monster)
        }
        if (rand_percent(55)) {
                monster->m_flags &= (~CONFUSES);
-               sprintf(msg, "the gaze of the %s has confused you", mon_name(monster));
-               message(msg, 1);
+               messagef(1, "the gaze of the %s has confused you",
+                       mon_name(monster));
                cnfs();
                return(1);
        }
@@ -496,8 +479,7 @@ m_confuse(monster)
 }
 
 boolean
-flame_broil(monster)
-       object *monster;
+flame_broil(object *monster)
 {
        short row, col, dir;
 
@@ -522,9 +504,8 @@ flame_broil(monster)
        return(1);
 }
 
-int
-get_dir(srow, scol, drow, dcol)
-       short srow, scol, drow, dcol;
+static int
+get_dir(short srow, short scol, short drow, short dcol)
 {
        if (srow == drow) {
                if (scol < dcol) {