mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-11 10:22:13 +00:00
214 lines
7.6 KiB
Plaintext
214 lines
7.6 KiB
Plaintext
/*ALL DEFINES RELATED TO INVENTORY OBJECTS, MANAGEMENT, ETC, GO HERE*/
|
|
|
|
//Inventory depth: limits how many nested storage items you can access directly.
|
|
//1: stuff in mob, 2: stuff in backpack, 3: stuff in box in backpack, etc
|
|
#define INVENTORY_DEPTH 3
|
|
#define STORAGE_VIEW_DEPTH 2
|
|
|
|
//ITEM INVENTORY SLOT BITMASKS
|
|
/// Suit slot (armors, costumes, space suits, etc.)
|
|
#define ITEM_SLOT_OCLOTHING (1<<0)
|
|
/// Jumpsuit slot
|
|
#define ITEM_SLOT_ICLOTHING (1<<1)
|
|
/// Glove slot
|
|
#define ITEM_SLOT_GLOVES (1<<2)
|
|
/// Glasses slot
|
|
#define ITEM_SLOT_EYES (1<<3)
|
|
/// Ear slot (radios, earmuffs)
|
|
#define ITEM_SLOT_EARS (1<<4)
|
|
/// Mask slot
|
|
#define ITEM_SLOT_MASK (1<<5)
|
|
/// Head slot (helmets, hats, etc.)
|
|
#define ITEM_SLOT_HEAD (1<<6)
|
|
/// Shoe slot
|
|
#define ITEM_SLOT_FEET (1<<7)
|
|
/// ID slot
|
|
#define ITEM_SLOT_ID (1<<8)
|
|
/// Belt slot
|
|
#define ITEM_SLOT_BELT (1<<9)
|
|
/// Back slot
|
|
#define ITEM_SLOT_BACK (1<<10)
|
|
/// Dextrous simplemob "hands" (used for Drones and Dextrous Guardians)
|
|
#define ITEM_SLOT_DEX_STORAGE (1<<11)
|
|
/// Neck slot (ties, bedsheets, scarves)
|
|
#define ITEM_SLOT_NECK (1<<12)
|
|
/// A character's hand slots
|
|
#define ITEM_SLOT_HANDS (1<<13)
|
|
/// Inside of a character's backpack
|
|
#define ITEM_SLOT_BACKPACK (1<<14)
|
|
/// Suit Storage slot
|
|
#define ITEM_SLOT_SUITSTORE (1<<15)
|
|
/// Left Pocket slot
|
|
#define ITEM_SLOT_LPOCKET (1<<16)
|
|
/// Right Pocket slot
|
|
#define ITEM_SLOT_RPOCKET (1<<17)
|
|
/// Handcuff slot
|
|
#define ITEM_SLOT_HANDCUFFED (1<<18)
|
|
/// Legcuff slot (bolas, beartraps)
|
|
#define ITEM_SLOT_LEGCUFFED (1<<19)
|
|
|
|
/// Total amount of slots
|
|
#define SLOTS_AMT 20 // Keep this up to date!
|
|
|
|
//SLOT GROUP HELPERS
|
|
#define ITEM_SLOT_POCKETS (ITEM_SLOT_LPOCKET|ITEM_SLOT_RPOCKET)
|
|
|
|
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
|
|
#define HIDEGLOVES (1<<0)
|
|
#define HIDESUITSTORAGE (1<<1)
|
|
#define HIDEJUMPSUIT (1<<2) //these first four are only used in exterior suits
|
|
#define HIDESHOES (1<<3)
|
|
#define HIDEMASK (1<<4) //these last six are only used in masks and headgear.
|
|
#define HIDEEARS (1<<5) // (ears means headsets and such)
|
|
#define HIDEEYES (1<<6) // Whether eyes and glasses are hidden
|
|
#define HIDEFACE (1<<7) // Whether we appear as unknown.
|
|
#define HIDEHAIR (1<<8)
|
|
#define HIDEFACIALHAIR (1<<9)
|
|
#define HIDENECK (1<<10)
|
|
#define HIDETAUR (1<<11) //gotta hide that snowflake
|
|
#define HIDESNOUT (1<<12) //or do we actually hide our snoots
|
|
#define HIDEACCESSORY (1<<13) //hides the jumpsuit accessory.
|
|
|
|
//bitflags for clothing coverage - also used for limbs
|
|
#define HEAD (1<<0)
|
|
#define CHEST (1<<1)
|
|
#define GROIN (1<<2)
|
|
#define LEG_LEFT (1<<3)
|
|
#define LEG_RIGHT (1<<4)
|
|
#define LEGS (LEG_LEFT | LEG_RIGHT)
|
|
#define FOOT_LEFT (1<<5)
|
|
#define FOOT_RIGHT (1<<6)
|
|
#define FEET (FOOT_LEFT | FOOT_RIGHT)
|
|
#define ARM_LEFT (1<<7)
|
|
#define ARM_RIGHT (1<<8)
|
|
#define ARMS (ARM_LEFT | ARM_RIGHT)
|
|
#define HAND_LEFT (1<<9)
|
|
#define HAND_RIGHT (1<<10)
|
|
#define HANDS (HAND_LEFT | HAND_RIGHT)
|
|
#define NECK (1<<11)
|
|
#define FULL_BODY (~0)
|
|
|
|
//flags for alternate styles: These are hard sprited so don't set this if you didn't put the effort in
|
|
#define NORMAL_STYLE 0
|
|
#define ALT_STYLE 1
|
|
|
|
//flags for female outfits: How much the game can safely "take off" the uniform without it looking weird
|
|
#define NO_FEMALE_UNIFORM 0
|
|
#define FEMALE_UNIFORM_FULL 1
|
|
#define FEMALE_UNIFORM_TOP 2
|
|
|
|
//flags for outfits that have mutant race variants: Most of these require additional sprites to work.
|
|
#define STYLE_DIGITIGRADE (1<<0) //jumpsuits, suits and shoes
|
|
#define STYLE_MUZZLE (1<<1) //hats or masks
|
|
#define STYLE_SNEK_TAURIC (1<<2) //taur-friendly suits
|
|
#define STYLE_PAW_TAURIC (1<<3)
|
|
#define STYLE_HOOF_TAURIC (1<<4)
|
|
#define STYLE_ALL_TAURIC (STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC|STYLE_HOOF_TAURIC)
|
|
#define STYLE_NO_ANTHRO_ICON (1<<5) //When digis fit the default sprite fine and need no copypasted states. This is the case of skirts and winter coats, for example.
|
|
#define USE_SNEK_CLIP_MASK (1<<6)
|
|
#define USE_QUADRUPED_CLIP_MASK (1<<7)
|
|
#define USE_TAUR_CLIP_MASK (USE_SNEK_CLIP_MASK|USE_QUADRUPED_CLIP_MASK)
|
|
|
|
//digitigrade legs settings.
|
|
#define NOT_DIGITIGRADE 0
|
|
#define FULL_DIGITIGRADE 1
|
|
#define SQUISHED_DIGITIGRADE 2
|
|
|
|
//flags for covering body parts
|
|
#define GLASSESCOVERSEYES (1<<0)
|
|
#define MASKCOVERSEYES (1<<1) // get rid of some of the other stupidity in these flags
|
|
#define HEADCOVERSEYES (1<<2) // feel free to realloc these numbers for other purposes
|
|
#define MASKCOVERSMOUTH (1<<3) // on other items, these are just for mask/head
|
|
#define HEADCOVERSMOUTH (1<<4)
|
|
|
|
#define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay
|
|
#define TINT_BLIND 3 //Threshold of tint level to obscure vision fully
|
|
|
|
// defines for AFK theft
|
|
/// How many messages you can remember while logged out before you stop remembering new ones
|
|
#define AFK_THEFT_MAX_MESSAGES 10
|
|
/// If someone logs back in and there are entries older than this, just tell them they can't remember who it was or when
|
|
#define AFK_THEFT_FORGET_DETAILS_TIME 5 MINUTES
|
|
/// The index of the entry in 'afk_thefts' with the person's visible name at the time
|
|
#define AFK_THEFT_NAME 1
|
|
/// The index of the entry in 'afk_thefts' with the text
|
|
#define AFK_THEFT_MESSAGE 2
|
|
/// The index of the entry in 'afk_thefts' with the time it happened
|
|
#define AFK_THEFT_TIME 3
|
|
|
|
//Allowed equipment lists for security vests and hardsuits.
|
|
|
|
GLOBAL_LIST_INIT(advanced_hardsuit_allowed, typecacheof(list(
|
|
/obj/item/ammo_box,
|
|
/obj/item/ammo_casing,
|
|
/obj/item/flashlight,
|
|
/obj/item/gun,
|
|
/obj/item/melee/baton,
|
|
/obj/item/reagent_containers/spray/pepper,
|
|
/obj/item/restraints/handcuffs,
|
|
/obj/item/tank/internals)))
|
|
|
|
GLOBAL_LIST_INIT(security_hardsuit_allowed, typecacheof(list(
|
|
/obj/item/ammo_box,
|
|
/obj/item/ammo_casing,
|
|
/obj/item/flashlight,
|
|
/obj/item/gun/ballistic,
|
|
/obj/item/gun/energy,
|
|
/obj/item/melee/baton,
|
|
/obj/item/reagent_containers/spray/pepper,
|
|
/obj/item/restraints/handcuffs,
|
|
/obj/item/tank/internals)))
|
|
|
|
GLOBAL_LIST_INIT(detective_vest_allowed, typecacheof(list(
|
|
/obj/item/ammo_box,
|
|
/obj/item/ammo_casing,
|
|
/obj/item/detective_scanner,
|
|
/obj/item/flashlight,
|
|
/obj/item/taperecorder,
|
|
/obj/item/gun/ballistic,
|
|
/obj/item/gun/energy,
|
|
/obj/item/lighter,
|
|
/obj/item/melee/baton,
|
|
/obj/item/melee/classic_baton,
|
|
/obj/item/reagent_containers/spray/pepper,
|
|
/obj/item/restraints/handcuffs,
|
|
/obj/item/storage/fancy/cigarettes,
|
|
/obj/item/tank/internals/emergency_oxygen,
|
|
/obj/item/tank/internals/plasmaman)))
|
|
|
|
GLOBAL_LIST_INIT(security_vest_allowed, typecacheof(list(
|
|
/obj/item/ammo_box,
|
|
/obj/item/ammo_casing,
|
|
/obj/item/flashlight,
|
|
/obj/item/gun/ballistic,
|
|
/obj/item/gun/energy,
|
|
/obj/item/kitchen/knife/combat,
|
|
/obj/item/melee/baton,
|
|
/obj/item/melee/classic_baton/telescopic,
|
|
/obj/item/reagent_containers/spray/pepper,
|
|
/obj/item/restraints/handcuffs,
|
|
/obj/item/tank/internals/emergency_oxygen,
|
|
/obj/item/tank/internals/plasmaman)))
|
|
|
|
GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list(
|
|
/obj/item/ammo_box,
|
|
/obj/item/ammo_casing,
|
|
/obj/item/flashlight,
|
|
/obj/item/storage/fancy/cigarettes,
|
|
/obj/item/gun/ballistic,
|
|
/obj/item/gun/energy,
|
|
/obj/item/lighter,
|
|
/obj/item/melee/baton,
|
|
/obj/item/melee/classic_baton/telescopic,
|
|
/obj/item/reagent_containers/spray/pepper,
|
|
/obj/item/restraints/handcuffs,
|
|
/obj/item/tank/internals/emergency_oxygen,
|
|
/obj/item/tank/internals/plasmaman,
|
|
/obj/item/toy)))
|
|
|
|
//Internals checker
|
|
#define GET_INTERNAL_SLOTS(C) list(C.head, C.wear_mask)
|
|
|
|
//Slots that won't trigger humans' update_genitals() on equip().
|
|
GLOBAL_LIST_INIT(no_genitals_update_slots, list(ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET, ITEM_SLOT_SUITSTORE, ITEM_SLOT_BACKPACK, ITEM_SLOT_LEGCUFFED, ITEM_SLOT_HANDCUFFED, ITEM_SLOT_HANDS, ITEM_SLOT_DEX_STORAGE))
|