Scopes NODECONSTRUCT_1 from flags_1 to obj_flags (#80104)

This flag only worked on the `/obj/structure` and `/obj/machinery`
level, so let's rescope it from `flags_1` and put it where it belongs -
`obj_flags`.
Bitflag operators should be scoped to their subtype specific bitfield,
not really useful to have this take up a spot on the `/atom` level if
absolutely nothing other than `/obj`s use it.
This commit is contained in:
san7890
2023-12-08 08:49:14 +00:00
committed by GitHub
parent bf94b4433b
commit 5ce9d5806d
116 changed files with 206 additions and 209 deletions
+2 -2
View File
@@ -42,7 +42,7 @@
icon_state = "gelmound"
/obj/structure/alien/gelpod/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/effect/mob_spawn/corpse/human/damaged(get_turf(src))
qdel(src)
@@ -447,7 +447,7 @@
/obj/structure/alien/egg/atom_break(damage_flag)
. = ..()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(status != BURST)
Burst(kill=TRUE)
@@ -12,7 +12,7 @@
smoothing_groups = SMOOTH_GROUP_ALIEN_NEST
canSmoothWith = SMOOTH_GROUP_ALIEN_NEST
build_stack_type = null
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
elevation = 0
var/static/mutable_appearance/nest_overlay = mutable_appearance('icons/mob/nonhuman-player/alien.dmi', "nestoverlay", LYING_MOB_LAYER)
@@ -34,12 +34,12 @@
/obj/structure/bed/examine(mob/user)
. = ..()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
. += span_notice("It's held together by a couple of <b>bolts</b>.")
/obj/structure/bed/add_context(atom/source, list/context, obj/item/held_item, mob/living/user)
if(held_item)
if(held_item.tool_behaviour != TOOL_WRENCH || flags_1 & NODECONSTRUCT_1)
if(held_item.tool_behaviour != TOOL_WRENCH || obj_flags & NO_DECONSTRUCTION)
return
context[SCREENTIP_CONTEXT_RMB] = "Dismantle"
@@ -50,7 +50,7 @@
return CONTEXTUAL_SCREENTIP_SET
/obj/structure/bed/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(build_stack_type)
new build_stack_type(loc, build_stack_amount)
..()
@@ -59,7 +59,7 @@
return attack_hand(user, modifiers)
/obj/structure/bed/wrench_act_secondary(mob/living/user, obj/item/weapon)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return TRUE
..()
@@ -38,7 +38,7 @@
/obj/structure/chair/deconstruct(disassembled)
// If we have materials, and don't have the NOCONSTRUCT flag
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(buildstacktype)
new buildstacktype(loc,buildstackamount)
else
@@ -56,7 +56,7 @@
qdel(src)
/obj/structure/chair/attackby(obj/item/W, mob/user, params)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return . = ..()
if(istype(W, /obj/item/assembly/shock_kit) && !HAS_TRAIT(src, TRAIT_ELECTRIFIED_BUCKLE))
electrify_self(W, user)
@@ -85,7 +85,7 @@
/obj/structure/chair/wrench_act_secondary(mob/living/user, obj/item/weapon)
if(flags_1&NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return TRUE
..()
weapon.play_tool_sound(src)
@@ -277,7 +277,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool, 0)
/obj/structure/chair/MouseDrop(over_object, src_location, over_location)
. = ..()
if(over_object == usr && Adjacent(usr))
if(!item_chair || has_buckled_mobs() || src.flags_1 & NODECONSTRUCT_1)
if(!item_chair || has_buckled_mobs() || src.obj_flags & NO_DECONSTRUCTION)
return
if(!usr.can_perform_action(src, NEED_DEXTERITY|NEED_HANDS))
return
@@ -490,7 +490,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0)
icon_state = null
buildstacktype = null
item_chair = null
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
alpha = 0
/obj/structure/chair/mime/post_buckle_mob(mob/living/M)
+1 -1
View File
@@ -647,7 +647,7 @@ LINEN BINS
..()
/obj/structure/bedsheetbin/screwdriver_act(mob/living/user, obj/item/tool)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return FALSE
if(amount)
to_chat(user, span_warning("The [src] must be empty first!"))
@@ -536,7 +536,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
return open(user)
/obj/structure/closet/deconstruct(disassembled = TRUE)
if (!(flags_1 & NODECONSTRUCT_1))
if (!(obj_flags & NO_DECONSTRUCTION))
if(ispath(material_drop) && material_drop_amount)
new material_drop(loc, material_drop_amount)
if (secure)
@@ -553,7 +553,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
/obj/structure/closet/atom_break(damage_flag)
. = ..()
if(!broken && !(flags_1 & NODECONSTRUCT_1))
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
bust_open()
/obj/structure/closet/CheckParts(list/parts_list)
@@ -37,7 +37,7 @@
return FALSE
/obj/structure/closet/secure_closet/freezer/deconstruct(disassembled)
if (!(flags_1 & NODECONSTRUCT_1))
if (!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/assembly/igniter/condenser(drop_location())
. = ..()
@@ -6,7 +6,7 @@
/obj/structure/destructible/deconstruct(disassembled = TRUE)
if(!disassembled)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(islist(debris))
for(var/I in debris)
for(var/i in 1 to debris[I])
+3 -3
View File
@@ -82,7 +82,7 @@
playsound(src, 'sound/items/welder.ogg', 100, TRUE)
/obj/structure/displaycase/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
dump()
if(!disassembled)
new /obj/item/shard(drop_location())
@@ -91,7 +91,7 @@
/obj/structure/displaycase/atom_break(damage_flag)
. = ..()
if(!broken && !(flags_1 & NODECONSTRUCT_1))
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
set_density(FALSE)
broken = TRUE
new /obj/item/shard(drop_location())
@@ -673,7 +673,7 @@
/obj/structure/displaycase/forsale/atom_break(damage_flag)
. = ..()
if(!broken && !(flags_1 & NODECONSTRUCT_1))
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
broken = TRUE
playsound(src, SFX_SHATTER, 70, TRUE)
update_appearance()
@@ -363,7 +363,7 @@
qdel(source)
/obj/structure/door_assembly/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/turf/T = get_turf(src)
if(!disassembled)
material_amt = rand(2,4)
@@ -272,7 +272,7 @@
base_name = "large public airlock"
/obj/structure/door_assembly/door_assembly_material/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/turf/T = get_turf(src)
for(var/material in custom_materials)
var/datum/material/material_datum = material
+1 -1
View File
@@ -17,7 +17,7 @@
return ..()
/obj/structure/dresser/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/mineral/wood(drop_location(), 10)
qdel(src)
+2 -2
View File
@@ -159,7 +159,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/extinguisher_cabinet, 29)
/obj/structure/extinguisher_cabinet/atom_break(damage_flag)
. = ..()
if(!broken && !(flags_1 & NODECONSTRUCT_1))
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
broken = 1
opened = 1
if(stored_extinguisher)
@@ -169,7 +169,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/extinguisher_cabinet, 29)
/obj/structure/extinguisher_cabinet/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(disassembled)
new /obj/item/wallframe/extinguisher_cabinet(loc)
else
+2 -2
View File
@@ -134,7 +134,7 @@
deconstruct(disassembled)
/obj/structure/falsewall/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(disassembled)
new girder_type(loc)
if(mineral_amount)
@@ -388,7 +388,7 @@
material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
/obj/structure/falsewall/material/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(disassembled)
new girder_type(loc)
for(var/material in custom_materials)
+2 -2
View File
@@ -11,14 +11,14 @@
can_atmos_pass = ATMOS_PASS_NO
/obj/structure/fans/deconstruct()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(buildstacktype)
new buildstacktype(loc,buildstackamount)
qdel(src)
/obj/structure/fans/wrench_act(mob/living/user, obj/item/I)
..()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return TRUE
user.visible_message(span_warning("[user] disassembles [src]."),
+3 -3
View File
@@ -108,7 +108,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet, 32)
/obj/structure/fireaxecabinet/atom_break(damage_flag)
. = ..()
if(!broken && !(flags_1 & NODECONSTRUCT_1))
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
update_appearance()
broken = TRUE
playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE)
@@ -116,7 +116,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet, 32)
new /obj/item/shard(loc)
/obj/structure/fireaxecabinet/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(held_item && loc)
held_item.forceMove(loc)
new /obj/item/wallframe/fireaxecabinet(loc)
@@ -231,7 +231,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet/empty, 32)
MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet/mechremoval, 32)
/obj/structure/fireaxecabinet/mechremoval/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(held_item && loc)
held_item.forceMove(loc)
new /obj/item/wallframe/fireaxecabinet/mechremoval(loc)
+2 -2
View File
@@ -264,7 +264,7 @@
transform = M.Turn(-previous_rotation)
/obj/structure/flora/deconstruct()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(harvested)
return ..()
@@ -446,7 +446,7 @@
name = "xmas tree"
desc = "A wondrous decorated Christmas tree."
icon_state = "pine_c"
flags_1 = NODECONSTRUCT_1 //protected by the christmas spirit
obj_flags = NO_DECONSTRUCTION //protected by the christmas spirit
/obj/structure/flora/tree/pine/xmas/presents
icon_state = "pinepresents"
+2 -2
View File
@@ -385,7 +385,7 @@
return FALSE
/obj/structure/girder/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/remains = pick(/obj/item/stack/rods, /obj/item/stack/sheet/iron)
new remains(loc)
qdel(src)
@@ -463,7 +463,7 @@
return
/obj/structure/girder/cult/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/runed_metal(drop_location(), 1)
qdel(src)
+5 -5
View File
@@ -52,7 +52,7 @@
/obj/structure/grille/examine(mob/user)
. = ..()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
if(anchored)
@@ -200,7 +200,7 @@
add_fingerprint(user)
if(shock(user, 100))
return
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return FALSE
tool.play_tool_sound(src, 100)
deconstruct()
@@ -212,7 +212,7 @@
add_fingerprint(user)
if(shock(user, 90))
return FALSE
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return FALSE
if(!tool.use_tool(src, user, 0, volume=100))
return FALSE
@@ -299,7 +299,7 @@
/obj/structure/grille/deconstruct(disassembled = TRUE)
if(!loc) //if already qdel'd somehow, we do nothing
return
if(!(flags_1&NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/obj/R = new rods_type(drop_location(), rods_amount)
transfer_fingerprints_to(R)
qdel(src)
@@ -307,7 +307,7 @@
/obj/structure/grille/atom_break()
. = ..()
if(!broken && !(flags_1 & NODECONSTRUCT_1))
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
icon_state = "brokengrille"
set_density(FALSE)
atom_integrity = 20
+1 -1
View File
@@ -58,7 +58,7 @@
return T.attackby(C, user) //hand this off to the turf instead (for building plating, catwalks, etc)
/obj/structure/lattice/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new build_material(get_turf(src), number_of_mats)
qdel(src)
+1 -1
View File
@@ -305,7 +305,7 @@ at the cost of risking a vicious bite.**/
return TRUE
/obj/structure/steam_vent/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 1)
new /obj/item/stock_parts/water_recycler(loc, 1)
qdel(src)
+2 -2
View File
@@ -261,7 +261,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
/obj/structure/mirror/atom_break(damage_flag, mapload)
. = ..()
if(broken || (flags_1 & NODECONSTRUCT_1))
if(broken || (obj_flags & NO_DECONSTRUCTION))
return
icon_state = "mirror_broke"
if(!mapload)
@@ -271,7 +271,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
broken = TRUE
/obj/structure/mirror/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(!disassembled)
new /obj/item/shard(loc)
else
+1 -1
View File
@@ -106,7 +106,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
return attack_hand(user)
/obj/structure/bodycontainer/deconstruct(disassembled = TRUE)
if (!(flags_1 & NODECONSTRUCT_1))
if (!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 5)
toggle_organ_decay(src)
qdel(src)
+1 -1
View File
@@ -111,7 +111,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/noticeboard, 32)
update_appearance(UPDATE_ICON)
/obj/structure/noticeboard/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(!disassembled)
new /obj/item/stack/sheet/mineral/wood(loc)
else
+1 -1
View File
@@ -125,7 +125,7 @@
/obj/structure/plasticflaps/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/plastic/five(loc)
qdel(src)
+2 -2
View File
@@ -100,7 +100,7 @@
return TRUE
/obj/structure/railing/deconstruct(disassembled)
if((flags_1 & NODECONSTRUCT_1))
if((obj_flags & NO_DECONSTRUCTION))
return ..()
var/rods_to_make = istype(src,/obj/structure/railing/corner) ? 1 : 2
var/obj/rod = new item_deconstruct(drop_location(), rods_to_make)
@@ -110,7 +110,7 @@
///Implements behaviour that makes it possible to unanchor the railing.
/obj/structure/railing/wrench_act(mob/living/user, obj/item/I)
. = ..()
if(flags_1&NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
to_chat(user, span_notice("You begin to [anchored ? "unfasten the railing from":"fasten the railing to"] the floor..."))
if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_anchored), anchored)))
+1 -1
View File
@@ -184,7 +184,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16))
/obj/machinery/shower/wrench_act(mob/living/user, obj/item/I)
. = ..()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
I.play_tool_sound(src)
+8 -8
View File
@@ -73,7 +73,7 @@
context[SCREENTIP_CONTEXT_RMB] = "Deal card faceup"
. = CONTEXTUAL_SCREENTIP_SET
if(!(flags_1 & NODECONSTRUCT_1) && deconstruction_ready)
if(!(obj_flags & NO_DECONSTRUCTION) && deconstruction_ready)
if(held_item.tool_behaviour == TOOL_SCREWDRIVER)
context[SCREENTIP_CONTEXT_RMB] = "Disassemble"
. = CONTEXTUAL_SCREENTIP_SET
@@ -207,7 +207,7 @@
pushed_mob.add_mood_event("table", /datum/mood_event/table_limbsmash, banged_limb)
/obj/structure/table/screwdriver_act_secondary(mob/living/user, obj/item/tool)
if(flags_1 & NODECONSTRUCT_1 || !deconstruction_ready)
if(obj_flags & NO_DECONSTRUCTION || !deconstruction_ready)
return FALSE
to_chat(user, span_notice("You start disassembling [src]..."))
if(tool.use_tool(src, user, 2 SECONDS, volume=50))
@@ -215,7 +215,7 @@
return TOOL_ACT_TOOLTYPE_SUCCESS
/obj/structure/table/wrench_act_secondary(mob/living/user, obj/item/tool)
if(flags_1 & NODECONSTRUCT_1 || !deconstruction_ready)
if(obj_flags & NO_DECONSTRUCTION || !deconstruction_ready)
return FALSE
to_chat(user, span_notice("You start deconstructing [src]..."))
if(tool.use_tool(src, user, 4 SECONDS, volume=50))
@@ -298,7 +298,7 @@
return
/obj/structure/table/deconstruct(disassembled = TRUE, wrench_disassembly = 0)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/turf/T = get_turf(src)
if(buildstack)
new buildstack(T, buildstackamount)
@@ -437,7 +437,7 @@
/obj/structure/table/glass/proc/on_entered(datum/source, atom/movable/AM)
SIGNAL_HANDLER
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
if(!isliving(AM))
return
@@ -470,7 +470,7 @@
qdel(src)
/obj/structure/table/glass/deconstruct(disassembled = TRUE, wrench_disassembly = 0)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(disassembled)
..()
return
@@ -847,7 +847,7 @@
/obj/structure/rack/attackby(obj/item/W, mob/living/user, params)
var/list/modifiers = params2list(params)
if (W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1) && LAZYACCESS(modifiers, RIGHT_CLICK))
if (W.tool_behaviour == TOOL_WRENCH && !(obj_flags & NO_DECONSTRUCTION) && LAZYACCESS(modifiers, RIGHT_CLICK))
W.play_tool_sound(src)
deconstruct(TRUE)
return
@@ -885,7 +885,7 @@
*/
/obj/structure/rack/deconstruct(disassembled = TRUE)
if(!(flags_1&NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
set_density(FALSE)
var/obj/item/rack_parts/newparts = new(loc)
transfer_fingerprints_to(newparts)
@@ -104,7 +104,7 @@
/obj/structure/tank_dispenser/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
for(var/X in src)
var/obj/item/I = X
I.forceMove(loc)
@@ -40,7 +40,7 @@
return ..()
/obj/structure/transit_tube_pod/deconstruct(disassembled = TRUE, mob/user)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/atom/location = get_turf(src)
if(user)
location = user.loc
+6 -6
View File
@@ -84,7 +84,7 @@
return ..()
/obj/structure/toilet/deconstruct()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
for(var/obj/toilet_item in contents)
toilet_item.forceMove(drop_location())
if(buildstacktype)
@@ -105,7 +105,7 @@
cistern = !cistern
update_appearance()
return COMPONENT_CANCEL_ATTACK_CHAIN
else if(I.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1))
else if(I.tool_behaviour == TOOL_WRENCH && !(obj_flags & NO_DECONSTRUCTION))
I.play_tool_sound(src)
deconstruct()
return TRUE
@@ -228,7 +228,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32)
return TRUE
/obj/structure/urinal/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/wallframe/urinal(loc)
qdel(src)
@@ -419,7 +419,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14))
playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
return
if(O.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1))
if(O.tool_behaviour == TOOL_WRENCH && !(obj_flags & NO_DECONSTRUCTION))
O.play_tool_sound(src)
deconstruct()
return
@@ -496,7 +496,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14))
return ..()
/obj/structure/sink/deconstruct()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
drop_materials()
if(has_water_reclaimer)
new /obj/item/stock_parts/water_recycler(drop_location())
@@ -572,7 +572,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink/kitchen, (-16))
return TRUE
/obj/structure/sinkframe/deconstruct()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
drop_materials()
return ..()
+10 -9
View File
@@ -78,7 +78,7 @@
/obj/structure/window/examine(mob/user)
. = ..()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
switch(state)
@@ -210,7 +210,7 @@
return TOOL_ACT_TOOLTYPE_SUCCESS
/obj/structure/window/screwdriver_act(mob/living/user, obj/item/tool)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
switch(state)
@@ -240,7 +240,7 @@
/obj/structure/window/wrench_act(mob/living/user, obj/item/tool)
if(anchored)
return FALSE
if((flags_1 & NODECONSTRUCT_1) || (reinf && state >= RWINDOW_FRAME_BOLTED))
if((obj_flags & NO_DECONSTRUCTION) || (reinf && state >= RWINDOW_FRAME_BOLTED))
return FALSE
to_chat(user, span_notice("You begin to disassemble [src]..."))
@@ -255,7 +255,7 @@
return TOOL_ACT_TOOLTYPE_SUCCESS
/obj/structure/window/crowbar_act(mob/living/user, obj/item/tool)
if(!anchored || (flags_1 & NODECONSTRUCT_1))
if(!anchored || (obj_flags & NO_DECONSTRUCTION))
return FALSE
switch(state)
@@ -335,7 +335,7 @@
return
if(!disassembled)
playsound(src, break_sound, 70, TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
for(var/obj/item/shard/debris in spawn_debris(drop_location()))
transfer_fingerprints_to(debris) // transfer fingerprints to shards only
qdel(src)
@@ -480,7 +480,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/unanchored/spawner, 0)
return FALSE
/obj/structure/window/reinforced/attackby_secondary(obj/item/tool, mob/user, params)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return ..()
switch(state)
@@ -546,7 +546,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/unanchored/spawner, 0)
/obj/structure/window/reinforced/crowbar_act(mob/living/user, obj/item/tool)
if(!anchored)
return FALSE
if((flags_1 & NODECONSTRUCT_1) || (state != WINDOW_OUT_OF_FRAME))
if((obj_flags & NO_DECONSTRUCTION) || (state != WINDOW_OUT_OF_FRAME))
return FALSE
to_chat(user, span_notice("You begin to lever the window back into the frame..."))
if(tool.use_tool(src, user, 10 SECONDS, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored)))
@@ -561,7 +561,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/unanchored/spawner, 0)
/obj/structure/window/reinforced/examine(mob/user)
. = ..()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
switch(state)
if(RWINDOW_SECURE)
@@ -803,7 +803,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw
/obj/structure/window/reinforced/shuttle/indestructible
name = "hardened shuttle window"
flags_1 = PREVENT_CLICK_UNDER_1 | NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
flags_1 = PREVENT_CLICK_UNDER_1
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/obj/structure/window/reinforced/shuttle/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)