diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 469811c96dc..ea5b929651d 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -15,7 +15,7 @@ #define IGNORE_DENSITY (1<<11) //! Can we ignore density when building on this object? (for example, directional windows and grilles) #define INFINITE_RESKIN (1<<12) // We can reskin this item infinitely #define CONDUCTS_ELECTRICITY (1<<13) //! Can this object conduct electricity? -#define NO_DECONSTRUCTION (1<<14) //! Atoms don't spawn anything when deconstructed. They just vanish +#define NO_DEBRIS_AFTER_DECONSTRUCTION (1<<14) //! Atoms don't spawn anything when deconstructed. They just vanish // If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 37e7ef30d41..5b2f4e9f6dd 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -290,7 +290,7 @@ DEFINE_BITFIELD(obj_flags, list( "EMAGGED" = EMAGGED, "IGNORE_DENSITY" = IGNORE_DENSITY, "IN_USE" = IN_USE, - "NO_DECONSTRUCTION" = NO_DECONSTRUCTION, + "NO_DEBRIS_AFTER_DECONSTRUCTION" = NO_DEBRIS_AFTER_DECONSTRUCTION, "UNIQUE_RENAME" = UNIQUE_RENAME, )) diff --git a/code/datums/elements/frozen.dm b/code/datums/elements/frozen.dm index 434968dd4d5..d112ef31b5f 100644 --- a/code/datums/elements/frozen.dm +++ b/code/datums/elements/frozen.dm @@ -63,7 +63,7 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0 else log_combat(throwingdatum.thrower, target, "launched", addition = "shattering it due to being frozen.") obj_target.visible_message(span_danger("[obj_target] shatters into a million pieces!")) - obj_target.obj_flags |= NO_DECONSTRUCTION // disable item spawning + obj_target.obj_flags |= NO_DEBRIS_AFTER_DECONSTRUCTION // disable item spawning obj_target.deconstruct(FALSE) // call pre-deletion specialized code -- internals release gas etc /// signal handler for COMSIG_MOVABLE_MOVED that unfreezes our target if it moves onto an open turf thats hotter than diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 30dfaea445f..9648418c5d4 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -827,7 +827,7 @@ /obj/machinery/handle_deconstruct(disassembled = TRUE) SHOULD_NOT_OVERRIDE(TRUE) - if(obj_flags & NO_DECONSTRUCTION) + if(obj_flags & NO_DEBRIS_AFTER_DECONSTRUCTION) dump_inventory_contents() //drop stuff we consider important return //Just delete us, no need to call anything else. diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 53799d6dfc1..45daa1966a6 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -162,7 +162,6 @@ req_access = null anchored = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION /obj/machinery/jukebox/disco/activate_music() . = ..() diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index b01609fc10e..96f7d568f0e 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1496,7 +1496,7 @@ /obj/machinery/door/airlock/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) if((damage_amount >= atom_integrity) && (damage_flag == BOMB)) - obj_flags |= NO_DECONSTRUCTION //If an explosive took us out, don't drop the assembly + obj_flags |= NO_DEBRIS_AFTER_DECONSTRUCTION //If an explosive took us out, don't drop the assembly . = ..() if(atom_integrity < (0.75 * max_integrity)) update_appearance() diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 88c2959416c..16f89fdf3c1 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -127,7 +127,6 @@ Possible to do for anyone motivated enough: /obj/machinery/holopad/tutorial resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION on_network = FALSE ///Proximity monitor associated with this atom, needed for proximity checks. var/datum/proximity_monitor/proximity_monitor @@ -143,6 +142,12 @@ Possible to do for anyone motivated enough: new_disk.forceMove(src) disk = new_disk +/obj/machinery/holopad/tutorial/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/holopad/tutorial/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + /obj/machinery/holopad/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) . = ..() if(!loc) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 9cbf787d58d..28aae488866 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -239,9 +239,15 @@ /obj/machinery/recycler/deathtrap name = "dangerous old crusher" - obj_flags = CAN_BE_HIT | EMAGGED | NO_DECONSTRUCTION + obj_flags = CAN_BE_HIT | EMAGGED crush_damage = 120 +/obj/machinery/recycler/deathtrap/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/recycler/deathtrap/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + /obj/item/paper/guides/recycler name = "paper - 'garbage duty instructions'" default_raw_text = "

New Assignment

You have been assigned to collect garbage from trash bins, located around the station. The crewmembers will put their trash into it and you will collect said trash.

