mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-23 06:46:41 +01:00
90 lines
4.0 KiB
Plaintext
90 lines
4.0 KiB
Plaintext
/// whether can_interact() checks for anchored. only works on movables.
|
|
#define INTERACT_ATOM_REQUIRES_ANCHORED (1<<0)
|
|
/// calls try_interact() on attack_hand() and returns that.
|
|
#define INTERACT_ATOM_ATTACK_HAND (1<<1)
|
|
/// automatically calls and returns ui_interact() on interact().
|
|
#define INTERACT_ATOM_UI_INTERACT (1<<2)
|
|
/// user must be dextrous
|
|
#define INTERACT_ATOM_REQUIRES_DEXTERITY (1<<3)
|
|
/// ignores incapacitated check
|
|
#define INTERACT_ATOM_IGNORE_INCAPACITATED (1<<4)
|
|
/// incapacitated check ignores restrained
|
|
#define INTERACT_ATOM_IGNORE_RESTRAINED (1<<5)
|
|
/// incapacitated check checks grab
|
|
#define INTERACT_ATOM_CHECK_GRAB (1<<6)
|
|
/// prevents leaving fingerprints automatically on attack_hand
|
|
#define INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND (1<<7)
|
|
/// adds hiddenprints instead of fingerprints on interact
|
|
#define INTERACT_ATOM_NO_FINGERPRINT_INTERACT (1<<8)
|
|
/// allows this atom to skip the adjacency check
|
|
#define INTERACT_ATOM_ALLOW_USER_LOCATION (1<<9)
|
|
/// ignores mobility check
|
|
#define INTERACT_ATOM_IGNORE_MOBILITY (1<<10)
|
|
// Bypass all adjacency checks for mouse drop
|
|
#define INTERACT_ATOM_MOUSEDROP_IGNORE_ADJACENT (1<<11)
|
|
/// Bypass all can_perform_action checks for mouse drop
|
|
#define INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITY (1<<12)
|
|
/// Bypass all adjacency and other checks for mouse drop
|
|
#define INTERACT_ATOM_MOUSEDROP_IGNORE_CHECKS (INTERACT_ATOM_MOUSEDROP_IGNORE_ADJACENT | INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITY)
|
|
/// calls try_interact() on attack_paw() and returns that.
|
|
#define INTERACT_ATOM_ATTACK_PAW (1<<13)
|
|
|
|
DEFINE_BITFIELD(interaction_flags_atom, list(
|
|
BITFIELD(INTERACT_ATOM_REQUIRES_ANCHORED),
|
|
BITFIELD(INTERACT_ATOM_ATTACK_HAND),
|
|
BITFIELD(INTERACT_ATOM_UI_INTERACT),
|
|
BITFIELD(INTERACT_ATOM_REQUIRES_DEXTERITY),
|
|
BITFIELD(INTERACT_ATOM_IGNORE_INCAPACITATED),
|
|
BITFIELD(INTERACT_ATOM_IGNORE_RESTRAINED),
|
|
BITFIELD(INTERACT_ATOM_CHECK_GRAB),
|
|
BITFIELD(INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND),
|
|
BITFIELD(INTERACT_ATOM_NO_FINGERPRINT_INTERACT),
|
|
BITFIELD(INTERACT_ATOM_ALLOW_USER_LOCATION),
|
|
BITFIELD(INTERACT_ATOM_IGNORE_MOBILITY),
|
|
BITFIELD(INTERACT_ATOM_MOUSEDROP_IGNORE_ADJACENT),
|
|
BITFIELD(INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITY),
|
|
BITFIELD(INTERACT_ATOM_ATTACK_PAW),
|
|
))
|
|
|
|
//? interaction_flags_item on /obj/item
|
|
/// on attack self, pass to interact
|
|
#define INTERACT_ITEM_ATTACK_SELF (1<<0)
|
|
|
|
//? interaction_flags_machine on /obj/machinery
|
|
|
|
/// can_interact() while open
|
|
#define INTERACT_MACHINE_OPEN (1<<0)
|
|
/// can_interact() while offline
|
|
#define INTERACT_MACHINE_OFFLINE (1<<1)
|
|
/// try to interact with wires if open
|
|
#define INTERACT_MACHINE_WIRES_IF_OPEN (1<<2)
|
|
/// let silicons interact
|
|
#define INTERACT_MACHINE_ALLOW_SILICON (1<<3)
|
|
/// let silicons interact while open
|
|
#define INTERACT_MACHINE_OPEN_SILICON (1<<4)
|
|
/// must be silicon to interact
|
|
#define INTERACT_MACHINE_REQUIRES_SILICON (1<<5)
|
|
/// the user must have vision to interact (blind people need not apply)
|
|
#define INTERACT_MACHINE_REQUIRES_SIGHT (1<<6)
|
|
/// the user must be able to read to interact. Might get implemented
|
|
// #define INTERACT_MACHINE_REQUIRES_LITERACY (1<<7)
|
|
/// user must be standing up in order to interact
|
|
#define INTERACT_MACHINE_REQUIRES_STANDING (1<<7)
|
|
/// MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!--------------------------
|
|
/// This flag determines if a machine set_machine's the user when the user uses it, making updateUsrDialog make the user re-call interact() on it.
|
|
/// THIS FLAG IS ON ALL MACHINES BY DEFAULT, NEEDS TO BE RE-EVALUATED LATER!!
|
|
///! Legacy, do not use.
|
|
#define INTERACT_MACHINE_SET_MACHINE (1<<8)
|
|
|
|
DEFINE_BITFIELD(interaction_flags_machine, list(
|
|
BITFIELD(INTERACT_MACHINE_OPEN),
|
|
BITFIELD(INTERACT_MACHINE_OFFLINE),
|
|
BITFIELD(INTERACT_MACHINE_WIRES_IF_OPEN),
|
|
BITFIELD(INTERACT_MACHINE_ALLOW_SILICON),
|
|
BITFIELD(INTERACT_MACHINE_OPEN_SILICON),
|
|
BITFIELD(INTERACT_MACHINE_REQUIRES_SILICON),
|
|
BITFIELD(INTERACT_MACHINE_REQUIRES_SIGHT),
|
|
BITFIELD(INTERACT_MACHINE_REQUIRES_STANDING),
|
|
BITFIELD(INTERACT_MACHINE_SET_MACHINE),
|
|
))
|