diff --git a/code/__DEFINES/movement.dm b/code/__DEFINES/movement.dm index 242e71a7ed9f..071d9f5b99c3 100644 --- a/code/__DEFINES/movement.dm +++ b/code/__DEFINES/movement.dm @@ -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) diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index e3c1fb2d0402..4c149c12aa05 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -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, diff --git a/code/game/objects/structures/barricade/barricade.dm b/code/game/objects/structures/barricade/barricade.dm index ec740878b3a8..83c984e640c4 100644 --- a/code/game/objects/structures/barricade/barricade.dm +++ b/code/game/objects/structures/barricade/barricade.dm @@ -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) . = ..() @@ -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 @@ -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 ) diff --git a/code/game/objects/structures/barricade/deployable.dm b/code/game/objects/structures/barricade/deployable.dm index 727629f763b9..df1693e83a7d 100644 --- a/code/game/objects/structures/barricade/deployable.dm +++ b/code/game/objects/structures/barricade/deployable.dm @@ -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 diff --git a/code/game/objects/structures/barricade/folding.dm b/code/game/objects/structures/barricade/folding.dm index a3de3efb4aba..1aff129311e2 100644 --- a/code/game/objects/structures/barricade/folding.dm +++ b/code/game/objects/structures/barricade/folding.dm @@ -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" diff --git a/code/game/objects/structures/barricade/non_folding.dm b/code/game/objects/structures/barricade/non_folding.dm index 2a9f114718c8..da753927f905 100644 --- a/code/game/objects/structures/barricade/non_folding.dm +++ b/code/game/objects/structures/barricade/non_folding.dm @@ -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" diff --git a/code/game/objects/structures/barricade/sandbags.dm b/code/game/objects/structures/barricade/sandbags.dm index 169d54d1bb82..ef9073fe03f0 100644 --- a/code/game/objects/structures/barricade/sandbags.dm +++ b/code/game/objects/structures/barricade/sandbags.dm @@ -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 @@ -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