[MIRROR] Scopes NODECONSTRUCT_1 from flags_1 to obj_flags [MDB IGNORE] (#25496)

* Scopes `NODECONSTRUCT_1` from `flags_1` to `obj_flags`

* Update bitfields.dm

* Modular

* Update rack.dm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-12-09 05:24:46 +01:00
committed by GitHub
parent 62616edede
commit 41ea46d5f2
142 changed files with 238 additions and 243 deletions
+17 -19
View File
@@ -17,45 +17,43 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
/// Is this object currently processing in the atmos object list?
#define ATMOS_IS_PROCESSING_1 (1<<0)
/// For machines and structures that should not break into parts, eg, holodeck stuff
#define NODECONSTRUCT_1 (1<<1)
/// item has priority to check when entering or leaving
#define ON_BORDER_1 (1<<2)
#define ON_BORDER_1 (1<<1)
///Whether or not this atom shows screentips when hovered over
#define NO_SCREENTIPS_1 (1<<3)
#define NO_SCREENTIPS_1 (1<<2)
/// Prevent clicking things below it on the same turf eg. doors/ fulltile windows
#define PREVENT_CLICK_UNDER_1 (1<<4)
#define PREVENT_CLICK_UNDER_1 (1<<3)
///specifies that this atom is a hologram that isnt real
#define HOLOGRAM_1 (1<<5)
#define HOLOGRAM_1 (1<<4)
///Whether /atom/Initialize() has already run for the object
#define INITIALIZED_1 (1<<6)
#define INITIALIZED_1 (1<<5)
/// was this spawned by an admin? used for stat tracking stuff.
#define ADMIN_SPAWNED_1 (1<<7)
#define ADMIN_SPAWNED_1 (1<<6)
/// should not get harmed if this gets caught by an explosion?
#define PREVENT_CONTENTS_EXPLOSION_1 (1<<8)
#define PREVENT_CONTENTS_EXPLOSION_1 (1<<7)
/// Should this object be paintable with very dark colors?
#define ALLOW_DARK_PAINTS_1 (1<<9)
#define ALLOW_DARK_PAINTS_1 (1<<8)
/// Should this object be unpaintable?
#define UNPAINTABLE_1 (1<<10)
#define UNPAINTABLE_1 (1<<9)
/// Is this atom on top of another atom, and as such has click priority?
#define IS_ONTOP_1 (1<<11)
#define IS_ONTOP_1 (1<<10)
/// Is this atom immune to being dusted by the supermatter?
#define SUPERMATTER_IGNORES_1 (1<<12)
#define SUPERMATTER_IGNORES_1 (1<<11)
/// If a turf can be made dirty at roundstart. This is also used in areas.
#define CAN_BE_DIRTY_1 (1<<13)
#define CAN_BE_DIRTY_1 (1<<12)
/// Should we use the initial icon for display? Mostly used by overlay only objects
#define HTML_USE_INITAL_ICON_1 (1<<14)
#define HTML_USE_INITAL_ICON_1 (1<<13)
/// Can players recolor this in-game via vendors (and maybe more if support is added)?
#define IS_PLAYER_COLORABLE_1 (1<<15)
#define IS_PLAYER_COLORABLE_1 (1<<14)
/// Whether or not this atom has contextual screentips when hovered OVER
#define HAS_CONTEXTUAL_SCREENTIPS_1 (1<<16)
#define HAS_CONTEXTUAL_SCREENTIPS_1 (1<<15)
/// Whether or not this atom is storing contents for a disassociated storage object
#define HAS_DISASSOCIATED_STORAGE_1 (1<<17)
#define HAS_DISASSOCIATED_STORAGE_1 (1<<16)
/// If this atom has experienced a decal element "init finished" sourced appearance update
/// We use this to ensure stacked decals don't double up appearance updates for no rasin
/// Flag as an optimization, don't make this a trait without profiling
/// Yes I know this is a stupid flag, no you can't take him from me
#define DECAL_INIT_UPDATE_EXPERIENCED_1 (1<<18)
#define DECAL_INIT_UPDATE_EXPERIENCED_1 (1<<17)
// Update flags for [/atom/proc/update_appearance]
/// Update the atom's name
+1
View File
@@ -15,6 +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) //! Prevent deconstruction of this object.
// If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support
+1 -3
View File
@@ -126,9 +126,6 @@ DEFINE_BITFIELD(flags_1, list(
"IS_ONTOP_1" = IS_ONTOP_1,
"IS_PLAYER_COLORABLE_1" = IS_PLAYER_COLORABLE_1,
"NO_SCREENTIPS_1" = NO_SCREENTIPS_1,
"NODECONSTRUCT_1" = NODECONSTRUCT_1,
"NO_SCREENTIPS_1" = NO_SCREENTIPS_1,
"NODECONSTRUCT_1" = NODECONSTRUCT_1,
"ON_BORDER_1" = ON_BORDER_1,
"PREVENT_CLICK_UNDER_1" = PREVENT_CLICK_UNDER_1,
"PREVENT_CONTENTS_EXPLOSION_1" = PREVENT_CONTENTS_EXPLOSION_1,
@@ -299,6 +296,7 @@ DEFINE_BITFIELD(obj_flags, list(
"EMAGGED" = EMAGGED,
"IGNORE_DENSITY" = IGNORE_DENSITY,
"IN_USE" = IN_USE,
"NO_DECONSTRUCTION" = NO_DECONSTRUCTION,
"UNIQUE_RENAME" = UNIQUE_RENAME,
))
+1 -1
View File
@@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0
SIGNAL_HANDLER
var/obj/obj_target = target
obj_target.visible_message(span_danger("[obj_target] shatters into a million pieces!"))
obj_target.flags_1 |= NODECONSTRUCT_1 // disable item spawning
obj_target.obj_flags |= NO_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
+1 -1
View File
@@ -35,7 +35,7 @@ Example:
```dm
/obj/structure/table/Initialize(mapload)
if (!(flags_1 & NODECONSTRUCT_1))
if (!(obj_flags & NO_DECONSTRUCTION))
var/static/list/tool_behaviors = list(
TOOL_SCREWDRIVER = list(
SCREENTIP_CONTEXT_RMB = "Disassemble",
+6 -6
View File
@@ -799,7 +799,7 @@
SEND_SIGNAL(src, COMSIG_MACHINERY_REFRESH_PARTS)
/obj/machinery/proc/default_pry_open(obj/item/crowbar, close_after_pry = FALSE, open_density = FALSE, closed_density = TRUE)
. = !(state_open || panel_open || is_operational || (flags_1 & NODECONSTRUCT_1)) && crowbar.tool_behaviour == TOOL_CROWBAR
. = !(state_open || panel_open || is_operational || (obj_flags & NO_DECONSTRUCTION)) && crowbar.tool_behaviour == TOOL_CROWBAR
if(!.)
return
crowbar.play_tool_sound(src, 50)
@@ -809,14 +809,14 @@
close_machine(density_to_set = closed_density)
/obj/machinery/proc/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel = 0, custom_deconstruct = FALSE)
. = (panel_open || ignore_panel) && !(flags_1 & NODECONSTRUCT_1) && crowbar.tool_behaviour == TOOL_CROWBAR
. = (panel_open || ignore_panel) && !(obj_flags & NO_DECONSTRUCTION) && crowbar.tool_behaviour == TOOL_CROWBAR
if(!. || custom_deconstruct)
return
crowbar.play_tool_sound(src, 50)
deconstruct(TRUE)
/obj/machinery/deconstruct(disassembled = TRUE)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return ..() //Just delete us, no need to call anything else.
on_deconstruction()
@@ -874,7 +874,7 @@
/obj/machinery/atom_break(damage_flag)
. = ..()
if(!(machine_stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1))
if(!(machine_stat & BROKEN) && !(obj_flags & NO_DECONSTRUCTION))
set_machine_stat(machine_stat | BROKEN)
SEND_SIGNAL(src, COMSIG_MACHINERY_BROKEN, damage_flag)
update_appearance()
@@ -921,7 +921,7 @@
qdel(atom_part)
/obj/machinery/proc/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver)
if((flags_1 & NODECONSTRUCT_1) || screwdriver.tool_behaviour != TOOL_SCREWDRIVER)
if((obj_flags & NO_DECONSTRUCTION) || screwdriver.tool_behaviour != TOOL_SCREWDRIVER)
return FALSE
screwdriver.play_tool_sound(src, 50)
@@ -948,7 +948,7 @@
if(!istype(replacer_tool))
return FALSE
if((flags_1 & NODECONSTRUCT_1) && !replacer_tool.works_from_distance)
if((obj_flags & NO_DECONSTRUCTION) && !replacer_tool.works_from_distance)
return FALSE
var/shouldplaysound = FALSE
+2 -2
View File
@@ -88,11 +88,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign, 32)
/obj/machinery/barsign/atom_break(damage_flag)
. = ..()
if((machine_stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1))
if((machine_stat & BROKEN) && !(obj_flags & NO_DECONSTRUCTION))
set_sign(new /datum/barsign/hiddensigns/signoff)
/obj/machinery/barsign/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(disassembled)
new disassemble_result(drop_location())
else
+1 -1
View File
@@ -440,7 +440,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0)
toggle_cam(null, 0)
/obj/machinery/camera/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(disassembled)
var/obj/structure/camera_assembly/assembly = assembly_ref?.resolve()
if(!assembly)
@@ -269,7 +269,7 @@
/obj/structure/camera_assembly/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc)
qdel(src)
+2 -2
View File
@@ -63,7 +63,7 @@
/obj/machinery/computer/screwdriver_act(mob/living/user, obj/item/I)
if(..())
return TRUE
if(circuit && !(flags_1&NODECONSTRUCT_1))
if(circuit && !(obj_flags & NO_DECONSTRUCTION))
to_chat(user, span_notice("You start to disconnect the monitor..."))
if(I.use_tool(src, user, time_to_unscrew, volume=50))
deconstruct(TRUE, user)
@@ -100,7 +100,7 @@
/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user)
on_deconstruction()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(circuit) //no circuit, no computer frame
var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc)
A.setDir(dir)
@@ -223,7 +223,7 @@
return TOOL_ACT_TOOLTYPE_SUCCESS
/obj/item/air_sensor/deconstruct(disassembled)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/analyzer(loc)
new /obj/item/stack/sheet/iron(loc, 1)
return ..()
@@ -230,7 +230,7 @@
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
/obj/structure/frame/computer/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(state == 4)
new /obj/item/shard(drop_location())
new /obj/item/shard(drop_location())
+1 -1
View File
@@ -22,7 +22,7 @@
pixel_shift = 32
/obj/machinery/computer/security/telescreen/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new frame_type(loc)
qdel(src)
+2 -2
View File
@@ -15,7 +15,7 @@
/obj/structure/frame/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 5)
if(circuit)
circuit.forceMove(loc)
@@ -410,7 +410,7 @@
return part
/obj/structure/frame/machine/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(state >= 2)
new /obj/item/stack/cable_coil(loc , 5)
+2 -2
View File
@@ -41,7 +41,7 @@
req_access = null
anchored = TRUE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
/datum/track
var/song_name = "generic"
@@ -92,7 +92,7 @@
return ..()
/obj/machinery/jukebox/attackby(obj/item/O, mob/user, params)
if(!active && !(flags_1 & NODECONSTRUCT_1))
if(!active && !(obj_flags & NO_DECONSTRUCTION))
if(O.tool_behaviour == TOOL_WRENCH)
if(!anchored && !isinspace())
to_chat(user,span_notice("You secure [src] to the floor."))
+1 -1
View File
@@ -18,7 +18,7 @@
var/bar_material = METAL
/obj/structure/barricade/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
make_debris()
qdel(src)
+1 -1
View File
@@ -70,7 +70,7 @@
emag_act()
/obj/machinery/digital_clock/deconstruct(disassembled = TRUE)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
if(disassembled)
new /obj/item/wallframe/digital_clock(drop_location())
+2 -2
View File
@@ -1515,7 +1515,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))
flags_1 |= NODECONSTRUCT_1 //If an explosive took us out, don't drop the assembly
obj_flags |= NO_DECONSTRUCTION //If an explosive took us out, don't drop the assembly
. = ..()
if(atom_integrity < (0.75 * max_integrity))
update_appearance()
@@ -1531,7 +1531,7 @@
assembly.update_appearance()
/obj/machinery/door/airlock/deconstruct(disassembled = TRUE, mob/user)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/obj/structure/door_assembly/A
if(assemblytype)
A = new assemblytype(loc)
+1 -1
View File
@@ -659,7 +659,7 @@
correct_state() //So we should re-evaluate our state
/obj/machinery/door/firedoor/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/turf/targetloc = get_turf(src)
if(disassembled || prob(40))
var/obj/structure/firelock_frame/unbuilt_lock = new assemblytype(targetloc)
+3 -3
View File
@@ -302,7 +302,7 @@
/obj/machinery/door/window/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1) && !disassembled)
if(!(obj_flags & NO_DECONSTRUCTION) && !disassembled)
for(var/i in 1 to shards)
drop_debris(new /obj/item/shard(src))
if(rods)
@@ -346,7 +346,7 @@
/obj/machinery/door/window/screwdriver_act(mob/living/user, obj/item/tool)
. = ..()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
if(density || operating)
to_chat(user, span_warning("You need to open the door to access the maintenance panel!"))
@@ -359,7 +359,7 @@
/obj/machinery/door/window/crowbar_act(mob/living/user, obj/item/tool)
. = ..()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
if(!panel_open || density || operating)
return
+1 -1
View File
@@ -262,7 +262,7 @@
playsound(src, break_sound, 50, TRUE)
/obj/machinery/drone_dispenser/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 5)
qdel(src)
+1 -1
View File
@@ -453,7 +453,7 @@
return ..()
/obj/machinery/firealarm/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 1)
if(buildstage > FIRE_ALARM_BUILD_NO_CIRCUIT)
var/obj/item/item = new /obj/item/electronics/firealarm(loc)
+1 -1
View File
@@ -145,7 +145,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/flasher, 26)
power_change()
/obj/machinery/flasher/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(bulb)
bulb.forceMove(loc)
if(disassembled)
+1 -1
View File
@@ -171,7 +171,7 @@
return TRUE
/obj/machinery/harvester/default_pry_open(obj/item/tool) //wew
. = !(state_open || panel_open || (flags_1 & NODECONSTRUCT_1)) && tool.tool_behaviour == TOOL_CROWBAR //We removed is_operational here
. = !(state_open || panel_open || (obj_flags & NO_DECONSTRUCTION)) && tool.tool_behaviour == TOOL_CROWBAR //We removed is_operational here
if(.)
tool.play_tool_sound(src, 50)
visible_message(span_notice("[usr] pries open \the [src]."), span_notice("You pry open [src]."))
+1 -1
View File
@@ -123,7 +123,7 @@ Possible to do for anyone motivated enough:
/obj/machinery/holopad/tutorial
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
on_network = FALSE
///Proximity monitor associated with this atom, needed for proximity checks.
var/datum/proximity_monitor/proximity_monitor
+2 -2
View File
@@ -56,7 +56,7 @@
return TOOL_ACT_TOOLTYPE_SUCCESS
/obj/machinery/igniter/deconstruct(disassembled)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 5)
new /obj/item/assembly/igniter(loc)
return ..()
@@ -201,7 +201,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/sparker, 26)
return TOOL_ACT_TOOLTYPE_SUCCESS
/obj/machinery/sparker/deconstruct(disassembled)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/wallframe/sparker(loc)
return ..()
+1 -1
View File
@@ -165,7 +165,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32)
update_appearance()
/obj/machinery/incident_display/deconstruct()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
new /obj/item/stack/sheet/mineral/titanium(drop_location(), 2)
+1 -1
View File
@@ -218,7 +218,7 @@
set_transfer_rate(transfer_rate > MIN_IV_TRANSFER_RATE ? MIN_IV_TRANSFER_RATE : MAX_IV_TRANSFER_RATE)
/obj/machinery/iv_drip/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc)
qdel(src)
+1 -1
View File
@@ -106,7 +106,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light_switch, 26)
power_change()
/obj/machinery/light_switch/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/wallframe/light_switch(loc)
qdel(src)
+1 -1
View File
@@ -283,7 +283,7 @@
/obj/machinery/limbgrower/fullupgrade //Inherently cheaper organ production. This is to NEVER be inherently emagged, no valids.
desc = "It grows new limbs using Synthflesh. This alien model seems more efficient."
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
circuit = /obj/item/circuitboard/machine/limbgrower/fullupgrade
/obj/machinery/limbgrower/fullupgrade/Initialize(mapload)
@@ -534,7 +534,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30)
/obj/machinery/newscaster/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 2)
new /obj/item/shard(loc)
new /obj/item/shard(loc)
+1 -2
View File
@@ -236,9 +236,8 @@
/obj/machinery/recycler/deathtrap
name = "dangerous old crusher"
obj_flags = CAN_BE_HIT | EMAGGED
obj_flags = CAN_BE_HIT | EMAGGED | NO_DECONSTRUCTION
crush_damage = 120
flags_1 = NODECONSTRUCT_1
/obj/item/paper/guides/recycler
name = "paper - 'garbage duty instructions'"
+1 -1
View File
@@ -395,7 +395,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments)
return ..()
/obj/machinery/requests_console/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/wallframe/requests_console(loc)
qdel(src)
+1 -1
View File
@@ -147,7 +147,7 @@
return FALSE
/obj/machinery/sleeper/default_pry_open(obj/item/I) //wew
. = !(state_open || panel_open || (flags_1 & NODECONSTRUCT_1)) && I.tool_behaviour == TOOL_CROWBAR
. = !(state_open || panel_open || (obj_flags & NO_DECONSTRUCTION)) && I.tool_behaviour == TOOL_CROWBAR
if(.)
I.play_tool_sound(src, 50)
visible_message(span_notice("[usr] pries open [src]."), span_notice("You pry open [src]."))
+1 -1
View File
@@ -73,7 +73,7 @@
return TRUE
/obj/machinery/status_display/deconstruct(disassembled = TRUE)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
if(!disassembled)
new /obj/item/stack/sheet/iron(drop_location(), 2)
+4 -4
View File
@@ -308,7 +308,7 @@
set_occupant(null)
/obj/machinery/suit_storage_unit/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
open_machine()
dump_inventory_contents()
if(card_reader_installed)
@@ -794,21 +794,21 @@
causes the SSU to break due to state_open being set to TRUE at the end, and the panel becoming inaccessible.
*/
/obj/machinery/suit_storage_unit/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver)
if(!(flags_1 & NODECONSTRUCT_1) && screwdriver.tool_behaviour == TOOL_SCREWDRIVER && (uv || locked))
if(!(obj_flags & NO_DECONSTRUCTION) && screwdriver.tool_behaviour == TOOL_SCREWDRIVER && (uv || locked))
to_chat(user, span_warning("You cant open the panel while its [locked ? "locked" : "decontaminating"]"))
return TRUE
return ..()
/obj/machinery/suit_storage_unit/default_pry_open(obj/item/crowbar)//needs to check if the storage is locked.
. = !(state_open || panel_open || is_operational || locked || (flags_1 & NODECONSTRUCT_1)) && crowbar.tool_behaviour == TOOL_CROWBAR
. = !(state_open || panel_open || is_operational || locked || (obj_flags & NO_DECONSTRUCTION)) && crowbar.tool_behaviour == TOOL_CROWBAR
if(.)
crowbar.play_tool_sound(src, 50)
visible_message(span_notice("[usr] pries open \the [src]."), span_notice("You pry open \the [src]."))
open_machine()
/obj/machinery/suit_storage_unit/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct)
. = (!locked && panel_open && !(flags_1 & NODECONSTRUCT_1) && crowbar.tool_behaviour == TOOL_CROWBAR)
. = (!locked && panel_open && !(obj_flags & NO_DECONSTRUCTION) && crowbar.tool_behaviour == TOOL_CROWBAR)
if(.)
return ..()
@@ -20,7 +20,7 @@
/obj/machinery/telecomms/allinone/indestructible
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
/obj/machinery/telecomms/allinone/receive_signal(datum/signal/subspace/signal)
if(!istype(signal) || signal.transmission_method != TRANSMISSION_SUBSPACE) // receives on subspace only
+1 -1
View File
@@ -416,7 +416,7 @@ GLOBAL_LIST_INIT(dye_registry, list(
return attack_hand_secondary(user, modifiers)
/obj/machinery/washing_machine/deconstruct(disassembled = TRUE)
if (!(flags_1 & NODECONSTRUCT_1))
if (!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(drop_location(), 2)
qdel(src)
+1 -1
View File
@@ -72,7 +72,7 @@
push_over()
/obj/item/cardboard_cutout/deconstruct(disassembled)
if(!(flags_1 & (HOLOGRAM_1|NODECONSTRUCT_1)))
if(!(flags_1 & HOLOGRAM_1) || !(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/cardboard(loc, 1)
return ..()
+1 -1
View File
@@ -177,7 +177,7 @@
tool.forceMove(drop_point)
/obj/item/surgery_tray/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
dump_contents()
new /obj/item/stack/rods(drop_location(), 2)
new /obj/item/stack/sheet/mineral/silver(drop_location())
+1 -1
View File
@@ -380,7 +380,7 @@ GLOBAL_LIST_EMPTY(objects_by_id_tag)
/// Try to unwrench an object in a WONDERFUL DYNAMIC WAY
/obj/proc/default_unfasten_wrench(mob/user, obj/item/wrench, time = 20)
if((flags_1 & NODECONSTRUCT_1) || wrench.tool_behaviour != TOOL_WRENCH)
if((obj_flags & NO_DECONSTRUCTION) || wrench.tool_behaviour != TOOL_WRENCH)
return CANT_UNFASTEN
var/turf/ground = get_turf(src)
+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)
@@ -282,7 +282,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
@@ -495,7 +495,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
@@ -646,7 +646,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
@@ -19,7 +19,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
@@ -163,7 +163,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)
@@ -173,7 +173,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
@@ -384,7 +384,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)
@@ -462,7 +462,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
@@ -191,7 +191,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
@@ -851,7 +851,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
@@ -889,7 +889,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)
+3 -3
View File
@@ -29,14 +29,14 @@
/obj/structure/statue/wrench_act(mob/living/user, obj/item/tool)
. = ..()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return FALSE
default_unfasten_wrench(user, tool)
return TOOL_ACT_TOOLTYPE_SUCCESS
/obj/structure/statue/attackby(obj/item/W, mob/living/user, params)
add_fingerprint(user)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(W.tool_behaviour == TOOL_WELDER)
if(!W.tool_start_check(user, amount=1))
return FALSE
@@ -50,7 +50,7 @@
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
/obj/structure/statue/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/amount_mod = disassembled ? 0 : -2
for(var/mat in custom_materials)
var/datum/material/custom_material = GET_MATERIAL_REF(mat)
@@ -90,7 +90,7 @@
return TRUE
/obj/machinery/airalarm/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 2)
if((buildstage == AIR_ALARM_BUILD_NO_WIRES) || (buildstage == AIR_ALARM_BUILD_COMPLETE))
var/obj/item/electronics/airalarm/alarm = new(loc)
@@ -466,7 +466,7 @@
* Called by wrench_act(), create a pipe fitting and remove the pipe
*/
/obj/machinery/atmospherics/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if(can_unwrench)
var/obj/item/pipe/stored = new construction_type(loc, null, dir, src, pipe_color)
stored.set_piping_layer(piping_layer)
@@ -135,7 +135,7 @@
return TRUE
/obj/machinery/meter/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/pipe_meter(loc)
. = ..()
@@ -335,7 +335,7 @@
take_damage(5, BURN, 0)
/obj/machinery/portable_atmospherics/canister/deconstruct(disassembled = TRUE)
if((flags_1 & NODECONSTRUCT_1))
if((obj_flags & NO_DECONSTRUCTION))
qdel(src)
return
if(!(machine_stat & BROKEN))
@@ -1,7 +1,8 @@
/obj/structure/window/reinforced/fulltile/indestructible
name = "robust 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/fulltile/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
@@ -9,8 +10,7 @@
/obj/structure/grille/indestructible
flags_1 = NODECONSTRUCT_1
obj_flags = CONDUCTS_ELECTRICITY
obj_flags = CONDUCTS_ELECTRICITY | NO_DECONSTRUCTION
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/obj/structure/grille/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
+1 -1
View File
@@ -464,7 +464,7 @@
/obj/structure/table/reinforced/ctf
resistance_flags = INDESTRUCTIBLE
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
#define CTF_LOADING_UNLOADED 0
#define CTF_LOADING_LOADING 1
@@ -8,7 +8,7 @@
anchored = FALSE
use_power = NO_POWER_USE
req_access = list(ACCESS_KITCHEN)
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
var/unpacked = FALSE
var/obj/machinery/griddle/stand/cart_griddle
var/obj/machinery/smartfridge/food/cart_smartfridge
@@ -37,7 +37,7 @@
/obj/machinery/griddle/crowbar_act(mob/living/user, obj/item/I)
. = ..()
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
if(default_deconstruction_crowbar(I, ignore_panel = TRUE))
return
@@ -109,7 +109,7 @@
/obj/machinery/grill/deconstruct(disassembled = TRUE)
if(grilled_item)
finish_grill()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 5)
new /obj/item/stack/rods(loc, 5)
..()
@@ -190,7 +190,7 @@
return
/obj/machinery/icecream_vat/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 4)
qdel(src)
+2 -2
View File
@@ -294,12 +294,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.flags_1 |= NODECONSTRUCT_1
holo_object.obj_flags |= NO_DECONSTRUCTION
return
if(ismachinery(holo_object))
var/obj/machinery/holo_machine = holo_object
holo_machine.flags_1 |= NODECONSTRUCT_1
holo_machine.obj_flags |= NO_DECONSTRUCTION
holo_machine.power_change()
if(istype(holo_machine, /obj/machinery/button))
+2 -1
View File
@@ -49,7 +49,8 @@
var/static/banned_books = list(/obj/item/book/manual/random, /obj/item/book/manual/nuclear, /obj/item/book/manual/wiki)
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 | NODECONSTRUCT_1)
to_spawn.flags_1 |= HOLOGRAM_1
to_spawn.obj_flags |= NO_DECONSTRUCTION
return to_spawn
/obj/effect/holodeck_effect/mobspawner
+1 -1
View File
@@ -135,7 +135,7 @@
eventstarted = TRUE
for(var/obj/structure/window/W in currentarea)
if(W.flags_1&NODECONSTRUCT_1) // Just in case: only holo-windows
if(W.obj_flags & NO_DECONSTRUCTION) // Just in case: only holo-windows
qdel(W)
for(var/mob/M in currentarea)
+1 -1
View File
@@ -1159,7 +1159,7 @@
circuit = null
density = FALSE
use_power = NO_POWER_USE
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
unwrenchable = FALSE
self_sustaining_overlay_icon_state = null
maxnutri = 15
@@ -107,7 +107,7 @@
/obj/structure/sink/oil_well/attackby(obj/item/O, mob/living/user, params)
flick("puddle-oil-splash",src)
if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1 & NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel
if(O.tool_behaviour == TOOL_SHOVEL && !(obj_flags & NO_DECONSTRUCTION)) //attempt to deconstruct the puddle with a shovel
to_chat(user, "You fill in the oil well with soil.")
O.play_tool_sound(src)
deconstruct()
@@ -100,7 +100,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sort_list(list(
update_appearance()
/obj/structure/marker_beacon/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/obj/item/stack/marker_beacon/M = new(loc)
M.picked_color = picked_color
M.update_appearance()
@@ -164,7 +164,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/survival_pod/spawne
/obj/item/gps/computer/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]."),
@@ -201,7 +201,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/survival_pod/spawne
light_color = COLOR_VERY_PALE_LIME_GREEN
max_n_of_items = 10
pixel_y = -4
flags_1 = NODECONSTRUCT_1
obj_flags = NO_DECONSTRUCTION
/obj/machinery/smartfridge/survival_pod/Initialize(mapload)
AddElement(/datum/element/update_icon_blocker)
@@ -23,7 +23,7 @@
return ..()
/obj/structure/ore_container/gutlunch_trough/deconstruct(disassembled = TRUE)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
new /obj/item/stack/sheet/mineral/wood(drop_location(), 5)
qdel(src)
@@ -839,7 +839,7 @@
/obj/item/modular_computer/deconstruct(disassembled = TRUE)
remove_pai()
eject_aicard()
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
if (disassembled)
internal_cell?.forceMove(drop_location())
computer_id_slot?.forceMove(drop_location())
@@ -134,7 +134,7 @@
return ..()
/obj/machinery/modular_computer/attackby(obj/item/W as obj, mob/living/user)
if (cpu && !user.combat_mode && !(flags_1 & NODECONSTRUCT_1))
if (cpu && !user.combat_mode && !(obj_flags & NO_DECONSTRUCTION))
return cpu.attackby(W, user)
return ..()
+1 -1
View File
@@ -38,7 +38,7 @@
I.forceMove(src)
/obj/structure/filingcabinet/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/stack/sheet/iron(loc, 2)
for(var/obj/item/I in src)
I.forceMove(loc)
+1 -1
View File
@@ -40,7 +40,7 @@
return ..()
/obj/machinery/ticket_machine/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
new /obj/item/wallframe/ticket_machine(loc)
qdel(src)
+1 -1
View File
@@ -173,7 +173,7 @@
. += framed
/obj/structure/sign/picture_frame/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/obj/item/wallframe/picture/F = new /obj/item/wallframe/picture(loc)
if(framed)
F.displayed = framed
+1 -1
View File
@@ -295,7 +295,7 @@
. += "The cover is closed."
/obj/machinery/power/apc/deconstruct(disassembled = TRUE)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
return
if(!(machine_stat & BROKEN))
set_broken()
+1 -1
View File
@@ -142,7 +142,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri
return ..() // then go ahead and delete the cable
/obj/structure/cable/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(!(obj_flags & NO_DECONSTRUCTION))
var/obj/item/stack/cable_coil/cable = new(drop_location(), 1)
cable.set_cable_color(cable_color)
qdel(src)
+1 -1
View File
@@ -411,7 +411,7 @@
electrocute_mob(user, get_area(src), src, (rand(7,10) * 0.1), TRUE)
/obj/machinery/light/deconstruct(disassembled = TRUE)
if(flags_1 & NODECONSTRUCT_1)
if(obj_flags & NO_DECONSTRUCTION)
qdel(src)
return
var/obj/structure/light_construct/new_light = null

Some files were not shown because too many files have changed in this diff Show More