There is a recycling machine near your closet, inside maintenance; use it to recycle the trash for a small chance to get useful minerals. Then, deliver these minerals to cargo or engineering. You are our last hope for a clean station. Do not screw this up!" diff --git a/code/game/machinery/telecomms/machines/allinone.dm b/code/game/machinery/telecomms/machines/allinone.dm index f159339193e..9b32a4ac192 100644 --- a/code/game/machinery/telecomms/machines/allinone.dm +++ b/code/game/machinery/telecomms/machines/allinone.dm @@ -20,7 +20,6 @@ /obj/machinery/telecomms/allinone/indestructible resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION /obj/machinery/telecomms/allinone/indestructible/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) return NONE diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 4731ad4395f..9ebcbb253d2 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -168,9 +168,9 @@ /** * The interminate proc between deconstruct() & atom_deconstruct(). By default this delegates deconstruction to - * atom_deconstruct if NO_DECONSTRUCTION is absent but subtypes can override this to handle NO_DECONSTRUCTION in their + * atom_deconstruct if NO_DEBRIS_AFTER_DECONSTRUCTION is absent but subtypes can override this to handle NO_DEBRIS_AFTER_DECONSTRUCTION in their * own unique way. Override this if for example you want to dump out important content like mobs from the - * atom before deconstruction regardless if NO_DECONSTRUCTION is present or not + * atom before deconstruction regardless if NO_DEBRIS_AFTER_DECONSTRUCTION is present or not * Arguments * * * disassembled - TRUE means we cleanly took this atom apart using tools. FALSE means this was destroyed in a violent way @@ -178,7 +178,7 @@ /obj/proc/handle_deconstruct(disassembled = TRUE) SHOULD_CALL_PARENT(FALSE) - if(!(obj_flags & NO_DECONSTRUCTION)) + if(!(obj_flags & NO_DEBRIS_AFTER_DECONSTRUCTION)) atom_deconstruct(disassembled) /** diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 74546e2ccd7..af4bb3084cd 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -479,11 +479,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) icon_state = null buildstacktype = null item_chair = null - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION + obj_flags = parent_type::obj_flags | NO_DEBRIS_AFTER_DECONSTRUCTION alpha = 0 /obj/structure/chair/mime/wrench_act_secondary(mob/living/user, obj/item/weapon) - return ITEM_INTERACT_BLOCKING + return NONE /obj/structure/chair/mime/post_buckle_mob(mob/living/M) M.pixel_y += 5 diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 8749691c91d..2cfd490203c 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -449,7 +449,6 @@ icon_state = "pinepresents" desc = "A wondrous decorated Christmas tree. It has presents!" resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF //protected by the christmas spirit - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION var/gift_type = /obj/item/gift/anything var/unlimited = FALSE var/static/list/took_presents //shared between all xmas trees diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index f689a94d162..d9bf9004436 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -792,10 +792,18 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw name = "hardened shuttle window" flags_1 = PREVENT_CLICK_UNDER_1 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION -/obj/structure/window/reinforced/shuttle/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) - return FALSE +/obj/structure/window/reinforced/shuttle/indestructible/welder_act(mob/living/user, obj/item/tool) + return NONE + +/obj/structure/window/reinforced/shuttle/indestructible/screwdriver_act(mob/living/user, obj/item/tool) + return NONE + +/obj/structure/window/reinforced/shuttle/indestructible/wrench_act(mob/living/user, obj/item/tool) + return NONE + +/obj/structure/window/reinforced/shuttle/indestructible/crowbar_act(mob/living/user, obj/item/tool) + return NONE /obj/structure/window/reinforced/plasma/plastitanium name = "plastitanium window" diff --git a/code/modules/awaymissions/mission_code/murderdome.dm b/code/modules/awaymissions/mission_code/murderdome.dm index 520372e68ac..a59a491d492 100644 --- a/code/modules/awaymissions/mission_code/murderdome.dm +++ b/code/modules/awaymissions/mission_code/murderdome.dm @@ -1,20 +1,27 @@ /obj/structure/window/reinforced/fulltile/indestructible name = "robust window" - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION flags_1 = PREVENT_CLICK_UNDER_1 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF -/obj/structure/window/reinforced/fulltile/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) - return FALSE +/obj/structure/window/reinforced/fulltile/indestructible/screwdriver_act(mob/living/user, obj/item/tool) + return NONE +/obj/structure/window/reinforced/fulltile/indestructible/wrench_act(mob/living/user, obj/item/tool) + return NONE + +/obj/structure/window/reinforced/fulltile/indestructible/crowbar_act(mob/living/user, obj/item/tool) + return NONE /obj/structure/grille/indestructible - obj_flags = CONDUCTS_ELECTRICITY | NO_DECONSTRUCTION + obj_flags = CONDUCTS_ELECTRICITY resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF -/obj/structure/grille/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) - return FALSE +/obj/structure/grille/indestructible/screwdriver_act(mob/living/user, obj/item/tool) + return NONE + +/obj/structure/grille/indestructible/wirecutter_act(mob/living/user, obj/item/tool) + return NONE /obj/effect/spawner/structure/window/reinforced/indestructible spawn_list = list(/obj/structure/grille/indestructible, /obj/structure/window/reinforced/fulltile/indestructible) diff --git a/code/modules/capture_the_flag/ctf_game.dm b/code/modules/capture_the_flag/ctf_game.dm index aac487a83d6..38a7318b554 100644 --- a/code/modules/capture_the_flag/ctf_game.dm +++ b/code/modules/capture_the_flag/ctf_game.dm @@ -463,7 +463,12 @@ /obj/structure/table/reinforced/ctf resistance_flags = INDESTRUCTIBLE - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION + +/obj/structure/table/reinforced/ctf/wrench_act_secondary(mob/living/user, obj/item/tool) + return NONE + +/obj/structure/table/reinforced/ctf/screwdriver_act_secondary(mob/living/user, obj/item/tool) + return NONE #define CTF_LOADING_UNLOADED 0 #define CTF_LOADING_LOADING 1 diff --git a/code/modules/food_and_drinks/machinery/food_cart.dm b/code/modules/food_and_drinks/machinery/food_cart.dm index e068b7b8ce2..a14ea3593c5 100644 --- a/code/modules/food_and_drinks/machinery/food_cart.dm +++ b/code/modules/food_and_drinks/machinery/food_cart.dm @@ -8,7 +8,7 @@ anchored = FALSE use_power = NO_POWER_USE req_access = list(ACCESS_KITCHEN) - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION + obj_flags = parent_type::obj_flags | NO_DEBRIS_AFTER_DECONSTRUCTION var/unpacked = FALSE var/obj/machinery/griddle/stand/cart_griddle var/obj/machinery/smartfridge/food/cart_smartfridge diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index db66578c5bd..1ff5bc47a55 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -292,12 +292,12 @@ GLOBAL_LIST_INIT(typecache_holodeck_linked_floorcheck_ok, typecacheof(list(/turf holo_object.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF if(isstructure(holo_object)) - holo_object.obj_flags |= NO_DECONSTRUCTION + holo_object.obj_flags |= NO_DEBRIS_AFTER_DECONSTRUCTION return if(ismachinery(holo_object)) var/obj/machinery/holo_machine = holo_object - holo_machine.obj_flags |= NO_DECONSTRUCTION + holo_machine.obj_flags |= NO_DEBRIS_AFTER_DECONSTRUCTION holo_machine.power_change() if(istype(holo_machine, /obj/machinery/button)) diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm index afd4c227038..caa5b425ca4 100644 --- a/code/modules/holodeck/holo_effect.dm +++ b/code/modules/holodeck/holo_effect.dm @@ -50,7 +50,7 @@ var/newtype = pick(subtypesof(/obj/item/book/manual) - banned_books) var/obj/item/book/manual/to_spawn = new newtype(loc) to_spawn.flags_1 |= HOLOGRAM_1 - to_spawn.obj_flags |= NO_DECONSTRUCTION + to_spawn.obj_flags |= NO_DEBRIS_AFTER_DECONSTRUCTION return to_spawn /obj/effect/holodeck_effect/mobspawner diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index cc432d4bbad..669b22ed0ac 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -1159,7 +1159,6 @@ circuit = null density = FALSE use_power = NO_POWER_USE - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION unwrenchable = FALSE self_sustaining_overlay_icon_state = null maxnutri = 15 diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm index 5c1b4323208..1c0a5392fb9 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm @@ -159,9 +159,14 @@ mask = /obj/item/clothing/mask/fakemoustache/italian /obj/machinery/vending/hotdog/museum - obj_flags = parent_type::obj_flags|NO_DECONSTRUCTION onstation_override = TRUE +/obj/machinery/vending/hotdog/museum/screwdriver_act(mob/living/user, obj/item/attack_item) + return NONE + +/obj/machinery/vending/hotdog/museum/crowbar_act(mob/living/user, obj/item/attack_item) + return NONE + #define CAFE_KEYCARD_TOILETS "museum_cafe_key_toilets" ///Do not place these beyond the cafeteria shutters, or you might lock people out of reaching it. diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index d40589dd3f8..b22603f52d9 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -249,7 +249,18 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/door/window/survival_pod/left, 0) light_color = COLOR_VERY_PALE_LIME_GREEN max_n_of_items = 10 pixel_y = -4 - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION + +/obj/machinery/smartfridge/survival_pod/welder_act(mob/living/user, obj/item/tool) + return NONE + +/obj/machinery/smartfridge/survival_pod/wrench_act(mob/living/user, obj/item/tool) + return NONE + +/obj/machinery/smartfridge/survival_pod/screwdriver_act(mob/living/user, obj/item/tool) + return NONE + +/obj/machinery/smartfridge/survival_pod/crowbar_act(mob/living/user, obj/item/tool) + return NONE /obj/machinery/smartfridge/survival_pod/Initialize(mapload) AddElement(/datum/element/update_icon_blocker) diff --git a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm index c0cb45dda2a..552bfe48650 100644 --- a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm +++ b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm @@ -6,14 +6,16 @@ base_icon_state = "dispenser" amount = 10 resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION use_power = NO_POWER_USE - var/static/list/shortcuts = list( - "meth" = /datum/reagent/drug/methamphetamine - ) ///The purity of the created reagent in % (purity uses 0-1 values) var/purity = 100 +/obj/machinery/chem_dispenser/chem_synthesizer/screwdriver_act(mob/living/user, obj/item/tool) + return NONE + +/obj/machinery/chem_dispenser/chem_synthesizer/crowbar_act(mob/living/user, obj/item/tool) + return NONE + /obj/machinery/chem_dispenser/chem_synthesizer/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm index eb613be54de..41b3f5e39ed 100644 --- a/code/modules/shuttle/spaceship_navigation_beacon.dm +++ b/code/modules/shuttle/spaceship_navigation_beacon.dm @@ -5,7 +5,6 @@ icon_state = "beacon_active" base_icon_state = "beacon" density = TRUE - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION /// Locked beacons cannot be jumped to by ships. var/locked = FALSE diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index 989ab4edc94..e5b4b0eb024 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -79,7 +79,6 @@ var/obj/machinery/power/emitter/energycannon/magical/our_statue var/list/mob/living/sleepers = list() var/never_spoken = TRUE - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION /obj/structure/table/abductor/wabbajack/Initialize(mapload) . = ..() @@ -89,6 +88,12 @@ STOP_PROCESSING(SSobj, src) . = ..() +/obj/structure/table/abductor/wabbajack/screwdriver_act(mob/living/user, obj/item/tool) + return NONE + +/obj/structure/table/abductor/wabbajack/wrench_act(mob/living/user, obj/item/tool) + return NONE + /obj/structure/table/abductor/wabbajack/process() if(isnull(our_statue)) our_statue = locate() in orange(4, src) @@ -173,7 +178,6 @@ /obj/structure/table/wood/shuttle_bar resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION max_integrity = 1000 var/boot_dir = 1 @@ -184,6 +188,12 @@ ) AddElement(/datum/element/connect_loc, loc_connections) +/obj/structure/table/wood/shuttle_bar/screwdriver_act(mob/living/user, obj/item/tool) + return NONE + +/obj/structure/table/wood/shuttle_bar/wrench_act(mob/living/user, obj/item/tool) + return NONE + /obj/structure/table/wood/shuttle_bar/proc/on_entered(datum/source, atom/movable/AM) SIGNAL_HANDLER var/mob/living/M = AM diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 402a87bf6d4..08e0b0d2699 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -11,7 +11,9 @@ shuttleId = "syndicate" possible_destinations = "syndicate_away;syndicate_z5;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s;syndicate_custom" resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION + +/obj/machinery/computer/shuttle/syndicate/screwdriver_act(mob/living/user, obj/item/I) + return NONE /obj/machinery/computer/shuttle/syndicate/launch_check(mob/user) . = ..() diff --git a/code/modules/transport/tram/tram_controller.dm b/code/modules/transport/tram/tram_controller.dm index 7912588ab8a..51b8a32acaf 100644 --- a/code/modules/transport/tram/tram_controller.dm +++ b/code/modules/transport/tram/tram_controller.dm @@ -708,7 +708,9 @@ /obj/machinery/transport/tram_controller/hilbert configured_transport_id = HILBERT_LINE_1 - obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION + +/obj/machinery/transport/tram_controller/wrench_act_secondary(mob/living/user, obj/item/tool) + return NONE /obj/machinery/transport/tram_controller/Initialize(mapload) . = ..() @@ -847,7 +849,7 @@ return playsound(loc, 'sound/items/deconstruct.ogg', 50, vary = TRUE) balloon_alert(user, "unsecured") - deconstruct() + deconstruct(TRUE) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN /obj/machinery/transport/tram_controller/screwdriver_act_secondary(mob/living/user, obj/item/tool)