*/
#define F_LOOTED 1
#define F_WARNED 2
+#define FOUNTAIN_IS_WARNED(x,y) (levl[x][y].looted & F_WARNED)
+#define FOUNTAIN_IS_LOOTED(x,y) (levl[x][y].looted & F_LOOTED)
+#define SET_FOUNTAIN_WARNED(x,y) levl[x][y].looted |= F_WARNED;
+#define SET_FOUNTAIN_LOOTED(x,y) levl[x][y].looted |= F_LOOTED;
+#define CLEAR_FOUNTAIN_WARNED(x,y) levl[x][y].looted &= ~F_WARNED;
+#define CLEAR_FOUNTAIN_LOOTED(x,y) levl[x][y].looted &= ~F_LOOTED;
/*
* Doors are even worse :-) The special warning has a side effect
else You_feel("a gem here!");
(void) mksobj_at(rnd_class(DILITHIUM_CRYSTAL, LUCKSTONE-1),
u.ux, u.uy, FALSE, FALSE);
- levl[u.ux][u.uy].looted |= F_LOOTED;
+ SET_FOUNTAIN_LOOTED(u.ux,u.uy);
newsym(u.ux, u.uy);
exercise(A_WIS, TRUE); /* a discovery! */
}
boolean isyou;
{
if (IS_FOUNTAIN(levl[x][y].typ) &&
- (!rn2(3) || (levl[x][y].looted & F_WARNED))) {
+ (!rn2(3) || FOUNTAIN_IS_WARNED(x,y))) {
s_level *slev = Is_special(&u.uz);
if(isyou && slev && slev->flags.town &&
- !(levl[x][y].looted & F_WARNED)) {
+ !FOUNTAIN_IS_WARNED(x,y)) {
struct monst *mtmp;
- levl[x][y].looted |= F_WARNED;
+ SET_FOUNTAIN_WARNED(x,y);
/* Warn about future fountain use. */
for(mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp)) continue;
case 27: /* Find a gem in the sparkling waters. */
- if (!levl[u.ux][u.uy].looted) {
+ if (!FOUNTAIN_IS_LOOTED(u.ux,u.uy)) {
dofindgem();
break;
}
dowatersnakes();
break;
case 24: /* Find a gem */
- if (!levl[u.ux][u.uy].looted) {
+ if (!FOUNTAIN_IS_LOOTED(u.ux,u.uy)) {
dofindgem();
break;
}
if (u.ugold > 10) {
u.ugold -= somegold() / 10;
You("lost some of your gold in the fountain!");
- levl[u.ux][u.uy].looted &= ~F_LOOTED;
+ CLEAR_FOUNTAIN_LOOTED(u.ux,u.uy);
exercise(A_WIS, FALSE);
}
#else
if (!otmp->quan) delobj(otmp);
}
You("lost some of your money in the fountain!");
- levl[u.ux][u.uy].looted &= ~F_LOOTED;
+ CLEAR_FOUNTAIN_LOOTED(u.ux,u.uy);
exercise(A_WIS, FALSE);
}
}
* surface. After all, there will have been more people going
* by. Just like a shopping mall! Chris Woodbury */
- if (levl[u.ux][u.uy].looted) break;
- levl[u.ux][u.uy].looted |= F_LOOTED;
+ if (FOUNTAIN_IS_LOOTED(u.ux,u.uy)) break;
+ SET_FOUNTAIN_LOOTED(u.ux,u.uy);
(void) mkgold((long)
(rnd((dunlevs_in_dungeon(&u.uz)-dunlev(&u.uz)+1)*2)+5),
u.ux, u.uy);