Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions code/__DEFINES/movement.dm
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,6 @@
#define PASS_FLAGS_FLAME (PASS_AROUND|PASS_UNDER|PASS_MOB_THRU|PASS_THROUGH|PASS_OVER_FIRE)
#define PASS_FLAGS_SMOKE (PASS_HIGH_OVER|PASS_AROUND|PASS_UNDER|PASS_MOB_THRU|PASS_THROUGH)
#define PASS_FLAGS_CRAWLER (PASS_TYPE_CRAWLER|PASS_UNDER)

/// The pass flags that toggle when barricades are unwired (or inversely wired)
#define PASS_FLAGS_UNWIRED (PASS_OVER_THROW_MOB|PASS_ACID_GRENADE)
156 changes: 45 additions & 111 deletions code/_globalvars/bitfields.dm
Original file line number Diff line number Diff line change
Expand Up @@ -514,117 +514,51 @@ DEFINE_BITFIELD(vehicle_flags, list(
"VEHICLE_BYPASS_BLOCKERS" = VEHICLE_BYPASS_BLOCKERS,
))

DEFINE_BITFIELD(flags_pass, list(
"PASS_THROUGH" = PASS_THROUGH,
"PASS_AROUND" = PASS_AROUND,
"PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM,
"PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB,
"PASS_OVER_FIRE" = PASS_OVER_FIRE,
"PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY,
"PASS_UNDER" = PASS_UNDER,
"PASS_GLASS" = PASS_GLASS,
"PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO,
"PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN,
"PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER,
"PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO,
"PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN,
"PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER,
"PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER,
"PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY,
"PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY,
"PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE,
"PASS_ACID_GRENADE" = PASS_ACID_GRENADE,
))

DEFINE_BITFIELD(flags_can_pass_all, list(
"PASS_THROUGH" = PASS_THROUGH,
"PASS_AROUND" = PASS_AROUND,
"PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM,
"PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB,
"PASS_OVER_FIRE" = PASS_OVER_FIRE,
"PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY,
"PASS_UNDER" = PASS_UNDER,
"PASS_GLASS" = PASS_GLASS,
"PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO,
"PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN,
"PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER,
"PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO,
"PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN,
"PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER,
"PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER,
"PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY,
"PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY,
"PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE,
"PASS_ACID_GRENADE" = PASS_ACID_GRENADE,
))

DEFINE_BITFIELD(flags_can_pass_front, list(
"PASS_THROUGH" = PASS_THROUGH,
"PASS_AROUND" = PASS_AROUND,
"PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM,
"PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB,
"PASS_OVER_FIRE" = PASS_OVER_FIRE,
"PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY,
"PASS_UNDER" = PASS_UNDER,
"PASS_GLASS" = PASS_GLASS,
"PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO,
"PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN,
"PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER,
"PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO,
"PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN,
"PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER,
"PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER,
"PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY,
"PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY,
"PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE,
"PASS_ACID_GRENADE" = PASS_ACID_GRENADE,
))

DEFINE_BITFIELD(flags_can_pass_behind, list(
"PASS_THROUGH" = PASS_THROUGH,
"PASS_AROUND" = PASS_AROUND,
"PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM,
"PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB,
"PASS_OVER_FIRE" = PASS_OVER_FIRE,
"PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY,
"PASS_UNDER" = PASS_UNDER,
"PASS_GLASS" = PASS_GLASS,
"PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO,
"PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN,
"PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER,
"PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO,
"PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN,
"PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER,
"PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER,
"PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY,
"PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY,
"PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE,
"PASS_ACID_GRENADE" = PASS_ACID_GRENADE,
))

DEFINE_BITFIELD(sight, list(
"BLIND" = BLIND,
"SEE_BLACKNESS" = SEE_BLACKNESS,
"SEE_INFRA" = SEE_INFRA,
"SEE_MOBS" = SEE_MOBS,
"SEE_OBJS" = SEE_OBJS,
"SEE_PIXELS" = SEE_PIXELS,
"SEE_SELF" = SEE_SELF,
"SEE_THRU" = SEE_THRU,
"SEE_TURFS" = SEE_TURFS,
))

DEFINE_BITFIELD(vision_flags, list(
"BLIND" = BLIND,
"SEE_BLACKNESS" = SEE_BLACKNESS,
"SEE_INFRA" = SEE_INFRA,
"SEE_MOBS" = SEE_MOBS,
"SEE_OBJS" = SEE_OBJS,
"SEE_PIXELS" = SEE_PIXELS,
"SEE_SELF" = SEE_SELF,
"SEE_THRU" = SEE_THRU,
"SEE_TURFS" = SEE_TURFS,
))
#define pass_flags_list list(\
"PASS_THROUGH" = PASS_THROUGH,\
"PASS_AROUND" = PASS_AROUND,\
"PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM,\
"PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB,\
"PASS_OVER_FIRE" = PASS_OVER_FIRE,\
"PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY,\
"PASS_UNDER" = PASS_UNDER,\
"PASS_GLASS" = PASS_GLASS,\
"PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO,\
"PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN,\
"PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER,\
"PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO,\
"PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN,\
"PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER,\
"PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER,\
"PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY,\
"PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY,\
"PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE,\
"PASS_ACID_GRENADE" = PASS_ACID_GRENADE,\
)
DEFINE_BITFIELD(flags_pass, pass_flags_list)
DEFINE_BITFIELD(flags_can_pass_all, pass_flags_list)
DEFINE_BITFIELD(flags_can_pass_front, pass_flags_list)
DEFINE_BITFIELD(flags_can_pass_behind, pass_flags_list)
DEFINE_BITFIELD(flags_pass_temp, pass_flags_list)
DEFINE_BITFIELD(flags_can_pass_all_temp, pass_flags_list)
DEFINE_BITFIELD(flags_can_pass_front_temp, pass_flags_list)
DEFINE_BITFIELD(flags_can_pass_behind_temp, pass_flags_list)
#undef pass_flags_list

