mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-24 07:27:04 +01:00
199 lines
6.9 KiB
Plaintext
199 lines
6.9 KiB
Plaintext
//! Flags for the item_flags var on /obj/item
|
|
/// is this item equipped into an inventory slot or hand of a mob? used for tooltips
|
|
/// todo: is this still needed? `inv_slot_or_index` on `/obj/item` is a good check already
|
|
#define ITEM_IN_INVENTORY (1<<0)
|
|
/// When dropped, it calls qdel on itself
|
|
#define ITEM_DROPDEL (1<<1)
|
|
/// cannot be used to do normal melee hits - this INCLUDES user overrides of it!
|
|
#define ITEM_NO_BLUDGEON (1<<2)
|
|
/// for all things that are technically items but used for various different stuff
|
|
#define ITEM_ABSTRACT (1<<3)
|
|
/// is this item in a storage datum?
|
|
#define ITEM_IN_STORAGE (1<<4)
|
|
/// we can't be caught when hitting a mob on throw
|
|
#define ITEM_THROW_UNCATCHABLE (1<<5)
|
|
/// we cannot be used a tool on click, no matter what
|
|
#define ITEM_NO_TOOL_ATTACK (1<<6)
|
|
/// we're wielded, usually via /datum/component/wielding
|
|
#define ITEM_MULTIHAND_WIELDED (1<<7)
|
|
/// don't allow help intent attacking
|
|
#define ITEM_CAREFUL_BLUDGEON (1<<8)
|
|
/// allow easy lathe deconstruction
|
|
#define ITEM_EASY_LATHE_DECONSTRUCT (1<<9)
|
|
/// do not allow lathe deconstruction
|
|
#define ITEM_NO_LATHE_DECONSTRUCT (1<<10)
|
|
/// stack-like handling for ingredients
|
|
#define ITEM_MASS_INGREDIENT (1<<11)
|
|
/// encumbers while in hand
|
|
#define ITEM_ENCUMBERS_WHILE_HELD (1<<12)
|
|
/// doesn't encumber while not in hand
|
|
#define ITEM_ENCUMBERS_ONLY_HELD (1<<13)
|
|
// todo: ITEM_SLOWS_WHILE_HELD for slowdown
|
|
|
|
DEFINE_BITFIELD(item_flags, list(
|
|
BITFIELD(ITEM_IN_INVENTORY),
|
|
BITFIELD(ITEM_DROPDEL),
|
|
BITFIELD(ITEM_NO_BLUDGEON),
|
|
BITFIELD(ITEM_ABSTRACT),
|
|
BITFIELD(ITEM_IN_STORAGE),
|
|
BITFIELD(ITEM_THROW_UNCATCHABLE),
|
|
BITFIELD(ITEM_NO_TOOL_ATTACK),
|
|
BITFIELD(ITEM_MULTIHAND_WIELDED),
|
|
BITFIELD(ITEM_CAREFUL_BLUDGEON),
|
|
BITFIELD(ITEM_EASY_LATHE_DECONSTRUCT),
|
|
BITFIELD(ITEM_NO_LATHE_DECONSTRUCT),
|
|
BITFIELD(ITEM_MASS_INGREDIENT),
|
|
BITFIELD(ITEM_ENCUMBERS_WHILE_HELD),
|
|
BITFIELD(ITEM_ENCUMBERS_ONLY_HELD),
|
|
))
|
|
|
|
//! Flags for the clothing_flags var on /obj/item
|
|
/// Blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! (NOTE: flag shared with ONESIZEFITSALL)
|
|
/// ignores "is this limb here" for equip.
|
|
#define CLOTHING_IGNORE_DELIMB (1<<1)
|
|
/// ignores "do we have a jumpsuit" for belt
|
|
#define CLOTHING_IGNORE_BELTLINK (1<<2)
|
|
/// for plural limbs, wearable with just one
|
|
#define CLOTHING_ALLOW_SINGLE_LIMB (1<<3)
|
|
/// Prevents syringes, parapens and hyposprays.
|
|
#define CLOTHING_THICK_MATERIAL (1<<4)
|
|
/// Syringes / hyposprays / etc can get through, but need to pass through an injection port.
|
|
#define CLOTHING_INJECTION_PORT (1<<5)
|
|
// todo: audit
|
|
#define BLOCK_GAS_SMOKE_EFFECT (1<<6)
|
|
/// Mask allows internals
|
|
// todo: audit
|
|
#define ALLOWINTERNALS (1<<7)
|
|
/// Prevents from slipping on wet floors, in space etc
|
|
// todo: audit
|
|
#define NOSLIP (1<<8)
|
|
/// Allows helmets and glasses to scan reagents.
|
|
// todo: audit
|
|
#define SCAN_REAGENTS (1<<9)
|
|
/// At the moment, masks with this flag will not prevent eating even if they are covering your face.
|
|
// todo: audit
|
|
#define FLEXIBLEMATERIAL (1<<10)
|
|
/// Allows special survival food items to be eaten through it
|
|
// todo: audit
|
|
#define ALLOW_SURVIVALFOOD (1<<11)
|
|
/// stops unequipping
|
|
#define NO_UNEQUIP (1<<12)
|
|
|
|
DEFINE_BITFIELD(clothing_flags, list(
|
|
BITFIELD(BLOCK_GAS_SMOKE_EFFECT),
|
|
BITFIELD(ALLOWINTERNALS),
|
|
BITFIELD(NOSLIP),
|
|
BITFIELD(CLOTHING_THICK_MATERIAL),
|
|
BITFIELD(SCAN_REAGENTS),
|
|
BITFIELD(FLEXIBLEMATERIAL),
|
|
BITFIELD(ALLOW_SURVIVALFOOD),
|
|
BITFIELD(CLOTHING_IGNORE_DELIMB),
|
|
BITFIELD(CLOTHING_IGNORE_BELTLINK),
|
|
BITFIELD(CLOTHING_ALLOW_SINGLE_LIMB),
|
|
BITFIELD(NO_UNEQUIP)
|
|
))
|
|
|
|
//!# bitflags for the /obj/item/var/inv_hide_flags variable. These determine when a piece of clothing hides another, i.e. a helmet hiding glasses.
|
|
// WARNING: The following flags apply only to the external suit!
|
|
#define HIDEGLOVES (1<<0)
|
|
#define HIDESUITSTORAGE (1<<1)
|
|
#define HIDEJUMPSUIT (1<<2)
|
|
#define HIDESHOES (1<<3)
|
|
#define HIDETAIL (1<<4)
|
|
#define HIDETIE (1<<5)
|
|
///Some clothing hides holsters, but not all accessories
|
|
#define HIDEHOLSTER (1<<6)
|
|
// WARNING: The following flags apply only to the helmets and masks!
|
|
#define HIDEMASK (1<<7)
|
|
/// Headsets and such.
|
|
#define HIDEEARS (1<<8)
|
|
/// Glasses.
|
|
#define HIDEEYES (1<<9)
|
|
/// Dictates whether we appear as "Unknown".
|
|
#define HIDEFACE (1<<10)
|
|
/// Hides the user's hair overlay. Leaves facial hair.
|
|
#define BLOCKHEADHAIR (1<<11)
|
|
/// Hides the user's hair, facial and otherwise.
|
|
#define BLOCKHAIR (1<<12)
|
|
|
|
DEFINE_BITFIELD(inv_hide_flags, list(
|
|
BITFIELD(HIDEGLOVES),
|
|
BITFIELD(HIDESUITSTORAGE),
|
|
BITFIELD(HIDEJUMPSUIT),
|
|
BITFIELD(HIDESHOES),
|
|
BITFIELD(HIDETAIL),
|
|
BITFIELD(HIDETIE),
|
|
BITFIELD(HIDEHOLSTER),
|
|
BITFIELD(HIDEMASK),
|
|
BITFIELD(HIDEEARS),
|
|
BITFIELD(HIDEEYES),
|
|
BITFIELD(HIDEFACE),
|
|
BITFIELD(BLOCKHEADHAIR),
|
|
BITFIELD(BLOCKHAIR),
|
|
))
|
|
|
|
//* Body Cover Flags / Body Part Flags *//
|
|
//* *//
|
|
//* These are used in many places, despite only being used commonly on *//
|
|
//* /item's and /item/organ/external's. *//
|
|
//* *//
|
|
//* These should be used any time you need to store coverage or parts *//
|
|
//* of a standard humanoid body. *//
|
|
|
|
// todo: is there any way at all to rename these to not be one word defines?
|
|
// literally anything like BODY_COVER_* or BP_MASK_* would help
|
|
|
|
#define HEAD (1<<0)
|
|
#define FACE (1<<1)
|
|
#define EYES (1<<2)
|
|
#define UPPER_TORSO (1<<3)
|
|
#define LOWER_TORSO (1<<4)
|
|
#define LEG_LEFT (1<<5)
|
|
#define LEG_RIGHT (1<<6)
|
|
#define LEGS (LEG_LEFT | LEG_RIGHT)
|
|
#define FOOT_LEFT (1<<7)
|
|
#define FOOT_RIGHT (1<<8)
|
|
#define FEET (FOOT_LEFT | FOOT_RIGHT)
|
|
#define ARM_LEFT (1<<9)
|
|
#define ARM_RIGHT (1<<10)
|
|
#define ARMS (ARM_LEFT | ARM_RIGHT)
|
|
#define HAND_LEFT (1<<11)
|
|
#define HAND_RIGHT (1<<12)
|
|
#define HANDS (HAND_LEFT | HAND_RIGHT)
|
|
#define FULL_BODY (ALL)
|
|
|
|
DEFINE_SHARED_BITFIELD(body_cover_flags, list(
|
|
"body_cover_flags",
|
|
"body_part_flags",
|
|
), list(
|
|
BITFIELD(HEAD),
|
|
BITFIELD(FACE),
|
|
BITFIELD(EYES),
|
|
BITFIELD(UPPER_TORSO),
|
|
BITFIELD(LOWER_TORSO),
|
|
BITFIELD(LEG_LEFT),
|
|
BITFIELD(LEG_RIGHT),
|
|
BITFIELD(FOOT_LEFT),
|
|
BITFIELD(FOOT_RIGHT),
|
|
BITFIELD(ARM_LEFT),
|
|
BITFIELD(ARM_RIGHT),
|
|
BITFIELD(HAND_LEFT),
|
|
BITFIELD(HAND_RIGHT),
|
|
))
|
|
|
|
//? Bitflags for /obj/item/var/item_persist_flags
|
|
/// consider this item for loadout at all
|
|
#define ITEM_PERSIST_LOADOUT (1<<0)
|
|
/// item can survive a loadout reset - great for reward items you want someone to keep.
|
|
#define ITEM_PERSIST_LOADOUT_PERMANENT (1<<1)
|
|
|
|
/// these flags are persisted with the item when item is being stored into generic obj storage system.
|
|
#define ITEM_PERSIST_FLAGS_STICKY (ITEM_PERSIST_LOADOUT | ITEM_PERSIST_LOADOUT_PERMANENT)
|
|
|
|
DEFINE_BITFIELD(item_persist_flags, list(
|
|
BITFIELD(ITEM_PERSIST_LOADOUT),
|
|
BITFIELD(ITEM_PERSIST_LOADOUT_PERMANENT),
|
|
))
|
|
|
|
|