From dedc5b7def3adae0233407d55049f030975b14f4 Mon Sep 17 00:00:00 2001 From: kinther Date: Tue, 30 Dec 2025 12:37:32 -0800 Subject: [PATCH] Remove ANTI_ class flags and restrictions --- doc/building.txt | 14 +++++--------- doc/coding.txt | 9 --------- lib/text/help/help.hlp | 29 +++++------------------------ src/class.c | 28 ++++------------------------ src/constants.c | 11 ----------- src/structs.h | 21 +++++---------------- 6 files changed, 19 insertions(+), 93 deletions(-) diff --git a/doc/building.txt b/doc/building.txt index 0d5f26c..1d3c84d 100644 --- a/doc/building.txt +++ b/doc/building.txt @@ -1020,21 +1020,17 @@ but has no substantive effect otherwise. The flags have the following values: 1) GLOW Item is glowing (cosmetic). 2) HUM Item is humming (cosmetic). -3) RESERVED Reserved (unused). +3) UNUSED Reserved (unused). 4) NODONATE Item cannot be donated. 5) NOINVIS Item cannot be made invisible. 6) INVISIBLE Item is invisible. 7) MAGIC Item has a magical aura and cannot be enchanted. 8) NODROP Item is cursed and cannot be removed or dropped. 9) BLESS Item is blessed (cosmetic). -10) RESERVED Not used. -11) RESERVED Not used. -12) RESERVED Not used. -13) ANTI_MAGIC_USER Item cannot be used by the Mage class. -14) ANTI_CLERIC Item cannot be used by the Cleric class. -15) ANTI_THIEF Item cannot be used by the Thief class. -16) ANTI_WARRIOR Item cannot be used by the Warrior class. -17) NOSELL Shopkeepers will not buy or sell the item. +10) NOSELL Shopkeepers will not buy or sell the item. +11) QUEST_ITEM Shopkeepers will only accept questpoints for this item. +12) HOOD_UP WORN item hood is currently up. +13) SKINNED Item/corpse can be skinned. Wear Bitvector A bitvector (see section 2.4 on ‘Using Bitvectors’) with the following values: diff --git a/doc/coding.txt b/doc/coding.txt index 6b50241..eabc075 100644 --- a/doc/coding.txt +++ b/doc/coding.txt @@ -1418,15 +1418,6 @@ search for CLASS_UNDEFINEDand add a new CLASS_xxxdefinition for your class name with the next available number. Remember to bump the value of NUM_CLASSES, just below, by 1. -Then search structs.hfor "Extra object flags" so you can add an "ITEM_ANTI_xxx" -flag for your new class. As before, use the next available number in the sequence -for ITEM_xxx flags. - -The "ITEM_xxx" extra flags have a corresponding text description in constants.c, so -search it for "ITEM_x (extra bits)". Add a string giving a short name for the new -ITEM_ANTI_xxx flag, in the appropriate order, before the "\n" entry near the -bottom. - The shops have a similar "don’t trade" setup, so search shop.h for "TRADE_NOSORCEROR" to add a new TRADE_NOxxx item to the list for the class to be added. Below that (near "NOTRADE_SORCEROR"), a line will need to be added for each new class so the ’no diff --git a/lib/text/help/help.hlp b/lib/text/help/help.hlp index c04f09d..79f623e 100644 --- a/lib/text/help/help.hlp +++ b/lib/text/help/help.hlp @@ -5793,36 +5793,17 @@ OEDIT-EXTRA-FLAGS OEDIT-FLAGS OBJECT-FLAGS OBJECTFLAGS GLOW HUM NODROP NO_DROP O 1) GLOW Item is glowing (cosmetic). 2) HUM Item is humming (cosmetic). +3) UNUSED Reserved (unused). 4) NODONATE Item cannot be donated. 5) NOINVIS Item cannot be made invisible. 6) INVISIBLE Item is invisible. 7) MAGIC Item has a magical aura and cannot be enchanted. 8) NODROP Item is cursed and cannot be removed or dropped. 9) BLESS Item is blessed (cosmetic). -10) RESERVED Not used. -11) RESERVED Not used. -12) RESERVED Not used. -13) ANTI_MAGIC_USER Item cannot be used by the Mage class. -14) ANTI_CLERIC Item cannot be used by the Cleric class. -15) ANTI_THIEF Item cannot be used by the Thief class. -16) ANTI_WARRIOR Item cannot be used by the Warrior class. -17) NOSELL Shopkeepers will not buy or sell the item. -18) QUEST_ITEM Shopkeepers will only accept questpoints for this item. - - Always try to promote role-playing. The last thing you should do is have -Thieves running around wearing dangly bracelets making noise, Clerics and Mages -wearing large suits of armor and Warriors wearing delicate clothing. None of -that makes sense! So, use your head a little while creating equipment. If the -equipment gives addition hitpoints then it should probably be made of metal and -should be geared for Warrior types. We do not need Mages out there with bonus -hitpoints on all their eq. - Class and Race restrictions are very important. Be sure to know what your -MUD uses for both and build for them. For example, a Minotaur would not wear -a regular helmet on his head. Minotaurs take pride in their horns, so their -horns must be showing. Minotaurs also have hooves for feet. It would be tough -for most to wear regular boots. Use some common sense when creating your -equipment. Think about each object you create. Think about who you are creating -it for. +10) NOSELL Shopkeepers will not buy or sell the item. +11) QUEST_ITEM Shopkeepers will only accept questpoints for this item. +12) HOOD_UP WORN item hood is currently up. +13) SKINNED Item/corpse can be skinned. #2 OEDIT-ITEM-NUMBER OEDIT-NUMBER diff --git a/src/class.c b/src/class.c index ae7e43a..a801670 100644 --- a/src/class.c +++ b/src/class.c @@ -726,32 +726,12 @@ int backstab_mult(int level) } /* invalid_class is used by handler.c to determine if a piece of equipment is - * usable by a particular class, based on the ITEM_ANTI_{class} bitvectors. */ + * usable by a particular class. Class-based anti item flags are no longer + * enforced. */ int invalid_class(struct char_data *ch, struct obj_data *obj) { - if (OBJ_FLAGGED(obj, ITEM_ANTI_SORCEROR) && IS_SORCEROR(ch)) - return TRUE; - - if (OBJ_FLAGGED(obj, ITEM_ANTI_CLERIC) && IS_CLERIC(ch)) - return TRUE; - - if (OBJ_FLAGGED(obj, ITEM_ANTI_FIGHTER) && IS_FIGHTER(ch)) - return TRUE; - - if (OBJ_FLAGGED(obj, ITEM_ANTI_ROGUE) && IS_ROGUE(ch)) - return TRUE; - - if (OBJ_FLAGGED(obj, ITEM_ANTI_BARBARIAN) && IS_BARBARIAN(ch)) - return TRUE; - - if (OBJ_FLAGGED(obj, ITEM_ANTI_RANGER) && IS_RANGER(ch)) - return TRUE; - - if (OBJ_FLAGGED(obj, ITEM_ANTI_BARD) && IS_BARD(ch)) - return TRUE; - - if (OBJ_FLAGGED(obj, ITEM_ANTI_DRUID) && IS_DRUID(ch)) - return TRUE; + (void) ch; + (void) obj; return FALSE; } diff --git a/src/constants.c b/src/constants.c index 4a2d915..6fe471b 100644 --- a/src/constants.c +++ b/src/constants.c @@ -485,17 +485,6 @@ const char *extra_bits[] = { "MAGIC", "NO_DROP", "BLESS", - "RESERVED", - "RESERVED", - "RESERVED", - "ANTI_SORCEROR", - "ANTI_CLERIC", - "ANTI_ROGUE", - "ANTI_FIGHTER", - "ANTI_BARBARIAN", - "ANTI_RANGER", - "ANTI_BARD", - "ANTI_DRUID", "NO_SELL", "QUEST_ITEM", "HOOD_UP", diff --git a/src/structs.h b/src/structs.h index 22473cd..9653622 100644 --- a/src/structs.h +++ b/src/structs.h @@ -474,23 +474,12 @@ #define ITEM_MAGIC 6 /**< Item is magical */ #define ITEM_NODROP 7 /**< Item is cursed: can't drop */ #define ITEM_BLESS 8 /**< Item is blessed */ -#define ITEM_RESERVED9 9 /**< Reserved (unused) */ -#define ITEM_RESERVED10 10 /**< Reserved (unused) */ -#define ITEM_RESERVED11 11 /**< Reserved (unused) */ -#define ITEM_ANTI_SORCEROR 12 /**< Not usable by sorcerors */ -#define ITEM_ANTI_CLERIC 13 /**< Not usable by clerics */ -#define ITEM_ANTI_ROGUE 14 /**< Not usable by rogues */ -#define ITEM_ANTI_FIGHTER 15 /**< Not usable by fighters */ -#define ITEM_ANTI_BARBARIAN 16 /**< Not usable by barbarians */ -#define ITEM_ANTI_RANGER 17 /**< Not usable by rangers */ -#define ITEM_ANTI_BARD 18 /**< Not usable by bards */ -#define ITEM_ANTI_DRUID 19 /**< Not usable by druids */ -#define ITEM_NOSELL 20 /**< Shopkeepers won't touch it */ -#define ITEM_QUEST 21 /**< Item is a quest item */ -#define ITEM_HOOD_UP 22 /**< WORN item hood is currently up */ -#define ITEM_SKINNED 23 /* Item/corpse can be skinned */ +#define ITEM_NOSELL 9 /**< Shopkeepers won't touch it */ +#define ITEM_QUEST 10 /**< Item is a quest item */ +#define ITEM_HOOD_UP 11 /**< WORN item hood is currently up */ +#define ITEM_SKINNED 12 /* Item/corpse can be skinned */ /** Total number of item flags */ -#define NUM_ITEM_FLAGS 24 +#define NUM_ITEM_FLAGS 13 /* Modifier constants used with obj affects ('A' fields) */ #define APPLY_NONE 0 /**< No effect */