#define sight_flags_list list(\
"BLIND" = BLIND,\
"SEE_BLACKNESS" = SEE_BLACKNESS,\
"SEE_INFRA" = SEE_INFRA,\
"SEE_MOBS" = SEE_MOBS,\
"SEE_OBJS" = SEE_OBJS,\
"SEE_PIXELS" = SEE_PIXELS,\
"SEE_SELF" = SEE_SELF,\
"SEE_THRU" = SEE_THRU,\
"SEE_TURFS" = SEE_TURFS,\
)
DEFINE_BITFIELD(sight, sight_flags_list)
DEFINE_BITFIELD(vision_flags, sight_flags_list)
#undef sight_flags_list

DEFINE_BITFIELD(vis_flags, list(
"VIS_HIDE" = VIS_HIDE,
Expand Down
12 changes: 6 additions & 6 deletions code/game/objects/structures/barricade/barricade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@
pass_flags.flags_can_pass_all = NONE
pass_flags.flags_can_pass_front = NONE
pass_flags.flags_can_pass_behind = PASS_OVER^(PASS_OVER_ACID_SPRAY|PASS_OVER_THROW_MOB)
flags_can_pass_front_temp = PASS_OVER_THROW_MOB
flags_can_pass_behind_temp = PASS_OVER_THROW_MOB
flags_can_pass_front_temp = PASS_FLAGS_UNWIRED
flags_can_pass_behind_temp = PASS_FLAGS_UNWIRED

/obj/structure/barricade/get_examine_text(mob/user)
. = ..()
Expand Down Expand Up @@ -268,8 +268,8 @@
update_health(-50)
can_wire = FALSE
is_wired = TRUE
flags_can_pass_front_temp &= ~(PASS_OVER_THROW_MOB|PASS_ACID_GRENADE)
flags_can_pass_behind_temp &= ~(PASS_OVER_THROW_MOB|PASS_ACID_GRENADE)
flags_can_pass_front_temp &= ~PASS_FLAGS_UNWIRED
flags_can_pass_behind_temp &= ~PASS_FLAGS_UNWIRED
climbable = FALSE
update_icon()
return
Expand All @@ -289,8 +289,8 @@
update_health(50)
can_wire = TRUE
is_wired = FALSE
flags_can_pass_front_temp |= PASS_OVER_THROW_MOB|PASS_ACID_GRENADE
flags_can_pass_behind_temp |= PASS_OVER_THROW_MOB|PASS_ACID_GRENADE
flags_can_pass_front_temp |= PASS_FLAGS_UNWIRED
flags_can_pass_behind_temp |= PASS_FLAGS_UNWIRED
climbable = TRUE
update_icon()
new/obj/item/stack/barbed_wire( src.loc )
Expand Down
8 changes: 4 additions & 4 deletions code/game/objects/structures/barricade/deployable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,11 @@
user.put_in_active_hand(folding)
qdel(src)

/obj/structure/barricade/deployable/initialize_pass_flags(datum/pass_flags_container/PF)
/obj/structure/barricade/deployable/initialize_pass_flags(datum/pass_flags_container/pass_flags)
..()
if(PF)
PF.flags_can_pass_front &= ~PASS_OVER_THROW_MOB
PF.flags_can_pass_behind &= ~PASS_OVER_THROW_MOB
if(pass_flags)
pass_flags.flags_can_pass_front &= ~PASS_FLAGS_UNWIRED
pass_flags.flags_can_pass_behind &= ~PASS_FLAGS_UNWIRED


// Cade in hands
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/structures/barricade/folding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -278,8 +278,8 @@

/obj/structure/barricade/plasteel/wired/initialize_pass_flags(datum/pass_flags_container/PF)
..()
flags_can_pass_front_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_behind_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_front_temp &= ~PASS_FLAGS_UNWIRED
flags_can_pass_behind_temp &= ~PASS_FLAGS_UNWIRED

/obj/structure/barricade/plasteel/metal
name = "folding metal barricade"
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/structures/barricade/non_folding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,8 @@

/obj/structure/barricade/metal/wired/initialize_pass_flags(datum/pass_flags_container/PF)
..()
flags_can_pass_front_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_behind_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_front_temp &= ~PASS_FLAGS_UNWIRED
flags_can_pass_behind_temp &= ~PASS_FLAGS_UNWIRED

/obj/structure/barricade/metal/plasteel
name = "plasteel barricade"
Expand Down
8 changes: 4 additions & 4 deletions code/game/objects/structures/barricade/sandbags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,8 @@

/obj/structure/barricade/sandbags/wired/initialize_pass_flags(datum/pass_flags_container/PF)
..()
flags_can_pass_front_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_behind_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_front_temp &= ~PASS_FLAGS_UNWIRED
flags_can_pass_behind_temp &= ~PASS_FLAGS_UNWIRED

/obj/structure/barricade/sandbags/weak_wired/New()
health = BARRICADE_SANDBAG_TRESHOLD_1
Expand All @@ -172,5 +172,5 @@

/obj/structure/barricade/sandbags/weak_wired/initialize_pass_flags(datum/pass_flags_container/PF)
..()
flags_can_pass_front_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_behind_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_front_temp &= ~PASS_FLAGS_UNWIRED
flags_can_pass_behind_temp &= ~PASS_FLAGS_UNWIRED