diff --git a/doc/fixes34.1 b/doc/fixes34.1 index 07a8110d2..1353c2b3b 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -54,6 +54,7 @@ don't credit player's wisdom when makelevel creates random Elbereth engravings reduce insect/monster creation from monster spells avoid "couldn't place lregion type 5" warning when arriving at Plane of Fire avoid crash due to delayed poly or were change no longer being valid +ensure that Priest's ability to recognize B/U/C is considered in B/U/C menus Platform- and/or Interface-Specific Fixes diff --git a/src/invent.c b/src/invent.c index 27ceffd0f..baa5242c9 100644 --- a/src/invent.c +++ b/src/invent.c @@ -1763,20 +1763,22 @@ count_buc(list, type) while (list) { switch(type) { case BUC_BLESSED: - if (list->oclass != GOLD_CLASS && list->bknown && list->blessed) + if (list->oclass != GOLD_CLASS && + (list->bknown || Role_if(PM_PRIEST)) && list->blessed) count++; break; case BUC_CURSED: - if (list->oclass != GOLD_CLASS && list->bknown && list->cursed) + if (list->oclass != GOLD_CLASS && + (list->bknown || Role_if(PM_PRIEST)) && list->cursed) count++; break; case BUC_UNCURSED: if (list->oclass != GOLD_CLASS && - list->bknown && !list->blessed && !list->cursed) + (list->bknown || Role_if(PM_PRIEST)) && !list->blessed && !list->cursed) count++; break; case BUC_UNKNOWN: - if (list->oclass != GOLD_CLASS && !list->bknown) + if (list->oclass != GOLD_CLASS && !(list->bknown || Role_if(PM_PRIEST))) count++; break; default: diff --git a/src/pickup.c b/src/pickup.c index 31265091e..08a2e37f4 100644 --- a/src/pickup.c +++ b/src/pickup.c @@ -316,16 +316,19 @@ struct obj *obj; (index(valid_menu_classes, obj->oclass) != (char *)0)) return TRUE; else if (((index(valid_menu_classes,'U') != (char *)0) && - (obj->oclass != GOLD_CLASS && obj->bknown && !obj->blessed && !obj->cursed))) + (obj->oclass != GOLD_CLASS && (obj->bknown || Role_if(PM_PRIEST)) && + !obj->blessed && !obj->cursed))) return TRUE; else if (((index(valid_menu_classes,'B') != (char *)0) && - (obj->oclass != GOLD_CLASS && obj->bknown && obj->blessed))) + (obj->oclass != GOLD_CLASS && + (obj->bknown || Role_if(PM_PRIEST)) && obj->blessed))) return TRUE; else if (((index(valid_menu_classes,'C') != (char *)0) && - (obj->oclass != GOLD_CLASS && obj->bknown && obj->cursed))) + (obj->oclass != GOLD_CLASS && + (obj->bknown || Role_if(PM_PRIEST)) && obj->cursed))) return TRUE; else if (((index(valid_menu_classes,'X') != (char *)0) && - (obj->oclass != GOLD_CLASS && !obj->bknown))) + (obj->oclass != GOLD_CLASS && !(obj->bknown || Role_if(PM_PRIEST))))) return TRUE; else return FALSE;