diff --git a/arogue5/monsters.c b/arogue5/monsters.c index e6aa0f7..33427d4 100644 --- a/arogue5/monsters.c +++ b/arogue5/monsters.c @@ -770,12 +770,12 @@ wake_monster(int y, int x) /* * Every time he sees mean monster, it might start chasing him */ - if (on(*tp, ISMEAN) && + if ((on(*tp, ISMEAN) && off(*tp, ISHELD) && off(*tp, ISRUN) && rnd(100) > 33 && (!is_stealth(&player) || (on(*tp, ISUNIQUE) && rnd(100) > 95)) && - (off(player, ISINVIS) || on(*tp, CANSEE)) || + (off(player, ISINVIS) || on(*tp, CANSEE))) || (trp != NULL && (trp->r_flags & ISTREAS))) { tp->t_dest = &hero; turn_on(*tp, ISRUN); diff --git a/arogue5/rogue.h b/arogue5/rogue.h index b81d97a..b29d101 100644 --- a/arogue5/rogue.h +++ b/arogue5/rogue.h @@ -1046,7 +1046,7 @@ void init_player(void); void init_stones(void); void init_terrain(void); void init_things(void); -void init_weapon(struct object *weap, char type); +void init_weapon(struct object *weap, int type); char *inv_name(struct object *obj, bool drop); bool inventory(struct linked_list *list, int type); bool is_current(struct object *obj); diff --git a/arogue5/weapons.c b/arogue5/weapons.c index 706cd1a..0f414b9 100644 --- a/arogue5/weapons.c +++ b/arogue5/weapons.c @@ -140,7 +140,7 @@ hit_monster(int y, int x, struct object *obj, struct thing *tp) */ void -init_weapon(struct object *weap, char type) +init_weapon(struct object *weap, int type) { register struct init_weps *iwp; diff --git a/arogue7/monsters.c b/arogue7/monsters.c index a574b3e..859f8cf 100644 --- a/arogue7/monsters.c +++ b/arogue7/monsters.c @@ -594,12 +594,12 @@ wake_monster(int y, int x) /* * Every time he sees mean monster, it might start chasing him */ - if (on(*tp, ISMEAN) && + if ((on(*tp, ISMEAN) && off(*tp, ISHELD) && off(*tp, ISRUN) && rnd(100) > 33 && (!is_stealth(&player) || (on(*tp, ISUNIQUE) && rnd(100) > 50)) && - (off(player, ISINVIS) || on(*tp, CANSEE)) || + (off(player, ISINVIS) || on(*tp, CANSEE))) || (trp != NULL && (trp->r_flags & ISTREAS))) { runto(tp, &hero); } diff --git a/arogue7/move.c b/arogue7/move.c index c9ff5e3..5854970 100644 --- a/arogue7/move.c +++ b/arogue7/move.c @@ -132,7 +132,8 @@ be_trapped(struct thing *th, coord *tc) /* Make sure we were not chasing a monster here */ th->t_dest = &hero; - if (on(*th, ISFRIENDLY), turn_off(*th, ISFLEE)); + if (on(*th, ISFRIENDLY)) + turn_off(*th, ISFLEE); } } when BEARTRAP: @@ -406,7 +407,8 @@ be_trapped(struct thing *th, coord *tc) /* Make sure we were not chasing a monster here */ th->t_dest = &hero; - if (on(*th, ISFRIENDLY), turn_off(*th, ISFLEE)); + if (on(*th, ISFRIENDLY)) + turn_off(*th, ISFLEE); } else killed(mitem, FALSE, FALSE, FALSE); diff --git a/arogue7/rogue.h b/arogue7/rogue.h index c4b6241..f7db880 100644 --- a/arogue7/rogue.h +++ b/arogue7/rogue.h @@ -1249,7 +1249,7 @@ void init_player(void); void init_stones(void); void init_terrain(void); void init_things(void); -void init_weapon(struct object *weap, char type); +void init_weapon(struct object *weap, int type); char *inv_name(struct object *obj, bool drop); bool inventory(struct linked_list *list, int type); bool is_current(struct object *obj); diff --git a/arogue7/weapons.c b/arogue7/weapons.c index 4bb21ba..f4c621c 100644 --- a/arogue7/weapons.c +++ b/arogue7/weapons.c @@ -197,7 +197,7 @@ hit_monster(int y, int x, struct object *obj, struct thing *tp) */ void -init_weapon(struct object *weap, char type) +init_weapon(struct object *weap, int type) { register struct init_weps *iwp; diff --git a/srogue/monsters.c b/srogue/monsters.c index 1fca900..449f6ef 100644 --- a/srogue/monsters.c +++ b/srogue/monsters.c @@ -24,7 +24,7 @@ * Pick a monster to show up. The lower the level, * the meaner the monster. */ -char +int rnd_mon(bool wander, bool baddie) { /* baddie; TRUE when from a polymorph stick */ @@ -85,7 +85,7 @@ lev_mon(void) * Pick a new monster and add it to the list */ struct linked_list * -new_monster(char type, struct coord *cp, bool treas) +new_monster(int indx, struct coord *cp, bool treas) { reg struct linked_list *item; reg struct thing *tp; @@ -97,9 +97,9 @@ new_monster(char type, struct coord *cp, bool treas) attach(mlist, item); tp = THINGPTR(item); st = &tp->t_stats; - mp = &monsters[type]; /* point to this monsters structure */ + mp = &monsters[indx]; /* point to this monsters structure */ tp->t_type = mp->m_show; - tp->t_indx = type; + tp->t_indx = indx; tp->t_pos = *cp; tp->t_room = roomin(cp); tp->t_oldch = mvwinch(cw, cp->y, cp->x) & A_CHARTEXT; diff --git a/srogue/rogue.ext b/srogue/rogue.ext index 86ee05b..f58c618 100644 --- a/srogue/rogue.ext +++ b/srogue/rogue.ext @@ -154,7 +154,7 @@ void msg(char *fmt, ...); char *new(int size); struct linked_list *new_item(int size); void new_level(int ltype); -struct linked_list *new_monster(char type, struct coord *cp, bool treas); +struct linked_list *new_monster(int indx, struct coord *cp, bool treas); struct linked_list *new_thing(bool treas, int type, int which); void nohaste(int fromfuse); void noteth(int fromfuse); @@ -193,7 +193,7 @@ void ring_on(void); void ringabil(void); int ringex(int rtype); int rnd(int range); -char rnd_mon(bool wander, bool baddie); +int rnd_mon(bool wander, bool baddie); struct coord *rnd_pos(struct room *rp); int rnd_room(void); struct coord *rndmove(struct thing *who); diff --git a/srogue/sticks.c b/srogue/sticks.c index 9b7d72f..3159fb0 100644 --- a/srogue/sticks.c +++ b/srogue/sticks.c @@ -230,19 +230,20 @@ do_zap(bool gotdir) tp = THINGPTR(item); omonst = tp->t_indx; if (wh == WS_POLYM && !curse) { + int newmonst; detach(mlist, item); discard(item); oldch = tp->t_oldch; delta.y = y; delta.x = x; - monster = rnd_mon(FALSE, TRUE); - item = new_monster(monster, &delta, FALSE); + newmonst = rnd_mon(FALSE, TRUE); + item = new_monster(newmonst, &delta, FALSE); if (!(tp->t_flags & ISRUN)) runto(&delta, &hero); if (isalpha(mvwinch(cw, y, x))) - mvwaddch(cw, y, x, monsters[monster].m_show); + mvwaddch(cw, y, x, monsters[newmonst].m_show); tp->t_oldch = oldch; - ws_know[WS_POLYM] |= (monster != omonst); + ws_know[WS_POLYM] |= (newmonst != omonst); } else if (wh == WS_MINVIS && !bless) { tp->t_flags |= ISINVIS; diff --git a/urogue/monsters.c b/urogue/monsters.c index 68f1b8a..497d882 100644 --- a/urogue/monsters.c +++ b/urogue/monsters.c @@ -955,9 +955,9 @@ wake_monster(int y, int x) */ if (off(player, CANTRUESEE) && - on(*tp, ISINWALL) || on(*tp, CANSURPRISE) || - (on(*tp, ISSHADOW) && rnd(100) < 80) || - (on(*tp, ISINVIS) && off(player, CANSEE))) + (on(*tp, ISINWALL) || on(*tp, CANSURPRISE) || + (on(*tp, ISSHADOW) && rnd(100) < 80) || + (on(*tp, ISINVIS) && off(player, CANSEE)))) { /* TODO: incomplete - need to finish logic diff --git a/xrogue/monsters.c b/xrogue/monsters.c index 030ff71..34f0815 100644 --- a/xrogue/monsters.c +++ b/xrogue/monsters.c @@ -630,12 +630,12 @@ wake_monster(int y, int x) /* * Every time he sees mean monster, it might start chasing him */ - if (on(*tp, ISMEAN) && + if ((on(*tp, ISMEAN) && off(*tp, ISHELD) && off(*tp, ISRUN) && rnd(100) > 35 && (!is_stealth(&player) || (on(*tp, ISUNIQUE) && rnd(100) > 35)) && - (off(player, ISINVIS) || on(*tp, CANSEE)) || + (off(player, ISINVIS) || on(*tp, CANSEE))) || (trp != NULL && (trp->r_flags & ISTREAS))) { runto(tp, &hero); } diff --git a/xrogue/rogue.h b/xrogue/rogue.h index 0230d59..107fd7b 100644 --- a/xrogue/rogue.h +++ b/xrogue/rogue.h @@ -1347,7 +1347,7 @@ void init_player(void); void init_stones(void); void init_terrain(void); void init_things(void); -void init_weapon(struct object *weap, char type); +void init_weapon(struct object *weap, int type); char *inv_name(struct object *obj, bool drop); bool inventory(struct linked_list *list, int type); bool invisible(struct thing *monst); diff --git a/xrogue/weapons.c b/xrogue/weapons.c index ef54db1..a192fd6 100644 --- a/xrogue/weapons.c +++ b/xrogue/weapons.c @@ -198,7 +198,7 @@ hit_monster(int y, int x, struct object *obj, struct thing *tp) */ void -init_weapon(struct object *weap, char type) +init_weapon(struct object *weap, int type) { register struct init_weps *iwp;