Revert "12/21 modernizations from TG live"

This commit is contained in:
LetterJay
2016-12-22 22:35:44 -06:00
committed by GitHub
parent cf59ac1c3d
commit ae40d4134e
2215 changed files with 86928 additions and 707332 deletions
+34 -55
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/var/const/access_security = 1 // Security equipment
/var/const/access_brig = 2 // Brig timers and permabrig
@@ -64,7 +64,6 @@
/var/const/access_mineral_storeroom = 64
/var/const/access_minisat = 65
/var/const/access_weapons = 66 //Weapon authorization for secbots
/var/const/access_network = 67
//BEGIN CENTCOM ACCESS
/*Should leave plenty of room if we need to add more access levels.
@@ -83,19 +82,6 @@
/var/const/access_syndicate = 150//General Syndicate Access
/var/const/access_syndicate_leader = 151//Nuke Op Leader Access
//Away Missions or Ruins
/*For generic away-mission/ruin access. Why would normal crew have access to a long-abandoned derelict
or a 2000 year-old temple? */
/var/const/access_away_general = 200//General facilities.
/var/const/access_away_maint = 201//Away maintenance
/var/const/access_away_med = 202//Away medical
/var/const/access_away_sec = 203//Away security
/var/const/access_away_engine = 204//Away engineering
/var/const/access_away_generic1 = 205//Away generic access
/var/const/access_away_generic2 = 206
/var/const/access_away_generic3 = 207
/var/const/access_away_generic4 = 208
/obj/var/list/req_access = null
/obj/var/req_access_txt = "0"
/obj/var/list/req_one_access = null
@@ -105,29 +91,28 @@
/obj/proc/allowed(mob/M)
//check if it doesn't require any access at all
if(src.check_access(null))
return TRUE
if(issilicon(M))
if(ispAI(M))
return FALSE
return TRUE //AI can do whatever it wants
return 1
if(istype(M, /mob/living/silicon))
//AI can do whatever he wants
return 1
if(IsAdminGhost(M))
//Access can't stop the abuse
return TRUE
else if(ishuman(M))
return 1
else if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
//if they are holding or wearing a card that has access, that works
if(check_access(H.get_active_held_item()) || src.check_access(H.wear_id))
return TRUE
else if(ismonkey(M) || isalienadult(M))
if(src.check_access(H.get_active_hand()) || src.check_access(H.wear_id))
return 1
else if(istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/alien/humanoid))
var/mob/living/carbon/george = M
//they can only hold things :(
if(check_access(george.get_active_held_item()))
return TRUE
if(src.check_access(george.get_active_hand()))
return 1
else if(isanimal(M))
var/mob/living/simple_animal/A = M
if(check_access(A.get_active_held_item()) || check_access(A.access_card))
return TRUE
return FALSE
if(check_access(A.access_card))
return 1
return 0
/obj/item/proc/GetAccess()
return list()
@@ -135,8 +120,7 @@
/obj/item/proc/GetID()
return null
//Call this before using req_access or req_one_access directly
/obj/proc/gen_access()
/obj/proc/check_access(obj/item/I)
//These generations have been moved out of /obj/New() because they were slowing down the creation of objects that never even used the access system.
if(!src.req_access)
src.req_access = list()
@@ -156,48 +140,45 @@
if(n)
req_one_access += n
/obj/proc/check_access(obj/item/I)
gen_access()
if(!istype(src.req_access, /list)) //something's very wrong
return TRUE
return 1
var/list/L = src.req_access
if(!L.len && (!src.req_one_access || !src.req_one_access.len)) //no requirements
return TRUE
return 1
if(!I)
return FALSE
return 0
for(var/req in src.req_access)
if(!(req in I.GetAccess())) //doesn't have this access
return FALSE
return 0
if(src.req_one_access && src.req_one_access.len)
for(var/req in src.req_one_access)
if(req in I.GetAccess()) //has an access from the single access list
return TRUE
return FALSE
return TRUE
return 1
return 0
return 1
/obj/proc/check_access_list(list/L)
if(!src.req_access && !src.req_one_access)
return TRUE
return 1
if(!istype(src.req_access, /list))
return TRUE
return 1
if(!src.req_access.len && (!src.req_one_access || !src.req_one_access.len))
return TRUE
return 1
if(!L)
return FALSE
return 0
if(!istype(L, /list))
return FALSE
return 0
for(var/req in src.req_access)
if(!(req in L)) //doesn't have this access
return FALSE
return 0
if(src.req_one_access && src.req_one_access.len)
for(var/req in src.req_one_access)
if(req in L) //has an access from the single access list
return TRUE
return FALSE
return TRUE
return 1
return 0
return 1
/proc/get_centcom_access(job)
switch(job)
@@ -243,7 +224,7 @@
access_hydroponics, access_library, access_lawyer, access_virology, access_cmo, access_qm, access_surgery,
access_theatre, access_research, access_mining, access_mailsorting, access_weapons,
access_heads_vault, access_mining_station, access_xenobiology, access_ce, access_hop, access_hos, access_RC_announce,
access_keycard_auth, access_tcomsat, access_gateway, access_mineral_storeroom, access_minisat, access_network)
access_keycard_auth, access_tcomsat, access_gateway, access_mineral_storeroom, access_minisat)
/proc/get_all_centcom_access()
return list(access_cent_general, access_cent_thunder, access_cent_specops, access_cent_medical, access_cent_living, access_cent_storage, access_cent_teleporter, access_cent_captain)
@@ -273,7 +254,7 @@
if(3) //medbay
return list(access_medical, access_genetics, access_morgue, access_chemistry, access_virology, access_surgery, access_cmo)
if(4) //research
return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_minisat, access_rd, access_network)
return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_minisat, access_rd)
if(5) //engineering and maintenance
return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_tcomsat, access_minisat, access_ce)
if(6) //supply
@@ -430,8 +411,6 @@
return "AI Satellite"
if(access_weapons)
return "Weapon Permit"
if(access_network)
return "Network Access"
/proc/get_centcom_access_desc(A)
switch(A)
-1
View File
@@ -14,7 +14,6 @@ Assistant
minimal_access = list() //See /datum/job/assistant/get_access()
outfit = /datum/outfit/job/assistant
/datum/job/assistant/get_access()
if((config.jobs_have_maint_access & ASSISTANTS_HAVE_MAINT_ACCESS) || !config.jobs_have_minimal_access) //Config has assistant maint access set
. = ..()
+5 -3
View File
@@ -38,7 +38,7 @@ Captain
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/station_charter=1)
backpack = /obj/item/weapon/storage/backpack/captain
satchel = /obj/item/weapon/storage/backpack/satchel/cap
satchel = /obj/item/weapon/storage/backpack/satchel_cap
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/captain
/datum/outfit/job/captain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -51,7 +51,9 @@ Captain
return
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
L.implant(H, null, 1)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
minor_announce("Captain [H.real_name] on deck!")
@@ -97,7 +99,7 @@ Head of Personnel
shoes = /obj/item/clothing/shoes/sneakers/brown
head = /obj/item/clothing/head/hopcap
backpack_contents = list(/obj/item/weapon/storage/box/ids=1,\
/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/device/modular_computer/tablet/preset/advanced = 1)
/obj/item/weapon/melee/classic_baton/telescopic=1)
/datum/outfit/job/hop/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
+2 -4
View File
@@ -89,7 +89,7 @@ Shaft Miner
/obj/item/weapon/mining_voucher=1)
backpack = /obj/item/weapon/storage/backpack/explorer
satchel = /obj/item/weapon/storage/backpack/satchel/explorer
satchel = /obj/item/weapon/storage/backpack/satchel_explorer
dufflebag = /obj/item/weapon/storage/backpack/dufflebag
box = /obj/item/weapon/storage/box/survival_mining
@@ -152,7 +152,6 @@ Cook
uniform = /obj/item/clothing/under/rank/chef
suit = /obj/item/clothing/suit/toggle/chef
head = /obj/item/clothing/head/chefhat
backpack_contents = list(/obj/item/weapon/sharpener = 1)
/datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H)
..()
@@ -200,7 +199,7 @@ Botanist
suit_store = /obj/item/device/plant_analyzer
backpack = /obj/item/weapon/storage/backpack/botany
satchel = /obj/item/weapon/storage/backpack/satchel/hyd
satchel = /obj/item/weapon/storage/backpack/satchel_hyd
/*
@@ -229,4 +228,3 @@ Janitor
belt = /obj/item/device/pda/janitor
ears = /obj/item/device/radio/headset/headset_srv
uniform = /obj/item/clothing/under/rank/janitor
backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1)
+3 -5
View File
@@ -30,8 +30,7 @@ Clown
/obj/item/weapon/stamp/clown = 1,
/obj/item/weapon/reagent_containers/spray/waterflower = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1,
/obj/item/device/megaphone/clown = 1,
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1
/obj/item/device/megaphone/clown = 1
)
backpack = /obj/item/weapon/storage/backpack/clown
@@ -53,7 +52,8 @@ Clown
return
var/obj/item/weapon/implant/sad_trombone/S = new/obj/item/weapon/implant/sad_trombone(H)
S.implant(H, null, 1)
S.imp_in = H
S.implanted = 1
H.dna.add_mutation(CLOWNMUT)
H.rename_self("clown")
@@ -164,8 +164,6 @@ Lawyer
shoes = /obj/item/clothing/shoes/laceup
l_hand = /obj/item/weapon/storage/briefcase/lawyer
l_pocket = /obj/item/device/laser_pointer
r_pocket = /obj/item/clothing/tie/lawyers_badge
/datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
@@ -33,22 +33,8 @@ Chaplain
if(visualsOnly)
return
H.mind.isholy = TRUE
var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible/booze(H)
if(SSreligion.Bible_deity_name)
B.deity_name = SSreligion.Bible_deity_name
B.name = SSreligion.Bible_name
B.icon_state = SSreligion.Bible_icon_state
B.item_state = SSreligion.Bible_item_state
H << "There is already an established religion onboard the station. You are an acolyte of [SSreligion.Bible_deity_name]. Defer to the Chaplain."
H.equip_to_slot_or_del(B, slot_in_backpack)
var/obj/item/weapon/nullrod/N = new(H)
H.equip_to_slot_or_del(N, slot_in_backpack)
return
var/new_religion = "Christianity"
if(H.client && H.client.prefs.custom_names["religion"])
new_religion = H.client.prefs.custom_names["religion"]
@@ -80,13 +66,14 @@ Chaplain
else
B.name = "The Holy Book of [new_religion]"
feedback_set_details("religion_name","[new_religion]")
SSreligion.Bible_name = B.name
ticker.Bible_name = B.name
var/new_deity = "Space Jesus"
if(H.client && H.client.prefs.custom_names["deity"])
new_deity = H.client.prefs.custom_names["deity"]
B.deity_name = new_deity
SSreligion.Bible_deity_name = B.deity_name
if(ticker)
ticker.Bible_deity_name = B.deity_name
feedback_set_details("religion_deity","[new_deity]")
H.equip_to_slot_or_del(B, slot_in_backpack)
H.equip_to_slot_or_del(B, slot_in_backpack)
+5 -7
View File
@@ -36,10 +36,10 @@ Chief Engineer
shoes = /obj/item/clothing/shoes/sneakers/brown
head = /obj/item/clothing/head/hardhat/white
gloves = /obj/item/clothing/gloves/color/black/ce
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1)
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
backpack = /obj/item/weapon/storage/backpack/industrial
satchel = /obj/item/weapon/storage/backpack/satchel/eng
satchel = /obj/item/weapon/storage/backpack/satchel_eng
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering
box = /obj/item/weapon/storage/box/engineer
pda_slot = slot_l_store
@@ -85,11 +85,10 @@ Station Engineer
r_pocket = /obj/item/device/t_scanner
backpack = /obj/item/weapon/storage/backpack/industrial
satchel = /obj/item/weapon/storage/backpack/satchel/eng
satchel = /obj/item/weapon/storage/backpack/satchel_eng
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering
box = /obj/item/weapon/storage/box/engineer
pda_slot = slot_l_store
backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1)
/*
Atmospheric Technician
@@ -121,8 +120,7 @@ Atmospheric Technician
r_pocket = /obj/item/device/analyzer
backpack = /obj/item/weapon/storage/backpack/industrial
satchel = /obj/item/weapon/storage/backpack/satchel/eng
satchel = /obj/item/weapon/storage/backpack/satchel_eng
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering
box = /obj/item/weapon/storage/box/engineer
pda_slot = slot_l_store
backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1)
pda_slot = slot_l_store
+3 -5
View File
@@ -72,8 +72,6 @@
H.wear_suit.add_fingerprint(H,1)
if(H.wear_mask)
H.wear_mask.add_fingerprint(H,1)
if(H.wear_neck)
H.wear_neck.add_fingerprint(H,1)
if(H.head)
H.head.add_fingerprint(H,1)
if(H.shoes)
@@ -143,7 +141,7 @@
shoes = /obj/item/clothing/shoes/sneakers/black
var/backpack = /obj/item/weapon/storage/backpack
var/satchel = /obj/item/weapon/storage/backpack/satchel
var/satchel = /obj/item/weapon/storage/backpack/satchel_norm
var/dufflebag = /obj/item/weapon/storage/backpack/dufflebag
var/box = /obj/item/weapon/storage/box/survival
@@ -154,11 +152,11 @@
if(GBACKPACK)
back = /obj/item/weapon/storage/backpack //Grey backpack
if(GSATCHEL)
back = /obj/item/weapon/storage/backpack/satchel //Grey satchel
back = /obj/item/weapon/storage/backpack/satchel_norm //Grey satchel
if(GDUFFLEBAG)
back = /obj/item/weapon/storage/backpack/dufflebag //Grey Dufflebag
if(LSATCHEL)
back = /obj/item/weapon/storage/backpack/satchel/leather //Leather Satchel
back = /obj/item/weapon/storage/backpack/satchel //Leather Satchel
if(DSATCHEL)
back = satchel //Department satchel
if(DDUFFLEBAG)
+5 -5
View File
@@ -37,7 +37,7 @@ Chief Medical Officer
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
backpack = /obj/item/weapon/storage/backpack/medic
satchel = /obj/item/weapon/storage/backpack/satchel/med
satchel = /obj/item/weapon/storage/backpack/satchel_med
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
/datum/outfit/job/cmo/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -79,7 +79,7 @@ Medical Doctor
suit_store = /obj/item/device/flashlight/pen
backpack = /obj/item/weapon/storage/backpack/medic
satchel = /obj/item/weapon/storage/backpack/satchel/med
satchel = /obj/item/weapon/storage/backpack/satchel_med
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
/*
@@ -112,7 +112,7 @@ Chemist
suit = /obj/item/clothing/suit/toggle/labcoat/chemist
backpack = /obj/item/weapon/storage/backpack/chemistry
satchel = /obj/item/weapon/storage/backpack/satchel/chem
satchel = /obj/item/weapon/storage/backpack/satchel_chem
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
/*
@@ -145,7 +145,7 @@ Geneticist
suit_store = /obj/item/device/flashlight/pen
backpack = /obj/item/weapon/storage/backpack/genetics
satchel = /obj/item/weapon/storage/backpack/satchel/gen
satchel = /obj/item/weapon/storage/backpack/satchel_gen
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
/*
@@ -179,5 +179,5 @@ Virologist
suit_store = /obj/item/device/flashlight/pen
backpack = /obj/item/weapon/storage/backpack/virology
satchel = /obj/item/weapon/storage/backpack/satchel/vir
satchel = /obj/item/weapon/storage/backpack/satchel_vir
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
+6 -6
View File
@@ -20,12 +20,12 @@ Research Director
access_tox_storage, access_teleporter, access_sec_doors,
access_research, access_robotics, access_xenobiology, access_ai_upload,
access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom,
access_tech_storage, access_minisat, access_maint_tunnels, access_network)
access_tech_storage, access_minisat, access_maint_tunnels)
minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue,
access_tox_storage, access_teleporter, access_sec_doors,
access_research, access_robotics, access_xenobiology, access_ai_upload,
access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom,
access_tech_storage, access_minisat, access_maint_tunnels, access_network)
access_tech_storage, access_minisat, access_maint_tunnels)
/datum/outfit/job/rd
name = "Research Director"
@@ -38,10 +38,10 @@ Research Director
suit = /obj/item/clothing/suit/toggle/labcoat
l_hand = /obj/item/weapon/clipboard
l_pocket = /obj/item/device/laser_pointer
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1)
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
backpack = /obj/item/weapon/storage/backpack/science
satchel = /obj/item/weapon/storage/backpack/satchel/tox
satchel = /obj/item/weapon/storage/backpack/satchel_tox
/datum/outfit/job/rd/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
@@ -80,7 +80,7 @@ Scientist
suit = /obj/item/clothing/suit/toggle/labcoat/science
backpack = /obj/item/weapon/storage/backpack/science
satchel = /obj/item/weapon/storage/backpack/satchel/tox
satchel = /obj/item/weapon/storage/backpack/satchel_tox
/*
Roboticist
@@ -111,6 +111,6 @@ Roboticist
suit = /obj/item/clothing/suit/toggle/labcoat
backpack = /obj/item/weapon/storage/backpack/science
satchel = /obj/item/weapon/storage/backpack/satchel/tox
satchel = /obj/item/weapon/storage/backpack/satchel_tox
pda_slot = slot_l_store
+20 -11
View File
@@ -43,13 +43,13 @@ Head of Security
gloves = /obj/item/clothing/gloves/color/black/hos
head = /obj/item/clothing/head/HoS/beret
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
suit_store = /obj/item/weapon/gun/energy/e_gun
suit_store = /obj/item/weapon/gun/energy/gun
r_pocket = /obj/item/device/assembly/flash/handheld
l_pocket = /obj/item/weapon/restraints/handcuffs
backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1)
backpack = /obj/item/weapon/storage/backpack/security
satchel = /obj/item/weapon/storage/backpack/satchel/sec
satchel = /obj/item/weapon/storage/backpack/satchel_sec
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec
box = /obj/item/weapon/storage/box/security
@@ -60,7 +60,9 @@ Head of Security
return
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
L.implant(H, null, 1)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
announce_head(H, list("Security")) //tell underlings (security radio) they have a head
/*
@@ -101,11 +103,11 @@ Warden
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
r_pocket = /obj/item/device/assembly/flash/handheld
l_pocket = /obj/item/weapon/restraints/handcuffs
suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser
suit_store = /obj/item/weapon/gun/energy/gun/advtaser
backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1)
backpack = /obj/item/weapon/storage/backpack/security
satchel = /obj/item/weapon/storage/backpack/satchel/sec
satchel = /obj/item/weapon/storage/backpack/satchel_sec
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec
box = /obj/item/weapon/storage/box/security
@@ -117,7 +119,9 @@ Warden
return
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
L.implant(H, null, 1)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
/*
Detective
@@ -153,7 +157,8 @@ Detective
r_pocket = /obj/item/weapon/lighter
backpack_contents = list(/obj/item/weapon/storage/box/evidence=1,\
/obj/item/device/detective_scanner=1,\
/obj/item/weapon/melee/classic_baton=1)
/obj/item/weapon/melee/classic_baton=1,\
/obj/item/weapon/reagent_containers/food/drinks/flask/det)
mask = /obj/item/clothing/mask/cigarette
/datum/outfit/job/detective/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -165,7 +170,9 @@ Detective
return
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
L.implant(H, null, 1)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
/*
Security Officer
@@ -206,11 +213,11 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science")
shoes = /obj/item/clothing/shoes/jackboots
l_pocket = /obj/item/weapon/restraints/handcuffs
r_pocket = /obj/item/device/assembly/flash/handheld
suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser
suit_store = /obj/item/weapon/gun/energy/gun/advtaser
backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1)
backpack = /obj/item/weapon/storage/backpack/security
satchel = /obj/item/weapon/storage/backpack/satchel/sec
satchel = /obj/item/weapon/storage/backpack/satchel_sec
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec
box = /obj/item/weapon/storage/box/security
@@ -264,7 +271,9 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science")
return
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
L.implant(H, null, 1)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
var/obj/item/weapon/card/id/W = H.wear_id
W.access |= dep_access