BUCX filtering
The different menustyle settings have been offering different degrees
of support for BUCX filtering:
Full : multi-drop, container-in, container-out
Trad, Combo: multi-drop
Partial : none (to be expected; it explicitly jumps past class
filtering, where BUCX gets handled, to a menu of all objects)
This adds pickup, container-in, container-out, multi-unwear/unwield,
and object-ID for Trad and Combo, and multi-unwear/unwield for Full.
(Full behaves like Partial for pickup--not sure why--and for object-ID,
bypassing filters to go straight to a menu of all applicable items.)
There are probably several new bugs--this stuff is very convoluted....
This commit is contained in:
@@ -983,7 +983,9 @@ E void NDECL(reassign);
|
||||
E int NDECL(doorganize);
|
||||
E void NDECL(free_pickinv_cache);
|
||||
E int FDECL(count_unpaid, (struct obj *));
|
||||
E int FDECL(count_buc, (struct obj *, int));
|
||||
E int FDECL(count_buc, (struct obj *, int, boolean (*)(OBJ_P)));
|
||||
E void FDECL(tally_BUCX, (struct obj *, BOOLEAN_P,
|
||||
int *, int *, int *, int *, int *));
|
||||
E long FDECL(count_contents, (struct obj *, BOOLEAN_P, BOOLEAN_P, BOOLEAN_P));
|
||||
E void FDECL(carry_obj_effects, (struct obj *));
|
||||
E const char *FDECL(currency, (long));
|
||||
@@ -1780,6 +1782,7 @@ E void NDECL(getlock);
|
||||
E int FDECL(collect_obj_classes, (char *, struct obj *, BOOLEAN_P,
|
||||
boolean FDECL((*), (OBJ_P)), int *));
|
||||
E boolean FDECL(rider_corpse_revival, (struct obj *, BOOLEAN_P));
|
||||
E boolean FDECL(menu_class_present, (int));
|
||||
E void FDECL(add_valid_menu_class, (int));
|
||||
E boolean FDECL(allow_all, (struct obj *));
|
||||
E boolean FDECL(allow_category, (struct obj *));
|
||||
|
||||
@@ -280,6 +280,7 @@ enum hmon_atkmode_types {
|
||||
#define BUC_UNCURSED 0x200
|
||||
#define BUC_UNKNOWN 0x400
|
||||
#define BUC_ALLBKNOWN (BUC_BLESSED | BUC_CURSED | BUC_UNCURSED)
|
||||
#define BUCX_TYPES (BUC_ALLBKNOWN | BUC_UNKNOWN)
|
||||
#define ALL_TYPES_SELECTED -2
|
||||
|
||||
/* Flags to control find_mid() */
|
||||
|
||||
Reference in New Issue
Block a user