mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-26 00:51:23 +00:00
* Fixing consistency issues in regards to plasmaman internals Suits that allowed emergency oxygen tanks in their suit slot now allow plasma man tanks, also botany's winter coat can store emergency oxygen tanks just like the other coats now * Addressing security inventory defines I missed that the list for storing objects in suit storage for security was in its own defines page, I have added plasmaman internals to go in line with the other changes. * Plasma men suits can now equip accessories Attackby() was unintentionaly being overridden and not calling the proc it overrode which attaches accessories. This seems unintentional as accessories can go on any other jumpsuit including jumpsuits like the griffon costume and sun dress.
234 lines
7.9 KiB
Plaintext
234 lines
7.9 KiB
Plaintext
/*ALL DEFINES RELATED TO INVENTORY OBJECTS, MANAGEMENT, ETC, GO HERE*/
|
|
|
|
//ITEM INVENTORY WEIGHT, FOR w_class
|
|
#define WEIGHT_CLASS_TINY 1 //Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money
|
|
#define WEIGHT_CLASS_SMALL 2 //Pockets can hold small and tiny items, ex: Flashlight, Multitool, Grenades, GPS Device
|
|
#define WEIGHT_CLASS_NORMAL 3 //Standard backpacks can carry tiny, small & normal items, ex: Fire extinguisher, Stunbaton, Gas Mask, Metal Sheets
|
|
#define WEIGHT_CLASS_BULKY 4 //Items that can be weilded or equipped but not stored in an inventory, ex: Defibrillator, Backpack, Space Suits
|
|
#define WEIGHT_CLASS_HUGE 5 //Usually represents objects that require two hands to operate, ex: Shotgun, Two Handed Melee Weapons
|
|
#define WEIGHT_CLASS_GIGANTIC 6 //Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe
|
|
|
|
//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
|
|
#define SLOT_OCLOTHING 1
|
|
#define SLOT_ICLOTHING 2
|
|
#define SLOT_GLOVES 4
|
|
#define SLOT_EYES 8
|
|
#define SLOT_EARS 16
|
|
#define SLOT_MASK 32
|
|
#define SLOT_HEAD 64
|
|
#define SLOT_FEET 128
|
|
#define SLOT_ID 256
|
|
#define SLOT_BELT 512
|
|
#define SLOT_BACK 1024
|
|
#define SLOT_POCKET 2048 // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets.
|
|
#define SLOT_DENYPOCKET 4096 // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets.
|
|
#define SLOT_NECK 8192
|
|
|
|
//SLOTS
|
|
#define slot_back 1
|
|
#define slot_wear_mask 2
|
|
#define slot_handcuffed 3
|
|
#define slot_hands 4 //wherever you provide a slot for hands you provide slot_hands
|
|
//slot_hands as a slot will pick ANY available hand
|
|
#define slot_belt 5
|
|
#define slot_wear_id 6
|
|
#define slot_ears 7
|
|
#define slot_glasses 8
|
|
#define slot_gloves 9
|
|
#define slot_neck 10
|
|
#define slot_head 11
|
|
#define slot_shoes 12
|
|
#define slot_wear_suit 13
|
|
#define slot_w_uniform 14
|
|
#define slot_l_store 15
|
|
#define slot_r_store 16
|
|
#define slot_s_store 17
|
|
#define slot_in_backpack 18
|
|
#define slot_legcuffed 19
|
|
#define slot_generic_dextrous_storage 20
|
|
|
|
#define slots_amt 20 // Keep this up to date!
|
|
|
|
//I hate that this has to exist
|
|
/proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above)
|
|
. = 0
|
|
switch(slotdefine)
|
|
if(slot_back)
|
|
. = SLOT_BACK
|
|
if(slot_wear_mask)
|
|
. = SLOT_MASK
|
|
if(slot_neck)
|
|
. = SLOT_NECK
|
|
if(slot_belt)
|
|
. = SLOT_BELT
|
|
if(slot_wear_id)
|
|
. = SLOT_ID
|
|
if(slot_ears)
|
|
. = SLOT_EARS
|
|
if(slot_glasses)
|
|
. = SLOT_EYES
|
|
if(slot_gloves)
|
|
. = SLOT_GLOVES
|
|
if(slot_head)
|
|
. = SLOT_HEAD
|
|
if(slot_shoes)
|
|
. = SLOT_FEET
|
|
if(slot_wear_suit)
|
|
. = SLOT_OCLOTHING
|
|
if(slot_w_uniform)
|
|
. = SLOT_ICLOTHING
|
|
if(slot_l_store, slot_r_store)
|
|
. = SLOT_POCKET
|
|
|
|
|
|
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
|
|
#define HIDEGLOVES 1
|
|
#define HIDESUITSTORAGE 2
|
|
#define HIDEJUMPSUIT 4 //these first four are only used in exterior suits
|
|
#define HIDESHOES 8
|
|
#define HIDEMASK 16 //these last six are only used in masks and headgear.
|
|
#define HIDEEARS 32 // (ears means headsets and such)
|
|
#define HIDEEYES 64 // Whether eyes and glasses are hidden
|
|
#define HIDEFACE 128 // Whether we appear as unknown.
|
|
#define HIDEHAIR 256
|
|
#define HIDEFACIALHAIR 512
|
|
#define HIDENECK 1024
|
|
|
|
//bitflags for clothing coverage - also used for limbs
|
|
#define HEAD 1
|
|
#define CHEST 2
|
|
#define GROIN 4
|
|
#define LEG_LEFT 8
|
|
#define LEG_RIGHT 16
|
|
#define LEGS 24
|
|
#define FOOT_LEFT 32
|
|
#define FOOT_RIGHT 64
|
|
#define FEET 96
|
|
#define ARM_LEFT 128
|
|
#define ARM_RIGHT 256
|
|
#define ARMS 384
|
|
#define HAND_LEFT 512
|
|
#define HAND_RIGHT 1024
|
|
#define HANDS 1536
|
|
#define NECK 2048
|
|
#define FULL_BODY 4095
|
|
|
|
// bitflags for the percentual amount of protection a piece of clothing which covers the body part offers.
|
|
// Used with human/proc/get_heat_protection() and human/proc/get_cold_protection()
|
|
// The values here should add up to 1.
|
|
// Hands and feet have 2.5%, arms and legs 7.5%, each of the torso parts has 15% and the head has 30%
|
|
#define THERMAL_PROTECTION_HEAD 0.3
|
|
#define THERMAL_PROTECTION_CHEST 0.15
|
|
#define THERMAL_PROTECTION_GROIN 0.15
|
|
#define THERMAL_PROTECTION_LEG_LEFT 0.075
|
|
#define THERMAL_PROTECTION_LEG_RIGHT 0.075
|
|
#define THERMAL_PROTECTION_FOOT_LEFT 0.025
|
|
#define THERMAL_PROTECTION_FOOT_RIGHT 0.025
|
|
#define THERMAL_PROTECTION_ARM_LEFT 0.075
|
|
#define THERMAL_PROTECTION_ARM_RIGHT 0.075
|
|
#define THERMAL_PROTECTION_HAND_LEFT 0.025
|
|
#define THERMAL_PROTECTION_HAND_RIGHT 0.025
|
|
|
|
//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 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
|
|
#define DIGITIGRADE_STYLE 2
|
|
|
|
//flags for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts
|
|
#define NO_MUTANTRACE_VARIATION 0
|
|
#define MUTANTRACE_VARIATION 1
|
|
|
|
#define NOT_DIGITIGRADE 0
|
|
#define FULL_DIGITIGRADE 1
|
|
#define SQUISHED_DIGITIGRADE 2
|
|
|
|
//flags for covering body parts
|
|
#define GLASSESCOVERSEYES 1
|
|
#define MASKCOVERSEYES 2 // get rid of some of the other retardation in these flags
|
|
#define HEADCOVERSEYES 4 // feel free to realloc these numbers for other purposes
|
|
#define MASKCOVERSMOUTH 8 // on other items, these are just for mask/head
|
|
#define HEADCOVERSMOUTH 16
|
|
|
|
#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
|
|
|
|
//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/device/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/device/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/device/detective_scanner,
|
|
/obj/item/device/flashlight,
|
|
/obj/item/device/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/device/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/device/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)))
|