mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-09 00:13:55 +00:00
* Optimizes away /obj/Initialize We were spending like 0.15 seconds just checking for blueprints, obj flags and network ids All these things can just be applied where they're wanted, saves time Oh and I replaced object flags with an emag injector. I'll give it a sprite and name later I promise * Requires a GenerateTag() call to set DF_USE_TAG, rather then doing a check in atom New This is technically harder to use, but I don't really want people using tags, and it saves 0.15 seconds * Moves generatetag to /datum * I am dumb * Saves 0.5 seconds, makes init emissive blockers actually work Ok so background. If an overlay is added with add_overlay, and not "managed" somehow, it will effectively never be removed, because nothing's tracking it. Update_overlays uses the managed_overlays list/var (one of those) to do this. I'm gonna piggyback off this to make emissive overlays actually like, respect overlay updates. Oh and uh, I've saved maybe 0.5 seconds by caching the new emissive, and not using add_overlay. There's a chance this will lead to overlay corruption, but since we never readd the flattened, I think we'll be safe * Fixes plane not being set right, changes color logic too, since alpha will override past color sets * Makes it actually work. also makes rand posters update appearance to clear away the overlay, since it shows on right click and looks bad * Fixes blockers showing as emissives. It turns out alpha sets override the color list we use. Not sure why we pretend to support them * Makes the injector support traits, adds an amazing sprite
86 lines
5.7 KiB
Plaintext
86 lines
5.7 KiB
Plaintext
// Flags for the obj_flags var on /obj
|
|
|
|
|
|
#define EMAGGED (1<<0)
|
|
#define IN_USE (1<<1) // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
|
|
#define CAN_BE_HIT (1<<2) //can this be bludgeoned by items?
|
|
#define BEING_SHOCKED (1<<3) // Whether this thing is currently (already) being shocked by a tesla
|
|
#define DANGEROUS_POSSESSION (1<<4) //Admin possession yes/no
|
|
#define UNIQUE_RENAME (1<<5) // can you customize the description/name of the thing?
|
|
#define USES_TGUI (1<<6) //put on things that use tgui on ui_interact instead of custom/old UI.
|
|
#define BLOCK_Z_OUT_DOWN (1<<7) // Should this object block z falling from loc?
|
|
#define BLOCK_Z_OUT_UP (1<<8) // Should this object block z uprise from loc?
|
|
#define BLOCK_Z_IN_DOWN (1<<9) // Should this object block z falling from above?
|
|
#define BLOCK_Z_IN_UP (1<<10) // Should this object block z uprise from below?
|
|
#define NO_BUILD (1<<11) // Can we build on this object?
|
|
|
|
// If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support
|
|
|
|
// Flags for the item_flags var on /obj/item
|
|
|
|
#define BEING_REMOVED (1<<0)
|
|
#define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips
|
|
#define FORCE_STRING_OVERRIDE (1<<2) // used for tooltips
|
|
///Used by security bots to determine if this item is safe for public use.
|
|
#define NEEDS_PERMIT (1<<3)
|
|
#define SLOWS_WHILE_IN_HAND (1<<4)
|
|
#define NO_MAT_REDEMPTION (1<<5) // Stops you from putting things like an RCD or other items into an ORM or protolathe for materials.
|
|
#define DROPDEL (1<<6) // When dropped, it calls qdel on itself
|
|
#define NOBLUDGEON (1<<7) // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby()
|
|
#define ABSTRACT (1<<9) // for all things that are technically items but used for various different stuff <= wow thanks for the fucking insight sherlock
|
|
#define IMMUTABLE_SLOW (1<<10) // When players should not be able to change the slowdown of the item (Speed potions, etc)
|
|
#define IN_STORAGE (1<<11) //is this item in the storage item, such as backpack? used for tooltips
|
|
#define SURGICAL_TOOL (1<<12) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes)
|
|
#define HAND_ITEM (1<<14) // If an item is just your hand (circled hand, slapper) and shouldn't block things like riding
|
|
#define EXAMINE_SKIP (1<<15) // Makes the Examine proc not read out this item.
|
|
#define XENOMORPH_HOLDABLE (1<<16) // A Xenomorph can hold this item.
|
|
#define NO_PIXEL_RANDOM_DROP (1<<17) //if dropped, it wont have a randomized pixel_x/pixel_y
|
|
///Can be equipped on digitigrade legs.
|
|
#define IGNORE_DIGITIGRADE (1<<18)
|
|
/// Has contextual screentips when HOVERING OVER OTHER objects
|
|
#define ITEM_HAS_CONTEXTUAL_SCREENTIPS (1 << 19)
|
|
|
|
// Flags for the clothing_flags var on /obj/item/clothing
|
|
|
|
#define LAVAPROTECT (1<<0)
|
|
#define STOPSPRESSUREDAMAGE (1<<1) //SUIT and HEAD items which stop pressure damage. To stop you taking all pressure damage you must have both a suit and head item with this flag.
|
|
#define BLOCK_GAS_SMOKE_EFFECT (1<<2) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
|
|
#define MASKINTERNALS (1<<3) // mask allows internals
|
|
#define GAS_FILTERING (1<<4) //mask filters toxins and other harmful gases
|
|
#define NOSLIP (1<<5) //prevents from slipping on wet floors, in space etc
|
|
#define NOSLIP_ICE (1<<6) //prevents from slipping on frozen floors
|
|
#define THICKMATERIAL (1<<7) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
|
|
#define VOICEBOX_TOGGLABLE (1<<8) // The voicebox in this clothing can be toggled.
|
|
#define VOICEBOX_DISABLED (1<<9) // The voicebox is currently turned off.
|
|
#define BLOCKS_SHOVE_KNOCKDOWN (1<<11) // Prevents shovies against a dense object from knocking the wearer down.
|
|
#define SNUG_FIT (1<<12) //Prevents knock-off from things like hat-throwing.
|
|
#define ANTI_TINFOIL_MANEUVER (1<<13) //Hats with negative effects when worn (i.e the tinfoil hat).
|
|
#define DANGEROUS_OBJECT (1<<14) //Clothes that cause a larger notification when placed on a person.
|
|
#define LARGE_WORN_ICON (1<<15) //Clothes that use large icons, for applying the proper overlays like blood
|
|
/// Clothes that block speech (i.e the muzzle). Can be applied to any clothing piece.
|
|
#define BLOCKS_SPEECH (1<<16)
|
|
#define PLASMAMAN_HELMET_EXEMPT (1<<17) //prevents from placing on plasmaman helmet
|
|
/// Prevents plasmamen from igniting when wearing this
|
|
#define PLASMAMAN_PREVENT_IGNITION (1<<18)
|
|
/// Usable as casting clothes by wizards (only matters for suits and headwear)
|
|
#define CASTING_CLOTHES (1<<19)
|
|
///Moths can't eat the clothing that has this flag.
|
|
#define INEDIBLE_CLOTHING (1<<20)
|
|
|
|
/// Integrity defines for clothing (not flags but close enough)
|
|
#define CLOTHING_PRISTINE 0 // We have no damage on the clothing
|
|
#define CLOTHING_DAMAGED 1 // There's some damage on the clothing but it still has at least one functioning bodypart and can be equipped
|
|
#define CLOTHING_SHREDDED 2 // The clothing is useless and cannot be equipped unless repaired first
|
|
|
|
/// Flags for the pod_flags var on /obj/structure/closet/supplypod
|
|
#define FIRST_SOUNDS (1<<0) // If it shouldn't play sounds the first time it lands, used for reverse mode
|
|
|
|
/// Flags for the gun_flags var for firearms
|
|
#define TOY_FIREARM_OVERLAY (1<<0) // If update_overlay would add some indicator that the gun is a toy, like a plastic cap on a pistol
|
|
/// Currently used to identify valid guns to steal
|
|
#define NOT_A_REAL_GUN (1<<1)
|
|
|
|
/// Flags for sharpness in obj/item
|
|
#define SHARP_EDGED (1<<0)
|
|
#define SHARP_POINTY (1<<1)
|