expand the pool of status condition fields
Most of the additional ones are "opt-in" meaning that unless you add them to your config file to enable them, they won't show up. Two that aren't "opt-in", but can be "opted-out" (as can they all) are cond_grab (for an eel grabbing you and drowing being imminent) and cond_lava which leads to a fatality. All the ones that already existed are "opt-out" options, meaning that they will still show if you do nothing. Here's the complete list of status conditions following this patch: config option internal default mask id mask text1 tex2 text3 "cond_barehanded" bl_bareh opt_in BL_MASK_BAREH 0x00000001L Bare Bar Bh "cond_blind" bl_blind opt_out BL_MASK_BLIND 0x00000002L Blind Blnd Bl "cond_busy" bl_busy opt_in BL_MASK_BUSY 0x00000004L Busy Bsy By "cond_conf" bl_conf opt_out BL_MASK_CONF 0x00000008L Conf Cnf Cf "cond_deaf" bl_deaf opt_out BL_MASK_DEAF 0x00000010L Deaf Def Df "cond_iron" bl_elf_iron opt_out BL_MASK_ELF_IRON 0x00000020L Iron Irn Fe "cond_fly" bl_fly opt_out BL_MASK_FLY 0x00000040L Fly Fly Fl "cond_foodPois" bl_foodpois opt_out BL_MASK_FOODPOIS 0x00000080L FoodPois Fpois Poi "cond_glowhands" bl_glowhands opt_in BL_MASK_GLOWHANDS 0x00000100L Glow Glo Gl "cond_grab" bl_grab opt_out BL_MASK_GRAB 0x00000200L Grab Grb Gr "cond_hallu" bl_hallu opt_out BL_MASK_HALLU 0x00000400L Hallu Hal Hl "cond_held" bl_held opt_in BL_MASK_HELD 0x00000800L Held Hld Hd "cond_ice" bl_icy opt_in BL_MASK_ICY 0x00001000L Icy Icy Ic "cond_lava" bl_inlava opt_out BL_MASK_INLAVA 0x00002000L Lava Lav La "cond_lev" bl_lev opt_out BL_MASK_LEV 0x00004000L Lev Lev Lv "cond_paralyze" bl_parlyz opt_in BL_MASK_PARLYZ 0x00008000L Parlyz Para Par "cond_ride" bl_ride opt_out BL_MASK_RIDE 0x00010000L Ride Rid Rd "cond_sleep" bl_sleeping opt_in BL_MASK_SLEEPING 0x00020000L Zzz Zzz Zz "cond_slime" bl_slime opt_out BL_MASK_SLIME 0x00040000L Slime Slim Slm "cond_slip" bl_slippery opt_in BL_MASK_SLIPPERY 0x00080000L Slip Sli Sl "cond_stone" bl_stone opt_out BL_MASK_STONE 0x00100000L Stone Ston Sto "cond_strngl" bl_strngl opt_out BL_MASK_STRNGL 0x00200000L Strngl Stngl Str "cond_stun" bl_stun opt_out BL_MASK_STUN 0x00400000L Stun Stun St "cond_submerged" bl_submerged opt_in BL_MASK_SUBMERGED 0x00800000L Sub Sub Sw "cond_termIll" bl_termill opt_out BL_MASK_TERMILL 0x01000000L TermIll Ill Ill "cond_tethered" bl_tethered opt_in BL_MASK_TETHERED 0x02000000L Teth Tth Te "cond_trap" bl_trapped opt_in BL_MASK_TRAPPED 0x04000000L Trap Trp Tr "cond_unconscious" bl_unconsc opt_in BL_MASK_UNCONSC 0x08000000L Out Out KO "cond_woundedl" bl_woundedl opt_in BL_MASK_WOUNDEDL 0x10000000L Legs Leg Lg
This commit is contained in:
101
include/botl.h
101
include/botl.h
@@ -48,28 +48,97 @@ enum relationships { NO_LTEQGT = -1,
|
||||
EQ_VALUE, LT_VALUE, LE_VALUE,
|
||||
GE_VALUE, GT_VALUE, TXT_VALUE };
|
||||
|
||||
#define BEFORE 0
|
||||
#define NOW 1
|
||||
enum blconditions {
|
||||
bl_bareh,
|
||||
bl_blind,
|
||||
bl_busy,
|
||||
bl_conf,
|
||||
bl_deaf,
|
||||
bl_elf_iron,
|
||||
bl_fly,
|
||||
bl_foodpois,
|
||||
bl_glowhands,
|
||||
bl_grab,
|
||||
bl_hallu,
|
||||
bl_held,
|
||||
bl_icy,
|
||||
bl_inlava,
|
||||
bl_lev,
|
||||
bl_parlyz,
|
||||
bl_ride,
|
||||
bl_sleeping,
|
||||
bl_slime,
|
||||
bl_slippery,
|
||||
bl_stone,
|
||||
bl_strngl,
|
||||
bl_stun,
|
||||
bl_submerged,
|
||||
bl_termill,
|
||||
bl_tethered,
|
||||
bl_trapped,
|
||||
bl_unconsc,
|
||||
bl_woundedl,
|
||||
|
||||
CONDITION_COUNT
|
||||
};
|
||||
|
||||
/* Boolean condition bits for the condition mask */
|
||||
|
||||
/* clang-format off */
|
||||
#define BL_MASK_STONE 0x00000001L
|
||||
#define BL_MASK_SLIME 0x00000002L
|
||||
#define BL_MASK_STRNGL 0x00000004L
|
||||
#define BL_MASK_FOODPOIS 0x00000008L
|
||||
#define BL_MASK_TERMILL 0x00000010L
|
||||
#define BL_MASK_BLIND 0x00000020L
|
||||
#define BL_MASK_DEAF 0x00000040L
|
||||
#define BL_MASK_STUN 0x00000080L
|
||||
#define BL_MASK_CONF 0x00000100L
|
||||
#define BL_MASK_HALLU 0x00000200L
|
||||
#define BL_MASK_LEV 0x00000400L
|
||||
#define BL_MASK_FLY 0x00000800L
|
||||
#define BL_MASK_RIDE 0x00001000L
|
||||
#define BL_MASK_BITS 13 /* number of mask bits that can be set */
|
||||
#define BL_MASK_BAREH 0x00000001L
|
||||
#define BL_MASK_BLIND 0x00000002L
|
||||
#define BL_MASK_BUSY 0x00000004L
|
||||
#define BL_MASK_CONF 0x00000008L
|
||||
#define BL_MASK_DEAF 0x00000010L
|
||||
#define BL_MASK_ELF_IRON 0x00000020L
|
||||
#define BL_MASK_FLY 0x00000040L
|
||||
#define BL_MASK_FOODPOIS 0x00000080L
|
||||
#define BL_MASK_GLOWHANDS 0x00000100L
|
||||
#define BL_MASK_GRAB 0x00000200L
|
||||
#define BL_MASK_HALLU 0x00000400L
|
||||
#define BL_MASK_HELD 0x00000800L
|
||||
#define BL_MASK_ICY 0x00001000L
|
||||
#define BL_MASK_INLAVA 0x00002000L
|
||||
#define BL_MASK_LEV 0x00004000L
|
||||
#define BL_MASK_PARLYZ 0x00008000L
|
||||
#define BL_MASK_RIDE 0x00010000L
|
||||
#define BL_MASK_SLEEPING 0x00020000L
|
||||
#define BL_MASK_SLIME 0x00040000L
|
||||
#define BL_MASK_SLIPPERY 0x00080000L
|
||||
#define BL_MASK_STONE 0x00100000L
|
||||
#define BL_MASK_STRNGL 0x00200000L
|
||||
#define BL_MASK_STUN 0x00400000L
|
||||
#define BL_MASK_SUBMERGED 0x00800000L
|
||||
#define BL_MASK_TERMILL 0x01000000L
|
||||
#define BL_MASK_TETHERED 0x02000000L
|
||||
#define BL_MASK_TRAPPED 0x04000000L
|
||||
#define BL_MASK_UNCONSC 0x08000000L
|
||||
#define BL_MASK_WOUNDEDL 0x10000000L
|
||||
#define BL_MASK_BITS 28 /* number of mask bits that can be set */
|
||||
/* clang-format on */
|
||||
|
||||
struct conditions_t {
|
||||
int priority;
|
||||
long mask;
|
||||
enum blconditions c;
|
||||
const char *text[3];
|
||||
};
|
||||
extern const struct conditions_t conditions[CONDITION_COUNT];
|
||||
|
||||
enum condchoice { opt_in, opt_out};
|
||||
struct condtests_t {
|
||||
enum blconditions c;
|
||||
enum condchoice opt;
|
||||
boolean enabled;
|
||||
boolean choice;
|
||||
boolean test;
|
||||
};
|
||||
|
||||
extern struct condtests_t condtests[CONDITION_COUNT];
|
||||
|
||||
#define BEFORE 0
|
||||
#define NOW 1
|
||||
|
||||
/*
|
||||
* Possible additional conditions:
|
||||
* major:
|
||||
|
||||
@@ -183,6 +183,7 @@ E boolean NDECL(exp_percent_changing);
|
||||
E int NDECL(stat_cap_indx);
|
||||
E int NDECL(stat_hunger_indx);
|
||||
E const char *FDECL(bl_idx_to_fldname, (int));
|
||||
E void FDECL(condopt, (boolean *, BOOLEAN_P));
|
||||
#ifdef STATUS_HILITES
|
||||
E void NDECL(status_eval_next_unhilite);
|
||||
E void NDECL(reset_status_hilites);
|
||||
|
||||
Reference in New Issue
Block a user