From 1ae0ad6d92e1fa7b5ad1fde1c78d404117e60ef1 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Fri, 17 Apr 2015 20:32:28 +0200 Subject: [PATCH] Updates the atom_pool, now datum_pool, to handle any datum object. Makes the garbage collector similarly robust. Continues the whole Destroy/qdel porting. --- baystation12.int | 17 +- .../binary_devices/binary_atmos_base.dm | 10 +- .../components/binary_devices/circulator.dm | 4 +- .../components/binary_devices/passive_gate.dm | 2 +- .../components/binary_devices/pipeturbine.dm | 14 +- .../components/binary_devices/pump.dm | 2 +- .../components/omni_devices/filter.dm | 2 +- .../components/omni_devices/mixer.dm | 2 +- .../components/omni_devices/omni_base.dm | 8 +- .../components/portables_connector.dm | 8 +- .../components/trinary_devices/filter.dm | 2 +- .../components/trinary_devices/mixer.dm | 2 +- .../trinary_devices/trinary_base.dm | 14 +- code/ATMOSPHERICS/components/tvalve.dm | 24 +- .../components/unary/heat_exchanger.dm | 2 +- .../components/unary/unary_base.dm | 6 +- .../components/unary/vent_pump.dm | 4 +- .../components/unary/vent_scrubber.dm | 4 +- code/ATMOSPHERICS/components/valve.dm | 16 +- code/ATMOSPHERICS/datum_pipe_network.dm | 4 +- code/ATMOSPHERICS/datum_pipeline.dm | 6 +- code/ATMOSPHERICS/he_pipes.dm | 4 +- code/ATMOSPHERICS/mainspipe.dm | 4 +- code/ATMOSPHERICS/pipes.dm | 66 +- code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm | 4 +- code/FEA/FEA_fire.dm | 2 +- code/FEA/FEA_gas_mixture.dm | 2 +- code/FEA/FEA_system.dm | 4 +- code/FEA/FEA_turf_tile.dm | 2 +- code/TriDimension/Pipes.dm | 8 +- code/TriDimension/Structures.dm | 20 +- code/TriDimension/Turfs.dm | 2 +- code/TriDimension/controller.dm | 2 +- code/ZAS/Fire.dm | 32 +- code/__HELPERS/datum_pool.dm | 9 +- code/__HELPERS/unsorted.dm | 4 +- code/_onclick/oldcode.dm | 2 +- code/_onclick/telekinesis.dm | 14 +- .../ProcessScheduler/core/process.dm | 3 +- code/controllers/Processes/garbage.dm | 84 +- code/controllers/Processes/inactivity.dm | 2 +- code/controllers/_DynamicAreaLighting_TG.dm | 9 - code/controllers/autotransfer.dm | 2 +- code/controllers/communications.dm | 6 +- .../emergency_shuttle_controller.dm | 4 +- code/controllers/failsafe.dm | 2 +- code/controllers/lighting_controller.dm | 2 +- code/controllers/master_controller.dm | 2 +- code/datums/datacore.dm | 4 +- code/datums/datumvars.dm | 6 +- code/datums/disease.dm | 14 +- code/datums/diseases/advance/advance.dm | 4 +- code/datums/diseases/alien_embryo.dm | 4 +- code/datums/diseases/dna_spread.dm | 4 +- .../helper_datums/construction_datum.dm | 4 +- code/datums/helper_datums/teleport.dm | 2 +- code/datums/mind.dm | 12 +- code/datums/modules.dm | 3 +- code/datums/recipe.dm | 4 +- code/defines/obj/weapon.dm | 2 +- code/defines/procs/records.dm | 2 +- code/defines/procs/sd_Alert.dm | 336 ++-- code/game/antagonist/antagonist.dm | 8 +- code/game/antagonist/antagonist_build.dm | 4 +- code/game/antagonist/station/highlander.dm | 2 +- code/game/antagonist/station/rogue_ai.dm | 2 +- code/game/asteroid.dm | 2 +- code/game/atoms.dm | 21 +- code/game/atoms_movable.dm | 20 +- code/game/dna/dna_misc.dm | 12 +- code/game/dna/dna_modifier.dm | 16 +- code/game/dna/genes/monkey.dm | 12 +- code/game/gamemodes/blob/blobs/core.dm | 4 +- code/game/gamemodes/blob/blobs/factory.dm | 4 +- code/game/gamemodes/blob/blobs/node.dm | 4 +- code/game/gamemodes/blob/blobs/shield.dm | 2 +- code/game/gamemodes/blob/theblob.dm | 8 +- .../gamemodes/changeling/changeling_powers.dm | 6 +- code/game/gamemodes/cult/cult_structures.dm | 2 +- code/game/gamemodes/cult/cultify/mob.dm | 8 +- code/game/gamemodes/cult/cultify/obj.dm | 2 +- code/game/gamemodes/cult/hell_universe.dm | 1 + code/game/gamemodes/cult/ritual.dm | 6 +- code/game/gamemodes/cult/runes.dm | 36 +- code/game/gamemodes/cult/talisman.dm | 6 +- .../endgame/supermatter_cascade/blob.dm | 5 +- .../endgame/supermatter_cascade/portal.dm | 2 +- .../endgame/supermatter_cascade/universe.dm | 1 + code/game/gamemodes/events.dm | 4 +- code/game/gamemodes/events/PortalStorm.dm | 52 +- code/game/gamemodes/events/black_hole.dm | 174 +-- code/game/gamemodes/events/clang.dm | 4 +- code/game/gamemodes/events/dust.dm | 7 +- .../gamemodes/events/holidays/Christmas.dm | 2 +- code/game/gamemodes/events/wormholes.dm | 2 +- code/game/gamemodes/gameticker.dm | 8 +- code/game/gamemodes/heist/heist.dm | 4 +- .../gamemodes/malfunction/Malf_Modules.dm | 2 +- code/game/gamemodes/meme/meme.dm | 2 +- code/game/gamemodes/meteor/meteors.dm | 10 +- code/game/gamemodes/objective.dm | 4 +- code/game/gamemodes/sandbox/h_sandbox.dm | 2 +- code/game/gamemodes/setupgame.dm | 10 +- code/game/jobs/jobprocs.dm | 2 +- code/game/machinery/Beacon.dm | 110 +- code/game/machinery/OpTable.dm | 10 +- code/game/machinery/Sleeper.dm | 16 +- code/game/machinery/adv_med.dm | 18 +- code/game/machinery/alarm.dm | 16 +- code/game/machinery/atmoalter/meter.dm | 2 +- .../atmoalter/portable_atmospherics.dm | 4 +- code/game/machinery/autolathe.dm | 2 +- code/game/machinery/autolathe_datums.dm | 2 +- code/game/machinery/bees_items.dm | 2 +- code/game/machinery/biogenerator.dm | 2 +- code/game/machinery/bioprinter.dm | 4 +- code/game/machinery/bots/bots.dm | 6 +- code/game/machinery/bots/cleanbot.dm | 8 +- code/game/machinery/bots/ed209bot.dm | 22 +- code/game/machinery/bots/farmbot.dm | 16 +- code/game/machinery/bots/floorbot.dm | 16 +- code/game/machinery/bots/medbot.dm | 12 +- code/game/machinery/bots/mulebot.dm | 2 +- code/game/machinery/bots/secbot.dm | 18 +- code/game/machinery/camera/camera.dm | 2 +- code/game/machinery/cloning.dm | 10 +- code/game/machinery/computer/ai_core.dm | 8 +- code/game/machinery/computer/atmos_alert.dm | 2 +- .../game/machinery/computer/buildandrepair.dm | 4 +- code/game/machinery/computer/cloning.dm | 8 +- .../game/machinery/computer/communications.dm | 4 +- code/game/machinery/computer/computer.dm | 6 +- code/game/machinery/computer/medical.dm | 6 +- code/game/machinery/computer/pod.dm | 4 +- code/game/machinery/computer/prisonshuttle.dm | 6 +- code/game/machinery/computer/security.dm | 12 +- code/game/machinery/computer/shuttle.dm | 2 +- code/game/machinery/computer/skills.dm | 8 +- .../machinery/computer/specops_shuttle.dm | 8 +- code/game/machinery/computer/station_alert.dm | 2 +- .../computer/syndicate_specops_shuttle.dm | 2 +- .../machinery/computer3/buildandrepair.dm | 6 +- code/game/machinery/computer3/computer.dm | 4 +- .../computer3/computers/HolodeckControl.dm | 6 +- .../machinery/computer3/computers/medical.dm | 4 +- .../machinery/computer3/computers/security.dm | 12 +- code/game/machinery/computer3/laptop.dm | 6 +- code/game/machinery/computer3/lapvend.dm | 8 +- code/game/machinery/computer3/program.dm | 2 +- code/game/machinery/constructable_frame.dm | 4 +- code/game/machinery/cryo.dm | 4 +- code/game/machinery/cryopod.dm | 26 +- code/game/machinery/deployable.dm | 12 +- code/game/machinery/doors/airlock.dm | 8 +- code/game/machinery/doors/door.dm | 14 +- code/game/machinery/doors/firedoor.dm | 6 +- .../game/machinery/doors/firedoor_assembly.dm | 6 +- code/game/machinery/doors/windowdoor.dm | 4 +- code/game/machinery/doppler_array.dm | 2 +- .../embedded_controller_base.dm | 2 +- .../embedded_program_base.dm | 54 +- code/game/machinery/hologram.dm | 14 +- code/game/machinery/jukebox.dm | 4 +- code/game/machinery/kitchen/gibber.dm | 6 +- code/game/machinery/kitchen/microwave.dm | 2 +- code/game/machinery/kitchen/smartfridge.dm | 6 +- code/game/machinery/machinery.dm | 16 +- code/game/machinery/magnet.dm | 4 +- code/game/machinery/newscaster.dm | 8 +- code/game/machinery/nuclear_bomb.dm | 2 +- code/game/machinery/overview.dm | 8 +- code/game/machinery/pipe/construction.dm | 4 +- code/game/machinery/pipe/pipe_dispenser.dm | 6 +- code/game/machinery/portable_tag_turret.dm | 4 +- code/game/machinery/portable_turret.dm | 24 +- code/game/machinery/seed_extractor.dm | 2 +- code/game/machinery/suit_storage_unit.dm | 16 +- code/game/machinery/syndicatebeacon.dm | 2 +- code/game/machinery/telecomms/broadcaster.dm | 2 +- code/game/machinery/telecomms/logbrowser.dm | 8 +- .../telecomms/machine_interactions.dm | 808 +++++----- .../machinery/telecomms/telecomunications.dm | 2 +- code/game/machinery/telecomms/telemonitor.dm | 316 ++-- .../machinery/telecomms/traffic_control.dm | 482 +++--- code/game/machinery/teleporter.dm | 4 +- code/game/machinery/turret_control.dm | 2 +- code/game/machinery/turrets.dm | 18 +- code/game/machinery/vending.dm | 24 +- code/game/machinery/washing_machine.dm | 26 +- code/game/mecha/combat/marauder.dm | 2 +- code/game/mecha/equipment/mecha_equipment.dm | 2 +- code/game/mecha/equipment/tools/tools.dm | 8 +- code/game/mecha/equipment/weapons/weapons.dm | 4 +- code/game/mecha/mech_fabricator.dm | 10 +- code/game/mecha/mecha.dm | 8 +- code/game/mecha/mecha_construction_paths.dm | 58 +- code/game/mecha/mecha_control_console.dm | 6 +- code/game/mecha/mecha_wreckage.dm | 2 +- code/game/mecha/working/ripley.dm | 2 +- code/game/mecha/working/working.dm | 2 +- code/game/objects/buckling.dm | 14 +- code/game/objects/effects/aliens.dm | 30 +- code/game/objects/effects/bump_teleporter.dm | 2 +- code/game/objects/effects/chemsmoke.dm | 8 +- .../objects/effects/decals/Cleanable/fuel.dm | 2 +- .../effects/decals/Cleanable/humans.dm | 6 +- .../objects/effects/decals/Cleanable/misc.dm | 6 +- .../game/objects/effects/decals/contraband.dm | 6 +- code/game/objects/effects/decals/remains.dm | 2 +- .../objects/effects/decals/warning_stripes.dm | 20 +- code/game/objects/effects/effect_system.dm | 62 +- code/game/objects/effects/gibs.dm | 6 +- code/game/objects/effects/landmarks.dm | 105 +- code/game/objects/effects/manifest.dm | 2 +- code/game/objects/effects/mines.dm | 20 +- code/game/objects/effects/overlays.dm | 2 +- code/game/objects/effects/portals.dm | 4 +- .../objects/effects/spawners/bombspawner.dm | 4 +- .../objects/effects/spawners/vaultspawner.dm | 2 +- code/game/objects/effects/spiders.dm | 18 +- code/game/objects/empulse.dm | 4 +- code/game/objects/items.dm | 6 +- code/game/objects/items/apc_frame.dm | 6 +- code/game/objects/items/ashtray.dm | 2 +- code/game/objects/items/bodybag.dm | 8 +- code/game/objects/items/crayons.dm | 4 +- code/game/objects/items/devices/PDA/PDA.dm | 6 +- .../objects/items/devices/chameleonproj.dm | 16 +- code/game/objects/items/devices/flash.dm | 4 +- .../objects/items/devices/lightreplacer.dm | 4 +- code/game/objects/items/devices/modkit.dm | 4 +- code/game/objects/items/devices/paicard.dm | 4 +- code/game/objects/items/devices/powersink.dm | 2 +- .../objects/items/devices/radio/beacon.dm | 4 +- .../objects/items/devices/radio/headset.dm | 5 + .../objects/items/devices/radio/intercom.dm | 2 +- .../game/objects/items/devices/radio/radio.dm | 2 +- .../objects/items/devices/taperecorder.dm | 2 +- code/game/objects/items/devices/uplinks.dm | 4 +- code/game/objects/items/latexballoon.dm | 4 +- code/game/objects/items/robot/robot_parts.dm | 8 +- .../objects/items/robot/robot_upgrades.dm | 2 +- code/game/objects/items/shooting_range.dm | 2 +- .../game/objects/items/stacks/sheets/light.dm | 2 +- code/game/objects/items/stacks/stack.dm | 8 +- code/game/objects/items/stacks/tiles/light.dm | 2 +- code/game/objects/items/toys.dm | 18 +- code/game/objects/items/weapons/RCD.dm | 4 +- code/game/objects/items/weapons/RSF.dm | 2 +- code/game/objects/items/weapons/autopsy.dm | 2 +- code/game/objects/items/weapons/candle.dm | 2 +- code/game/objects/items/weapons/cards_ids.dm | 4 +- .../objects/items/weapons/cigs_lighters.dm | 12 +- .../game/objects/items/weapons/clown_items.dm | 2 +- .../objects/items/weapons/dna_injector.dm | 2 +- code/game/objects/items/weapons/explosives.dm | 2 +- .../objects/items/weapons/extinguisher.dm | 4 +- .../objects/items/weapons/flamethrower.dm | 10 +- .../objects/items/weapons/gift_wrappaper.dm | 10 +- .../items/weapons/grenades/chem_grenade.dm | 2 +- .../items/weapons/grenades/emgrenade.dm | 2 +- .../items/weapons/grenades/flashbang.dm | 12 +- .../items/weapons/grenades/smokebomb.dm | 4 +- .../items/weapons/grenades/spawnergrenade.dm | 2 +- code/game/objects/items/weapons/handcuffs.dm | 2 +- .../objects/items/weapons/implants/implant.dm | 18 +- .../items/weapons/implants/implantchair.dm | 2 +- .../objects/items/weapons/melee/energy.dm | 8 +- code/game/objects/items/weapons/mop.dm | 2 +- code/game/objects/items/weapons/policetape.dm | 4 +- code/game/objects/items/weapons/shards.dm | 2 +- .../objects/items/weapons/storage/backpack.dm | 8 +- .../objects/items/weapons/storage/bags.dm | 4 +- .../objects/items/weapons/storage/boxes.dm | 2 +- .../objects/items/weapons/storage/fancy.dm | 8 +- .../objects/items/weapons/storage/storage.dm | 2 +- .../items/weapons/surgery_limbattachment.dm | 2 +- code/game/objects/items/weapons/syndie.dm | 2 +- .../objects/items/weapons/table_rack_parts.dm | 8 +- .../objects/items/weapons/tanks/jetpack.dm | 4 +- .../game/objects/items/weapons/tanks/tanks.dm | 12 +- code/game/objects/items/weapons/tape.dm | 2 +- code/game/objects/items/weapons/twohanded.dm | 6 +- code/game/objects/items/weapons/weaponry.dm | 30 +- .../objects/items/weapons/weldbackpack.dm | 2 +- code/game/objects/random/random.dm | 2 +- code/game/objects/structures.dm | 18 +- .../structures/crates_lockers/closets.dm | 16 +- .../crates_lockers/closets/l3closet.dm | 5 + .../crates_lockers/closets/secure/personal.dm | 4 +- .../crates_lockers/closets/statue.dm | 6 +- .../crates_lockers/closets/utility_closets.dm | 4 +- .../structures/crates_lockers/crates.dm | 10 +- .../structures/crates_lockers/largecrate.dm | 2 +- code/game/objects/structures/curtains.dm | 2 +- code/game/objects/structures/displaycase.dm | 6 +- code/game/objects/structures/door_assembly.dm | 4 +- code/game/objects/structures/electricchair.dm | 2 +- code/game/objects/structures/false_walls.dm | 22 +- code/game/objects/structures/girders.dm | 36 +- code/game/objects/structures/grille.dm | 10 +- code/game/objects/structures/inflatable.dm | 16 +- code/game/objects/structures/kitchen_spike.dm | 4 +- code/game/objects/structures/lamarr_cage.dm | 6 +- code/game/objects/structures/lattice.dm | 16 +- code/game/objects/structures/mineral_doors.dm | 6 +- code/game/objects/structures/mirror.dm | 2 +- code/game/objects/structures/morgue.dm | 32 +- code/game/objects/structures/signs.dm | 12 +- .../stool_bed_chair_nest/alien_nests.dm | 2 +- .../structures/stool_bed_chair_nest/bed.dm | 18 +- .../structures/stool_bed_chair_nest/chairs.dm | 4 +- .../structures/stool_bed_chair_nest/stools.dm | 12 +- code/game/objects/structures/tables_racks.dm | 12 +- code/game/objects/structures/transit_tubes.dm | 6 +- code/game/objects/structures/watercloset.dm | 12 +- .../objects/structures/windoor_assembly.dm | 6 +- code/game/objects/structures/window.dm | 10 +- code/game/response_team.dm | 2 +- code/game/smoothwall.dm | 2 +- code/game/supplyshuttle.dm | 8 +- code/game/turfs/simulated/floor.dm | 2 +- code/game/turfs/simulated/walls.dm | 10 +- code/game/turfs/simulated/walls_mineral.dm | 2 +- code/game/turfs/simulated/walls_reinforced.dm | 6 +- code/game/turfs/space/space.dm | 18 +- code/game/turfs/turf.dm | 2 +- code/game/vehicles/vehicle.dm | 378 ++--- code/modules/admin/admin_verbs.dm | 2 +- code/modules/admin/holder2.dm | 4 +- code/modules/admin/player_notes.dm | 334 ++-- code/modules/admin/topic.dm | 26 +- code/modules/admin/verbs/BrokenInhands.dm | 2 +- code/modules/admin/verbs/SDQL.dm | 994 ++++++------ code/modules/admin/verbs/SDQL_2.dm | 852 +++++------ code/modules/admin/verbs/buildmode.dm | 6 +- code/modules/admin/verbs/debug.dm | 12 +- code/modules/admin/verbs/mapping.dm | 8 +- code/modules/admin/verbs/randomverbs.dm | 6 +- code/modules/assembly/bomb.dm | 6 +- code/modules/assembly/holder.dm | 2 +- code/modules/assembly/infrared.dm | 24 +- code/modules/assembly/shock_kit.dm | 8 +- code/modules/awaymissions/corpse.dm | 2 +- code/modules/awaymissions/loot.dm | 2 +- code/modules/awaymissions/trigger.dm | 4 +- code/modules/client/client procs.dm | 4 +- code/modules/clothing/clothing.dm | 4 +- code/modules/clothing/spacesuits/breaches.dm | 2 +- .../clothing/spacesuits/rig/modules/combat.dm | 4 +- .../spacesuits/rig/modules/computer.dm | 4 +- .../clothing/spacesuits/rig/modules/ninja.dm | 8 +- code/modules/clothing/spacesuits/rig/rig.dm | 12 +- code/modules/customitems/item_defines.dm | 4 +- code/modules/customitems/item_spawning.dm | 8 +- .../modules/detectivework/scanning_console.dm | 2 +- code/modules/economy/ATM.dm | 2 +- code/modules/economy/cash.dm | 6 +- code/modules/events/carp_migration.dm | 2 +- code/modules/events/rogue_drones.dm | 2 +- code/modules/flufftext/Hallucination.dm | 14 +- code/modules/games/cards.dm | 10 +- code/modules/holodeck/HolodeckControl.dm | 6 +- code/modules/holodeck/HolodeckObjects.dm | 22 +- code/modules/hydroponics/grown.dm | 30 +- code/modules/hydroponics/grown_inedible.dm | 2 +- code/modules/hydroponics/seed.dm | 8 +- code/modules/hydroponics/seed_controller.dm | 2 +- code/modules/hydroponics/seed_machines.dm | 2 +- code/modules/hydroponics/seed_storage.dm | 8 +- .../hydroponics/spreading/spreading.dm | 10 +- .../hydroponics/spreading/spreading_growth.dm | 2 +- code/modules/hydroponics/trays/tray.dm | 10 +- code/modules/hydroponics/trays/tray_apiary.dm | 12 +- code/modules/hydroponics/trays/tray_soil.dm | 10 +- code/modules/hydroponics/trays/tray_tools.dm | 2 +- code/modules/library/lib_items.dm | 10 +- code/modules/library/lib_machines.dm | 2 +- code/modules/liquid/splash_simulation.dm | 16 +- code/modules/maps/swapmaps.dm | 1356 ++++++++--------- code/modules/mining/abandonedcrates.dm | 2 +- code/modules/mining/machine_processing.dm | 2 +- code/modules/mining/machine_stacking.dm | 4 +- code/modules/mining/mine_turfs.dm | 2 +- code/modules/mining/mint.dm | 12 +- code/modules/mining/satchel_ore_boxdm.dm | 2 +- code/modules/mob/dead/observer/logout.dm | 2 +- code/modules/mob/dead/observer/observer.dm | 6 +- code/modules/mob/death.dm | 8 +- code/modules/mob/freelook/ai/eye.dm | 4 +- .../mob/freelook/ai/update_triggers.dm | 2 +- code/modules/mob/freelook/eye.dm | 4 +- .../mob/freelook/mask/update_triggers.dm | 2 +- code/modules/mob/freelook/update_triggers.dm | 6 +- code/modules/mob/freelook/visualnet.dm | 2 +- code/modules/mob/holder.dm | 4 +- code/modules/mob/inventory.dm | 2 +- code/modules/mob/living/blob/blob.dm | 2 +- .../living/carbon/alien/diona/progression.dm | 2 +- .../mob/living/carbon/alien/progression.dm | 2 +- code/modules/mob/living/carbon/brain/MMI.dm | 2 +- code/modules/mob/living/carbon/brain/death.dm | 4 +- code/modules/mob/living/carbon/human/human.dm | 12 +- .../living/carbon/human/human_attackhand.dm | 4 +- .../mob/living/carbon/human/human_organs.dm | 2 +- .../mob/living/carbon/human/inventory.dm | 42 +- code/modules/mob/living/carbon/human/life.dm | 4 +- .../carbon/human/species/outsider/shadow.dm | 2 +- .../living/carbon/human/species/species.dm | 2 +- .../carbon/human/species/station/station.dm | 2 +- .../human/species/xenomorphs/alien_embryo.dm | 10 +- .../species/xenomorphs/alien_facehugger.dm | 2 +- .../human/species/xenomorphs/xenomorphs.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 4 +- .../mob/living/carbon/human/whisper.dm | 2 +- .../mob/living/carbon/metroid/items.dm | 18 +- .../mob/living/carbon/metroid/metroid.dm | 2 +- .../mob/living/carbon/metroid/powers.dm | 2 +- code/modules/mob/living/living.dm | 14 +- code/modules/mob/living/living_defense.dm | 2 +- code/modules/mob/living/say.dm | 2 +- code/modules/mob/living/silicon/ai/ai.dm | 10 +- .../modules/mob/living/silicon/ai/latejoin.dm | 4 +- .../mob/living/silicon/ai/subsystems.dm | 2 +- code/modules/mob/living/silicon/pai/death.dm | 6 +- code/modules/mob/living/silicon/pai/life.dm | 2 +- .../mob/living/silicon/robot/component.dm | 2 +- .../modules/mob/living/silicon/robot/death.dm | 2 +- .../living/silicon/robot/drone/drone_items.dm | 6 +- .../modules/mob/living/silicon/robot/robot.dm | 8 +- .../mob/living/silicon/robot/robot_items.dm | 4 +- .../living/silicon/robot/robot_upgrades.dm | 2 +- code/modules/mob/living/silicon/silicon.dm | 2 +- code/modules/mob/living/simple_animal/bees.dm | 8 +- .../mob/living/simple_animal/borer/borer.dm | 2 +- .../simple_animal/borer/borer_powers.dm | 2 +- .../simple_animal/constructs/constructs.dm | 2 +- .../simple_animal/constructs/soulstone.dm | 16 +- .../mob/living/simple_animal/corpse.dm | 2 +- .../mob/living/simple_animal/friendly/crab.dm | 2 +- .../simple_animal/friendly/farm_animals.dm | 6 +- .../living/simple_animal/friendly/slime.dm | 2 +- .../simple_animal/friendly/spiderbot.dm | 2 +- .../living/simple_animal/hostile/hivebot.dm | 4 +- .../living/simple_animal/hostile/hostile.dm | 2 +- .../mob/living/simple_animal/hostile/mimic.dm | 2 +- .../living/simple_animal/hostile/pirate.dm | 2 +- .../simple_animal/hostile/retaliate/drone.dm | 4 +- .../living/simple_animal/hostile/russian.dm | 2 +- .../living/simple_animal/hostile/syndicate.dm | 4 +- .../mob/living/simple_animal/hostile/tree.dm | 2 +- .../modules/mob/living/simple_animal/shade.dm | 2 +- .../mob/living/simple_animal/simple_animal.dm | 6 +- code/modules/mob/living/simple_animal/worm.dm | 8 +- code/modules/mob/login.dm | 2 +- code/modules/mob/mob.dm | 10 +- code/modules/mob/mob_grab.dm | 22 +- code/modules/mob/mob_transformation_simple.dm | 116 +- code/modules/mob/new_player/logout.dm | 2 +- code/modules/mob/new_player/new_player.dm | 8 +- .../mob/new_player/preferences_setup.dm | 14 +- code/modules/mob/transform_procs.dm | 35 +- code/modules/organs/blood.dm | 2 +- code/modules/organs/organ.dm | 2 +- code/modules/organs/organ_alien.dm | 10 +- code/modules/organs/organ_external.dm | 8 +- code/modules/organs/organ_stump.dm | 2 +- code/modules/overmap/sectors.dm | 2 +- code/modules/overmap/ships/engines/engine.dm | 2 +- code/modules/overmap/ships/engines/thermal.dm | 2 +- code/modules/paperwork/paper.dm | 2 +- code/modules/paperwork/paper_bundle.dm | 8 +- code/modules/paperwork/photocopier.dm | 8 +- code/modules/paperwork/photography.dm | 2 +- .../power/antimatter/containment_jar.dm | 4 +- code/modules/power/antimatter/control.dm | 10 +- code/modules/power/antimatter/engine.dm | 4 +- code/modules/power/antimatter/fuel.dm | 10 +- code/modules/power/antimatter/shielding.dm | 14 +- code/modules/power/apc.dm | 25 +- code/modules/power/batteryrack.dm | 2 +- code/modules/power/breaker_box.dm | 2 +- code/modules/power/cable.dm | 20 +- code/modules/power/cell.dm | 9 +- code/modules/power/engine.dm | 6 +- code/modules/power/lighting.dm | 18 +- code/modules/power/pacman2.dm | 2 +- code/modules/power/port_gen.dm | 10 +- code/modules/power/power.dm | 4 +- code/modules/power/powernet.dm | 6 +- code/modules/power/rust/core_field.dm | 8 +- code/modules/power/rust/core_gen.dm | 2 +- .../rust/fuel_assembly_port_construction.dm | 8 +- code/modules/power/rust/fuel_compressor.dm | 4 +- .../rust/fuel_compressor_construction.dm | 8 +- code/modules/power/rust/radiation.dm | 2 +- .../power/rust/virtual_particle_catcher.dm | 4 +- code/modules/power/singularity/collector.dm | 2 +- .../power/singularity/containment_field.dm | 4 +- code/modules/power/singularity/emitter.dm | 2 +- .../power/singularity/field_generator.dm | 4 +- code/modules/power/singularity/generator.dm | 2 +- code/modules/power/singularity/narsie.dm | 2 - .../particle_accelerator/particle.dm | 8 +- .../particle_accelerator.dm | 20 +- code/modules/power/smes.dm | 4 +- code/modules/power/smes_construction.dm | 4 +- code/modules/power/solar.dm | 20 +- code/modules/power/terminal.dm | 2 +- code/modules/power/tracker.dm | 4 +- code/modules/power/turbine.dm | 4 +- code/modules/projectiles/effects.dm | 8 +- code/modules/projectiles/gun.dm | 2 +- code/modules/projectiles/guns/alien.dm | 2 +- code/modules/projectiles/guns/energy.dm | 2 +- .../projectiles/guns/energy/temperature.dm | 2 +- .../projectiles/guns/launcher/crossbow.dm | 2 +- .../projectiles/guns/launcher/pneumatic.dm | 6 +- .../projectiles/guns/projectile/dartgun.dm | 2 +- code/modules/projectiles/projectile/change.dm | 6 +- .../modules/projectiles/projectile/special.dm | 6 +- code/modules/projectiles/targeting.dm | 12 +- code/modules/reagents/Chemistry-Holder.dm | 4 +- code/modules/reagents/Chemistry-Machinery.dm | 10 +- code/modules/reagents/Chemistry-Reagents.dm | 24 +- code/modules/reagents/Chemistry-Recipes.dm | 2 +- .../reagents/reagent_containers/borghydro.dm | 2 +- .../reagent_containers/food/drinks/bottle.dm | 4 +- .../reagent_containers/food/sandwich.dm | 6 +- .../reagent_containers/food/snacks.dm | 44 +- .../reagent_containers/food/snacks/meat.dm | 2 +- .../reagents/reagent_containers/glass.dm | 4 +- .../reagents/reagent_containers/pill.dm | 10 +- .../reagents/reagent_containers/spray.dm | 6 +- .../reagents/reagent_containers/syringes.dm | 2 +- code/modules/reagents/reagent_dispenser.dm | 12 +- .../recycling/disposal-construction.dm | 2 +- code/modules/recycling/disposal.dm | 26 +- code/modules/recycling/sortingmachinery.dm | 8 +- code/modules/research/circuitprinter.dm | 4 +- code/modules/research/destructive_analyzer.dm | 2 +- code/modules/research/message_server.dm | 10 +- code/modules/research/rdconsole.dm | 14 +- code/modules/research/server.dm | 4 +- .../xenoarchaeology/artifact/artifact.dm | 248 +-- .../artifact/artifact_crystal.dm | 72 +- .../artifact/artifact_replicator.dm | 2 +- .../artifact/artifact_unknown.dm | 732 ++++----- .../effects/unknown_effect_forcefield.dm | 160 +- .../research/xenoarchaeology/finds/finds.dm | 6 +- .../xenoarchaeology/finds/finds_fossils.dm | 8 +- .../xenoarchaeology/finds/finds_misc.dm | 148 +- .../xenoarchaeology/genetics/reconstitutor.dm | 4 +- .../machinery/artifact_harvester.dm | 2 +- .../xenoarchaeology/machinery/coolant.dm | 2 +- .../xenoarchaeology/master_controller.dm | 290 ++-- .../tools/ano_device_battery.dm | 2 +- .../tools/suspension_generator.dm | 6 +- .../tools/tools_coresampler.dm | 2 +- .../tools/tools_depthscanner.dm | 4 +- .../xenoarchaeology/tools/tools_locater.dm | 2 +- code/modules/scripting/Parser/Keywords.dm | 2 +- code/modules/shieldgen/emergency_shield.dm | 30 +- code/modules/shieldgen/energy_field.dm | 2 +- code/modules/shieldgen/sheldwallgen.dm | 12 +- code/modules/shieldgen/shield_gen.dm | 2 +- code/modules/shuttles/shuttle.dm | 2 +- code/modules/spells/aoe_turf/charge.dm | 2 +- .../spells/aoe_turf/conjure/conjure.dm | 2 +- .../spells/aoe_turf/conjure/construct.dm | 4 +- code/modules/spells/spell_code.dm | 2 +- .../modules/spells/targeted/ethereal_jaunt.dm | 4 +- code/modules/supermatter/supermatter.dm | 8 +- code/modules/surgery/robolimbs.dm | 2 +- code/modules/vehicles/cargo_train.dm | 2 +- code/modules/vehicles/vehicle.dm | 6 +- code/modules/virus2/biohazard destroyer.dm | 2 +- code/modules/virus2/items_devices.dm | 4 +- code/world.dm | 2 +- 579 files changed, 6034 insertions(+), 6004 deletions(-) diff --git a/baystation12.int b/baystation12.int index b82874fded5..80d7111a47b 100644 --- a/baystation12.int +++ b/baystation12.int @@ -1,6 +1,11 @@ -// BEGIN_INTERNALS -/* -MAP_ICON_TYPE: 0 -AUTO_FILE_DIR: OFF -*/ -// END_INTERNALS +// BEGIN_INTERNALS +/* +LAST_COMPILE_TIME: 1429517930 +DIR: code code\controllers code\controllers\Processes code\game code\game\objects code\game\objects\effects code\modules code\modules\client code\modules\examine code\modules\examine\descriptions code\modules\mob +AUTO_FILE_DIR: OFF +MAP_ICON_TYPE: 0 +LAST_COMPILE_VERSION: 507.1283 +WINDOW: code\game\atoms.dm;code\game\atoms_movable.dm;code\modules\client\client procs.dm;code\game\objects\buckling.dm +FILE: code\game\objects\buckling.dm +*/ +// END_INTERNALS diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm index 7d57ea6c8f8..37985034b1c 100644 --- a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm +++ b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm @@ -44,15 +44,15 @@ obj/machinery/atmospherics/binary return null - Del() + Destroy() loc = null if(node1) node1.disconnect(src) - del(network1) + qdel(network1) if(node2) node2.disconnect(src) - del(network2) + qdel(network2) node1 = null node2 = null @@ -123,11 +123,11 @@ obj/machinery/atmospherics/binary disconnect(obj/machinery/atmospherics/reference) if(reference==node1) - del(network1) + qdel(network1) node1 = null else if(reference==node2) - del(network2) + qdel(network2) node2 = null update_icon() diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm index a4b720302b2..6627d15d738 100644 --- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm +++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm @@ -112,10 +112,10 @@ else if(node1) node1.disconnect(src) - del(network1) + qdel(network1) if(node2) node2.disconnect(src) - del(network2) + qdel(network2) node1 = null node2 = null diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index b0ef990145c..7604f330639 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -258,4 +258,4 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) diff --git a/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm b/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm index 6923b6d31eb..aead60a3827 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm @@ -38,15 +38,15 @@ if(WEST) initialize_directions = NORTH|SOUTH - Del() + Destroy() loc = null if(node1) node1.disconnect(src) - del(network1) + qdel(network1) if(node2) node2.disconnect(src) - del(network2) + qdel(network2) node1 = null node2 = null @@ -110,10 +110,10 @@ else if(node1) node1.disconnect(src) - del(network1) + qdel(network1) if(node2) node2.disconnect(src) - del(network2) + qdel(network2) node1 = null node2 = null @@ -216,11 +216,11 @@ disconnect(obj/machinery/atmospherics/reference) if(reference==node1) - del(network1) + qdel(network1) node1 = null else if(reference==node2) - del(network2) + qdel(network2) node2 = null return null diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 87eaf9250d5..079dfb76cd0 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -235,4 +235,4 @@ Thus, the two variables affect pump operation are set in New(): "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) diff --git a/code/ATMOSPHERICS/components/omni_devices/filter.dm b/code/ATMOSPHERICS/components/omni_devices/filter.dm index 3478f0f1429..b2966ef4314 100644 --- a/code/ATMOSPHERICS/components/omni_devices/filter.dm +++ b/code/ATMOSPHERICS/components/omni_devices/filter.dm @@ -24,7 +24,7 @@ for(var/datum/omni_port/P in ports) P.air.volume = ATMOS_DEFAULT_VOLUME_FILTER -/obj/machinery/atmospherics/omni/filter/Del() +/obj/machinery/atmospherics/omni/filter/Destroy() input = null output = null filters.Cut() diff --git a/code/ATMOSPHERICS/components/omni_devices/mixer.dm b/code/ATMOSPHERICS/components/omni_devices/mixer.dm index 970a33feee0..f52269ee601 100644 --- a/code/ATMOSPHERICS/components/omni_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/omni_devices/mixer.dm @@ -49,7 +49,7 @@ for(var/datum/omni_port/P in ports) P.air.volume = ATMOS_DEFAULT_VOLUME_MIXER -/obj/machinery/atmospherics/omni/mixer/Del() +/obj/machinery/atmospherics/omni/mixer/Destroy() inputs.Cut() output = null ..() diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm index 3d259ad941a..52ab44fa74e 100644 --- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm +++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm @@ -98,7 +98,7 @@ "\blue You have unfastened \the [src].", \ "You hear a ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) /obj/machinery/atmospherics/omni/attack_hand(user as mob) if(..()) @@ -231,13 +231,13 @@ return null -/obj/machinery/atmospherics/omni/Del() +/obj/machinery/atmospherics/omni/Destroy() loc = null for(var/datum/omni_port/P in ports) if(P.node) P.node.disconnect(src) - del(P.network) + qdel(P.network) P.node = null ..() @@ -292,7 +292,7 @@ /obj/machinery/atmospherics/omni/disconnect(obj/machinery/atmospherics/reference) for(var/datum/omni_port/P in ports) if(reference == P.node) - del(P.network) + qdel(P.network) P.node = null P.update = 1 break diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/ATMOSPHERICS/components/portables_connector.dm index 315de2ce7c3..c33ff799673 100644 --- a/code/ATMOSPHERICS/components/portables_connector.dm +++ b/code/ATMOSPHERICS/components/portables_connector.dm @@ -60,7 +60,7 @@ return null -/obj/machinery/atmospherics/portables_connector/Del() +/obj/machinery/atmospherics/portables_connector/Destroy() loc = null if(connected_device) @@ -68,7 +68,7 @@ if(node) node.disconnect(src) - del(network) + qdel(network) node = null @@ -122,7 +122,7 @@ /obj/machinery/atmospherics/portables_connector/disconnect(obj/machinery/atmospherics/reference) if(reference==node) - del(network) + qdel(network) node = null update_underlays() @@ -152,4 +152,4 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index 7a5fca0fa78..2bd2d0de3ca 100755 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -148,7 +148,7 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) /obj/machinery/atmospherics/trinary/filter/attack_hand(user as mob) // -- TLE diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index c6f5b17613e..a200de25a00 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -120,7 +120,7 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) /obj/machinery/atmospherics/trinary/mixer/attack_hand(user as mob) if(..()) diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm index ff46b9b55f5..3f5d66f2620 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm @@ -52,18 +52,18 @@ obj/machinery/atmospherics/trinary return null - Del() + Destroy() loc = null if(node1) node1.disconnect(src) - del(network1) + qdel(network1) if(node2) node2.disconnect(src) - del(network2) + qdel(network2) if(node3) node3.disconnect(src) - del(network3) + qdel(network3) node1 = null node2 = null @@ -153,15 +153,15 @@ obj/machinery/atmospherics/trinary disconnect(obj/machinery/atmospherics/reference) if(reference==node1) - del(network1) + qdel(network1) node1 = null else if(reference==node2) - del(network2) + qdel(network2) node2 = null else if(reference==node3) - del(network3) + qdel(network3) node3 = null update_underlays() diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm index 68a1036a78f..42556232bdd 100644 --- a/code/ATMOSPHERICS/components/tvalve.dm +++ b/code/ATMOSPHERICS/components/tvalve.dm @@ -101,18 +101,18 @@ return null -/obj/machinery/atmospherics/tvalve/Del() +/obj/machinery/atmospherics/tvalve/Destroy() loc = null if(node1) node1.disconnect(src) - del(network_node1) + qdel(network_node1) if(node2) node2.disconnect(src) - del(network_node2) + qdel(network_node2) if(node3) node3.disconnect(src) - del(network_node3) + qdel(network_node3) node1 = null node2 = null @@ -128,9 +128,9 @@ update_icon() if(network_node1) - del(network_node1) + qdel(network_node1) if(network_node3) - del(network_node3) + qdel(network_node3) build_network() if(network_node1&&network_node2) @@ -153,9 +153,9 @@ update_icon() if(network_node1) - del(network_node1) + qdel(network_node1) if(network_node2) - del(network_node2) + qdel(network_node2) build_network() if(network_node1&&network_node3) @@ -262,15 +262,15 @@ /obj/machinery/atmospherics/tvalve/disconnect(obj/machinery/atmospherics/reference) if(reference==node1) - del(network_node1) + qdel(network_node1) node1 = null else if(reference==node2) - del(network_node2) + qdel(network_node2) node2 = null else if(reference==node3) - del(network_node3) + qdel(network_node3) node2 = null update_underlays() @@ -366,7 +366,7 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) /obj/machinery/atmospherics/tvalve/mirrored icon_state = "map_tvalvem0" diff --git a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm index 7d03ad98838..0e75146adc4 100644 --- a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm +++ b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm @@ -86,4 +86,4 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) \ No newline at end of file + qdel(src) \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm index 6635631f2dd..eea2dba1abf 100644 --- a/code/ATMOSPHERICS/components/unary/unary_base.dm +++ b/code/ATMOSPHERICS/components/unary/unary_base.dm @@ -28,12 +28,12 @@ return null - Del() + Destroy() loc = null if(node) node.disconnect(src) - del(network) + qdel(network) node = null @@ -84,7 +84,7 @@ disconnect(obj/machinery/atmospherics/reference) if(reference==node) - del(network) + qdel(network) node = null update_icon() diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 0f0d7095fa8..25a219ba016 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -414,9 +414,9 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) -/obj/machinery/atmospherics/unary/vent_pump/Del() +/obj/machinery/atmospherics/unary/vent_pump/Destroy() if(initial_loc) initial_loc.air_vent_info -= id_tag initial_loc.air_vent_names -= id_tag diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 63a0549acc8..9d690bad3ac 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -270,7 +270,7 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) /obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user) if(..(user, 1)) @@ -278,7 +278,7 @@ else user << "You are too far away to read the gauge." -/obj/machinery/atmospherics/unary/vent_scrubber/Del() +/obj/machinery/atmospherics/unary/vent_scrubber/Destroy() if(initial_loc) initial_loc.air_scrub_info -= id_tag initial_loc.air_scrub_names -= id_tag diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index 9cc6f7451c5..49ae4af2cf2 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -73,15 +73,15 @@ return null -/obj/machinery/atmospherics/valve/Del() +/obj/machinery/atmospherics/valve/Destroy() loc = null if(node1) node1.disconnect(src) - del(network_node1) + qdel(network_node1) if(node2) node2.disconnect(src) - del(network_node2) + qdel(network_node2) node1 = null node2 = null @@ -113,9 +113,9 @@ update_icon() if(network_node1) - del(network_node1) + qdel(network_node1) if(network_node2) - del(network_node2) + qdel(network_node2) build_network() @@ -214,11 +214,11 @@ /obj/machinery/atmospherics/valve/disconnect(obj/machinery/atmospherics/reference) if(reference==node1) - del(network_node1) + qdel(network_node1) node1 = null else if(reference==node2) - del(network_node2) + qdel(network_node2) node2 = null update_underlays() @@ -310,7 +310,7 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe(loc, make_from=src) - del(src) + qdel(src) /obj/machinery/atmospherics/valve/examine(mob/user) ..() diff --git a/code/ATMOSPHERICS/datum_pipe_network.dm b/code/ATMOSPHERICS/datum_pipe_network.dm index 4098c15c31b..7fe586733ca 100644 --- a/code/ATMOSPHERICS/datum_pipe_network.dm +++ b/code/ATMOSPHERICS/datum_pipe_network.dm @@ -31,7 +31,7 @@ datum/pipe_network //Notes: Assuming that members will add themselves to appropriate roster in network_expand() if(!start_normal) - del(src) + qdel(src) start_normal.network_expand(src, reference) @@ -40,7 +40,7 @@ datum/pipe_network if((normal_members.len>0)||(line_members.len>0)) pipe_networks += src else - del(src) + qdel(src) proc/merge(datum/pipe_network/giver) if(giver==src) return 0 diff --git a/code/ATMOSPHERICS/datum_pipeline.dm b/code/ATMOSPHERICS/datum_pipeline.dm index 662376e9b4d..f4f4e379905 100644 --- a/code/ATMOSPHERICS/datum_pipeline.dm +++ b/code/ATMOSPHERICS/datum_pipeline.dm @@ -9,13 +9,13 @@ datum/pipeline var/alert_pressure = 0 - Del() + Destroy() if(network) - del(network) + qdel(network) if(air && air.volume) temporarily_store_air() - del(air) + qdel(air) ..() diff --git a/code/ATMOSPHERICS/he_pipes.dm b/code/ATMOSPHERICS/he_pipes.dm index cb11410f865..d78bb828e24 100644 --- a/code/ATMOSPHERICS/he_pipes.dm +++ b/code/ATMOSPHERICS/he_pipes.dm @@ -44,7 +44,7 @@ obj/machinery/atmospherics/pipe/simple/heat_exchanging node2 = target break if(!node1 && !node2) - del(src) + qdel(src) return update_icon() @@ -141,7 +141,7 @@ obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction break if(!node1&&!node2) - del(src) + qdel(src) return update_icon() diff --git a/code/ATMOSPHERICS/mainspipe.dm b/code/ATMOSPHERICS/mainspipe.dm index d70d2bc53e5..a381b28c37f 100644 --- a/code/ATMOSPHERICS/mainspipe.dm +++ b/code/ATMOSPHERICS/mainspipe.dm @@ -99,7 +99,7 @@ obj/machinery/atmospherics/mains_pipe for(var/obj/machinery/atmospherics/pipe/mains_component/node in nodes) node.disconnect() - Del() + Destroy() disconnect() ..() @@ -152,7 +152,7 @@ obj/machinery/atmospherics/mains_pipe/simple else if(!nodes[1]&&!nodes[2]) - del(src) //TODO: silent deleting looks weird + qdel(src) //TODO: silent deleting looks weird var/have_node1 = nodes[1]?1:0 var/have_node2 = nodes[2]?1:0 icon_state = "exposed[have_node1][have_node2][invisibility ? "-f" : "" ]" diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 92ad93c7d09..2315e856fd1 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -30,7 +30,7 @@ /obj/machinery/atmospherics/pipe/proc/check_pressure(pressure) //Return 1 if parent should continue checking other pipes - //Return null if parent should stop checking other pipes. Recall: del(src) will by default return null + //Return null if parent should stop checking other pipes. Recall: qdel(src) will by default return null return 1 @@ -62,8 +62,8 @@ return parent.return_network(reference) -/obj/machinery/atmospherics/pipe/Del() - del(parent) +/obj/machinery/atmospherics/pipe/Destroy() + qdel(parent) if(air_temporary) loc.assume_air(air_temporary) @@ -101,8 +101,8 @@ for (var/obj/machinery/meter/meter in T) if (meter.target == src) new /obj/item/pipe_meter(T) - del(meter) - del(src) + qdel(meter) + qdel(src) /obj/machinery/atmospherics/proc/change_color(var/new_color) //only pass valid pipe colors please ~otherwise your pipe will turn invisible @@ -219,7 +219,7 @@ var/datum/effect/effect/system/smoke_spread/smoke = new smoke.set_up(1,0, src.loc, 0) smoke.start() - del(src) + qdel(src) /obj/machinery/atmospherics/pipe/simple/proc/normalize_dir() if(dir==3) @@ -227,7 +227,7 @@ else if(dir==12) set_dir(4) -/obj/machinery/atmospherics/pipe/simple/Del() +/obj/machinery/atmospherics/pipe/simple/Destroy() if(node1) node1.disconnect(src) if(node2) @@ -260,8 +260,8 @@ for (var/obj/machinery/meter/meter in T) if (meter.target == src) new /obj/item/pipe_meter(T) - del(meter) - del(src) + qdel(meter) + qdel(src) else if(node1 && node2) overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]intact[icon_connect_type]") else @@ -294,7 +294,7 @@ break if(!node1 && !node2) - del(src) + qdel(src) return var/turf/T = get_turf(src) @@ -305,12 +305,12 @@ /obj/machinery/atmospherics/pipe/simple/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node1 = null if(reference == node2) if(istype(node2, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node2 = null update_icon() @@ -459,7 +459,7 @@ else . = PROCESS_KILL -/obj/machinery/atmospherics/pipe/manifold/Del() +/obj/machinery/atmospherics/pipe/manifold/Destroy() if(node1) node1.disconnect(src) if(node2) @@ -472,17 +472,17 @@ /obj/machinery/atmospherics/pipe/manifold/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node1 = null if(reference == node2) if(istype(node2, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node2 = null if(reference == node3) if(istype(node3, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node3 = null update_icon() @@ -511,8 +511,8 @@ for (var/obj/machinery/meter/meter in T) if (meter.target == src) new /obj/item/pipe_meter(T) - del(meter) - del(src) + qdel(meter) + qdel(src) else overlays.Cut() overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "core" + icon_connect_type) @@ -578,7 +578,7 @@ break if(!node1 && !node2 && !node3) - del(src) + qdel(src) return var/turf/T = get_turf(src) @@ -701,7 +701,7 @@ else . = PROCESS_KILL -/obj/machinery/atmospherics/pipe/manifold4w/Del() +/obj/machinery/atmospherics/pipe/manifold4w/Destroy() if(node1) node1.disconnect(src) if(node2) @@ -716,22 +716,22 @@ /obj/machinery/atmospherics/pipe/manifold4w/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node1 = null if(reference == node2) if(istype(node2, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node2 = null if(reference == node3) if(istype(node3, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node3 = null if(reference == node4) if(istype(node4, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node4 = null update_icon() @@ -762,8 +762,8 @@ for (var/obj/machinery/meter/meter in T) if (meter.target == src) new /obj/item/pipe_meter(T) - del(meter) - del(src) + qdel(meter) + qdel(src) else overlays.Cut() overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "4way" + icon_connect_type) @@ -837,7 +837,7 @@ break if(!node1 && !node2 && !node3 && !node4) - del(src) + qdel(src) return var/turf/T = get_turf(src) @@ -958,7 +958,7 @@ ..() else . = PROCESS_KILL -/obj/machinery/atmospherics/pipe/cap/Del() +/obj/machinery/atmospherics/pipe/cap/Destroy() if(node) node.disconnect(src) @@ -967,7 +967,7 @@ /obj/machinery/atmospherics/pipe/cap/disconnect(obj/machinery/atmospherics/reference) if(reference == node) if(istype(node, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node = null update_icon() @@ -1074,7 +1074,7 @@ else . = PROCESS_KILL -/obj/machinery/atmospherics/pipe/tank/Del() +/obj/machinery/atmospherics/pipe/tank/Destroy() if(node1) node1.disconnect(src) @@ -1108,7 +1108,7 @@ /obj/machinery/atmospherics/pipe/tank/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node1 = null update_underlays() @@ -1258,7 +1258,7 @@ else parent.mingle_with_turf(loc, volume) -/obj/machinery/atmospherics/pipe/vent/Del() +/obj/machinery/atmospherics/pipe/vent/Destroy() if(node1) node1.disconnect(src) @@ -1290,7 +1290,7 @@ /obj/machinery/atmospherics/pipe/vent/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node1 = null update_icon() diff --git a/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm b/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm index 4c173b7b7ea..7374963fba8 100644 --- a/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm +++ b/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm @@ -342,7 +342,7 @@ obj/machinery/atmospherics set src in world set category = "Minor" - del(src) + qdel(src) pipeline_data() set src in world @@ -487,7 +487,7 @@ obj/window destroy() set category = "Minor" set src in world - del(src) + qdel(src) mob sight = SEE_OBJS|SEE_TURFS diff --git a/code/FEA/FEA_fire.dm b/code/FEA/FEA_fire.dm index b7a8d42fa5e..fe18350da04 100644 --- a/code/FEA/FEA_fire.dm +++ b/code/FEA/FEA_fire.dm @@ -171,7 +171,7 @@ return /* -/obj/effect/hotspot/Del() +/obj/effect/hotspot/Destroy() if (istype(loc, /turf/simulated)) DestroyTurf() ..() diff --git a/code/FEA/FEA_gas_mixture.dm b/code/FEA/FEA_gas_mixture.dm index 6beeffc1870..a2a1af194e4 100644 --- a/code/FEA/FEA_gas_mixture.dm +++ b/code/FEA/FEA_gas_mixture.dm @@ -346,7 +346,7 @@ What are the archived variables for? trace_gases += corresponding corresponding.moles += trace_gas.moles*giver.group_multiplier/group_multiplier - // del(giver) + // qdel(giver) return 1 remove(amount) diff --git a/code/FEA/FEA_system.dm b/code/FEA/FEA_system.dm index 574fd1ba268..6a3dfe0f8b2 100644 --- a/code/FEA/FEA_system.dm +++ b/code/FEA/FEA_system.dm @@ -291,7 +291,7 @@ datum var/turf/simulated/T = turf T.parent = null turfs += T - del(turf_AG) + qdel(turf_AG) for(var/turf/simulated/S in turfs) //Have old members try to form new groups if(!S.parent) @@ -306,7 +306,7 @@ datum for(var/obj/movable/floor/OM in object_AG.members) OM.parent = null movable_objects += OM - del(object_AG) + qdel(object_AG) for(var/obj/movable/floor/OM in movable_objects) //Have old members try to form new groups if(!OM.parent) diff --git a/code/FEA/FEA_turf_tile.dm b/code/FEA/FEA_turf_tile.dm index 981d0b023c5..ba506f5e7ea 100644 --- a/code/FEA/FEA_turf_tile.dm +++ b/code/FEA/FEA_turf_tile.dm @@ -14,7 +14,7 @@ atom/movable/proc/experience_pressure_difference(pressure_difference, direction) turf assume_air(datum/gas_mixture/giver) //use this for machines to adjust air - del(giver) + qdel(giver) return 0 return_air() diff --git a/code/TriDimension/Pipes.dm b/code/TriDimension/Pipes.dm index d6b87f2909e..b1ffef17f54 100644 --- a/code/TriDimension/Pipes.dm +++ b/code/TriDimension/Pipes.dm @@ -80,7 +80,7 @@ obj/machinery/atmospherics/pipe/zpipe/proc/burst() var/datum/effect/effect/system/smoke_spread/smoke = new smoke.set_up(1,0, src.loc, 0) smoke.start() - del(src) + qdel(src) // NOT qdel. obj/machinery/atmospherics/pipe/zpipe/proc/normalize_dir() if(dir==3) @@ -88,7 +88,7 @@ obj/machinery/atmospherics/pipe/zpipe/proc/normalize_dir() else if(dir==12) set_dir(4) -obj/machinery/atmospherics/pipe/zpipe/Del() +obj/machinery/atmospherics/pipe/zpipe/Destroy() if(node1) node1.disconnect(src) if(node2) @@ -104,12 +104,12 @@ obj/machinery/atmospherics/pipe/zpipe/update_icon() obj/machinery/atmospherics/pipe/zpipe/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node1 = null if(reference == node2) if(istype(node2, /obj/machinery/atmospherics/pipe)) - del(parent) + qdel(parent) node2 = null return null diff --git a/code/TriDimension/Structures.dm b/code/TriDimension/Structures.dm index 554853535a7..e9f0f9e82fd 100644 --- a/code/TriDimension/Structures.dm +++ b/code/TriDimension/Structures.dm @@ -41,18 +41,18 @@ switch(severity) if(1.0) if(icon_state == "ladderup" && prob(10)) - Del() + qdel(src) if(2.0) if(prob(50)) - Del() + qdel(src) if(3.0) - Del() + qdel(src) return*/ - Del() + Destroy() spawn(1) if(target && icon_state == "ladderdown") - del target + qdel(target) return ..() attackby(obj/item/C as obj, mob/user as mob) @@ -78,7 +78,7 @@ if(!blocked && !istype(below, /turf/simulated/wall)) var/obj/multiz/ladder/X = new /obj/multiz/ladder(below) S.amount = S.amount - 2 - if(S.amount == 0) S.Del() + if(S.amount == 0) qdel(S) X.icon_state = "ladderup" connect() user << "You finish the ladder." @@ -99,7 +99,7 @@ if(target) var/obj/item/stack/rods/R = new /obj/item/stack/rods(target.loc) R.amount = 2 - target.Del() + qdel(Target) user << "You remove the bolts anchoring the ladder." return @@ -117,7 +117,7 @@ var/obj/item/stack/sheet/metal/S = new /obj/item/stack/sheet/metal( src ) S.amount = 2 user << "You remove the ladder and close the hole." - Del() + qdel(src) else user << "You need more welding fuel to complete this task." return @@ -167,7 +167,7 @@ attack_hand(var/mob/M) if(!target || !istype(target.loc, /turf)) - del src + qdel(src) if(active) M << "That [src] is being used." @@ -185,7 +185,7 @@ spawn(7) if(!target || !istype(target.loc, /turf)) - del src + qdel(src) if(M.z == z && get_dist(src,M) <= 1) var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] M.visible_message("\blue \The [M] scurries [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You scramble [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and a hatch sealing.") diff --git a/code/TriDimension/Turfs.dm b/code/TriDimension/Turfs.dm index 89920680183..43e33ed3c28 100644 --- a/code/TriDimension/Turfs.dm +++ b/code/TriDimension/Turfs.dm @@ -120,7 +120,7 @@ var/obj/item/stack/tile/plasteel/S = C if (S.get_amount() < 1) return - del(L) + qdel(L) playsound(src.loc, 'sound/weapons/Genhit.ogg', 50, 1) S.build(src) S.use(1) diff --git a/code/TriDimension/controller.dm b/code/TriDimension/controller.dm index 528c2c76ba7..e336e417b6e 100644 --- a/code/TriDimension/controller.dm +++ b/code/TriDimension/controller.dm @@ -28,7 +28,7 @@ initialized = 1 return 1 -/obj/effect/landmark/zcontroller/Del() +/obj/effect/landmark/zcontroller/Destroy() processing_objects.Remove(src) return diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm index 5dd0ac3cd31..688f71985d4 100644 --- a/code/ZAS/Fire.dm +++ b/code/ZAS/Fire.dm @@ -78,11 +78,11 @@ turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) fire = new(src, fl) air_master.active_fire_zones |= zone - + var/obj/effect/decal/cleanable/liquid_fuel/fuel = locate() in src zone.fire_tiles |= src if(fuel) zone.fuel_objs += fuel - + return 0 /obj/fire @@ -162,7 +162,7 @@ turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) ..() if(!istype(loc, /turf)) - del src + qdel(src) set_dir(pick(cardinal)) SetLuminosity(3) @@ -170,7 +170,7 @@ turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) air_master.active_hotspots.Add(src) -/obj/fire/Del() +/obj/fire/Destroy() if (istype(loc, /turf/simulated)) RemoveFire() @@ -179,7 +179,7 @@ turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) /obj/fire/proc/RemoveFire() if (istype(loc, /turf)) SetLuminosity(0) - + loc = null air_master.active_hotspots.Remove(src) @@ -227,22 +227,22 @@ turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) //determine how far the reaction can progress var/reaction_limit = min(total_oxidizers*(FIRE_REACTION_FUEL_AMOUNT/FIRE_REACTION_OXIDIZER_AMOUNT), total_fuel) //stoichiometric limit - + //determine the actual rate of reaction, as measured by the amount of fuel reacting - + //vapour fuels are extremely volatile! The reaction progress is a percentage of the total fuel (similar to old zburn). var/gas_reaction_progress = max(0.2*group_multiplier, (firelevel/vsc.fire_firelevel_multiplier)*gas_fuel)*FIRE_GAS_BURNRATE_MULT //liquid fuels are not as volatile, and the reaction progress depends on the size of the area that is burning (which is sort of accounted for by firelevel). Having more fuel means a longer burn. var/liquid_reaction_progress = (firelevel/vsc.fire_firelevel_multiplier)*FIRE_LIQUID_BURNRATE_MULT - + //world << "liquid_reaction_progress = [liquid_reaction_progress]" //world << "gas_reaction_progress = [gas_reaction_progress]" - + var/total_reaction_progress = gas_reaction_progress + liquid_reaction_progress var/used_fuel = min(total_reaction_progress, reaction_limit) var/used_oxidizers = used_fuel*(FIRE_REACTION_OXIDIZER_AMOUNT/FIRE_REACTION_FUEL_AMOUNT) //world << "used_fuel = [used_fuel]; used_oxidizers = [used_oxidizers]; reaction_limit=[reaction_limit]" - + //if the reaction is progressing too slow then it isn't self-sustaining anymore and burns out if(zone && zone.fuel_objs.len) if(used_fuel <= FIRE_LIQUD_MIN_BURNRATE) @@ -250,13 +250,13 @@ turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) else if(used_fuel <= FIRE_GAS_MIN_BURNRATE*group_multiplier) //purely gas fires have more stringent criteria return 0 - + //*** Remove fuel and oxidizer, add carbon dioxide and heat - + //remove and add gasses as calculated var/used_gas_fuel = min(used_fuel*(gas_reaction_progress/total_reaction_progress), gas_fuel) //remove in proportion to the relative reaction progress var/used_liquid_fuel = between(0, used_fuel-used_gas_fuel, liquid_fuel) - + //remove_by_flag() and adjust_gas() handle the group_multiplier for us. remove_by_flag(XGM_GAS_OXIDIZER, used_oxidizers) remove_by_flag(XGM_GAS_FUEL, used_gas_fuel) @@ -272,14 +272,14 @@ turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) if(!istype(fuel)) zone.fuel_objs -= fuel continue - + fuel.amount -= fuel_to_remove if(fuel.amount <= 0) zone.fuel_objs -= fuel if(liquidonly) var/turf/T = fuel.loc - if(istype(T) && T.fire) del(T.fire) - del(fuel) + if(istype(T) && T.fire) qdel(T.fire) + qdel(fuel) //calculate the energy produced by the reaction and then set the new temperature of the mix temperature = (starting_energy + vsc.fire_fuel_energy_release * used_fuel) / heat_capacity() diff --git a/code/__HELPERS/datum_pool.dm b/code/__HELPERS/datum_pool.dm index a29f3f752f0..9f21fbae6e2 100644 --- a/code/__HELPERS/datum_pool.dm +++ b/code/__HELPERS/datum_pool.dm @@ -50,7 +50,7 @@ var/global/list/GlobalPool = list() var/datum/D = pick_n_take(GlobalPool[get_type]) if(D) D.ResetVars() - D.Prepare() + D.Prepare(second_arg) return D return 0 @@ -60,9 +60,9 @@ var/global/list/GlobalPool = list() if(length(GlobalPool[D.type]) > ATOM_POOL_COUNT) #ifdef DEBUG_ATOM_POOL - world << text("DEBUG_DATUM_POOL: PlaceInPool([]) exceeds [] discarding...", D.type, ATOM_POOL_COUNT) + world << text("DEBUG_DATUM_POOL: PlaceInPool([]) exceeds []. Discarding.", D.type, ATOM_POOL_COUNT) #endif - qdel(D) + del(D) return if(D in GlobalPool[D.type]) @@ -71,7 +71,7 @@ var/global/list/GlobalPool = list() if(!GlobalPool[D.type]) GlobalPool[D.type] = list() - GlobalPool[D.type] |= D + GlobalPool[D.type] += D D.Destroy() D.ResetVars() @@ -86,7 +86,6 @@ var/global/list/GlobalPool = list() /atom/movable/Prepare(args) if(islist(args)) loc = args[1] - else loc = args ..() diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 72d85a67b50..8895e67c2a9 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -631,7 +631,7 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl animation.master = target flick(flick_anim, animation) sleep(max(sleeptime, 15)) - del(animation) + qdel(animation) //Will return the contents of an atom recursivly to a depth of 'searchDepth' /atom/proc/GetAllContents(searchDepth = 5) @@ -902,7 +902,7 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl X.icon = 'icons/turf/shuttle.dmi' X.icon_state = replacetext(O.icon_state, "_f", "_s") // revert the turf to the old icon_state X.name = "wall" - del(O) // prevents multiple shuttle corners from stacking + qdel(O) // prevents multiple shuttle corners from stacking continue if(!istype(O,/obj)) continue O.loc = X diff --git a/code/_onclick/oldcode.dm b/code/_onclick/oldcode.dm index ce6a238329d..890d67923ab 100644 --- a/code/_onclick/oldcode.dm +++ b/code/_onclick/oldcode.dm @@ -253,7 +253,7 @@ See the previous More info, for... more info... */ - //del(D) + //qdel(D) // Garbage Collect Dummy D.loc = null D = null diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 88c9feca369..ae57895cd6a 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -80,14 +80,14 @@ var/const/tk_maxrange = 15 if(focus.Adjacent(loc)) focus.loc = loc - del(src) + qdel(src) return //stops TK grabs being equipped anywhere but into hands equipped(var/mob/user, var/slot) if( (slot == slot_l_hand) || (slot== slot_r_hand) ) return - del(src) + qdel(src) return @@ -99,10 +99,10 @@ var/const/tk_maxrange = 15 if(!target || !user) return if(last_throw+3 > world.time) return if(!host || host != user) - del(src) + qdel(src) return if(!(TK in host.mutations)) - del(src) + qdel(src) return if(isobj(target) && !isturf(target.loc)) return @@ -152,7 +152,7 @@ var/const/tk_maxrange = 15 proc/focus_object(var/obj/target, var/mob/living/user) if(!istype(target,/obj)) return//Cant throw non objects atm might let it do mobs later if(target.anchored || !isturf(target.loc)) - del src + qdel(src) return focus = target update_icon() @@ -162,7 +162,7 @@ var/const/tk_maxrange = 15 proc/apply_focus_overlay() if(!focus) return - var/obj/effect/overlay/O = new /obj/effect/overlay(locate(focus.x,focus.y,focus.z)) + var/obj/effect/overlay/O = PoolOrNew(/obj/effect/overlay, locate(focus.x,focus.y,focus.z)) O.name = "sparkles" O.anchored = 1 O.density = 0 @@ -172,7 +172,7 @@ var/const/tk_maxrange = 15 O.icon_state = "nothing" flick("empdisable",O) spawn(5) - O.delete() + qdel(O) return diff --git a/code/controllers/ProcessScheduler/core/process.dm b/code/controllers/ProcessScheduler/core/process.dm index 89048113d30..95adbb09194 100644 --- a/code/controllers/ProcessScheduler/core/process.dm +++ b/code/controllers/ProcessScheduler/core/process.dm @@ -184,8 +184,7 @@ datum/controller/process/proc/kill() killed = TRUE - // This should del - del(src) + del(src) // This should del datum/controller/process/proc/scheck(var/tickId = 0) if (killed) diff --git a/code/controllers/Processes/garbage.dm b/code/controllers/Processes/garbage.dm index 8ffbfa1caed..b9a6c7017b2 100644 --- a/code/controllers/Processes/garbage.dm +++ b/code/controllers/Processes/garbage.dm @@ -1,7 +1,9 @@ var/datum/controller/process/garbage_collector/garbage_collector +var/list/delayed_garbage = list() -// #define GC_DEBUG 1 +#define GC_DEBUG 1 /datum/controller/process/garbage_collector + var/garbage_collect = 1 // Whether or not to actually do work var/collection_timeout = 300 //deciseconds to wait to let running procs finish before we just say fuck it and force del() the object var/max_checks_multiplier = 5 //multiplier (per-decisecond) for calculating max number of tests per tick. These tests check if our GC'd objects are actually GC'd var/max_forcedel_multiplier = 1 //multiplier (per-decisecond) for calculating max number of force del() calls per tick. @@ -16,14 +18,21 @@ var/datum/controller/process/garbage_collector/garbage_collector /datum/controller/process/garbage_collector/setup() name = "garbage" - schedule_interval = 20 // every 2 seconds + schedule_interval = 6 SECONDS if(!garbage_collector) garbage_collector = src -/datum/controller/process/garbage_collector/doWork() - dels = 0 + for(var/garbage in delayed_garbage) + qdel(garbage) + delayed_garbage.Cut() + delayed_garbage = null +/datum/controller/process/garbage_collector/doWork() + if(!garbage_collect) + return + + dels = 0 var/time_to_kill = world.time - collection_timeout // Anything qdel() but not GC'd BEFORE this time needs to be manually del() var/checkRemain = max_checks_multiplier * schedule_interval var/maxDels = max_forcedel_multiplier * schedule_interval @@ -31,21 +40,21 @@ var/datum/controller/process/garbage_collector/garbage_collector while(destroyed.len && --checkRemain >= 0) if(dels >= maxDels) #ifdef GC_DEBUG - testing("GC: Reached max force dels per tick [dels] vs [GC_FORCE_DEL_PER_TICK]") + testing("GC: Reached max force dels per tick [dels] vs [maxDels]") #endif break // Server's already pretty pounded, everything else can wait 2 seconds var/refID = destroyed[1] var/GCd_at_time = destroyed[refID] if(GCd_at_time > time_to_kill) #ifdef GC_DEBUG - testing("GC: [refID] not old enough, breaking at [world.time] for [GCd_at_time - time_to_kill] deciseconds until [GCd_at_time + GC_COLLECTION_TIMEOUT]") + testing("GC: [refID] not old enough, breaking at [world.time] for [GCd_at_time - time_to_kill] deciseconds until [GCd_at_time + collection_timeout]") #endif break // Everything else is newer, skip them var/atom/A = locate(refID) #ifdef GC_DEBUG testing("GC: [refID] old enough to test: GCd_at_time: [GCd_at_time] time_to_kill: [time_to_kill] current: [world.time]") #endif - if(A && A.gc_destroyed == GCd_at_time) // So if something else coincidently gets the same ref, it's not deleted by mistake + if(A && A.gcDestroyed == GCd_at_time) // So if something else coincidently gets the same ref, it's not deleted by mistake // Something's still referring to the qdel'd object. Kill it. testing("GC: -- \ref[A] | [A.type] was unable to be GC'd and was deleted --") logging["[A.type]"]++ @@ -56,15 +65,14 @@ var/datum/controller/process/garbage_collector/garbage_collector testing("GC: [refID] properly GC'd at [world.time] with timeout [GCd_at_time]") #endif destroyed.Cut(1, 2) - scheck() /datum/controller/process/garbage_collector/proc/AddTrash(datum/A) - if(!istype(A) || !isnull(A.gc_destroyed)) + if(!istype(A) || !isnull(A.gcDestroyed)) return #ifdef GC_DEBUG - testing("GC: AddTrash([A.type])") + testing("GC: AddTrash(\ref[A] - [A.type])") #endif - A.gc_destroyed = world.time + A.gcDestroyed = world.time destroyed -= "\ref[A]" // Removing any previous references that were GC'd so that the current object will be at the end of the list. destroyed["\ref[A]"] = world.time @@ -74,18 +82,39 @@ var/datum/controller/process/garbage_collector/garbage_collector /proc/qdel(var/datum/A) if(!A) return + if(istype(A, /list)) + var/list/L = A + for(var/E in L) + qdel(E) + return + if(!istype(A)) //warning("qdel() passed object of type [A.type]. qdel() can only handle /datum types.") del(A) garbage_collector.dels++ - else if(isnull(A.gc_destroyed)) - // Let our friend know they're about to get fucked up. + else if(isnull(A.gcDestroyed)) + // Let our friend know they're about to get collected . = !A.Destroy() if(. && A) A.finalize_qdel() /datum/proc/finalize_qdel() - garbage_collector.AddTrash(src) + del(src) + +/atom/finalize_qdel() + if(garbage_collector) + garbage_collector.AddTrash(src) + else + delayed_garbage |= src + +/icon/finalize_qdel() + del(src) + +/imagine/finalize_qdel() + del(src) + +/mob/finalize_qdel() + del(src) /turf/finalize_qdel() del(src) @@ -97,11 +126,18 @@ var/datum/controller/process/garbage_collector/garbage_collector tag = null return -/datum/var/gc_destroyed //Time when this object was destroyed. - +#define TESTING 1 #ifdef TESTING /client/var/running_find_references +/mob/verb/create_thing() + set category = "Debug" + set name = "Create Thing" + + var/path = input("Enter path") + var/atom/thing = new path(loc) + thing.find_references() + /atom/verb/find_references() set category = "Debug" set name = "Find References" @@ -120,8 +156,8 @@ var/datum/controller/process/garbage_collector/garbage_collector return // Remove this object from the list of things to be auto-deleted. - if(garbage) - garbage.destroyed -= "\ref[src]" + if(garbage_collector) + garbage_collector.destroyed -= "\ref[src]" usr.client.running_find_references = type testing("Beginning search for references to a [type].") @@ -147,13 +183,13 @@ var/datum/controller/process/garbage_collector/garbage_collector /client/verb/purge_all_destroyed_objects() set category = "Debug" - if(garbage) - while(garbage.destroyed.len) - var/datum/o = locate(garbage.destroyed[1]) - if(istype(o) && o.gc_destroyed) + if(garbage_collector) + while(garbage_collector.destroyed.len) + var/datum/o = locate(garbage_collector.destroyed[1]) + if(istype(o) && o.gcDestroyed) del(o) - garbage.dels++ - garbage.destroyed.Cut(1, 2) + garbage_collector.dels++ + garbage_collector.destroyed.Cut(1, 2) #endif #ifdef GC_DEBUG diff --git a/code/controllers/Processes/inactivity.dm b/code/controllers/Processes/inactivity.dm index b610502d19e..d9f9206749b 100644 --- a/code/controllers/Processes/inactivity.dm +++ b/code/controllers/Processes/inactivity.dm @@ -9,7 +9,7 @@ if(!istype(C.mob, /mob/dead)) log_access("AFK: [key_name(C)]") C << "You have been inactive for more than 10 minutes and have been disconnected." - del(C) + del(C) // Don't qdel, cannot override finalize_qdel behaviour for clients. scheck() diff --git a/code/controllers/_DynamicAreaLighting_TG.dm b/code/controllers/_DynamicAreaLighting_TG.dm index 6eeecef90de..6d3fd406dd6 100644 --- a/code/controllers/_DynamicAreaLighting_TG.dm +++ b/code/controllers/_DynamicAreaLighting_TG.dm @@ -161,15 +161,6 @@ atom/movable/New() trueLuminosity = luminosity * luminosity light = new(src) -//Objects with opacity will trigger nearby lights to update at next lighting process. -atom/movable/Del() - if(opacity) - if(isturf(loc)) - if(loc:lighting_lumcount > 1) - UpdateAffectingLights() - - ..() - //Sets our luminosity. //If we have no light it will create one. //If we are setting luminosity to 0 the light will be cleaned up by the controller and garbage collected once all its diff --git a/code/controllers/autotransfer.dm b/code/controllers/autotransfer.dm index f1240a1faef..597b7f607c4 100644 --- a/code/controllers/autotransfer.dm +++ b/code/controllers/autotransfer.dm @@ -7,7 +7,7 @@ datum/controller/transfer_controller/New() timerbuffer = config.vote_autotransfer_initial processing_objects += src -datum/controller/transfer_controller/Del() +datum/controller/transfer_controller/Destroy() processing_objects -= src datum/controller/transfer_controller/proc/process() diff --git a/code/controllers/communications.dm b/code/controllers/communications.dm index b4b0eb43936..9e82c55d053 100644 --- a/code/controllers/communications.dm +++ b/code/controllers/communications.dm @@ -223,7 +223,7 @@ var/global/datum/controller/radio/radio_controller frequency.remove_listener(device) if(frequency.devices.len == 0) - del(frequency) + qdel(frequency) frequencies -= f_text return 1 @@ -248,7 +248,7 @@ var/global/datum/controller/radio/radio_controller if(range) start_point = get_turf(source) if(!start_point) - del(signal) + qdel(signal) return 0 if (filter) send_to_filter(source, signal, filter, start_point, range) @@ -297,7 +297,7 @@ var/global/datum/controller/radio/radio_controller devices_line -= null if (devices_line.len==0) devices -= devices_filter - del(devices_line) + qdel(devices_line) /datum/signal var/obj/source diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm index 4f55d3e4063..7e0d1e2d25c 100644 --- a/code/controllers/emergency_shuttle_controller.dm +++ b/code/controllers/emergency_shuttle_controller.dm @@ -242,8 +242,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle sleep(speed) step(src, direction) for(var/obj/effect/starender/E in loc) - del(src) - + qdel(src) + return /obj/effect/starender invisibility = 101 diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm index 65df6dc90db..ee506c0d27f 100644 --- a/code/controllers/failsafe.dm +++ b/code/controllers/failsafe.dm @@ -14,7 +14,7 @@ var/datum/controller/failsafe/Failsafe //There can be only one failsafe. Out with the old in with the new (that way we can restart the Failsafe by spawning a new one) if(Failsafe != src) if(istype(Failsafe)) - del(Failsafe) + qdel(Failsafe) Failsafe = src Failsafe.process() diff --git a/code/controllers/lighting_controller.dm b/code/controllers/lighting_controller.dm index b59d3c73d69..8510af6714f 100644 --- a/code/controllers/lighting_controller.dm +++ b/code/controllers/lighting_controller.dm @@ -22,7 +22,7 @@ datum/controller/lighting/New() if(lighting_controller != src) if(istype(lighting_controller,/datum/controller/lighting)) Recover() //if we are replacing an existing lighting_controller (due to a crash) we attempt to preserve as much as we can - del(lighting_controller) + qdel(lighting_controller) lighting_controller = src diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index facae605774..14e02d202a4 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -19,7 +19,7 @@ datum/controller/game_controller/New() if(master_controller != src) log_debug("Rebuilding Master Controller") if(istype(master_controller)) - del(master_controller) + qdel(master_controller) master_controller = src if(!job_master) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 5fc86c420ad..351ec9a845a 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -293,7 +293,7 @@ proc/get_id_photo(var/mob/living/carbon/human/H) preview_icon.Blend(eyes_s, ICON_OVERLAY) if(clothes_s) preview_icon.Blend(clothes_s, ICON_OVERLAY) - del(eyes_s) - del(clothes_s) + qdel(eyes_s) + qdel(clothes_s) return preview_icon diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 2e8e4bfd3fa..914b56ee604 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -598,7 +598,7 @@ client for(var/obj/Obj in world) if(Obj.type == O_type) i++ - del(Obj) + qdel(Obj) if(!i) usr << "No objects of this type exist" return @@ -609,7 +609,7 @@ client for(var/obj/Obj in world) if(istype(Obj,O_type)) i++ - del(Obj) + qdel(Obj) if(!i) usr << "No objects of this type exist" return @@ -888,7 +888,7 @@ client usr << "Removed [rem_organ] from [M]." rem_organ.removed() - del(rem_organ) + qdel(rem_organ) else if(href_list["fix_nano"]) if(!check_rights(R_DEBUG)) return diff --git a/code/datums/disease.dm b/code/datums/disease.dm index 93aa14f19b3..398dc73bbbc 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -11,7 +11,7 @@ /* -IMPORTANT NOTE: Please delete the diseases by using cure() proc or del() instruction. +IMPORTANT NOTE: Please delete the diseases by using cure() proc or qdel() instruction. Diseases are referenced in a global list, so simply setting mob or obj vars to null does not delete the object itself. Thank you. @@ -158,7 +158,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease if(D != src) if(IsSame(D)) //error("Deleting [D.name] because it's the same as [src.name].") - del(D) // if there are somehow two viruses of the same kind in the system, delete the other one + qdel(D) // if there are somehow two viruses of the same kind in the system, delete the other one if(holder == affected_mob) if(affected_mob.stat != DEAD) //he's alive @@ -183,7 +183,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease /*if(istype(src, /datum/disease/alien_embryo)) //Get rid of the infection flag if it's a xeno embryo. affected_mob.status_flags &= ~(XENO_HOST)*/ affected_mob.viruses -= src //remove the datum from the list - del(src) //delete the datum to stop it processing + qdel(src) //delete the datum to stop it processing return @@ -193,6 +193,9 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease active_diseases += src initial_spread = spread +/datum/disease/Destroy() + active_diseases.Remove(src) + /datum/disease/proc/IsSame(var/datum/disease/D) if(istype(src, D.type)) return 1 @@ -200,8 +203,3 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease /datum/disease/proc/Copy(var/process = 0) return new type(process, src) - -/* -/datum/disease/Del() - active_diseases.Remove(src) -*/ diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 70acceca35d..d4effcf6cb1 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -71,7 +71,7 @@ var/list/advance_cures = list( ..(process, D) return -/datum/disease/advance/Del() +/datum/disease/advance/Destroy() if(processing) for(var/datum/symptom/S in symptoms) S.End(src) @@ -109,7 +109,7 @@ var/list/advance_cures = list( if(resistance && !(id in affected_mob.resistances)) affected_mob.resistances[id] = id affected_mob.viruses -= src //remove the datum from the list - del(src) //delete the datum to stop it processing + qdel(src) //delete the datum to stop it processing return // Returns the advance disease with a different reference memory. diff --git a/code/datums/diseases/alien_embryo.dm b/code/datums/diseases/alien_embryo.dm index 631c93b26c4..59d1dbe1605 100644 --- a/code/datums/diseases/alien_embryo.dm +++ b/code/datums/diseases/alien_embryo.dm @@ -113,7 +113,7 @@ Des: Removes all infection images from aliens and places an infection image on a if (alien.client) for(var/image/I in alien.client.images) if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) + qdel(I) for (var/mob/living/carbon/alien/alien in player_list) if (alien.client) @@ -149,5 +149,5 @@ Des: Removes the alien infection image from all aliens in the world located in p for(var/image/I in alien.client.images) if(I.loc == C) if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) + qdel(I) return diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index a4d85a56407..6d520fe2948 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -34,7 +34,7 @@ if(4) if(!src.transformed) if ((!strain_data["name"]) || (!strain_data["UI"]) || (!strain_data["SE"])) - del(affected_mob.virus) + qdel(affected_mob.virus) return //Save original dna for when the disease is cured. @@ -56,7 +56,7 @@ return -/datum/disease/dnaspread/Del() +/datum/disease/dnaspread/Destroy() if ((original_dna["name"]) && (original_dna["UI"]) && (original_dna["SE"])) var/list/newUI=original_dna["UI"] var/list/newSE=original_dna["SE"] diff --git a/code/datums/helper_datums/construction_datum.dm b/code/datums/helper_datums/construction_datum.dm index 7c2fabbc9b8..0bda144e8aa 100644 --- a/code/datums/helper_datums/construction_datum.dm +++ b/code/datums/helper_datums/construction_datum.dm @@ -12,7 +12,7 @@ holder = atom if(!holder) //don't want this without a holder spawn - del src + qdel(src) set_desc(steps.len) return @@ -61,7 +61,7 @@ if(result) new result(get_turf(holder)) spawn() - del holder + qdel(holder) return proc/set_desc(index as num) diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 00899f47cb2..1f6c2abd747 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -49,7 +49,7 @@ //must succeed in most cases proc/setTeleatom(atom/movable/ateleatom) if(istype(ateleatom, /obj/effect) && !istype(ateleatom, /obj/effect/dummy/chameleon)) - del(ateleatom) + qdel(ateleatom) return 0 if(istype(ateleatom)) teleatom = ateleatom diff --git a/code/datums/mind.dm b/code/datums/mind.dm index f6fbbc110c8..cfbd1551452 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -311,7 +311,7 @@ datum/mind for(var/obj/item/weapon/implant/loyalty/I in H.contents) for(var/obj/item/organ/external/organs in H.organs) if(I in organs.implants) - I.Del() + qdel(I) break H << "Your loyalty implant has been deactivated." log_admin("[key_name_admin(usr)] has de-loyalty implanted [current].") @@ -368,7 +368,7 @@ datum/mind src = null m2h.inject(M) src = mobfinder.loc:mind - del(mobfinder) + qdel(mobfinder) current.radiation -= 50 */ else if (href_list["silicon"]) @@ -445,10 +445,10 @@ datum/mind var/list/L = current.get_contents() for (var/t in L) if (istype(t, /obj/item/device/pda)) - if (t:uplink) del(t:uplink) + if (t:uplink) qdel(t:uplink) t:uplink = null else if (istype(t, /obj/item/device/radio)) - if (t:traitorradio) del(t:traitorradio) + if (t:traitorradio) qdel(t:traitorradio) t:traitorradio = null t:traitor_frequency = 0.0 else if (istype(t, /obj/item/weapon/SWF_uplink) || istype(t, /obj/item/weapon/syndicate_uplink)) @@ -457,7 +457,7 @@ datum/mind R.loc = current.loc R.traitorradio = null R.traitor_frequency = 0.0 - del(t) + qdel(t) // remove wizards spells //If there are more special powers that need removal, they can be procced into here./N @@ -479,7 +479,7 @@ datum/mind proc/take_uplink() var/obj/item/device/uplink/hidden/H = find_syndicate_uplink() if(H) - del(H) + qdel(H) // check whether this mind's mob has been brigged for the given duration diff --git a/code/datums/modules.dm b/code/datums/modules.dm index 896d920f994..43d25a2e25d 100644 --- a/code/datums/modules.dm +++ b/code/datums/modules.dm @@ -24,7 +24,8 @@ var/list/modules = list( // global associative list var/mneed = mods.inmodlist(type) // find if this type has modules defined if(!mneed) // not found in module list? - del(src) // delete self, thus ending proc + qdel(src) + return var/needed = mods.getbitmask(type) // get a bitmask for the number of modules in this object status = needed diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm index d72a8798a73..0f10d8d56ff 100644 --- a/code/datums/recipe.dm +++ b/code/datums/recipe.dm @@ -95,7 +95,7 @@ var/obj/result_obj = new result(container) for (var/obj/O in (container.contents-result_obj)) O.reagents.trans_to(result_obj, O.reagents.total_volume) - del(O) + qdel(O) container.reagents.clear_reagents() return result_obj @@ -110,7 +110,7 @@ O.reagents.del_reagent("nutriment") O.reagents.update_total() O.reagents.trans_to(result_obj, O.reagents.total_volume) - del(O) + qdel(O) container.reagents.clear_reagents() return result_obj diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 7f287a5b54b..5b0ae96726b 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -350,7 +350,7 @@ /obj/item/weapon/module/power_control/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if (istype(W, /obj/item/device/multitool)) var/obj/item/weapon/circuitboard/ghettosmes/newcircuit = new/obj/item/weapon/circuitboard/ghettosmes(user.loc) - del(src) + qdel(src) user.put_in_hands(newcircuit) diff --git a/code/defines/procs/records.dm b/code/defines/procs/records.dm index 4e9fbcc9afc..256ae51dbf2 100644 --- a/code/defines/procs/records.dm +++ b/code/defines/procs/records.dm @@ -22,7 +22,7 @@ G.fields["photo_side"] = side data_core.general += G - del(dummy) + qdel(dummy) return G /proc/CreateSecurityRecord(var/name as text, var/id as text) diff --git a/code/defines/procs/sd_Alert.dm b/code/defines/procs/sd_Alert.dm index c63cab8f8b7..1e2649687cf 100644 --- a/code/defines/procs/sd_Alert.dm +++ b/code/defines/procs/sd_Alert.dm @@ -1,168 +1,168 @@ -/* sd_Alert library - by Shadowdarke (shadowdarke@byond.com) - - sd_Alert() is a powerful and flexible alternative to the built in BYOND - alert() proc. sd_Alert offers timed popups, unlimited buttons, custom - appearance, and even the option to popup without stealing keyboard focus - from the map or command line. - - Please see demo.dm for detailed examples. - -FORMAT - sd_Alert(who, message, title, buttons, default, duration, unfocus, \ - size, table, style, tag, select, flags) - -ARGUMENTS - who - the client or mob to display the alert to. - message - text message to display - title - title of the alert box - buttons - list of buttons - Default Value: list("Ok") - default - default button selestion - Default Value: the first button in the list - duration - the number of ticks before this alert expires. If not - set, the alert lasts until a button is clicked. - Default Value: 0 (unlimited) - unfocus - if this value is set, the popup will not steal keyboard - focus from the map or command line. - Default Value: 1 (do not take focus) - size - size of the popup window in px - Default Value: "300x200" - table - optional parameters for the HTML table in the alert - Default Value: "width=100% height=100%" (fill the window) - style - optional style sheet information - tag - lets you specify a certain tag for this sd_Alert so you may manipulate it - externally. (i.e. force the alert to close, change options and redisplay, - reuse the same window, etc.) - select - if set, the buttons will be replaced with a selection box with a number of - lines displayed equal to this value. - Default value: 0 (use buttons) - flags - optional flags effecting the alert display. These flags may be ORed (|) - together for multiple effects. - SD_ALERT_SCROLL = display a scrollbar - SD_ALERT_SELECT_MULTI = forces selection box display (instead of - buttons) allows the user to select multiple - choices. - SD_ALERT_LINKS = display each choice as a plain text link. - Any selection box style overrides this flag. - SD_ALERT_NOVALIDATE = don't validate responses - Default value: SD_ALERT_SCROLL - (button display with scroll bar, validate responses) -RETURNS - The text of the selected button, or null if the alert duration expired - without a button click. - -Version 1 changes (from version 0): -* Added the tag, select, and flags arguments, thanks to several suggestions from Foomer. -* Split the sd_Alert/Alert() proc into New(), Display(), and Response() to allow more - customization by developers. Primarily developers would want to use Display() to change - the display of active tagged windows - -*/ - - -#define SD_ALERT_SCROLL 1 -#define SD_ALERT_SELECT_MULTI 2 -#define SD_ALERT_LINKS 4 -#define SD_ALERT_NOVALIDATE 8 - -proc/sd_Alert(client/who, message, title, buttons = list("Ok"),\ - default, duration = 0, unfocus = 1, size = "300x200", \ - table = "width=100% height=100%", style, tag, select, flags = SD_ALERT_SCROLL) - - if(ismob(who)) - var/mob/M = who - who = M.client - if(!istype(who)) CRASH("sd_Alert: Invalid target:[who] (\ref[who])") - - var/sd_alert/T = locate(tag) - if(T) - if(istype(T)) del(T) - else CRASH("sd_Alert: tag \"[tag]\" is already in use by datum '[T]' (type: [T.type])") - T = new(who, tag) - if(duration) - spawn(duration) - if(T) del(T) - return - T.Display(message,title,buttons,default,unfocus,size,table,style,select,flags) - . = T.Response() - -sd_alert - var - client/target - response - list/validation - - Del() - target << browse(null,"window=\ref[src]") - ..() - - New(who, tag) - ..() - target = who - src.tag = tag - - Topic(href,params[]) - if(usr.client != target) return - response = params["clk"] - - proc/Display(message,title,list/buttons,default,unfocus,size,table,style,select,flags) - if(unfocus) spawn() target << browse(null,null) - if(istext(buttons)) buttons = list(buttons) - if(!default) default = buttons[1] - if(!(flags & SD_ALERT_NOVALIDATE)) validation = buttons.Copy() - - var/html = {"[title][style]\ -
[message]
"} - - if(select || (flags & SD_ALERT_SELECT_MULTI)) // select style choices - html += {"
\ - -
" - else if(flags & SD_ALERT_LINKS) // text link style - for(var/b in buttons) - var/list/L = list() - L["clk"] = b - var/html_string=list2params(L) - var/focus - if(b == default) focus = " ID=fcs" - html += "[html_encode(b)]\ -
" - else // button style choices - for(var/b in buttons) - var/list/L = list() - L["clk"] = b - var/html_string=list2params(L) - var/focus - if(b == default) focus = " ID=fcs" - html += " " - - html += "
" - - target << browse(html,"window=\ref[src];size=[size];can_close=0") - - proc/Response() - var/validated - while(!validated) - while(target && !response) // wait for a response - sleep(2) - - if(response && validation) - if(istype(response, /list)) - var/list/L = response - validation - if(L.len) response = null - else validated = 1 - else if(response in validation) validated = 1 - else response=null - else validated = 1 - spawn(2) del(src) - return response +/* sd_Alert library + by Shadowdarke (shadowdarke@byond.com) + + sd_Alert() is a powerful and flexible alternative to the built in BYOND + alert() proc. sd_Alert offers timed popups, unlimited buttons, custom + appearance, and even the option to popup without stealing keyboard focus + from the map or command line. + + Please see demo.dm for detailed examples. + +FORMAT + sd_Alert(who, message, title, buttons, default, duration, unfocus, \ + size, table, style, tag, select, flags) + +ARGUMENTS + who - the client or mob to display the alert to. + message - text message to display + title - title of the alert box + buttons - list of buttons + Default Value: list("Ok") + default - default button selestion + Default Value: the first button in the list + duration - the number of ticks before this alert expires. If not + set, the alert lasts until a button is clicked. + Default Value: 0 (unlimited) + unfocus - if this value is set, the popup will not steal keyboard + focus from the map or command line. + Default Value: 1 (do not take focus) + size - size of the popup window in px + Default Value: "300x200" + table - optional parameters for the HTML table in the alert + Default Value: "width=100% height=100%" (fill the window) + style - optional style sheet information + tag - lets you specify a certain tag for this sd_Alert so you may manipulate it + externally. (i.e. force the alert to close, change options and redisplay, + reuse the same window, etc.) + select - if set, the buttons will be replaced with a selection box with a number of + lines displayed equal to this value. + Default value: 0 (use buttons) + flags - optional flags effecting the alert display. These flags may be ORed (|) + together for multiple effects. + SD_ALERT_SCROLL = display a scrollbar + SD_ALERT_SELECT_MULTI = forces selection box display (instead of + buttons) allows the user to select multiple + choices. + SD_ALERT_LINKS = display each choice as a plain text link. + Any selection box style overrides this flag. + SD_ALERT_NOVALIDATE = don't validate responses + Default value: SD_ALERT_SCROLL + (button display with scroll bar, validate responses) +RETURNS + The text of the selected button, or null if the alert duration expired + without a button click. + +Version 1 changes (from version 0): +* Added the tag, select, and flags arguments, thanks to several suggestions from Foomer. +* Split the sd_Alert/Alert() proc into New(), Display(), and Response() to allow more + customization by developers. Primarily developers would want to use Display() to change + the display of active tagged windows + +*/ + + +#define SD_ALERT_SCROLL 1 +#define SD_ALERT_SELECT_MULTI 2 +#define SD_ALERT_LINKS 4 +#define SD_ALERT_NOVALIDATE 8 + +proc/sd_Alert(client/who, message, title, buttons = list("Ok"),\ + default, duration = 0, unfocus = 1, size = "300x200", \ + table = "width=100% height=100%", style, tag, select, flags = SD_ALERT_SCROLL) + + if(ismob(who)) + var/mob/M = who + who = M.client + if(!istype(who)) CRASH("sd_Alert: Invalid target:[who] (\ref[who])") + + var/sd_alert/T = locate(tag) + if(T) + if(istype(T)) qdel(T) + else CRASH("sd_Alert: tag \"[tag]\" is already in use by datum '[T]' (type: [T.type])") + T = new(who, tag) + if(duration) + spawn(duration) + if(T) qdel(T) + return + T.Display(message,title,buttons,default,unfocus,size,table,style,select,flags) + . = T.Response() + +sd_alert + var + client/target + response + list/validation + + Del() + target << browse(null,"window=\ref[src]") + ..() + + New(who, tag) + ..() + target = who + src.tag = tag + + Topic(href,params[]) + if(usr.client != target) return + response = params["clk"] + + proc/Display(message,title,list/buttons,default,unfocus,size,table,style,select,flags) + if(unfocus) spawn() target << browse(null,null) + if(istext(buttons)) buttons = list(buttons) + if(!default) default = buttons[1] + if(!(flags & SD_ALERT_NOVALIDATE)) validation = buttons.Copy() + + var/html = {"[title][style]\ +
[message]
"} + + if(select || (flags & SD_ALERT_SELECT_MULTI)) // select style choices + html += {"
\ + +
" + else if(flags & SD_ALERT_LINKS) // text link style + for(var/b in buttons) + var/list/L = list() + L["clk"] = b + var/html_string=list2params(L) + var/focus + if(b == default) focus = " ID=fcs" + html += "[html_encode(b)]\ +
" + else // button style choices + for(var/b in buttons) + var/list/L = list() + L["clk"] = b + var/html_string=list2params(L) + var/focus + if(b == default) focus = " ID=fcs" + html += " " + + html += "
" + + target << browse(html,"window=\ref[src];size=[size];can_close=0") + + proc/Response() + var/validated + while(!validated) + while(target && !response) // wait for a response + sleep(2) + + if(response && validation) + if(istype(response, /list)) + var/list/L = response - validation + if(L.len) response = null + else validated = 1 + else if(response in validation) validated = 1 + else response=null + else validated = 1 + spawn(2) qdel(src) + return response diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index 73e17a20430..aad02b1c6c6 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -199,7 +199,7 @@ for(var/datum/uplink_item/UI in H.purchase_log) var/obj/I = new UI.path refined_log.Add("[H.purchase_log[UI]]x\icon[I][UI.name]") - del(I) + qdel(I) purchases = english_list(refined_log, nothing_text = "") if(uplink_true) text += " (used [TC_uses] TC)" @@ -215,7 +215,7 @@ if(antag.current && antag.current.client) for(var/image/I in antag.current.client.images) if(I.icon_state == antag_indicator) - del(I) + qdel(I) for(var/datum/mind/other_antag in current_antagonists) if(other_antag.current) antag.current.client.images |= image('icons/mob/mob.dmi', loc = other_antag.current, icon_state = antag_indicator) @@ -241,10 +241,10 @@ if(antag.current.client) for(var/image/I in antag.current.client.images) if(I.icon_state == antag_indicator && I.loc == player.current) - del(I) + qdel(I) if(player.current && player.current.client) for(var/image/I in player.current.client.images) if(I.icon_state == antag_indicator) - del(I) + qdel(I) diff --git a/code/game/antagonist/antagonist_build.dm b/code/game/antagonist/antagonist_build.dm index 40ba798aae9..35af4e6f804 100644 --- a/code/game/antagonist/antagonist_build.dm +++ b/code/game/antagonist/antagonist_build.dm @@ -15,7 +15,7 @@ var/mob/holder = player.current player.current = new mob_path(get_turf(player.current)) player.transfer_to(player.current) - if(holder) del(holder) + if(holder) qdel(holder) player.original = player.current return player.current @@ -30,7 +30,7 @@ for(var/obj/item/thing in player.contents) player.drop_from_inventory(thing) if(thing.loc != player) - del(thing) + qdel(thing) return 1 if(flags & ANTAG_SET_APPEARANCE) diff --git a/code/game/antagonist/station/highlander.dm b/code/game/antagonist/station/highlander.dm index 0af6e1e23de..9b82b158525 100644 --- a/code/game/antagonist/station/highlander.dm +++ b/code/game/antagonist/station/highlander.dm @@ -32,7 +32,7 @@ var/datum/antagonist/highlander/highlanders for (var/obj/item/I in player) if (istype(I, /obj/item/weapon/implant)) continue - del(I) + qdel(I) player.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(player), slot_w_uniform) player.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(player), slot_l_ear) diff --git a/code/game/antagonist/station/rogue_ai.dm b/code/game/antagonist/station/rogue_ai.dm index 372556c2051..fd8a0297f29 100644 --- a/code/game/antagonist/station/rogue_ai.dm +++ b/code/game/antagonist/station/rogue_ai.dm @@ -213,7 +213,7 @@ var/datum/antagonist/rogue_ai/malf /client/proc/reactivate_camera) current:laws = new /datum/ai_laws/nanotrasen - del(current:malf_picker) + qdel(current:malf_picker) current:show_laws() current.icon_state = "ai" diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm index e5b421e9afd..8aa6b1cd64e 100644 --- a/code/game/asteroid.dm +++ b/code/game/asteroid.dm @@ -32,7 +32,7 @@ proc/spawn_room(var/atom/start_loc,var/x_size,var/y_size,var/wall,var/floor , va var/cur_loc = locate(start_loc.x+x,start_loc.y+y,start_loc.z) if(clean) for(var/O in cur_loc) - del(O) + qdel(O) var/area/asteroid/artifactroom/A = new if(name) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 5944587cc78..9ff603900c7 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -22,6 +22,16 @@ //Detective Work, used for the duplicate data points kept in the scanners var/list/original_atom +/atom/Destroy() + . = ..() + SetOpacity(0) + + if(reagents) + qdel(reagents) + for(var/atom/movable/AM in contents) + qdel(AM) + invisibility = 101 + /atom/proc/assume_air(datum/gas_mixture/giver) return null @@ -66,7 +76,6 @@ return flags & INSERT_CONTAINER */ - /atom/proc/meteorhit(obj/meteor as obj) return @@ -148,7 +157,7 @@ its easier to just keep the beam vertical. for(var/obj/effect/overlay/beam/O in orange(10,src)) //This section erases the previously drawn beam because I found it was easier to if(O.BeamSource==src) //just draw another instance of the beam instead of trying to manipulate all the - del O //pieces to a new orientation. + qdel(O) //pieces to a new orientation. var/Angle=round(Get_Angle(src,BeamTarget)) var/icon/I=new(icon,icon_state) I.Turn(Angle) @@ -189,7 +198,7 @@ its easier to just keep the beam vertical. X.pixel_y=Pixel_y sleep(3) //Changing this to a lower value will cause the beam to follow more smoothly with movement, but it will also be more laggy. //I've found that 3 ticks provided a nice balance for my use. - for(var/obj/effect/overlay/beam/O in orange(10,src)) if(O.BeamSource==src) del O + for(var/obj/effect/overlay/beam/O in orange(10,src)) if(O.BeamSource==src) qdel(O) //All atoms @@ -229,7 +238,7 @@ its easier to just keep the beam vertical. /atom/proc/fire_act() return - + /atom/proc/melt() return @@ -362,7 +371,7 @@ its easier to just keep the beam vertical. //Cleaning up shit. if(fingerprints && !fingerprints.len) - del(fingerprints) + qdel(fingerprints) return @@ -419,7 +428,7 @@ its easier to just keep the beam vertical. src.color = initial(src.color) //paint src.germ_level = 0 if(istype(blood_DNA, /list)) - del(blood_DNA) + qdel(blood_DNA) return 1 diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 6858398dff0..aabcb3653a0 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -15,23 +15,23 @@ var/mob/pulledby = null /atom/movable/Del() - if(isnull(gc_destroyed) && loc) + if(isnull(gcDestroyed) && loc) testing("GC: -- [type] was deleted via del() rather than qdel() --") - Destroy() - else if(isnull(gc_destroyed)) - testing("GC: [type] was deleted via GC without qdel()") //Not really a huge issue but from now on, please qdel() + CRASH() // Debug until I can get a clean server start. +// else if(isnull(gcDestroyed)) +// testing("GC: [type] was deleted via GC without qdel()") //Not really a huge issue but from now on, please qdel() // else // testing("GC: [type] was deleted via GC with qdel()") ..() /atom/movable/Destroy() - . = ..() - if(reagents) - qdel(reagents) - for(var/atom/movable/AM in contents) - qdel(AM) + if(opacity) + if(isturf(loc)) + if(loc:lighting_lumcount > 1) + UpdateAffectingLights() loc = null - invisibility = 101 + + ..() /atom/movable/Bump(var/atom/A, yes) if(src.throwing) diff --git a/code/game/dna/dna_misc.dm b/code/game/dna/dna_misc.dm index b3148522141..cdc737c0076 100644 --- a/code/game/dna/dna_misc.dm +++ b/code/game/dna/dna_misc.dm @@ -420,7 +420,7 @@ animation.master = src flick("h2monkey", animation) sleep(48) - del(animation) + qdel(animation) var/mob/living/carbon/monkey/O = null @@ -447,7 +447,7 @@ for(var/obj/T in (M.contents-implants)) - del(T) + qdel(T) O.loc = M.loc @@ -469,7 +469,7 @@ I.loc = O I.implanted = O // O.update_icon = 1 //queue a full icon update at next life() call - del(M) + qdel(M) return if (!isblockon(getblock(M.dna.struc_enzymes, MONKEYBLOCK,3),MONKEYBLOCK) && !istype(M, /mob/living/carbon/human)) @@ -493,7 +493,7 @@ animation.master = src flick("monkey2h", animation) sleep(48) - del(animation) + qdel(animation) var/mob/living/carbon/human/O = new( src ) if(Mo.greaterform) @@ -519,7 +519,7 @@ M.viruses -= D //for(var/obj/T in M) - // del(T) + // qdel(T) O.loc = M.loc @@ -553,7 +553,7 @@ I.loc = O I.implanted = O // O.update_icon = 1 //queue a full icon update at next life() call - del(M) + qdel(M) return //////////////////////////////////////////////////////////// Monkey Block if(M) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 86bfbeb0fef..68e1f34f888 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -144,7 +144,7 @@ return put_in(G.affecting) src.add_fingerprint(user) - del(G) + qdel(G) return /obj/machinery/dna_scannernew/proc/put_in(var/mob/M) @@ -187,7 +187,7 @@ ex_act(severity) //Foreach goto(35) //SN src = null - del(src) + qdel(src) return if(2.0) if (prob(50)) @@ -196,7 +196,7 @@ ex_act(severity) //Foreach goto(108) //SN src = null - del(src) + qdel(src) return if(3.0) if (prob(25)) @@ -205,7 +205,7 @@ ex_act(severity) //Foreach goto(181) //SN src = null - del(src) + qdel(src) return else return @@ -215,7 +215,7 @@ if(prob(75)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc - del(src) + qdel(src) /obj/machinery/computer/scan_consolenew name = "DNA Modifier Access Console" @@ -262,12 +262,12 @@ switch(severity) if(1.0) //SN src = null - del(src) + qdel(src) return if(2.0) if (prob(50)) //SN src = null - del(src) + qdel(src) return else return @@ -275,7 +275,7 @@ /obj/machinery/computer/scan_consolenew/blob_act() if(prob(75)) - del(src) + qdel(src) /obj/machinery/computer/scan_consolenew/power_change() ..() diff --git a/code/game/dna/genes/monkey.dm b/code/game/dna/genes/monkey.dm index 2e0f6cdec2f..7d9da106366 100644 --- a/code/game/dna/genes/monkey.dm +++ b/code/game/dna/genes/monkey.dm @@ -33,7 +33,7 @@ animation.master = src flick("h2monkey", animation) sleep(48) - del(animation) + qdel(animation) var/mob/living/carbon/monkey/O = null @@ -60,7 +60,7 @@ for(var/obj/T in (M.contents-implants)) - del(T) + qdel(T) O.loc = M.loc @@ -82,7 +82,7 @@ I.loc = O I.implanted = O // O.update_icon = 1 //queue a full icon update at next life() call - del(M) + qdel(M) return /datum/dna/gene/monkey/deactivate(var/mob/living/M, var/connected, var/flags) @@ -108,7 +108,7 @@ animation.master = src flick("monkey2h", animation) sleep(48) - del(animation) + qdel(animation) var/mob/living/carbon/human/O if(Mo.greaterform) @@ -136,7 +136,7 @@ M.viruses -= D //for(var/obj/T in M) - // del(T) + // qdel(T) O.loc = M.loc @@ -171,5 +171,5 @@ I.loc = O I.implanted = O // O.update_icon = 1 //queue a full icon update at next life() call - del(M) + qdel(M) return diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index f0a24001ba3..3897d444e8e 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -14,7 +14,7 @@ ..(loc, h) - Del() + Destroy() blob_cores -= src processing_objects.Remove(src) ..() @@ -24,7 +24,7 @@ update_icon() if(health <= 0) playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) - del(src) + qdel(src) return return diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm index bb8de8184ec..b4adaea0495 100644 --- a/code/game/gamemodes/blob/blobs/factory.dm +++ b/code/game/gamemodes/blob/blobs/factory.dm @@ -12,7 +12,7 @@ update_icon() if(health <= 0) playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) - del(src) + qdel(src) return return @@ -62,5 +62,5 @@ if(factory) factory.spores -= src ..() - del(src) + qdel(src) diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm index c9ffaf96f13..92572f9a7b0 100644 --- a/code/game/gamemodes/blob/blobs/node.dm +++ b/code/game/gamemodes/blob/blobs/node.dm @@ -14,7 +14,7 @@ ..(loc, h) - Del() + Destroy() blob_nodes -= src processing_objects.Remove(src) ..() @@ -24,7 +24,7 @@ update_icon() if(health <= 0) playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) - del(src) + qdel(src) return return diff --git a/code/game/gamemodes/blob/blobs/shield.dm b/code/game/gamemodes/blob/blobs/shield.dm index 0e1b6c07eb4..c47696c72e3 100644 --- a/code/game/gamemodes/blob/blobs/shield.dm +++ b/code/game/gamemodes/blob/blobs/shield.dm @@ -14,7 +14,7 @@ update_icon() if(health <= 0) playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) - del(src) + qdel(src) return return diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index f6351c84809..a89ebb99c6c 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -110,7 +110,7 @@ B.loc = T else T.blob_act()//If we cant move in hit the turf - del(B) + qdel(B) for(var/atom/A in T)//Hit everything in the turf A.blob_act() return 1 @@ -134,7 +134,7 @@ update_icon()//Needs to be updated with the types if(health <= 0) playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) - del(src) + qdel(src) return if(health <= 15) icon_state = "blob_damaged" @@ -182,7 +182,7 @@ new/obj/effect/blob/factory(src.loc,src.health) if("Shield") new/obj/effect/blob/shield(src.loc,src.health*2) - del(src) + qdel(src) return //////////////////////////////****IDLE BLOB***///////////////////////////////////// @@ -201,7 +201,7 @@ proc/update_idle() if(health<=0) - del(src) + qdel(src) return if(health<4) icon_state = "blobc0" diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 9b6ddb5160c..29619503774 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -385,7 +385,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E animation.master = src flick("monkey2h", animation) sleep(48) - del(animation) + qdel(animation) for(var/obj/item/W in src) C.drop_from_inventory(W) @@ -400,7 +400,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E O.real_name = chosen_dna.real_name for(var/obj/T in C) - del(T) + qdel(T) O.loc = C.loc @@ -420,7 +420,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E O.changeling_update_languages(changeling.absorbed_languages) feedback_add_details("changeling_powers","LFT") - del(C) + qdel(C) return 1 diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 185dc99ebd2..337ad39c0da 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -155,7 +155,7 @@ if(istype(M, /mob/living/silicon/robot)) var/mob/living/silicon/robot/Robot = M if(Robot.mmi) - del(Robot.mmi) + qdel(Robot.mmi) else for(var/obj/item/W in M) if(istype(W, /obj/item/weapon/implant)) diff --git a/code/game/gamemodes/cult/cultify/mob.dm b/code/game/gamemodes/cult/cultify/mob.dm index 9dfb0edfc86..965d2548f75 100644 --- a/code/game/gamemodes/cult/cultify/mob.dm +++ b/code/game/gamemodes/cult/cultify/mob.dm @@ -35,8 +35,8 @@ /mob/proc/see_narsie(var/obj/singularity/narsie/large/N, var/dir) if(N.chained) if(narsimage) - del(narsimage) - del(narglow) + qdel(narsimage) + qdel(narglow) return if((N.z == src.z)&&(get_dist(N,src) <= (N.consume_range+10)) && !(N in view(src))) if(!narsimage) //Create narsimage @@ -59,5 +59,5 @@ src << narglow else if(narsimage) - del(narsimage) - del(narglow) + qdel(narsimage) + qdel(narglow) diff --git a/code/game/gamemodes/cult/cultify/obj.dm b/code/game/gamemodes/cult/cultify/obj.dm index 63037f61d47..630877eb114 100644 --- a/code/game/gamemodes/cult/cultify/obj.dm +++ b/code/game/gamemodes/cult/cultify/obj.dm @@ -82,7 +82,7 @@ c_animation.icon_state = "breakdoor" flick("cultification",c_animation) spawn(10) - del(c_animation) + qdel(c_animation) qdel(src) /obj/machinery/door/firedoor/cultify() diff --git a/code/game/gamemodes/cult/hell_universe.dm b/code/game/gamemodes/cult/hell_universe.dm index 2a2499bb45e..39f44023917 100644 --- a/code/game/gamemodes/cult/hell_universe.dm +++ b/code/game/gamemodes/cult/hell_universe.dm @@ -40,6 +40,7 @@ In short: // Apply changes when entering state /datum/universal_state/hell/OnEnter() set background = 1 + garbage_collector.garbage_collect = 0 escape_list = get_area_turfs(locate(/area/hallway/secondary/exit)) //Separated into separate procs for profiling diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 9f99945837e..8a55a811654 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -74,7 +74,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa"," AI.client.images += blood_image rune_list.Add(src) - Del() + Destroy() for(var/mob/living/silicon/ai/AI in player_list) if(AI.client) AI.client.images -= blood_image @@ -92,11 +92,11 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa"," attackby(I as obj, user as mob) if(istype(I, /obj/item/weapon/book/tome) && iscultist(user)) user << "You retrace your steps, carefully undoing the lines of the rune." - del(src) + qdel(src) return else if(istype(I, /obj/item/weapon/nullrod)) user << "\blue You disrupt the vile magic with the deadening field of the null rod!" - del(src) + qdel(src) return return diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 6e63c05025a..805682a9cbd 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -24,7 +24,7 @@ var/list/sacrificed = list() user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" if (istype(user, /mob/living)) user.take_overall_damage(5, 0) - del(src) + qdel(src) if(allrunesloc && index != 0) if(istype(src,/obj/effect/rune)) user.say("Sas[pick("'","`")]so c'arta forbici!")//Only you can stop auto-muting @@ -61,7 +61,7 @@ var/list/sacrificed = list() user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" if (istype(user, /mob/living)) user.take_overall_damage(5, 0) - del(src) + qdel(src) for(var/mob/living/carbon/C in orange(1,src)) if(iscultist(C) && !C.stat) culcount++ @@ -94,7 +94,7 @@ var/list/sacrificed = list() new /obj/item/weapon/book/tome(src.loc) else new /obj/item/weapon/book/tome(usr.loc) - del(src) + qdel(src) return @@ -209,7 +209,7 @@ var/list/sacrificed = list() T.hotspot_expose(700,125) var/rune = src // detaching the proc - in theory empulse(U, (range_red - 2), range_red) - del(rune) + qdel(rune) return /////////////////////////////////////////SIXTH RUNE @@ -369,7 +369,7 @@ var/list/sacrificed = list() usr.say("Kla[pick("'","`")]atu barada nikt'o!") for (var/mob/V in viewers(src)) V.show_message("\red The rune turns into gray dust, veiling the surrounding runes.", 3) - del(src) + qdel(src) else usr.whisper("Kla[pick("'","`")]atu barada nikt'o!") usr << "\red Your talisman turns into gray dust, veiling the surrounding runes." @@ -545,8 +545,8 @@ var/list/sacrificed = list() for (var/mob/V in viewers(src)) V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3) usr.say("H'drak v[pick("'","`")]loso, mir'kanas verbot!") - del(imbued_from) - del(newtalisman) + qdel(imbued_from) + qdel(newtalisman) else return fizzle() @@ -593,7 +593,7 @@ var/list/sacrificed = list() for(var/datum/mind/H in cult.current_antagonists) if (H.current) H.current << "\red \b [input]" - del(src) + qdel(src) return 1 /////////////////////////////////////////FIFTEENTH RUNE @@ -745,7 +745,7 @@ var/list/sacrificed = list() usr.say("Nikt[pick("'","`")]o barada kla'atu!") for (var/mob/V in viewers(src)) V.show_message("\red The rune turns into red dust, reveaing the surrounding runes.", 3) - del(src) + qdel(src) return if(istype(W,/obj/item/weapon/paper/talisman)) usr.whisper("Nikt[pick("'","`")]o barada kla'atu!") @@ -818,7 +818,7 @@ var/list/sacrificed = list() for(var/mob/living/carbon/C in users) user.take_overall_damage(dam, 0) C.say("Khari[pick("'","`")]d! Gual'te nikka!") - del(src) + qdel(src) return fizzle() /////////////////////////////////////////NINETEENTH RUNE @@ -858,7 +858,7 @@ var/list/sacrificed = list() user.visible_message("\red Rune disappears with a flash of red light, and in its place now a body lies.", \ "\red You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a body.", \ "\red You hear a pop and smell ozone.") - del(src) + qdel(src) return fizzle() /////////////////////////////////////////TWENTIETH RUNES @@ -881,7 +881,7 @@ var/list/sacrificed = list() usr.say("Sti[pick("'","`")] kaliedir!") usr << "\red The world becomes quiet as the deafening rune dissipates into fine dust." admin_attacker_log_many_victims(usr, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on") - del(src) + qdel(src) else return fizzle() else @@ -926,7 +926,7 @@ var/list/sacrificed = list() usr.say("Sti[pick("'","`")] kaliesin!") usr << "\red The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust." admin_attacker_log_many_victims(usr, affected, "Used a blindness rune.", "Was victim of a blindness rune.", "used a blindness rune on") - del(src) + qdel(src) else return fizzle() else @@ -984,7 +984,7 @@ var/list/sacrificed = list() C.take_overall_damage(15, 0) admin_attacker_log_many_victims(usr, victims, "Used a blood boil rune.", "Was the victim of a blood boil rune.", "used a blood boil rune on") log_and_message_admins_many(cultists - usr, "assisted activating a blood boil rune.") - del(src) + qdel(src) else return fizzle() return @@ -1014,8 +1014,8 @@ var/list/sacrificed = list() M << "\red Blood suddenly ignites, burning you!" var/turf/T = get_turf(B) T.hotspot_expose(700,125) - del(B) - del(src) + qdel(B) + qdel(src) ////////// Rune 24 (counting burningblood, which kinda doesnt work yet.) @@ -1038,7 +1038,7 @@ var/list/sacrificed = list() S.Weaken(5) S.show_message("\red BZZZT... The rune has exploded in a bright flash.", 3) admin_attack_log(usr, S, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on") - del(src) + qdel(src) else ///When invoked as talisman, stun and mute the target mob. usr.say("Dream sign ''Evil sealing talisman'[pick("'","`")]!") var/obj/item/weapon/nullrod/N = locate() in T @@ -1081,5 +1081,5 @@ var/list/sacrificed = list() //the below calls update_icons() at the end, which will update overlay icons by using the (now updated) cache user.put_in_hands(new /obj/item/weapon/melee/cultblade(user)) //put in hands or on floor - del(src) + qdel(src) return diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index df5b9a49651..d2b881d8913 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -35,7 +35,7 @@ user.take_organ_damage(5, 0) if(src && src.imbue!="supply" && src.imbue!="runestun") if(delete) - del(src) + qdel(src) return else user << "You see strange symbols on the paper. Are they supposed to mean something?" @@ -47,7 +47,7 @@ if(imbue == "runestun") user.take_organ_damage(5, 0) call(/obj/effect/rune/proc/runestun)(T) - del(src) + qdel(src) else ..() ///If its some other talisman, use the generic attack code, is this supposed to work this way? else @@ -56,7 +56,7 @@ proc/supply(var/key) if (!src.uses) - del(src) + qdel(src) return var/dat = "There are [src.uses] bloody runes on the parchment.
" diff --git a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm index 139045291f1..305205c6a05 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm @@ -49,7 +49,8 @@ for(var/atom/movable/A in T) if(A) if(istype(A,/mob/living)) - del(A) + qdel(A) + continue else if(istype(A,/mob)) // Observers, AI cameras. continue qdel(A) @@ -114,4 +115,4 @@ if(istype(user,/mob/dead/observer)) return - del(user) + qdel(user) diff --git a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm index 56d81ba2ec9..62c8b1aa446 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm @@ -78,4 +78,4 @@ else if(riftimage) - del(riftimage) + qdel(riftimage) diff --git a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm index 761d5d446eb..23729763a51 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm @@ -33,6 +33,7 @@ // Apply changes when entering state /datum/universal_state/supermatter_cascade/OnEnter() set background = 1 + garbage_collector.garbage_collect = 0 world << "You are blinded by a brilliant flash of energy." world << sound('sound/effects/cascade.ogg') diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index feed6092e27..d49247263f9 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -49,7 +49,7 @@ var/turf/T = pick(blobstart) var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 ) spawn(rand(50, 300)) - del(bh) + qdel(bh) /* if(3) //Leaving the code in so someone can try and delag it, but this event can no longer occur randomly, per SoS's request. --NEO command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") @@ -71,7 +71,7 @@ P.icon_state = "anom" P.name = "wormhole" spawn(rand(300,600)) - del(P) + qdel(P) */ if(3) if((world.time/10)>=3600 && config.ninjas_allowed && !sent_ninja_to_station)//If an hour has passed, relatively speaking. Also, if ninjas are allowed to spawn and if there is not already a ninja for the round. diff --git a/code/game/gamemodes/events/PortalStorm.dm b/code/game/gamemodes/events/PortalStorm.dm index 890755d6b8e..6144f3305bb 100644 --- a/code/game/gamemodes/events/PortalStorm.dm +++ b/code/game/gamemodes/events/PortalStorm.dm @@ -1,26 +1,26 @@ -/datum/event/portalstorm - - Announce() - command_alert("Subspace disruption detected around the vessel", "Anomaly Alert") - LongTerm() - - var/list/turfs = list( ) - var/turf/picked - - for(var/turf/T in world) - if(T.z < 5 && istype(T,/turf/simulated/floor)) - turfs += T - - for(var/turf/T in world) - if(prob(10) && T.z < 5 && istype(T,/turf/simulated/floor)) - spawn(50+rand(0,3000)) - picked = pick(turfs) - var/obj/portal/P = new /obj/portal( T ) - P.target = picked - P.creator = null - P.icon = 'icons/obj/objects.dmi' - P.failchance = 0 - P.icon_state = "anom" - P.name = "wormhole" - spawn(rand(100,150)) - del(P) \ No newline at end of file +/datum/event/portalstorm + + Announce() + command_alert("Subspace disruption detected around the vessel", "Anomaly Alert") + LongTerm() + + var/list/turfs = list( ) + var/turf/picked + + for(var/turf/T in world) + if(T.z < 5 && istype(T,/turf/simulated/floor)) + turfs += T + + for(var/turf/T in world) + if(prob(10) && T.z < 5 && istype(T,/turf/simulated/floor)) + spawn(50+rand(0,3000)) + picked = pick(turfs) + var/obj/portal/P = new /obj/portal( T ) + P.target = picked + P.creator = null + P.icon = 'icons/obj/objects.dmi' + P.failchance = 0 + P.icon_state = "anom" + P.name = "wormhole" + spawn(rand(100,150)) + qdel(P) diff --git a/code/game/gamemodes/events/black_hole.dm b/code/game/gamemodes/events/black_hole.dm index 6ff7babbeba..60ab8a692fa 100644 --- a/code/game/gamemodes/events/black_hole.dm +++ b/code/game/gamemodes/events/black_hole.dm @@ -1,88 +1,88 @@ -/obj/effect/bhole - name = "black hole" - icon = 'icons/obj/objects.dmi' - desc = "FUCK FUCK FUCK AAAHHH" - icon_state = "bhole3" - opacity = 1 - unacidable = 1 - density = 0 - anchored = 1 - -/obj/effect/bhole/New() - spawn(4) - controller() - -/obj/effect/bhole/proc/controller() - while(src) - - if(!isturf(loc)) - del(src) - return - - //DESTROYING STUFF AT THE EPICENTER - for(var/mob/living/M in orange(1,src)) - del(M) - for(var/obj/O in orange(1,src)) - del(O) - for(var/turf/simulated/ST in orange(1,src)) - ST.ChangeTurf(/turf/space) - - sleep(6) - grav(10, 4, 10, 0 ) - sleep(6) - grav( 8, 4, 10, 0 ) - sleep(6) - grav( 9, 4, 10, 0 ) - sleep(6) - grav( 7, 3, 40, 1 ) - sleep(6) - grav( 5, 3, 40, 1 ) - sleep(6) - grav( 6, 3, 40, 1 ) - sleep(6) - grav( 4, 2, 50, 6 ) - sleep(6) - grav( 3, 2, 50, 6 ) - sleep(6) - grav( 2, 2, 75,25 ) - sleep(6) - - - - //MOVEMENT - if( prob(50) ) - src.anchored = 0 - step(src,pick(alldirs)) - src.anchored = 1 - -/obj/effect/bhole/proc/grav(var/r, var/ex_act_force, var/pull_chance, var/turf_removal_chance) - if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen - del(src) - return - for(var/t = -r, t < r, t++) - affect_coord(x+t, y-r, ex_act_force, pull_chance, turf_removal_chance) - affect_coord(x-t, y+r, ex_act_force, pull_chance, turf_removal_chance) - affect_coord(x+r, y+t, ex_act_force, pull_chance, turf_removal_chance) - affect_coord(x-r, y-t, ex_act_force, pull_chance, turf_removal_chance) - return - -/obj/effect/bhole/proc/affect_coord(var/x, var/y, var/ex_act_force, var/pull_chance, var/turf_removal_chance) - //Get turf at coordinate - var/turf/T = locate(x, y, z) - if(isnull(T)) return - - //Pulling and/or ex_act-ing movable atoms in that turf - if( prob(pull_chance) ) - for(var/obj/O in T.contents) - if(O.anchored) - O.ex_act(ex_act_force) - else - step_towards(O,src) - for(var/mob/living/M in T.contents) - step_towards(M,src) - - //Destroying the turf - if( T && istype(T,/turf/simulated) && prob(turf_removal_chance) ) - var/turf/simulated/ST = T - ST.ChangeTurf(/turf/space) +/obj/effect/bhole + name = "black hole" + icon = 'icons/obj/objects.dmi' + desc = "FUCK FUCK FUCK AAAHHH" + icon_state = "bhole3" + opacity = 1 + unacidable = 1 + density = 0 + anchored = 1 + +/obj/effect/bhole/New() + spawn(4) + controller() + +/obj/effect/bhole/proc/controller() + while(src) + + if(!isturf(loc)) + qdel(src) + return + + //DESTROYING STUFF AT THE EPICENTER + for(var/mob/living/M in orange(1,src)) + qdel(M) + for(var/obj/O in orange(1,src)) + qdel(O) + for(var/turf/simulated/ST in orange(1,src)) + ST.ChangeTurf(/turf/space) + + sleep(6) + grav(10, 4, 10, 0 ) + sleep(6) + grav( 8, 4, 10, 0 ) + sleep(6) + grav( 9, 4, 10, 0 ) + sleep(6) + grav( 7, 3, 40, 1 ) + sleep(6) + grav( 5, 3, 40, 1 ) + sleep(6) + grav( 6, 3, 40, 1 ) + sleep(6) + grav( 4, 2, 50, 6 ) + sleep(6) + grav( 3, 2, 50, 6 ) + sleep(6) + grav( 2, 2, 75,25 ) + sleep(6) + + + + //MOVEMENT + if( prob(50) ) + src.anchored = 0 + step(src,pick(alldirs)) + src.anchored = 1 + +/obj/effect/bhole/proc/grav(var/r, var/ex_act_force, var/pull_chance, var/turf_removal_chance) + if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen + qdel(src) + return + for(var/t = -r, t < r, t++) + affect_coord(x+t, y-r, ex_act_force, pull_chance, turf_removal_chance) + affect_coord(x-t, y+r, ex_act_force, pull_chance, turf_removal_chance) + affect_coord(x+r, y+t, ex_act_force, pull_chance, turf_removal_chance) + affect_coord(x-r, y-t, ex_act_force, pull_chance, turf_removal_chance) + return + +/obj/effect/bhole/proc/affect_coord(var/x, var/y, var/ex_act_force, var/pull_chance, var/turf_removal_chance) + //Get turf at coordinate + var/turf/T = locate(x, y, z) + if(isnull(T)) return + + //Pulling and/or ex_act-ing movable atoms in that turf + if( prob(pull_chance) ) + for(var/obj/O in T.contents) + if(O.anchored) + O.ex_act(ex_act_force) + else + step_towards(O,src) + for(var/mob/living/M in T.contents) + step_towards(M,src) + + //Destroying the turf + if( T && istype(T,/turf/simulated) && prob(turf_removal_chance) ) + var/turf/simulated/ST = T + ST.ChangeTurf(/turf/space) return \ No newline at end of file diff --git a/code/game/gamemodes/events/clang.dm b/code/game/gamemodes/events/clang.dm index 7f4f6f70201..74fb9ee5079 100644 --- a/code/game/gamemodes/events/clang.dm +++ b/code/game/gamemodes/events/clang.dm @@ -36,7 +36,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 if(clong.density || prob(10)) clong.meteorhit(src) else - del(src) + qdel(src) if(clong && prob(25)) src.loc = clong.loc @@ -81,7 +81,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 if (isNotStationLevel(immrod.z)) immrod.z = pick(config.station_levels) if(immrod.loc == end) - del(immrod) + qdel(immrod) sleep(10) for(var/obj/effect/immovablerod/imm in world) return diff --git a/code/game/gamemodes/events/dust.dm b/code/game/gamemodes/events/dust.dm index 2e8b3b13289..4e064d8be6f 100644 --- a/code/game/gamemodes/events/dust.dm +++ b/code/game/gamemodes/events/dust.dm @@ -37,7 +37,7 @@ The "dust" will damage the hull of the station causin minor hull breaches. density = 1 anchored = 1 var/strength = 2 //ex_act severity number - var/life = 2 //how many things we hit before del(src) + var/life = 2 //how many things we hit before qdel(src) weak strength = 3 @@ -107,8 +107,7 @@ The "dust" will damage the hull of the station causin minor hull breaches. life-- if(life <= 0) walk(src,0) - spawn(1) - del(src) + qdel(src) return 0 return @@ -119,5 +118,5 @@ The "dust" will damage the hull of the station causin minor hull breaches. ex_act(severity) - del(src) + qdel(src) return diff --git a/code/game/gamemodes/events/holidays/Christmas.dm b/code/game/gamemodes/events/holidays/Christmas.dm index 7ca66789023..9c68ab879ee 100644 --- a/code/game/gamemodes/events/holidays/Christmas.dm +++ b/code/game/gamemodes/events/holidays/Christmas.dm @@ -14,7 +14,7 @@ evil_tree.icon_living = evil_tree.icon_state evil_tree.icon_dead = evil_tree.icon_state evil_tree.icon_gib = evil_tree.icon_state - del(xmas) + qdel(xmas) /obj/item/weapon/toy/xmas_cracker name = "xmas cracker" diff --git a/code/game/gamemodes/events/wormholes.dm b/code/game/gamemodes/events/wormholes.dm index 9a8066887b9..a7830a2cb3e 100644 --- a/code/game/gamemodes/events/wormholes.dm +++ b/code/game/gamemodes/events/wormholes.dm @@ -59,4 +59,4 @@ P.icon_state = "anom" P.name = "wormhole" spawn(rand(300,600)) - del(P) \ No newline at end of file + qdel(P) \ No newline at end of file diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 8ad65194d18..f67bd7f1d09 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -135,7 +135,7 @@ var/global/datum/controller/gameticker/ticker for(var/obj/effect/landmark/start/S in landmarks_list) //Deleting Startpoints but we need the ai point to AI-ize people later if (S.name != "AI") - del(S) + qdel(S) world << "Enjoy the game!" world << sound('sound/AI/welcome.ogg') // Skie //Holiday Round-start stuff ~Carn @@ -265,8 +265,8 @@ var/global/datum/controller/gameticker/ticker //Otherwise if its a verb it will continue on afterwards. sleep(300) - if(cinematic) del(cinematic) //end the cinematic - if(temp_buckle) del(temp_buckle) //release everybody + if(cinematic) qdel(cinematic) //end the cinematic + if(temp_buckle) qdel(temp_buckle) //release everybody return @@ -280,7 +280,7 @@ var/global/datum/controller/gameticker/ticker continue else player.create_character() - del(player) + qdel(player) proc/collect_minds() diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index f1de61f2865..7e1ba6d3684 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -26,6 +26,6 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' var/area/skipjack = locate(/area/shuttle/skipjack/station) for (var/mob/living/M in skipjack.contents) //maybe send the player a message that they've gone home/been kidnapped? Someone responsible for vox lore should write that. - del(M) + qdel(M) for (var/obj/O in skipjack.contents) - del(O) //no hiding in lockers or anything \ No newline at end of file + qdel(O) //no hiding in lockers or anything \ No newline at end of file diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index c523b469f3f..850529661cc 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -89,7 +89,7 @@ rcd light flash thingy on matter drain V.show_message("\blue You hear a loud electrical buzzing sound!", 2) spawn(50) explosion(get_turf(M), 0,1,2,3) - del(M) + qdel(M) else usr << "Out of uses." else usr << "That's not a machine." diff --git a/code/game/gamemodes/meme/meme.dm b/code/game/gamemodes/meme/meme.dm index 2629b360139..2aa512264df 100644 --- a/code/game/gamemodes/meme/meme.dm +++ b/code/game/gamemodes/meme/meme.dm @@ -93,7 +93,7 @@ M.enter_host(first_host.current) forge_meme_objectives(meme, first_host) - del original + qdel(original) log_admin("Created [memes.len] memes.") diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 1edb533daaa..02d31d5846a 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -111,14 +111,14 @@ !istype(A,/obj/machinery/field_generator) && \ prob(detonation_chance)) explosion(loc, power, power + power_step, power + power_step * 2, power + power_step * 3, 0) - del(src) + qdel(src) return /obj/effect/meteor/ex_act(severity) if (severity < 4) - del(src) + qdel(src) return /obj/effect/meteor/big @@ -136,7 +136,7 @@ if(!istype(A,/obj/machinery/power/emitter) && \ !istype(A,/obj/machinery/field_generator)) if(--src.hits <= 0) - del(src) //Dont blow up singularity containment if we get stuck there. + qdel(src) //Dont blow up singularity containment if we get stuck there. if (A) for(var/mob/M in player_list) @@ -150,11 +150,11 @@ if (--src.hits <= 0) if(prob(detonation_chance) && !istype(A, /obj/structure/grille)) explosion(loc, power, power + power_step, power + power_step * 2, power + power_step * 3, 0) - del(src) + qdel(src) return /obj/effect/meteor/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/pickaxe)) - del(src) + qdel(src) return ..() \ No newline at end of file diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index be9d9013480..076c0afbf3a 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -13,7 +13,7 @@ datum/objective if(text) explanation_text = text - Del() + Destroy() all_objectives -= src ..() @@ -541,7 +541,7 @@ datum/objective/steal if (!custom_target) return var/tmp_obj = new custom_target var/custom_name = tmp_obj:name - del(tmp_obj) + qdel(tmp_obj) custom_name = sanitize(input("Enter target name:", "Objective target", custom_name) as text|null) if (!custom_name) return target_name = custom_name diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index 439befdc63a..ad2abb22360 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -120,7 +120,7 @@ datum/hSB if("hsbtoolbox") var/obj/item/weapon/storage/hsb = new/obj/item/weapon/storage/toolbox/mechanical for(var/obj/item/device/radio/T in hsb) - del(T) + qdel(T) new/obj/item/weapon/crowbar (hsb) hsb.loc = usr.loc if("hsbmedkit") diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index 501335a19ff..29815966450 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -151,7 +151,7 @@ var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc) M.real_name = "Corpse" M.death() - del(A) + qdel(A) continue if (A.name == "Corpse-Engineer") var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc) @@ -173,7 +173,7 @@ else if (prob(50)) M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/welding(M), slot_head) - del(A) + qdel(A) continue if (A.name == "Corpse-Engineer-Space") var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc) @@ -196,7 +196,7 @@ M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/welding(M), slot_head) else M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space(M), slot_head) - del(A) + qdel(A) continue if (A.name == "Corpse-Engineer-Chief") var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc) @@ -217,7 +217,7 @@ else if (prob(50)) M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/welding(M), slot_head) - del(A) + qdel(A) continue if (A.name == "Corpse-Syndicate") var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc) @@ -239,6 +239,6 @@ else M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat(M), slot_head) - del(A) + qdel(A) continue */ diff --git a/code/game/jobs/jobprocs.dm b/code/game/jobs/jobprocs.dm index 60b8c6a99df..2a012872bf2 100644 --- a/code/game/jobs/jobprocs.dm +++ b/code/game/jobs/jobprocs.dm @@ -44,7 +44,7 @@ timeleft -= (world.time - last_process) if(timeleft <= 0) processing_objects.Remove(src) - del(src) + qdel(src) /////////////////////////////// diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm index 37cc168d572..19399ce7392 100644 --- a/code/game/machinery/Beacon.dm +++ b/code/game/machinery/Beacon.dm @@ -1,55 +1,55 @@ -/obj/machinery/bluespace_beacon - - icon = 'icons/obj/objects.dmi' - icon_state = "floor_beaconf" - name = "Bluespace Gigabeacon" - desc = "A device that draws power from bluespace and creates a permanent tracking beacon." - level = 1 // underfloor - layer = 2.5 - anchored = 1 - use_power = 1 - idle_power_usage = 0 - var/obj/item/device/radio/beacon/Beacon - - New() - ..() - var/turf/T = loc - Beacon = new /obj/item/device/radio/beacon - Beacon.invisibility = INVISIBILITY_MAXIMUM - Beacon.loc = T - - hide(T.intact) - - Del() - if(Beacon) - del(Beacon) - ..() - - // update the invisibility and icon - hide(var/intact) - invisibility = intact ? 101 : 0 - updateicon() - - // update the icon_state - proc/updateicon() - var/state="floor_beacon" - - if(invisibility) - icon_state = "[state]f" - - else - icon_state = "[state]" - - process() - if(!Beacon) - var/turf/T = loc - Beacon = new /obj/item/device/radio/beacon - Beacon.invisibility = INVISIBILITY_MAXIMUM - Beacon.loc = T - if(Beacon) - if(Beacon.loc != loc) - Beacon.loc = loc - - updateicon() - - +/obj/machinery/bluespace_beacon + + icon = 'icons/obj/objects.dmi' + icon_state = "floor_beaconf" + name = "Bluespace Gigabeacon" + desc = "A device that draws power from bluespace and creates a permanent tracking beacon." + level = 1 // underfloor + layer = 2.5 + anchored = 1 + use_power = 1 + idle_power_usage = 0 + var/obj/item/device/radio/beacon/Beacon + + New() + ..() + var/turf/T = loc + Beacon = new /obj/item/device/radio/beacon + Beacon.invisibility = INVISIBILITY_MAXIMUM + Beacon.loc = T + + hide(T.intact) + + Destroy() + if(Beacon) + qdel(Beacon) + ..() + + // update the invisibility and icon + hide(var/intact) + invisibility = intact ? 101 : 0 + updateicon() + + // update the icon_state + proc/updateicon() + var/state="floor_beacon" + + if(invisibility) + icon_state = "[state]f" + + else + icon_state = "[state]" + + process() + if(!Beacon) + var/turf/T = loc + Beacon = new /obj/item/device/radio/beacon + Beacon.invisibility = INVISIBILITY_MAXIMUM + Beacon.loc = T + if(Beacon) + if(Beacon.loc != loc) + Beacon.loc = loc + + updateicon() + + diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 6e1ecdf4cab..a03289c78b1 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -28,12 +28,12 @@ switch(severity) if(1.0) //SN src = null - del(src) + qdel(src) return if(2.0) if (prob(50)) //SN src = null - del(src) + qdel(src) return if(3.0) if (prob(25)) @@ -43,14 +43,14 @@ /obj/machinery/optable/blob_act() if(prob(75)) - del(src) + qdel(src) /obj/machinery/optable/attack_hand(mob/user as mob) if (HULK in usr.mutations) usr << text("\blue You destroy the table.") visible_message("\red [usr] destroys the operating table!") src.density = 0 - del(src) + qdel(src) return /obj/machinery/optable/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) @@ -130,7 +130,7 @@ var/obj/item/weapon/grab/G = W if(iscarbon(G.affecting) && check_table(G.affecting)) take_victim(G.affecting,usr) - del(W) + qdel(W) return /obj/machinery/optable/proc/check_table(mob/living/carbon/patient as mob) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 20c16dcb9c6..0e92db15119 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -25,12 +25,12 @@ switch(severity) if(1.0) //SN src = null - del(src) + qdel(src) return if(2.0) if (prob(50)) //SN src = null - del(src) + qdel(src) return else return @@ -204,7 +204,7 @@ for(var/atom/movable/A as mob|obj in src) A.loc = src.loc A.blob_act() - del(src) + qdel(src) return attackby(var/obj/item/weapon/G as obj, var/mob/user as mob) @@ -252,7 +252,7 @@ icon_state = "sleeper_1-r" src.add_fingerprint(user) - del(G) + qdel(G) return return @@ -265,21 +265,21 @@ for(var/atom/movable/A as mob|obj in src) A.loc = src.loc ex_act(severity) - del(src) + qdel(src) return if(2.0) if(prob(50)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc ex_act(severity) - del(src) + qdel(src) return if(3.0) if(prob(25)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc ex_act(severity) - del(src) + qdel(src) return return emp_act(severity) @@ -435,7 +435,7 @@ icon_state = "sleeper_1-r" for(var/obj/O in src) - del(O) + qdel(O) src.add_fingerprint(usr) return return diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 51e1ec75103..8c6be59f712 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -56,7 +56,7 @@ src.icon_state = "body_scanner_1" for(var/obj/O in src) //O = null - del(O) + qdel(O) //Foreach goto(124) src.add_fingerprint(usr) return @@ -98,7 +98,7 @@ //Foreach goto(154) src.add_fingerprint(user) //G = null - del(G) + qdel(G) return /obj/machinery/bodyscanner/ex_act(severity) @@ -109,7 +109,7 @@ ex_act(severity) //Foreach goto(35) //SN src = null - del(src) + qdel(src) return if(2.0) if (prob(50)) @@ -118,7 +118,7 @@ ex_act(severity) //Foreach goto(108) //SN src = null - del(src) + qdel(src) return if(3.0) if (prob(25)) @@ -127,7 +127,7 @@ ex_act(severity) //Foreach goto(181) //SN src = null - del(src) + qdel(src) return else return @@ -136,19 +136,19 @@ if(prob(50)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc - del(src) + qdel(src) /obj/machinery/body_scanconsole/ex_act(severity) switch(severity) if(1.0) //SN src = null - del(src) + qdel(src) return if(2.0) if (prob(50)) //SN src = null - del(src) + qdel(src) return else return @@ -156,7 +156,7 @@ /obj/machinery/body_scanconsole/blob_act() if(prob(50)) - del(src) + qdel(src) /obj/machinery/body_scanconsole/power_change() ..() diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index f6d2820d5bb..86eadfa053d 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -831,7 +831,7 @@ if(0) if(istype(W, /obj/item/weapon/airalarm_electronics)) user << "You insert the circuit!" - del(W) + qdel(W) buildstage = 1 update_icon() return @@ -841,7 +841,7 @@ var/obj/item/alarm_frame/frame = new /obj/item/alarm_frame() frame.loc = user.loc playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - del(src) + qdel(src) return ..() @@ -884,7 +884,7 @@ Code shamelessly copied from apc_frame /obj/item/alarm_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/wrench)) new /obj/item/stack/sheet/metal( get_turf(src.loc), 2 ) - del(src) + qdel(src) return ..() @@ -910,7 +910,7 @@ Code shamelessly copied from apc_frame return new /obj/machinery/alarm(loc, ndir, 1) - del(src) + qdel(src) /* FIRE ALARM @@ -1015,7 +1015,7 @@ FIRE ALARM if(0) if(istype(W, /obj/item/weapon/firealarm_electronics)) user << "You insert the circuit!" - del(W) + qdel(W) buildstage = 1 update_icon() @@ -1024,7 +1024,7 @@ FIRE ALARM var/obj/item/firealarm_frame/frame = new /obj/item/firealarm_frame() frame.loc = user.loc playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - del(src) + qdel(src) return src.alarm() @@ -1206,7 +1206,7 @@ Code shamelessly copied from apc_frame /obj/item/firealarm_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/wrench)) new /obj/item/stack/sheet/metal( get_turf(src.loc), 2 ) - del(src) + qdel(src) return ..() @@ -1233,7 +1233,7 @@ Code shamelessly copied from apc_frame new /obj/machinery/firealarm(loc, ndir, 1) - del(src) + qdel(src) /obj/machinery/partyalarm diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm index ad7d55c2aa5..095aec4a24a 100644 --- a/code/game/machinery/atmoalter/meter.dm +++ b/code/game/machinery/atmoalter/meter.dm @@ -104,7 +104,7 @@ "\blue You have unfastened \the [src].", \ "You hear ratchet.") new /obj/item/pipe_meter(src.loc) - del(src) + qdel(src) // TURF METER - REPORTS A TILE'S AIR CONTENTS diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index 9308bae64e7..910c84608f4 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -35,8 +35,8 @@ else update_icon() -/obj/machinery/portable_atmospherics/Del() - del(air_contents) +/obj/machinery/portable_atmospherics/Destroy() + qdel(air_contents) ..() diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index d537d113f9b..d60404d5dea 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -190,7 +190,7 @@ stack.use(max(1, round(total_used/mass_per_sheet))) // Always use at least 1 to prevent infinite materials. else user.remove_from_mob(O) - del(O) + qdel(O) updateUsrDialog() return diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index 68bf61b7f11..1b31f035157 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -16,7 +16,7 @@ recipe.resources = list() for(var/material in I.matter) recipe.resources[material] = I.matter[material]*1.25 // More expensive to produce than they are to recycle. - del(I) + qdel(I) /datum/autolathe/recipe var/name = "object" diff --git a/code/game/machinery/bees_items.dm b/code/game/machinery/bees_items.dm index 486b46d33c0..05f9231f8a3 100644 --- a/code/game/machinery/bees_items.dm +++ b/code/game/machinery/bees_items.dm @@ -20,7 +20,7 @@ for(var/mob/living/simple_animal/bee/B in T) if(B.feral < 0) caught_bees += B.strength - del(B) + qdel(B) user.visible_message("\blue [user] nets some bees.","\blue You net up some of the becalmed bees.") else user.visible_message("\red [user] swings at some bees, they don't seem to like it.","\red You swing at some bees, they don't seem to like it.") diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 87399b597ac..61ed92d58e5 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -151,7 +151,7 @@ if(I.reagents.get_reagent_amount("nutriment") < 0.1) points += 1 else points += I.reagents.get_reagent_amount("nutriment") * 10 * eat_eff - del(I) + qdel(I) if(S) processing = 1 update_icon() diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm index 48c0edb9846..5a8b25bb84b 100644 --- a/code/game/machinery/bioprinter.dm +++ b/code/game/machinery/bioprinter.dm @@ -70,7 +70,7 @@ stored_matter += 50 user.drop_item() user << "\The [src] processes \the [W]. Levels of stored biomass now: [stored_matter]" - del(W) + qdel(W) return // Steel for matter. else if(prints_prosthetics && istype(W, /obj/item/stack/sheet/metal)) @@ -78,7 +78,7 @@ stored_matter += M.amount * 10 user.drop_item() user << "\The [src] processes \the [W]. Levels of stored matter now: [stored_matter]" - del(W) + qdel(W) return else return..() \ No newline at end of file diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index f87ae33ee09..d1257eeaf64 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -27,7 +27,7 @@ SetLuminosity(0) /obj/machinery/bot/proc/explode() - del(src) + qdel(src) /obj/machinery/bot/proc/healthcheck() if (src.health <= 0) @@ -117,7 +117,7 @@ /obj/machinery/bot/emp_act(severity) var/was_on = on stat |= EMPED - var/obj/effect/overlay/pulse2 = new/obj/effect/overlay ( src.loc ) + var/obj/effect/overlay/pulse2 = PoolOrNew(/obj/effect/overlay, src.loc ) pulse2.icon = 'icons/effects/effects.dmi' pulse2.icon_state = "empdisable" pulse2.name = "emp sparks" @@ -125,7 +125,7 @@ pulse2.set_dir(pick(cardinal)) spawn(10) - pulse2.delete() + qdel(pulse2) if (on) turn_off() spawn(severity*300) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index 4dcb8381521..87eb1be30ff 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -319,7 +319,7 @@ text("[src.oddbutton ? "Yes" : "No" var/turf/simulated/f = loc f.dirt = 0 cleaning = 0 - del(target) + qdel(target) icon_state = "cleanbot[on]" anchored = 0 target = null @@ -339,20 +339,20 @@ text("[src.oddbutton ? "Yes" : "No" var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() - del(src) + qdel(src) return /obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob) ..() if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm)) user.drop_item() - del(W) + qdel(W) var/turf/T = get_turf(src.loc) var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot(T) A.name = src.created_name user << "You add the robot arm to the bucket and sensor assembly. Beep boop!" user.drop_from_inventory(src) - del(src) + qdel(src) else if (istype(W, /obj/item/weapon/pen)) var/t = sanitizeSafe(input(user, "Enter new robot name", src.name, src.created_name), MAX_NAME_LEN) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index a955efaa1f2..ee26a5f4052 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -68,7 +68,7 @@ if(0,1) if( istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg) ) user.drop_item() - del(W) + qdel(W) build_step++ user << "You add the robot leg to [src]." name = "legs/frame assembly" @@ -86,7 +86,7 @@ lasercolor = "b" if( lasercolor || istype(W, /obj/item/clothing/suit/storage/vest) ) user.drop_item() - del(W) + qdel(W) build_step++ user << "You add the armor to [src]." name = "vest/legs/frame assembly" @@ -103,7 +103,7 @@ if(4) if( istype(W, /obj/item/clothing/head/helmet) ) user.drop_item() - del(W) + qdel(W) build_step++ user << "You add the helmet to [src]." name = "covered and shielded frame assembly" @@ -113,7 +113,7 @@ if(5) if( isprox(W) ) user.drop_item() - del(W) + qdel(W) build_step++ user << "You add the prox sensor to [src]." name = "covered, shielded and sensored frame assembly" @@ -155,7 +155,7 @@ src.item_state = "[lasercolor]ed209_taser" src.icon_state = "[lasercolor]ed209_taser" user.drop_item() - del(W) + qdel(W) if(8) if( istype(W, /obj/item/weapon/screwdriver) ) @@ -175,16 +175,16 @@ var/turf/T = get_turf(src) new /obj/machinery/bot/secbot/ed209(T,created_name,lasercolor) user.drop_item() - del(W) + qdel(W) user.drop_from_inventory(src) - del(src) + qdel(src) /obj/machinery/bot/secbot/ed209/bullet_act(var/obj/item/projectile/Proj) if((src.lasercolor == "b") && (src.disabled == 0)) if(istype(Proj, /obj/item/projectile/beam/lastertag/red)) src.disabled = 1 - del (Proj) + qdel (Proj) sleep(100) src.disabled = 0 else @@ -192,7 +192,7 @@ else if((src.lasercolor == "r") && (src.disabled == 0)) if(istype(Proj, /obj/item/projectile/beam/lastertag/blue)) src.disabled = 1 - del (Proj) + qdel (Proj) sleep(100) src.disabled = 0 else @@ -202,9 +202,9 @@ /obj/machinery/bot/secbot/ed209/bluetag/New()//If desired, you spawn red and bluetag bots easily new /obj/machinery/bot/secbot/ed209(get_turf(src),null,"b") - del(src) + qdel(src) /obj/machinery/bot/secbot/ed209/redtag/New() new /obj/machinery/bot/secbot/ed209(get_turf(src),null,"r") - del(src) + qdel(src) diff --git a/code/game/machinery/bots/farmbot.dm b/code/game/machinery/bots/farmbot.dm index ca32e937ed3..dae443b5007 100644 --- a/code/game/machinery/bots/farmbot.dm +++ b/code/game/machinery/bots/farmbot.dm @@ -220,7 +220,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() - del(src) + qdel(src) return /obj/machinery/bot/farmbot/process() @@ -407,7 +407,7 @@ tray.nutrilevel = 10 tray.yieldmod = fert.yieldmod tray.mutmod = fert.mutmod - del fert + qdel(fert) tray.updateicon() icon_state = "farmbot_fertile" mode = FARMBOT_MODE_WAITING @@ -543,7 +543,7 @@ user << "You add the robot arm to the [src]" src.loc = A //Place the water tank into the assembly, it will be needed for the finished bot user.remove_from_mob(S) - del(S) + qdel(S) /obj/item/weapon/farmbot_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() @@ -552,21 +552,21 @@ user << "You add the plant analyzer to [src]!" src.name = "farmbot assembly" user.remove_from_mob(W) - del(W) + qdel(W) else if(( istype(W, /obj/item/weapon/reagent_containers/glass/bucket)) && (src.build_step == 1)) src.build_step++ user << "You add a bucket to [src]!" src.name = "farmbot assembly with bucket" user.remove_from_mob(W) - del(W) + qdel(W) else if(( istype(W, /obj/item/weapon/minihoe)) && (src.build_step == 2)) src.build_step++ user << "You add a minihoe to [src]!" src.name = "farmbot assembly with bucket and minihoe" user.remove_from_mob(W) - del(W) + qdel(W) else if((isprox(W)) && (src.build_step == 3)) src.build_step++ @@ -578,8 +578,8 @@ S.loc = get_turf(src) S.name = src.created_name user.remove_from_mob(W) - del(W) - del(src) + qdel(W) + qdel(src) else if(istype(W, /obj/item/weapon/pen)) var/t = input(user, "Enter new robot name", src.name, src.created_name) as text diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index b3c1c0376f8..03efdaeac15 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -329,7 +329,7 @@ T.use(i) else src.amount += T.get_amount() - del(T) + qdel(T) src.updateicon() src.target = null src.repairing = 0 @@ -349,7 +349,7 @@ var/obj/item/stack/tile/plasteel/T = new /obj/item/stack/tile/plasteel T.amount = 4 T.loc = M.loc - del(M) + qdel(M) src.target = null src.repairing = 0 @@ -385,7 +385,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() - del(src) + qdel(src) return @@ -403,7 +403,7 @@ user.put_in_hands(B) user << "You add the tiles into the empty toolbox. They protrude from the top." user.drop_from_inventory(src) - del(src) + qdel(src) else user << "You need 10 floortiles for a floorbot." return @@ -411,13 +411,13 @@ /obj/item/weapon/toolbox_tiles/attackby(var/obj/item/W, mob/user as mob) ..() if(isprox(W)) - del(W) + qdel(W) var/obj/item/weapon/toolbox_tiles_sensor/B = new /obj/item/weapon/toolbox_tiles_sensor() B.created_name = src.created_name user.put_in_hands(B) user << "You add the sensor to the toolbox and tiles!" user.drop_from_inventory(src) - del(src) + qdel(src) else if (istype(W, /obj/item/weapon/pen)) var/t = sanitizeSafe(input(user, "Enter new robot name", src.name, src.created_name), MAX_NAME_LEN) @@ -431,13 +431,13 @@ /obj/item/weapon/toolbox_tiles_sensor/attackby(var/obj/item/W, mob/user as mob) ..() if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm)) - del(W) + qdel(W) var/turf/T = get_turf(user.loc) var/obj/machinery/bot/floorbot/A = new /obj/machinery/bot/floorbot(T) A.name = src.created_name user << "You add the robot arm to the odd looking toolbox assembly! Boop beep!" user.drop_from_inventory(src) - del(src) + qdel(src) else if (istype(W, /obj/item/weapon/pen)) var/t = sanitizeSafe(input(user, "Enter new robot name", src.name, src.created_name), MAX_NAME_LEN) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 8ce3522707f..b6e8c686369 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -479,7 +479,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() - del(src) + qdel(src) return /obj/machinery/bot/medbot/Bump(M as mob|obj) //Leave no door unopened! @@ -554,11 +554,11 @@ else if(istype(src,/obj/item/weapon/storage/firstaid/o2)) A.skin = "o2" - del(S) + qdel(S) user.put_in_hands(A) user << "You add the robot arm to the first aid kit." user.drop_from_inventory(src) - del(src) + qdel(src) /obj/item/weapon/firstaid_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -575,7 +575,7 @@ if(0) if(istype(W, /obj/item/device/healthanalyzer)) user.drop_item() - del(W) + qdel(W) src.build_step++ user << "You add the health sensor to [src]." src.name = "First aid/robot arm/health analyzer assembly" @@ -584,7 +584,7 @@ if(1) if(isprox(W)) user.drop_item() - del(W) + qdel(W) src.build_step++ user << "You complete the Medibot! Beep boop." var/turf/T = get_turf(src) @@ -592,5 +592,5 @@ S.skin = src.skin S.name = src.created_name user.drop_from_inventory(src) - del(src) + qdel(src) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index bd39d2034c5..4226700d2c8 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -876,4 +876,4 @@ new /obj/effect/decal/cleanable/blood/oil(src.loc) unload(0) - del(src) + qdel(src) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 92b7297c42d..f29f8355ca8 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -773,7 +773,7 @@ Auto Patrol: []"}, s.start() new /obj/effect/decal/cleanable/blood/oil(src.loc) - del(src) + qdel(src) /obj/machinery/bot/secbot/proc/on_explosion(var/turf/Tsec) @@ -793,12 +793,12 @@ Auto Patrol: []"}, return if(S.secured) - del(S) + qdel(S) var/obj/item/weapon/secbot_assembly/A = new /obj/item/weapon/secbot_assembly user.put_in_hands(A) user << "You add the signaler to the helmet." user.drop_from_inventory(src) - del(src) + qdel(src) else return @@ -817,7 +817,7 @@ Auto Patrol: []"}, user << "You add the prox sensor to [src]!" src.overlays += image('icons/obj/aibots.dmi', "hs_eye") src.name = "helmet/signaler/prox sensor assembly" - del(W) + qdel(W) else if(((istype(W, /obj/item/robot_parts/l_arm)) || (istype(W, /obj/item/robot_parts/r_arm))) && (src.build_step == 2)) user.drop_item() @@ -825,7 +825,7 @@ Auto Patrol: []"}, user << "You add the robot arm to [src]!" src.name = "helmet/signaler/prox sensor/robot arm assembly" src.overlays += image('icons/obj/aibots.dmi', "hs_arm") - del(W) + qdel(W) else if((istype(W, /obj/item/weapon/melee/baton)) && (src.build_step >= 3)) user.drop_item() @@ -834,8 +834,8 @@ Auto Patrol: []"}, var/obj/machinery/bot/secbot/S = new /obj/machinery/bot/secbot S.loc = get_turf(src) S.name = src.created_name - del(W) - del(src) + qdel(W) + qdel(src) else if(istype(W, /obj/item/weapon/pen)) var/t = sanitizeSafe(input(user, "Enter new robot name", src.name, src.created_name), MAX_NAME_LEN) @@ -892,14 +892,14 @@ Auto Patrol: []"}, if(severity==2 && prob(70)) ..(severity-1) else - var/obj/effect/overlay/pulse2 = new/obj/effect/overlay ( src.loc ) + var/obj/effect/overlay/pulse2 = PoolOrNew(/obj/effect/overlay, src.loc) pulse2.icon = 'icons/effects/effects.dmi' pulse2.icon_state = "empdisable" pulse2.name = "emp sparks" pulse2.anchored = 1 pulse2.set_dir(pick(cardinal)) spawn(10) - pulse2.delete() + qdel(pulse2) var/list/mob/living/carbon/targets = new for(var/mob/living/carbon/C in view(12,src)) if(C.stat==2) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 06c77503fbf..da733083fcf 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -136,7 +136,7 @@ assembly.loc = src.loc assembly.state = 1 new /obj/item/stack/cable_coil(src.loc, length=2) - del(src) + qdel(src) // OTHER else if (can_use() && (istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/device/pda)) && isliving(user)) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 0c133adc9bc..0f824012188 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -235,7 +235,7 @@ user << "\The [src] processes \the [W]." biomass += 50 user.drop_item() - del(W) + qdel(W) return else if(istype(W, /obj/item/weapon/wrench)) if(locked && (anchored || occupant)) @@ -328,7 +328,7 @@ update_icon() occupant.ghostize() spawn(5) - del(occupant) + qdel(occupant) return /obj/machinery/clonepod/relaymove(mob/user as mob) @@ -348,21 +348,21 @@ for(var/atom/movable/A as mob|obj in src) A.loc = loc ex_act(severity) - del(src) + qdel(src) return if(2.0) if(prob(50)) for(var/atom/movable/A as mob|obj in src) A.loc = loc ex_act(severity) - del(src) + qdel(src) return if(3.0) if(prob(25)) for(var/atom/movable/A as mob|obj in src) A.loc = loc ex_act(severity) - del(src) + qdel(src) return else return diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index 1368d19bb8f..028f1ba307a 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -30,7 +30,7 @@ if(!src || !WT.remove_fuel(0, user)) return user << "\blue You deconstruct the frame." new /obj/item/stack/sheet/plasteel( loc, 4) - del(src) + qdel(src) if(1) if(istype(P, /obj/item/weapon/wrench)) playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) @@ -178,7 +178,7 @@ if(A) //if there's no brain, the mob is deleted and a structure/AIcore is created A.rename_self("ai", 1) feedback_inc("cyborg_ais_created",1) - del(src) + qdel(src) /obj/structure/AIcore/deactivated name = "inactive AI" @@ -187,7 +187,7 @@ anchored = 1 state = 20//So it doesn't interact based on the above. Not really necessary. -/obj/structure/AIcore/deactivated/Del() +/obj/structure/AIcore/deactivated/Destroy() if(src in empty_playable_ai_cores) empty_playable_ai_cores -= src ..() @@ -208,7 +208,7 @@ if(card) card.clear() - del(src) + qdel(src) /obj/structure/AIcore/deactivated/proc/check_malf(var/mob/living/silicon/ai/ai) if(!ai) return diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 77f76476085..2af213478a8 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -14,7 +14,7 @@ var/global/list/minor_air_alarms = list() ..() atmosphere_alarm.register(src, /obj/machinery/computer/station_alert/update_icon) -/obj/machinery/computer/atmos_alert/Del() +/obj/machinery/computer/atmos_alert/Destroy() atmosphere_alarm.unregister(src) ..() diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index ac648624f26..a325ab90f30 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -29,7 +29,7 @@ if(!src || !WT.isOn()) return user << "\blue You deconstruct the frame." new /obj/item/stack/sheet/metal( src.loc, 5 ) - del(src) + qdel(src) if(1) if(istype(P, /obj/item/weapon/wrench)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) @@ -111,4 +111,4 @@ user << "\blue You connect the monitor." var/B = new src.circuit.build_path ( src.loc ) src.circuit.construct(B) - del(src) + qdel(src) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index fd8386a7f86..35ae52d5887 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -221,7 +221,7 @@ src.active_record = locate(href_list["view_rec"]) if(istype(src.active_record,/datum/dna2/record)) if ((isnull(src.active_record.ckey))) - del(src.active_record) + qdel(src.active_record) src.temp = "ERROR: Record Corrupt" else src.menu = 3 @@ -241,7 +241,7 @@ if (istype(C)||istype(C, /obj/item/device/pda)) if(src.check_access(C)) src.records.Remove(src.active_record) - del(src.active_record) + qdel(src.active_record) src.temp = "Record deleted." src.menu = 2 else @@ -313,7 +313,7 @@ else if(pod.growclone(C)) temp = "Initiating cloning cycle..." records.Remove(C) - del(C) + qdel(C) menu = 1 else @@ -323,7 +323,7 @@ if(answer != "No" && pod.growclone(C)) temp = "Initiating cloning cycle..." records.Remove(C) - del(C) + qdel(C) menu = 1 else temp = "Initiating cloning cycle...
Error: Post-initialisation failed. Cloning cycle aborted." diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 4fc43a02591..1be7fae4532 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -551,7 +551,7 @@ frequency.post_signal(src, status_signal) -/obj/machinery/computer/communications/Del() +/obj/machinery/computer/communications/Destroy() for(var/obj/machinery/computer/communications/commconsole in world) if(istype(commconsole.loc,/turf) && commconsole != src) @@ -574,7 +574,7 @@ ..() -/obj/item/weapon/circuitboard/communications/Del() +/obj/item/weapon/circuitboard/communications/Destroy() for(var/obj/machinery/computer/communications/commconsole in world) if(istype(commconsole.loc,/turf)) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 304ac7d1afb..d20d634ed77 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -41,11 +41,11 @@ /obj/machinery/computer/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(25)) - del(src) + qdel(src) return if (prob(50)) for(var/x in verbs) @@ -129,7 +129,7 @@ A.state = 4 A.icon_state = "4" M.deconstruct(src) - del(src) + qdel(src) else src.attack_hand(user) return diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index c6a30995d20..ea479e44b72 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -240,7 +240,7 @@ if (href_list["del_all2"]) for(var/datum/data/record/R in data_core.medical) //R = null - del(R) + qdel(R) //Foreach goto(494) src.temp = "All records deleted." @@ -408,7 +408,7 @@ if (href_list["del_r2"]) if (src.active2) //src.active2 = null - del(src.active2) + qdel(src.active2) if (href_list["d_rec"]) var/datum/data/record/R = locate(href_list["d_rec"]) @@ -542,7 +542,7 @@ continue else if(prob(1)) - del(R) + qdel(R) continue ..(severity) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 0c7830a78a7..30a39c37b13 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -77,7 +77,7 @@ A.state = 3 A.icon_state = "3" A.anchored = 1 - del(src) + qdel(src) else user << "\blue You disconnect the monitor." var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc ) @@ -100,7 +100,7 @@ A.state = 4 A.icon_state = "4" A.anchored = 1 - del(src) + qdel(src) else attack_hand(user) return diff --git a/code/game/machinery/computer/prisonshuttle.dm b/code/game/machinery/computer/prisonshuttle.dm index 84ba06fa021..7b152fb7a30 100644 --- a/code/game/machinery/computer/prisonshuttle.dm +++ b/code/game/machinery/computer/prisonshuttle.dm @@ -45,7 +45,7 @@ var/prison_shuttle_timeleft = 0 A.state = 4 A.icon_state = "4" - del(src) + qdel(src) else if(istype(I,/obj/item/weapon/card/emag) && (!hacked)) hacked = 1 user << "\blue You disable the lock." @@ -194,7 +194,7 @@ var/prison_shuttle_timeleft = 0 for(var/atom/movable/AM as mob|obj in T) AM.Move(D) if(istype(T, /turf/simulated)) - del(T) + qdel(T) start_location.move_contents_to(end_location) if(1) @@ -224,7 +224,7 @@ var/prison_shuttle_timeleft = 0 for(var/atom/movable/AM as mob|obj in T) AM.Move(D) if(istype(T, /turf/simulated)) - del(T) + qdel(T) for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area... bug.gib() diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index c05f0f78be8..647434b7fd1 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -377,7 +377,7 @@ What a mess.*/ if ("Purge All Records") for(var/datum/data/record/R in data_core.security) - del(R) + qdel(R) temp = "All Security records deleted." if ("Add Entry") @@ -549,17 +549,17 @@ What a mess.*/ if ("Delete Record (Security) Execute") if (active2) - del(active2) + qdel(active2) if ("Delete Record (ALL) Execute") if (active1) for(var/datum/data/record/R in data_core.medical) if ((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"])) - del(R) + qdel(R) else - del(active1) + qdel(active1) if (active2) - del(active2) + qdel(active2) else temp = "This function does not appear to be working at the moment. Our apologies." @@ -605,7 +605,7 @@ What a mess.*/ continue else if(prob(1)) - del(R) + qdel(R) continue ..(severity) diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index b8b25b3e34b..05da871ed2d 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -43,7 +43,7 @@ world << "\blue Alert: Shuttle launch time shortened to 10 seconds!" emergency_shuttle.set_launch_countdown(10) //src.authorized = null - del(src.authorized) + qdel(src.authorized) src.authorized = list( ) if("Repeal") diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index aa92a59094c..201c834e1c5 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -289,7 +289,7 @@ What a mess.*/ if(PDA_Manifest.len) PDA_Manifest.Cut() for(var/datum/data/record/R in data_core.security) - del(R) + qdel(R) temp = "All Employment records deleted." if ("Delete Record (ALL)") @@ -373,9 +373,9 @@ What a mess.*/ PDA_Manifest.Cut() for(var/datum/data/record/R in data_core.medical) if ((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"])) - del(R) + qdel(R) else - del(active1) + qdel(active1) else temp = "This function does not appear to be working at the moment. Our apologies." @@ -408,7 +408,7 @@ What a mess.*/ continue else if(prob(1)) - del(R) + qdel(R) continue ..(severity) \ No newline at end of file diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm index 01728b4e504..48ba842a2f6 100644 --- a/code/game/machinery/computer/specops_shuttle.dm +++ b/code/game/machinery/computer/specops_shuttle.dm @@ -75,7 +75,7 @@ var/specops_shuttle_timeleft = 0 for(var/atom/movable/AM as mob|obj in T) AM.Move(D) if(istype(T, /turf/simulated)) - del(T) + qdel(T) for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area... bug.gib() @@ -94,7 +94,7 @@ var/specops_shuttle_timeleft = 0 for(var/obj/machinery/computer/specops_shuttle/S in world) S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY - del(announcer) + qdel(announcer) /proc/specops_process() var/area/centcom/specops/special_ops = locate()//Where is the specops area located? @@ -224,7 +224,7 @@ var/specops_shuttle_timeleft = 0 for(var/atom/movable/AM as mob|obj in T) AM.Move(D) if(istype(T, /turf/simulated)) - del(T) + qdel(T) start_location.move_contents_to(end_location) @@ -235,7 +235,7 @@ var/specops_shuttle_timeleft = 0 for(var/obj/machinery/computer/specops_shuttle/S in world) S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY - del(announcer) + qdel(announcer) /proc/specops_can_move() if(specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index 6d5209ce585..87805869852 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -16,7 +16,7 @@ alarm_monitor = new monitor_type(src) alarm_monitor.register(src, /obj/machinery/computer/station_alert/update_icon) -/obj/machinery/computer/station_alert/Del() +/obj/machinery/computer/station_alert/Destroy() alarm_monitor.unregister(src) ..() diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm index 970bb362c36..f526ead65ba 100644 --- a/code/game/machinery/computer/syndicate_specops_shuttle.dm +++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm @@ -160,7 +160,7 @@ var/syndicate_elite_shuttle_timeleft = 0 for(var/atom/movable/AM as mob|obj in T) AM.Move(D) if(istype(T, /turf/simulated)) - del(T) + qdel(T) for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area... bug.gib() diff --git a/code/game/machinery/computer3/buildandrepair.dm b/code/game/machinery/computer3/buildandrepair.dm index 38db742ee67..bc02e474e47 100644 --- a/code/game/machinery/computer3/buildandrepair.dm +++ b/code/game/machinery/computer3/buildandrepair.dm @@ -95,7 +95,7 @@ if(!src || !WT.isOn()) return user << "\blue You deconstruct the frame." new /obj/item/stack/sheet/metal( src.loc, 5 ) - del(src) + qdel(src) if(1) if(istype(P, /obj/item/weapon/wrench)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) @@ -160,7 +160,7 @@ if(do_after(user, 20)) if(P) P:amount -= 5 - if(!P:amount) del(P) + if(!P:amount) qdel(P) user << "\blue You add cables to the frame." src.state = 3 src.icon_state = "3" @@ -212,7 +212,7 @@ if(circuit.OS) circuit.OS.computer = B B.RefreshParts() // todo - del(src) + qdel(src) /* This will remove peripherals if you specify one, but the main function is to diff --git a/code/game/machinery/computer3/computer.dm b/code/game/machinery/computer3/computer.dm index 4939444ae50..e643635dfe5 100644 --- a/code/game/machinery/computer3/computer.dm +++ b/code/game/machinery/computer3/computer.dm @@ -215,11 +215,11 @@ ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(25)) - del(src) + qdel(src) return if (prob(50)) for(var/x in verbs) diff --git a/code/game/machinery/computer3/computers/HolodeckControl.dm b/code/game/machinery/computer3/computers/HolodeckControl.dm index 80d60afd072..9e4532604b7 100644 --- a/code/game/machinery/computer3/computers/HolodeckControl.dm +++ b/code/game/machinery/computer3/computers/HolodeckControl.dm @@ -160,7 +160,7 @@ if(!silent) var/obj/oldobj = obj obj.visible_message("The [oldobj.name] fades away!") - del(obj) + qdel(obj) proc/checkInteg(var/area/A) for(var/turf/T in A) @@ -213,10 +213,10 @@ derez(item) for(var/obj/effect/decal/cleanable/blood/B in linkedholodeck) - del(B) + qdel(B) for(var/mob/living/simple_animal/hostile/carp/C in linkedholodeck) - del(C) + qdel(C) holographic_items = A.copy_contents_to(linkedholodeck , 1) diff --git a/code/game/machinery/computer3/computers/medical.dm b/code/game/machinery/computer3/computers/medical.dm index adb7ff90797..4e88b91c88b 100644 --- a/code/game/machinery/computer3/computers/medical.dm +++ b/code/game/machinery/computer3/computers/medical.dm @@ -254,7 +254,7 @@ if (href_list["del_all2"]) for(var/datum/data/record/R in data_core.medical) //R = null - del(R) + qdel(R) //Foreach goto(494) src.temp = "All records deleted." @@ -422,7 +422,7 @@ if (href_list["del_r2"]) if (src.active2) //src.active2 = null - del(src.active2) + qdel(src.active2) if (href_list["d_rec"]) var/datum/data/record/R = locate(href_list["d_rec"]) diff --git a/code/game/machinery/computer3/computers/security.dm b/code/game/machinery/computer3/computers/security.dm index 924f32b1b7d..f2de7648943 100644 --- a/code/game/machinery/computer3/computers/security.dm +++ b/code/game/machinery/computer3/computers/security.dm @@ -397,7 +397,7 @@ What a mess.*/ if ("Purge All Records") for(var/datum/data/record/R in data_core.security) - del(R) + qdel(R) temp = "All Security records deleted." if ("Add Entry") @@ -558,17 +558,17 @@ What a mess.*/ if ("Delete Record (Security) Execute") if (active2) - del(active2) + qdel(active2) if ("Delete Record (ALL) Execute") if (active1) for(var/datum/data/record/R in data_core.medical) if ((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"])) - del(R) + qdel(R) else - del(active1) + qdel(active1) if (active2) - del(active2) + qdel(active2) else temp = "This function does not appear to be working at the moment. Our apologies." @@ -601,7 +601,7 @@ What a mess.*/ continue else if(prob(1)) - del(R) + qdel(R) continue ..(severity) diff --git a/code/game/machinery/computer3/laptop.dm b/code/game/machinery/computer3/laptop.dm index e0156e874e2..82807769b40 100644 --- a/code/game/machinery/computer3/laptop.dm +++ b/code/game/machinery/computer3/laptop.dm @@ -52,7 +52,7 @@ O.loc = loc usr << "\The [src] crumbles to pieces." spawn(5) - del src + qdel(src) return if(!stored_computer.manipulating) @@ -65,7 +65,7 @@ spawn(5) stored_computer.manipulating = 0 - del src + qdel(src) else usr << "\red You are already opening the computer!" @@ -190,7 +190,7 @@ var/obj/O = loc spawn(5) if(O) - del O + qdel(O) ..() diff --git a/code/game/machinery/computer3/lapvend.dm b/code/game/machinery/computer3/lapvend.dm index 72531b5d8ee..b2e84f1cd27 100644 --- a/code/game/machinery/computer3/lapvend.dm +++ b/code/game/machinery/computer3/lapvend.dm @@ -31,7 +31,7 @@ /obj/machinery/lapvend/blob_act() if (prob(50)) spawn(0) - del(src) + qdel(src) return return @@ -202,10 +202,10 @@ if (network == 3) newlap.spawn_parts += (/obj/item/part/computer/networking/cable) if (power == 1) - del(newlap.battery) + qdel(newlap.battery) newlap.battery = new /obj/item/weapon/cell/high(newlap) if (power == 2) - del(newlap.battery) + qdel(newlap.battery) newlap.battery = new /obj/item/weapon/cell/super(newlap) newlap.spawn_parts() @@ -404,7 +404,7 @@ T.time = worldtime2text() vendor_account.transaction_log.Add(T) - del(relap) + qdel(relap) vendmode = 0 cardreader = 0 floppy = 0 diff --git a/code/game/machinery/computer3/program.dm b/code/game/machinery/computer3/program.dm index 74083b8ffde..0667fe2f730 100644 --- a/code/game/machinery/computer3/program.dm +++ b/code/game/machinery/computer3/program.dm @@ -111,7 +111,7 @@ Programs are a file that can be executed update_icon() if(popup) popup.close() - del popup + qdel(popup) return /* diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 0f906ad4b28..da2ebb9d2d9 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -53,7 +53,7 @@ playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) user << "\blue You dismantle the frame" new /obj/item/stack/sheet/metal(src.loc, 5) - del(src) + qdel(src) if(2) if(istype(P, /obj/item/weapon/circuitboard)) var/obj/item/weapon/circuitboard/B = P @@ -129,7 +129,7 @@ else circuit.loc = null new_machine.RefreshParts() - del(src) + qdel(src) else if(istype(P, /obj/item)) for(var/I in req_components) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index a9858742c94..d90c895000e 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -24,7 +24,7 @@ ..() initialize_directions = dir -/obj/machinery/atmospherics/unary/cryo_cell/Del() +/obj/machinery/atmospherics/unary/cryo_cell/Destroy() if(occupant) occupant.loc = loc ..() @@ -190,7 +190,7 @@ return var/mob/M = G:affecting if(put_mob(M)) - del(G) + qdel(G) return /obj/machinery/atmospherics/unary/cryo_cell/update_icon() diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index fcece506c37..eecc7eee279 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -234,7 +234,7 @@ ..() -/obj/machinery/cryopod/Del() +/obj/machinery/cryopod/Destroy() if(occupant) occupant.loc = loc occupant.resting = 1 @@ -291,12 +291,12 @@ var/mob/living/silicon/robot/R = occupant if(!istype(R)) return ..() - del(R.mmi) + qdel(R.mmi) for(var/obj/item/I in R.module) // the tools the borg has; metal, glass, guns etc for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags O.loc = R - del(I) - del(R.module) + qdel(I) + qdel(R.module) return ..() @@ -308,7 +308,7 @@ occupant.drop_from_inventory(W) W.loc = src - if(W.contents.len) //Make sure we catch anything not handled by del() on the items. + if(W.contents.len) //Make sure we catch anything not handled by qdel() on the items. for(var/obj/item/O in W.contents) if(istype(O,/obj/item/weapon/storage/internal)) //Stop eating pockets, you fuck! continue @@ -328,7 +328,7 @@ break if(!preserve) - del(W) + qdel(W) else if(control_computer && control_computer.allow_items) control_computer.frozen_items += W @@ -341,7 +341,7 @@ // We don't want revs to get objectives that aren't for heads of staff. Letting // them win or lose based on cryo is silly so we remove the objective. if(istype(O,/datum/objective/mutiny) && O.target == occupant.mind) - del(O) + qdel(O) else if(O.target && istype(O.target,/datum/mind)) if(O.target == occupant.mind) if(O.owner && O.owner.current) @@ -353,7 +353,7 @@ if(!(O.target)) all_objectives -= O O.owner.objectives -= O - del(O) + qdel(O) //Handle job slot/tater cleanup. var/job = occupant.mind.assigned_role @@ -361,7 +361,7 @@ job_master.FreeRole(job) if(occupant.mind.objectives.len) - del(occupant.mind.objectives) + qdel(occupant.mind.objectives) occupant.mind.special_role = null //else //if(ticker.mode.name == "AutoTraitor") @@ -374,13 +374,13 @@ PDA_Manifest.Cut() for(var/datum/data/record/R in data_core.medical) if ((R.fields["name"] == occupant.real_name)) - del(R) + qdel(R) for(var/datum/data/record/T in data_core.security) if ((T.fields["name"] == occupant.real_name)) - del(T) + qdel(T) for(var/datum/data/record/G in data_core.general) if ((G.fields["name"] == occupant.real_name)) - del(G) + qdel(G) if(orient_right) icon_state = "[base_icon_state]-r" @@ -400,7 +400,7 @@ set_occupant(null) // Delete the mob. - del(occupant) + qdel(occupant) /obj/machinery/cryopod/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 87e7adea035..c9dfe8c5f08 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -91,14 +91,14 @@ for reference: new /obj/item/stack/sheet/wood(get_turf(src)) new /obj/item/stack/sheet/wood(get_turf(src)) new /obj/item/stack/sheet/wood(get_turf(src)) - del(src) + qdel(src) ..() ex_act(severity) switch(severity) if(1.0) visible_message("\red The barricade is blown apart!") - del(src) + qdel(src) return if(2.0) src.health -= 25 @@ -107,7 +107,7 @@ for reference: new /obj/item/stack/sheet/wood(get_turf(src)) new /obj/item/stack/sheet/wood(get_turf(src)) new /obj/item/stack/sheet/wood(get_turf(src)) - del(src) + qdel(src) return meteorhit() @@ -115,14 +115,14 @@ for reference: new /obj/item/stack/sheet/wood(get_turf(src)) new /obj/item/stack/sheet/wood(get_turf(src)) new /obj/item/stack/sheet/wood(get_turf(src)) - del(src) + qdel(src) return blob_act() src.health -= 25 if (src.health <= 0) visible_message("\red The blob eats through the barricade!") - del(src) + qdel(src) return CanPass(atom/movable/mover, turf/target, height=0, air_group=0)//So bullets will fly over and stuff. @@ -272,4 +272,4 @@ for reference: explosion(src.loc,-1,-1,0) if(src) - del(src) \ No newline at end of file + qdel(src) \ No newline at end of file diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 69c4ee28571..5c6a744d5d7 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -264,13 +264,13 @@ for(var/obj/structure/falsewall/phoron/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve var/turf/T = get_turf(F) T.ChangeTurf(/turf/simulated/wall/mineral/phoron/) - del (F) + qdel (F) for(var/turf/simulated/wall/mineral/phoron/W in range(3,src)) W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame for(var/obj/machinery/door/airlock/phoron/D in range(3,src)) D.ignite(temperature/4) new/obj/structure/door_assembly( src.loc ) - del (src) + qdel(src) /obj/machinery/door/airlock/sandstone name = "Sandstone Airlock" @@ -770,7 +770,7 @@ About the new airlock wires panel: electronics.loc = src.loc electronics = null - del(src) + qdel(src) return else if(arePowerSystemsOn()) user << "\blue The airlock's motors resist your efforts to force it." @@ -882,7 +882,7 @@ About the new airlock wires panel: S.victim = M S.loc = M.loc spawn(20) - del(S) + qdel(S) if (iscarbon(M)) var/mob/living/carbon/C = M if (!(C.species && (C.species.flags & NO_PAIN))) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 406ef8611e8..17db582bdd0 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -69,7 +69,7 @@ return -/obj/machinery/door/Del() +/obj/machinery/door/Destroy() density = 0 update_nearby_tiles() ..() @@ -168,7 +168,7 @@ new /obj/item/stack/rods(src.loc, 3) if(BURN) new /obj/effect/decal/cleanable/ash(src.loc) // Turn it to ashes! - del(src) + qdel(src) if(Proj.damage) //cap projectile damage so that there's still a minimum number of hits required to break the door @@ -251,7 +251,7 @@ user << "You finish repairing the damage to \the [src]." health = between(health, health + repairing.amount*DOOR_REPAIR_AMOUNT, maxhealth) update_icon() - del(repairing) + qdel(repairing) return if(repairing && istype(I, /obj/item/weapon/crowbar)) @@ -329,7 +329,7 @@ /obj/machinery/door/blob_act() if(prob(40)) - del(src) + qdel(src) return @@ -342,10 +342,10 @@ /obj/machinery/door/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) if(2.0) if(prob(25)) - del(src) + qdel(src) else take_damage(300) if(3.0) @@ -434,7 +434,7 @@ //I shall not add a check every x ticks if a door has closed over some fire. var/obj/fire/fire = locate() in loc if(fire) - del fire + qdel(fire) return /obj/machinery/door/proc/requiresID() diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 9ae8751a7af..44a21b0d920 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -56,7 +56,7 @@ for(var/obj/machinery/door/firedoor/F in loc) if(F != src) spawn(1) - del src + qdel(src) return . var/area/A = get_area(src) ASSERT(istype(A)) @@ -70,7 +70,7 @@ A.all_doors.Add(src) areas_added += A -/obj/machinery/door/firedoor/Del() +/obj/machinery/door/firedoor/Destroy() for(var/area/A in areas_added) A.all_doors.Remove(src) . = ..() @@ -230,7 +230,7 @@ FA.density = 1 FA.wired = 1 FA.update_icon() - del(src) + qdel(src) return if(blocked) diff --git a/code/game/machinery/doors/firedoor_assembly.dm b/code/game/machinery/doors/firedoor_assembly.dm index 435a9278577..d3a70fe85e7 100644 --- a/code/game/machinery/doors/firedoor_assembly.dm +++ b/code/game/machinery/doors/firedoor_assembly.dm @@ -42,8 +42,8 @@ obj/structure/firedoor_assembly/attackby(C as obj, mob/user as mob) user.visible_message("[user] has inserted a circuit into \the [src]!", "You have inserted the circuit into \the [src]!") new /obj/machinery/door/firedoor(src.loc) - del(C) - del(src) + qdel(C) + qdel(src) else user << "You must secure \the [src] first!" else if(istype(C, /obj/item/weapon/wrench)) @@ -62,7 +62,7 @@ obj/structure/firedoor_assembly/attackby(C as obj, mob/user as mob) user.visible_message("[user] has dissassembled \the [src].", "You have dissassembled \the [src].") new /obj/item/stack/sheet/metal(src.loc, 2) - del (src) + qdel(src) else user << "You need more welding fuel." else diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 362753cac8f..9ad1fd21238 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -49,9 +49,9 @@ playsound(src, "shatter", 70, 1) if(display_message) visible_message("[src] shatters!") - del(src) + qdel(src) -/obj/machinery/door/window/Del() +/obj/machinery/door/window/Destroy() density = 0 update_nearby_tiles() ..() diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index dbe7f1b8a70..ec9f4e7accc 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -9,7 +9,7 @@ var/list/doppler_arrays = list() ..() doppler_arrays += src -/obj/machinery/doppler_array/Del() +/obj/machinery/doppler_array/Destroy() doppler_arrays -= src ..() diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index 8661651a396..0e6de7c5dcd 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -70,7 +70,7 @@ //use_power(radio_power_use) //neat idea, but causes way too much lag. return radio_connection.post_signal(src, signal, filter) else - del(signal) + qdel(signal) /obj/machinery/embedded_controller/radio/proc/set_frequency(new_frequency) radio_controller.remove_object(src, frequency) diff --git a/code/game/machinery/embedded_controller/embedded_program_base.dm b/code/game/machinery/embedded_controller/embedded_program_base.dm index 611fcfc52e5..f579aca6f7a 100644 --- a/code/game/machinery/embedded_controller/embedded_program_base.dm +++ b/code/game/machinery/embedded_controller/embedded_program_base.dm @@ -1,27 +1,27 @@ - -/datum/computer/file/embedded_program - var/list/memory = list() - var/obj/machinery/embedded_controller/master - - var/id_tag - -/datum/computer/file/embedded_program/New(var/obj/machinery/embedded_controller/M) - master = M - if (istype(M, /obj/machinery/embedded_controller/radio)) - var/obj/machinery/embedded_controller/radio/R = M - id_tag = R.id_tag - -/datum/computer/file/embedded_program/proc/receive_user_command(command) - return - -/datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal, receive_method, receive_param) - return - -/datum/computer/file/embedded_program/proc/process() - return - -/datum/computer/file/embedded_program/proc/post_signal(datum/signal/signal, comm_line) - if(master) - master.post_signal(signal, comm_line) - else - del(signal) + +/datum/computer/file/embedded_program + var/list/memory = list() + var/obj/machinery/embedded_controller/master + + var/id_tag + +/datum/computer/file/embedded_program/New(var/obj/machinery/embedded_controller/M) + master = M + if (istype(M, /obj/machinery/embedded_controller/radio)) + var/obj/machinery/embedded_controller/radio/R = M + id_tag = R.id_tag + +/datum/computer/file/embedded_program/proc/receive_user_command(command) + return + +/datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal, receive_method, receive_param) + return + +/datum/computer/file/embedded_program/proc/process() + return + +/datum/computer/file/embedded_program/proc/post_signal(datum/signal/signal, comm_line) + if(master) + master.post_signal(signal, comm_line) + else + qdel(signal) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index a286b530ca1..8ecbd538380 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -131,7 +131,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ /obj/machinery/hologram/holopad/proc/clear_holo(mob/living/silicon/ai/user) if(user.holo == src) user.holo = null - del(masters[user])//Get rid of user's hologram //qdel + qdel(masters[user])//Get rid of user's hologram masters -= user //Discard AI from the list of those who use holopad if (!masters.len)//If no users left SetLuminosity(0) //pad lighting (hologram lighting will be handled automatically since its owner was deleted) @@ -182,24 +182,24 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ /obj/machinery/hologram/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) if(2.0) if (prob(50)) - del(src) + qdel(src) if(3.0) if (prob(5)) - del(src) + qdel(src) return /obj/machinery/hologram/blob_act() - del(src) + qdel(src) return /obj/machinery/hologram/meteorhit() - del(src) + qdel(src) return -/obj/machinery/hologram/holopad/Del() +/obj/machinery/hologram/holopad/Destroy() for (var/mob/living/silicon/ai/master in masters) clear_holo(master) ..() diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index 972f51bd485..5c22471398a 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -36,7 +36,7 @@ datum/track/New(var/title_name, var/audio) ) -/obj/machinery/media/jukebox/Del() +/obj/machinery/media/jukebox/Destroy() StopPlaying() ..() @@ -160,7 +160,7 @@ datum/track/New(var/title_name, var/audio) s.start() new /obj/effect/decal/cleanable/blood/oil(src.loc) - del(src) + qdel(src) /obj/machinery/media/jukebox/attackby(obj/item/W as obj, mob/user as mob) src.add_fingerprint(user) diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index 1283e7e52c3..69f6c1a2d52 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -31,7 +31,7 @@ if(isturf(input_obj.loc)) input_plate = input_obj.loc gib_throw_dir = i - del(input_obj) + qdel(input_obj) break if(!input_plate) @@ -221,7 +221,7 @@ src.operating = 0 src.occupant.gib() - del(src.occupant) + qdel(src.occupant) playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) operating = 0 @@ -229,7 +229,7 @@ // Todo: unify limbs and internal organs // There's a chance that the gibber will fail to destroy some evidence. if((istype(thing,/obj/item/organ) || istype(thing,/obj/item/organ)) && prob(80)) - del(thing) + qdel(thing) continue thing.loc = get_turf(thing) // Drop it onto the turf for throwing. thing.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(0,3),emagged ? 100 : 50) // Being pelted with bits of meat and bone would hurt. diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index fe75dff633d..46e07d9b0cc 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -351,7 +351,7 @@ var/id = O.reagents.get_master_reagent_id() if (id) amount+=O.reagents.get_reagent_amount(id) - del(O) + qdel(O) src.reagents.clear_reagents() ffuu.reagents.add_reagent("carbon", amount) ffuu.reagents.add_reagent("toxin", amount/10) diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index a6fcf002748..9bfa0e1c5dd 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -33,8 +33,8 @@ else wires = new/datum/wires/smartfridge(src) -/obj/machinery/smartfridge/Del() - del(wires) // qdel +/obj/machinery/smartfridge/Destroy() + qdel(wires) ..() /obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj) @@ -146,7 +146,7 @@ var/D = S.dried_type new D(loc) item_quants[S.name]-- - del(S) + qdel(S) return return diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index d601146c186..ebe0bc60d65 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -121,7 +121,7 @@ Class Procs: machines += src machinery_sort_required = 1 -/obj/machinery/Del() +/obj/machinery/Destroy() machines -= src ..() @@ -135,7 +135,7 @@ Class Procs: if(use_power && stat == 0) use_power(7500/severity) - var/obj/effect/overlay/pulse2 = new/obj/effect/overlay ( src.loc ) + var/obj/effect/overlay/pulse2 = PoolOrNew(/obj/effect/overlay, src.loc) pulse2.icon = 'icons/effects/effects.dmi' pulse2.icon_state = "empdisable" pulse2.name = "emp sparks" @@ -143,28 +143,28 @@ Class Procs: pulse2.set_dir(pick(cardinal)) spawn(10) - pulse2.delete() + qdel(pulse2) ..() /obj/machinery/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) - del(src) + qdel(src) return if(3.0) if (prob(25)) - del(src) + qdel(src) return else return /obj/machinery/blob_act() if(prob(50)) - del(src) + qdel(src) //sets the use_power var and then forces an area power update /obj/machinery/proc/update_use_power(var/new_use_power, var/force_update = 0) @@ -331,7 +331,7 @@ Class Procs: if(I.reliability != 100 && crit_fail) I.crit_fail = 1 I.loc = loc - del(src) + qdel(src) return 1 /obj/machinery/proc/on_assess_perp(mob/living/carbon/human/perp) diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index b04e9d1851b..e6dcd63bd0a 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -164,7 +164,7 @@ if(prob(electricity_level)) explosion(loc, 0, 1, 2, 3) // ooo dat shit EXPLODES son spawn(2) - del(src) + qdel(src) */ updateicon() @@ -364,7 +364,7 @@ // N, S, E, W are directional // C is center // R is random (in magnetic field's bounds) - del(signal) + qdel(signal) break // break the loop if the character located is invalid signal.data["command"] = nextmove diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index c902bdcd66e..6d823e23fef 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -180,7 +180,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co src.update_icon() //for any custom ones on the map... ..() //I just realised the newscasters weren't in the global machines list. The superconstructor call will tend to that -/obj/machinery/newscaster/Del() +/obj/machinery/newscaster/Destroy() allCasters -= src ..() @@ -223,12 +223,12 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co /obj/machinery/newscaster/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) src.isbroken=1 if(prob(50)) - del(src) + qdel(src) else src.update_icon() //can't place it above the return and outside the if-else. or we might get runtimes of null.update_icon() if(prob(50)) goes in. return @@ -784,7 +784,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co photo_data.photo.loc = src.loc if(!issilicon(user)) user.put_in_inactive_hand(photo_data.photo) - del(photo_data) + qdel(photo_data) if(istype(user.get_active_hand(), /obj/item/weapon/photo)) var/obj/item/photo = user.get_active_hand() diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm index d13f18c3e9f..2fb1c721d3b 100644 --- a/code/game/machinery/nuclear_bomb.dm +++ b/code/game/machinery/nuclear_bomb.dm @@ -423,7 +423,7 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob) return return -/obj/item/weapon/disk/nuclear/Del() +/obj/item/weapon/disk/nuclear/Destroy() if(blobstart.len > 0) var/obj/D = new /obj/item/weapon/disk/nuclear(pick(blobstart)) message_admins("[src] has been destroyed. Spawning [D] at ([D.x], [D.y], [D.z]).") diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm index de67e7cea10..cb80bd20afc 100644 --- a/code/game/machinery/overview.dm +++ b/code/game/machinery/overview.dm @@ -180,8 +180,8 @@ HI.Insert(I, frame=1, delay = 5) HI.Insert(J, frame=2, delay = 5) - del(I) - del(J) + qdel(I) + qdel(J) H.icon = HI H.layer = 25 usr.mapobjs += H @@ -306,7 +306,7 @@ var/icon/I = imap[i+1] H.icon = I - del(I) + qdel(I) H.layer = 25 usr.mapobjs += H @@ -353,7 +353,7 @@ proc/getb(col) /mob/proc/clearmap() src.client.screen -= src.mapobjs for(var/obj/screen/O in mapobjs) - del(O) + qdel(O) mapobjs = null src.unset_machine() diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 637bcbee11b..9bee0af72f4 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -1149,7 +1149,7 @@ Buildable meters "[user] fastens the [src].", \ "\blue You have fastened the [src].", \ "You hear ratchet.") - del(src) // remove the pipe item + qdel(src) // remove the pipe item return //TODO: DEFERRED @@ -1177,7 +1177,7 @@ Buildable meters new/obj/machinery/meter( src.loc ) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) user << "\blue You have fastened the meter to the pipe" - del(src) + qdel(src) //not sure why these are necessary #undef PIPE_SIMPLE_STRAIGHT #undef PIPE_SIMPLE_BENT diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index fb296d24091..6b8793eac72 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -103,7 +103,7 @@ if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter)) usr << "\blue You put [W] back to [src]." user.drop_item() - del(W) + qdel(W) return else if (istype(W, /obj/item/weapon/wrench)) if (unwrenched==0) @@ -145,7 +145,7 @@ //Allow you to push disposal pipes into it (for those with density 1) /obj/machinery/pipedispenser/disposal/Crossed(var/obj/structure/disposalconstruct/pipe as obj) if(istype(pipe) && !pipe.anchored) - del(pipe) + qdel(pipe) Nah */ @@ -161,7 +161,7 @@ Nah if (pipe.anchored) return - del(pipe) + qdel(pipe) /obj/machinery/pipedispenser/disposal/attack_hand(user as mob) if(..()) diff --git a/code/game/machinery/portable_tag_turret.dm b/code/game/machinery/portable_tag_turret.dm index 1965d102433..f3939e89dcd 100644 --- a/code/game/machinery/portable_tag_turret.dm +++ b/code/game/machinery/portable_tag_turret.dm @@ -82,13 +82,13 @@ if(lasercolor == "b" && disabled == 0) if(istype(Proj, /obj/item/weapon/gun/energy/lasertag/red)) disabled = 1 - del(Proj) // qdel + qdel(Proj) sleep(100) disabled = 0 if(lasercolor == "r" && disabled == 0) if(istype(Proj, /obj/item/weapon/gun/energy/lasertag/blue)) disabled = 1 - del(Proj) // qdel + qdel(Proj) sleep(100) disabled = 0 diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 3ad643c360b..3444d3ea7e1 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -145,9 +145,9 @@ else icon_state = "grey_target_prism" -/obj/machinery/porta_turret/Del() +/obj/machinery/porta_turret/Destroy() //deletes its own cover with it - del(cover) // qdel + qdel(cover) ..() /obj/machinery/porta_turret/proc/isLocked(mob/user) @@ -271,7 +271,7 @@ new /obj/item/device/assembly/prox_sensor(loc) else user << "You remove the turret but did not manage to salvage anything." - del(src) // qdel + qdel(src) // qdel if(istype(I, /obj/item/weapon/card/emag) && !emagged) //Emagging the turret makes it go bonkers and stun everyone. It also makes @@ -317,7 +317,7 @@ user << "You unsecure the exterior bolts on the turret." invisibility = 0 update_icon() - del(cover) //deletes the cover, and the turret instance itself becomes its own cover. - qdel + qdel(cover) //deletes the cover, and the turret instance itself becomes its own cover. wrenching = 0 else if(istype(I, /obj/item/weapon/card/id)||istype(I, /obj/item/device/pda)) @@ -387,10 +387,10 @@ /obj/machinery/porta_turret/ex_act(severity) switch (severity) if (1) - del(src) + qdel(src) if (2) if (prob(25)) - del(src) + qdel(src) else take_damage(150) //should instakill most turrets if (3) @@ -404,7 +404,7 @@ spark_system.start() //creates some sparks because they look cool density = 1 update_icon() - del(cover) //deletes the cover - no need on keeping it there! - del + qdel(cover) //deletes the cover - no need on keeping it there! /obj/machinery/porta_turret/proc/create_cover() if(cover == null && anchored) @@ -418,7 +418,7 @@ if(cover == null && anchored) //if it has no cover and is anchored if(stat & BROKEN) //if the turret is borked - del(cover) //delete its cover, assuming it has one. Workaround for a pesky little bug - qdel + qdel(cover) //delete its cover, assuming it has one. Workaround for a pesky little bug else create_cover() @@ -671,7 +671,7 @@ playsound(loc, 'sound/items/Crowbar.ogg', 75, 1) user << "You dismantle the turret construction." new /obj/item/stack/sheet/metal( loc, 5) - del(src) // qdel + qdel(src) // qdel return if(1) @@ -736,7 +736,7 @@ target_type = /obj/machinery/porta_turret build_step = 4 - del(I) //delete the gun :( qdel + qdel(I) //delete the gun :( return else if(istype(I, /obj/item/weapon/wrench)) @@ -752,7 +752,7 @@ user << "\the [I] is stuck to your hand, you cannot put it in \the [src]" return user << "You add the prox sensor to the turret." - del(I) // qdel + qdel(I) return //attack_hand() removes the gun @@ -807,7 +807,7 @@ // Turret.cover=new/obj/machinery/porta_turret_cover(loc) // Turret.cover.Parent_Turret=Turret // Turret.cover.name = finish_name - del(src) // qdel + qdel(src) // qdel else if(istype(I, /obj/item/weapon/crowbar)) playsound(loc, 'sound/items/Crowbar.ogg', 75, 1) diff --git a/code/game/machinery/seed_extractor.dm b/code/game/machinery/seed_extractor.dm index 4418586e9dd..e9a2081fb2d 100644 --- a/code/game/machinery/seed_extractor.dm +++ b/code/game/machinery/seed_extractor.dm @@ -31,7 +31,7 @@ obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob else user << "[O] doesn't seem to have any usable seeds inside it." - del(O) + qdel(O) //Grass. else if(istype(O, /obj/item/stack/tile/grass)) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 940ec0f104c..50d174db0a9 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -76,12 +76,12 @@ if(1.0) if(prob(50)) src.dump_everything() //So suits dont survive all the time - del(src) + qdel(src) return if(2.0) if(prob(50)) src.dump_everything() - del(src) + qdel(src) return else return @@ -465,7 +465,7 @@ src.update_icon() // for(var/obj/O in src) -// del(O) +// qdel(O) src.add_fingerprint(usr) src.updateUsrDialog() @@ -511,7 +511,7 @@ //for(var/obj/O in src) // O.loc = src.loc src.add_fingerprint(user) - del(G) + qdel(G) src.updateUsrDialog() src.update_icon() return @@ -612,10 +612,10 @@ wires = new(src) target_department = departments[1] target_species = species[1] - if(!target_department || !target_species) del(src) + if(!target_department || !target_species) qdel(src) -/obj/machinery/suit_cycler/Del() - del(wires) // qdel +/obj/machinery/suit_cycler/Destroy() + qdel(wires) wires = null ..() @@ -696,7 +696,7 @@ src.occupant = M src.add_fingerprint(user) - del(G) + qdel(G) src.updateUsrDialog() diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 62e7a015eb4..fb4a03d21f6 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -149,7 +149,7 @@ return -/obj/machinery/power/singularity_beacon/Del() +/obj/machinery/power/singularity_beacon/Destroy() if(active) Deactivate() ..() diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 5a3caafa263..c6fee28b40c 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -98,7 +98,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept /* --- Do a snazzy animation! --- */ flick("broadcaster_send", src) -/obj/machinery/telecomms/broadcaster/Del() +/obj/machinery/telecomms/broadcaster/Destroy() // In case message_delay is left on 1, otherwise it won't reset the list and people can't say the same thing twice anymore. if(message_delay) message_delay = 0 diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm index 6dd5586fd81..9b92c39ee25 100644 --- a/code/game/machinery/telecomms/logbrowser.dm +++ b/code/game/machinery/telecomms/logbrowser.dm @@ -96,7 +96,7 @@ race = "Unidentifiable" language = race - del(M) + qdel(M) // -- If the orator is a human, or universal translate is active, OR mob has universal speech on -- @@ -189,7 +189,7 @@ temp = "- DELETED ENTRY: [D.name] -" SelectedServer.log_entries.Remove(D) - del(D) + qdel(D) else temp = "- FAILED: NO SELECTED MACHINE -" @@ -227,7 +227,7 @@ A.state = 3 A.icon_state = "3" A.anchored = 1 - del(src) + qdel(src) else user << "\blue You disconnect the monitor." var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) @@ -238,7 +238,7 @@ A.state = 4 A.icon_state = "4" A.anchored = 1 - del(src) + qdel(src) else if(istype(D, /obj/item/weapon/card/emag) && !emagged) playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = 1 diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 581ae59ab48..15c627420f7 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -1,404 +1,404 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 - - -/* - - All telecommunications interactions: - -*/ - -#define STATION_Z 1 -#define TELECOMM_Z 3 - -/obj/machinery/telecomms - var/temp = "" // output message - var/construct_op = 0 - - -/obj/machinery/telecomms/attackby(obj/item/P as obj, mob/user as mob) - - // Using a multitool lets you access the receiver's interface - if(istype(P, /obj/item/device/multitool)) - attack_hand(user) - - - // REPAIRING: Use Nanopaste to repair 10-20 integrity points. - if(istype(P, /obj/item/stack/nanopaste)) - var/obj/item/stack/nanopaste/T = P - if (integrity < 100) //Damaged, let's repair! - if (T.use(1)) - integrity = between(0, integrity + rand(10,20), 100) - usr << "You apply the Nanopaste to [src], repairing some of the damage." - else - usr << "This machine is already in perfect condition." - return - - - switch(construct_op) - if(0) - if(istype(P, /obj/item/weapon/screwdriver)) - user << "You unfasten the bolts." - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - construct_op ++ - if(1) - if(istype(P, /obj/item/weapon/screwdriver)) - user << "You fasten the bolts." - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - construct_op -- - if(istype(P, /obj/item/weapon/wrench)) - user << "You dislodge the external plating." - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) - construct_op ++ - if(2) - if(istype(P, /obj/item/weapon/wrench)) - user << "You secure the external plating." - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) - construct_op -- - if(istype(P, /obj/item/weapon/wirecutters)) - playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) - user << "You remove the cables." - construct_op ++ - var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( user.loc ) - A.amount = 5 - stat |= BROKEN // the machine's been borked! - if(3) - if(istype(P, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/A = P - if (A.use(5)) - user << "You insert the cables." - construct_op-- - stat &= ~BROKEN // the machine's not borked anymore! - else - user << "You need five coils of wire for this." - if(istype(P, /obj/item/weapon/crowbar)) - user << "You begin prying out the circuit board other components..." - playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) - if(do_after(user,60)) - user << "You finish prying out the components." - - // Drop all the component stuff - if(contents.len > 0) - for(var/obj/x in src) - x.loc = user.loc - else - - // If the machine wasn't made during runtime, probably doesn't have components: - // manually find the components and drop them! - var/newpath = text2path(circuitboard) - var/obj/item/weapon/circuitboard/C = new newpath - for(var/I in C.req_components) - for(var/i = 1, i <= C.req_components[I], i++) - newpath = text2path(I) - var/obj/item/s = new newpath - s.loc = user.loc - if(istype(P, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/A = P - A.amount = 1 - - // Drop a circuit board too - C.loc = user.loc - - // Create a machine frame and delete the current machine - var/obj/machinery/constructable_frame/machine_frame/F = new - F.loc = src.loc - del(src) - - -/obj/machinery/telecomms/attack_ai(var/mob/user as mob) - attack_hand(user) - -/obj/machinery/telecomms/attack_hand(var/mob/user as mob) - - // You need a multitool to use this, or be silicon - if(!issilicon(user)) - // istype returns false if the value is null - if(!istype(user.get_active_hand(), /obj/item/device/multitool)) - return - - if(stat & (BROKEN|NOPOWER)) - return - - var/obj/item/device/multitool/P = get_multitool(user) - - user.set_machine(src) - var/dat - dat = "[src.name]

[src.name] Access

" - dat += "
[temp]
" - dat += "
Power Status:
[src.toggled ? "On" : "Off"]" - if(on && toggled) - if(id != "" && id) - dat += "
Identification String: [id]" - else - dat += "
Identification String: NULL" - dat += "
Network: [network]" - dat += "
Prefabrication: [autolinkers.len ? "TRUE" : "FALSE"]" - if(hide) dat += "
Shadow Link: ACTIVE" - - //Show additional options for certain machines. - dat += Options_Menu() - - dat += "
Linked Network Entities:
    " - - var/i = 0 - for(var/obj/machinery/telecomms/T in links) - i++ - if(T.hide && !src.hide) - continue - dat += "
  1. \ref[T] [T.name] ([T.id]) \[X\]
  2. " - dat += "
" - - dat += "
Filtering Frequencies: " - - i = 0 - if(length(freq_listening)) - for(var/x in freq_listening) - i++ - if(i < length(freq_listening)) - dat += "[format_frequency(x)] GHz\[X\]; " - else - dat += "[format_frequency(x)] GHz\[X\]" - else - dat += "NONE" - - dat += "
\[Add Filter\]" - dat += "
" - - if(P) - if(P.buffer) - dat += "

MULTITOOL BUFFER: [P.buffer] ([P.buffer.id]) \[Link\] \[Flush\]" - else - dat += "

MULTITOOL BUFFER:
\[Add Machine\]" - - dat += "
" - temp = "" - user << browse(dat, "window=tcommachine;size=520x500;can_resize=0") - onclose(user, "dormitory") - - -// Off-Site Relays -// -// You are able to send/receive signals from the station's z level (changeable in the STATION_Z #define) if -// the relay is on the telecomm satellite (changable in the TELECOMM_Z #define) - - -/obj/machinery/telecomms/relay/proc/toggle_level() - - var/turf/position = get_turf(src) - - // Toggle on/off getting signals from the station or the current Z level - if(src.listening_level == STATION_Z) // equals the station - src.listening_level = position.z - return 1 - else if(position.z == TELECOMM_Z) - src.listening_level = STATION_Z - return 1 - return 0 - -// Returns a multitool from a user depending on their mobtype. - -/obj/machinery/telecomms/proc/get_multitool(mob/user as mob) - - var/obj/item/device/multitool/P = null - // Let's double check - if(!issilicon(user) && istype(user.get_active_hand(), /obj/item/device/multitool)) - P = user.get_active_hand() - else if(isAI(user)) - var/mob/living/silicon/ai/U = user - P = U.aiMulti - else if(isrobot(user) && in_range(user, src)) - if(istype(user.get_active_hand(), /obj/item/device/multitool)) - P = user.get_active_hand() - return P - -// Additional Options for certain machines. Use this when you want to add an option to a specific machine. -// Example of how to use below. - -/obj/machinery/telecomms/proc/Options_Menu() - return "" - -/* -// Add an option to the processor to switch processing mode. (COMPRESS -> UNCOMPRESS or UNCOMPRESS -> COMPRESS) -/obj/machinery/telecomms/processor/Options_Menu() - var/dat = "
Processing Mode: [process_mode ? "UNCOMPRESS" : "COMPRESS"]" - return dat -*/ -// The topic for Additional Options. Use this for checking href links for your specific option. -// Example of how to use below. -/obj/machinery/telecomms/proc/Options_Topic(href, href_list) - return - -/* -/obj/machinery/telecomms/processor/Options_Topic(href, href_list) - - if(href_list["process"]) - temp = "-% Processing mode changed. %-" - src.process_mode = !src.process_mode -*/ - -// RELAY - -/obj/machinery/telecomms/relay/Options_Menu() - var/dat = "" - if(src.z == TELECOMM_Z) - dat += "
Signal Locked to Station: [listening_level == STATION_Z ? "TRUE" : "FALSE"]" - dat += "
Broadcasting: [broadcasting ? "YES" : "NO"]" - dat += "
Receiving: [receiving ? "YES" : "NO"]" - return dat - -/obj/machinery/telecomms/relay/Options_Topic(href, href_list) - - if(href_list["receive"]) - receiving = !receiving - temp = "-% Receiving mode changed. %-" - if(href_list["broadcast"]) - broadcasting = !broadcasting - temp = "-% Broadcasting mode changed. %-" - if(href_list["change_listening"]) - //Lock to the station OR lock to the current position! - //You need at least two receivers and two broadcasters for this to work, this includes the machine. - var/result = toggle_level() - if(result) - temp = "-% [src]'s signal has been successfully changed." - else - temp = "-% [src] could not lock it's signal onto the station. Two broadcasters or receivers required." - -// BUS - -/obj/machinery/telecomms/bus/Options_Menu() - var/dat = "
Change Signal Frequency: [change_frequency ? "YES ([change_frequency])" : "NO"]" - return dat - -/obj/machinery/telecomms/bus/Options_Topic(href, href_list) - - if(href_list["change_freq"]) - - var/newfreq = input(usr, "Specify a new frequency for new signals to change to. Enter null to turn off frequency changing. Decimals assigned automatically.", src, network) as null|num - if(canAccess(usr)) - if(newfreq) - if(findtext(num2text(newfreq), ".")) - newfreq *= 10 // shift the decimal one place - if(newfreq < 10000) - change_frequency = newfreq - temp = "-% New frequency to change to assigned: \"[newfreq] GHz\" %-" - else - change_frequency = 0 - temp = "-% Frequency changing deactivated %-" - - -/obj/machinery/telecomms/Topic(href, href_list) - - if(!issilicon(usr)) - if(!istype(usr.get_active_hand(), /obj/item/device/multitool)) - return - - if(stat & (BROKEN|NOPOWER)) - return - - var/obj/item/device/multitool/P = get_multitool(usr) - - if(href_list["input"]) - switch(href_list["input"]) - - if("toggle") - - src.toggled = !src.toggled - temp = "-% [src] has been [src.toggled ? "activated" : "deactivated"]." - update_power() - - /* - if("hide") - src.hide = !hide - temp = "-% Shadow Link has been [src.hide ? "activated" : "deactivated"]." - */ - - if("id") - var/newid = copytext(reject_bad_text(input(usr, "Specify the new ID for this machine", src, id) as null|text),1,MAX_MESSAGE_LEN) - if(newid && canAccess(usr)) - id = newid - temp = "-% New ID assigned: \"[id]\" %-" - - if("network") - var/newnet = input(usr, "Specify the new network for this machine. This will break all current links.", src, network) as null|text - if(newnet && canAccess(usr)) - - if(length(newnet) > 15) - temp = "-% Too many characters in new network tag %-" - - else - for(var/obj/machinery/telecomms/T in links) - T.links.Remove(src) - - network = newnet - links = list() - temp = "-% New network tag assigned: \"[network]\" %-" - - - if("freq") - var/newfreq = input(usr, "Specify a new frequency to filter (GHz). Decimals assigned automatically.", src, network) as null|num - if(newfreq && canAccess(usr)) - if(findtext(num2text(newfreq), ".")) - newfreq *= 10 // shift the decimal one place - if(!(newfreq in freq_listening) && newfreq < 10000) - freq_listening.Add(newfreq) - temp = "-% New frequency filter assigned: \"[newfreq] GHz\" %-" - - if(href_list["delete"]) - - // changed the layout about to workaround a pesky runtime -- Doohl - - var/x = text2num(href_list["delete"]) - temp = "-% Removed frequency filter [x] %-" - freq_listening.Remove(x) - - if(href_list["unlink"]) - - if(text2num(href_list["unlink"]) <= length(links)) - var/obj/machinery/telecomms/T = links[text2num(href_list["unlink"])] - temp = "-% Removed \ref[T] [T.name] from linked entities. %-" - - // Remove link entries from both T and src. - - if(src in T.links) - T.links.Remove(src) - links.Remove(T) - - if(href_list["link"]) - - if(P) - if(P.buffer && P.buffer != src) - if(!(src in P.buffer.links)) - P.buffer.links.Add(src) - - if(!(P.buffer in src.links)) - src.links.Add(P.buffer) - - temp = "-% Successfully linked with \ref[P.buffer] [P.buffer.name] %-" - - else - temp = "-% Unable to acquire buffer %-" - - if(href_list["buffer"]) - - P.buffer = src - temp = "-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-" - - - if(href_list["flush"]) - - temp = "-% Buffer successfully flushed. %-" - P.buffer = null - - src.Options_Topic(href, href_list) - - usr.set_machine(src) - src.add_fingerprint(usr) - - updateUsrDialog() - -/obj/machinery/telecomms/proc/canAccess(var/mob/user) - if(issilicon(user) || in_range(user, src)) - return 1 - return 0 - -#undef TELECOMM_Z -#undef STATION_Z +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + + +/* + + All telecommunications interactions: + +*/ + +#define STATION_Z 1 +#define TELECOMM_Z 3 + +/obj/machinery/telecomms + var/temp = "" // output message + var/construct_op = 0 + + +/obj/machinery/telecomms/attackby(obj/item/P as obj, mob/user as mob) + + // Using a multitool lets you access the receiver's interface + if(istype(P, /obj/item/device/multitool)) + attack_hand(user) + + + // REPAIRING: Use Nanopaste to repair 10-20 integrity points. + if(istype(P, /obj/item/stack/nanopaste)) + var/obj/item/stack/nanopaste/T = P + if (integrity < 100) //Damaged, let's repair! + if (T.use(1)) + integrity = between(0, integrity + rand(10,20), 100) + usr << "You apply the Nanopaste to [src], repairing some of the damage." + else + usr << "This machine is already in perfect condition." + return + + + switch(construct_op) + if(0) + if(istype(P, /obj/item/weapon/screwdriver)) + user << "You unfasten the bolts." + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + construct_op ++ + if(1) + if(istype(P, /obj/item/weapon/screwdriver)) + user << "You fasten the bolts." + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + construct_op -- + if(istype(P, /obj/item/weapon/wrench)) + user << "You dislodge the external plating." + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + construct_op ++ + if(2) + if(istype(P, /obj/item/weapon/wrench)) + user << "You secure the external plating." + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + construct_op -- + if(istype(P, /obj/item/weapon/wirecutters)) + playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) + user << "You remove the cables." + construct_op ++ + var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( user.loc ) + A.amount = 5 + stat |= BROKEN // the machine's been borked! + if(3) + if(istype(P, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/A = P + if (A.use(5)) + user << "You insert the cables." + construct_op-- + stat &= ~BROKEN // the machine's not borked anymore! + else + user << "You need five coils of wire for this." + if(istype(P, /obj/item/weapon/crowbar)) + user << "You begin prying out the circuit board other components..." + playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) + if(do_after(user,60)) + user << "You finish prying out the components." + + // Drop all the component stuff + if(contents.len > 0) + for(var/obj/x in src) + x.loc = user.loc + else + + // If the machine wasn't made during runtime, probably doesn't have components: + // manually find the components and drop them! + var/newpath = text2path(circuitboard) + var/obj/item/weapon/circuitboard/C = new newpath + for(var/I in C.req_components) + for(var/i = 1, i <= C.req_components[I], i++) + newpath = text2path(I) + var/obj/item/s = new newpath + s.loc = user.loc + if(istype(P, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/A = P + A.amount = 1 + + // Drop a circuit board too + C.loc = user.loc + + // Create a machine frame and delete the current machine + var/obj/machinery/constructable_frame/machine_frame/F = new + F.loc = src.loc + qdel(src) + + +/obj/machinery/telecomms/attack_ai(var/mob/user as mob) + attack_hand(user) + +/obj/machinery/telecomms/attack_hand(var/mob/user as mob) + + // You need a multitool to use this, or be silicon + if(!issilicon(user)) + // istype returns false if the value is null + if(!istype(user.get_active_hand(), /obj/item/device/multitool)) + return + + if(stat & (BROKEN|NOPOWER)) + return + + var/obj/item/device/multitool/P = get_multitool(user) + + user.set_machine(src) + var/dat + dat = "[src.name]

[src.name] Access

" + dat += "
[temp]
" + dat += "
Power Status: [src.toggled ? "On" : "Off"]" + if(on && toggled) + if(id != "" && id) + dat += "
Identification String: [id]" + else + dat += "
Identification String: NULL" + dat += "
Network: [network]" + dat += "
Prefabrication: [autolinkers.len ? "TRUE" : "FALSE"]" + if(hide) dat += "
Shadow Link: ACTIVE" + + //Show additional options for certain machines. + dat += Options_Menu() + + dat += "
Linked Network Entities:
    " + + var/i = 0 + for(var/obj/machinery/telecomms/T in links) + i++ + if(T.hide && !src.hide) + continue + dat += "
  1. \ref[T] [T.name] ([T.id]) \[X\]
  2. " + dat += "
" + + dat += "
Filtering Frequencies: " + + i = 0 + if(length(freq_listening)) + for(var/x in freq_listening) + i++ + if(i < length(freq_listening)) + dat += "[format_frequency(x)] GHz\[X\]; " + else + dat += "[format_frequency(x)] GHz\[X\]" + else + dat += "NONE" + + dat += "
\[Add Filter\]" + dat += "
" + + if(P) + if(P.buffer) + dat += "

MULTITOOL BUFFER: [P.buffer] ([P.buffer.id]) \[Link\] \[Flush\]" + else + dat += "

MULTITOOL BUFFER:
\[Add Machine\]" + + dat += "
" + temp = "" + user << browse(dat, "window=tcommachine;size=520x500;can_resize=0") + onclose(user, "dormitory") + + +// Off-Site Relays +// +// You are able to send/receive signals from the station's z level (changeable in the STATION_Z #define) if +// the relay is on the telecomm satellite (changable in the TELECOMM_Z #define) + + +/obj/machinery/telecomms/relay/proc/toggle_level() + + var/turf/position = get_turf(src) + + // Toggle on/off getting signals from the station or the current Z level + if(src.listening_level == STATION_Z) // equals the station + src.listening_level = position.z + return 1 + else if(position.z == TELECOMM_Z) + src.listening_level = STATION_Z + return 1 + return 0 + +// Returns a multitool from a user depending on their mobtype. + +/obj/machinery/telecomms/proc/get_multitool(mob/user as mob) + + var/obj/item/device/multitool/P = null + // Let's double check + if(!issilicon(user) && istype(user.get_active_hand(), /obj/item/device/multitool)) + P = user.get_active_hand() + else if(isAI(user)) + var/mob/living/silicon/ai/U = user + P = U.aiMulti + else if(isrobot(user) && in_range(user, src)) + if(istype(user.get_active_hand(), /obj/item/device/multitool)) + P = user.get_active_hand() + return P + +// Additional Options for certain machines. Use this when you want to add an option to a specific machine. +// Example of how to use below. + +/obj/machinery/telecomms/proc/Options_Menu() + return "" + +/* +// Add an option to the processor to switch processing mode. (COMPRESS -> UNCOMPRESS or UNCOMPRESS -> COMPRESS) +/obj/machinery/telecomms/processor/Options_Menu() + var/dat = "
Processing Mode: [process_mode ? "UNCOMPRESS" : "COMPRESS"]" + return dat +*/ +// The topic for Additional Options. Use this for checking href links for your specific option. +// Example of how to use below. +/obj/machinery/telecomms/proc/Options_Topic(href, href_list) + return + +/* +/obj/machinery/telecomms/processor/Options_Topic(href, href_list) + + if(href_list["process"]) + temp = "-% Processing mode changed. %-" + src.process_mode = !src.process_mode +*/ + +// RELAY + +/obj/machinery/telecomms/relay/Options_Menu() + var/dat = "" + if(src.z == TELECOMM_Z) + dat += "
Signal Locked to Station: [listening_level == STATION_Z ? "TRUE" : "FALSE"]" + dat += "
Broadcasting: [broadcasting ? "YES" : "NO"]" + dat += "
Receiving: [receiving ? "YES" : "NO"]" + return dat + +/obj/machinery/telecomms/relay/Options_Topic(href, href_list) + + if(href_list["receive"]) + receiving = !receiving + temp = "-% Receiving mode changed. %-" + if(href_list["broadcast"]) + broadcasting = !broadcasting + temp = "-% Broadcasting mode changed. %-" + if(href_list["change_listening"]) + //Lock to the station OR lock to the current position! + //You need at least two receivers and two broadcasters for this to work, this includes the machine. + var/result = toggle_level() + if(result) + temp = "-% [src]'s signal has been successfully changed." + else + temp = "-% [src] could not lock it's signal onto the station. Two broadcasters or receivers required." + +// BUS + +/obj/machinery/telecomms/bus/Options_Menu() + var/dat = "
Change Signal Frequency: [change_frequency ? "YES ([change_frequency])" : "NO"]" + return dat + +/obj/machinery/telecomms/bus/Options_Topic(href, href_list) + + if(href_list["change_freq"]) + + var/newfreq = input(usr, "Specify a new frequency for new signals to change to. Enter null to turn off frequency changing. Decimals assigned automatically.", src, network) as null|num + if(canAccess(usr)) + if(newfreq) + if(findtext(num2text(newfreq), ".")) + newfreq *= 10 // shift the decimal one place + if(newfreq < 10000) + change_frequency = newfreq + temp = "-% New frequency to change to assigned: \"[newfreq] GHz\" %-" + else + change_frequency = 0 + temp = "-% Frequency changing deactivated %-" + + +/obj/machinery/telecomms/Topic(href, href_list) + + if(!issilicon(usr)) + if(!istype(usr.get_active_hand(), /obj/item/device/multitool)) + return + + if(stat & (BROKEN|NOPOWER)) + return + + var/obj/item/device/multitool/P = get_multitool(usr) + + if(href_list["input"]) + switch(href_list["input"]) + + if("toggle") + + src.toggled = !src.toggled + temp = "-% [src] has been [src.toggled ? "activated" : "deactivated"]." + update_power() + + /* + if("hide") + src.hide = !hide + temp = "-% Shadow Link has been [src.hide ? "activated" : "deactivated"]." + */ + + if("id") + var/newid = copytext(reject_bad_text(input(usr, "Specify the new ID for this machine", src, id) as null|text),1,MAX_MESSAGE_LEN) + if(newid && canAccess(usr)) + id = newid + temp = "-% New ID assigned: \"[id]\" %-" + + if("network") + var/newnet = input(usr, "Specify the new network for this machine. This will break all current links.", src, network) as null|text + if(newnet && canAccess(usr)) + + if(length(newnet) > 15) + temp = "-% Too many characters in new network tag %-" + + else + for(var/obj/machinery/telecomms/T in links) + T.links.Remove(src) + + network = newnet + links = list() + temp = "-% New network tag assigned: \"[network]\" %-" + + + if("freq") + var/newfreq = input(usr, "Specify a new frequency to filter (GHz). Decimals assigned automatically.", src, network) as null|num + if(newfreq && canAccess(usr)) + if(findtext(num2text(newfreq), ".")) + newfreq *= 10 // shift the decimal one place + if(!(newfreq in freq_listening) && newfreq < 10000) + freq_listening.Add(newfreq) + temp = "-% New frequency filter assigned: \"[newfreq] GHz\" %-" + + if(href_list["delete"]) + + // changed the layout about to workaround a pesky runtime -- Doohl + + var/x = text2num(href_list["delete"]) + temp = "-% Removed frequency filter [x] %-" + freq_listening.Remove(x) + + if(href_list["unlink"]) + + if(text2num(href_list["unlink"]) <= length(links)) + var/obj/machinery/telecomms/T = links[text2num(href_list["unlink"])] + temp = "-% Removed \ref[T] [T.name] from linked entities. %-" + + // Remove link entries from both T and src. + + if(src in T.links) + T.links.Remove(src) + links.Remove(T) + + if(href_list["link"]) + + if(P) + if(P.buffer && P.buffer != src) + if(!(src in P.buffer.links)) + P.buffer.links.Add(src) + + if(!(P.buffer in src.links)) + src.links.Add(P.buffer) + + temp = "-% Successfully linked with \ref[P.buffer] [P.buffer.name] %-" + + else + temp = "-% Unable to acquire buffer %-" + + if(href_list["buffer"]) + + P.buffer = src + temp = "-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-" + + + if(href_list["flush"]) + + temp = "-% Buffer successfully flushed. %-" + P.buffer = null + + src.Options_Topic(href, href_list) + + usr.set_machine(src) + src.add_fingerprint(usr) + + updateUsrDialog() + +/obj/machinery/telecomms/proc/canAccess(var/mob/user) + if(issilicon(user) || in_range(user, src)) + return 1 + return 0 + +#undef TELECOMM_Z +#undef STATION_Z diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index fe638408fce..9e3fdf81e28 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -131,7 +131,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() add_link(T) -/obj/machinery/telecomms/Del() +/obj/machinery/telecomms/Destroy() telecomms_list -= src ..() diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm index ea313e00524..a0f7b351eff 100644 --- a/code/game/machinery/telecomms/telemonitor.dm +++ b/code/game/machinery/telecomms/telemonitor.dm @@ -1,158 +1,158 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 - - -/* - Telecomms monitor tracks the overall trafficing of a telecommunications network - and displays a heirarchy of linked machines. -*/ - - -/obj/machinery/computer/telecomms/monitor - name = "Telecommunications Monitor" - icon_state = "comm_monitor" - - var/screen = 0 // the screen number: - var/list/machinelist = list() // the machines located by the computer - var/obj/machinery/telecomms/SelectedMachine - - var/network = "NULL" // the network to probe - - var/temp = "" // temporary feedback messages - - attack_hand(mob/user as mob) - if(stat & (BROKEN|NOPOWER)) - return - user.set_machine(src) - var/dat = "Telecommunications Monitor
Telecommunications Monitor
" - - switch(screen) - - - // --- Main Menu --- - - if(0) - dat += "
[temp]

" - dat += "
Current Network: [network]
" - if(machinelist.len) - dat += "
Detected Network Entities:" - dat += "
\[Flush Buffer\]" - else - dat += "\[Probe Network\]" - - - // --- Viewing Machine --- - - if(1) - dat += "
[temp]
" - dat += "
\[Main Menu\]
" - dat += "
Current Network: [network]
" - dat += "Selected Network Entity: [SelectedMachine.name] ([SelectedMachine.id])
" - dat += "Linked Entities:
    " - for(var/obj/machinery/telecomms/T in SelectedMachine.links) - if(!T.hide) - dat += "
  1. \ref[T.id] [T.name] ([T.id])
  2. " - dat += "
" - - - - user << browse(dat, "window=comm_monitor;size=575x400") - onclose(user, "server_control") - - temp = "" - return - - - Topic(href, href_list) - if(..()) - return - - - add_fingerprint(usr) - usr.set_machine(src) - - if(href_list["viewmachine"]) - screen = 1 - for(var/obj/machinery/telecomms/T in machinelist) - if(T.id == href_list["viewmachine"]) - SelectedMachine = T - break - - if(href_list["operation"]) - switch(href_list["operation"]) - - if("release") - machinelist = list() - screen = 0 - - if("mainmenu") - screen = 0 - - if("probe") - if(machinelist.len > 0) - temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" - - else - for(var/obj/machinery/telecomms/T in range(25, src)) - if(T.network == network) - machinelist.Add(T) - - if(!machinelist.len) - temp = "- FAILED: UNABLE TO LOCATE NETWORK ENTITIES IN \[[network]\] -" - else - temp = "- [machinelist.len] ENTITIES LOCATED & BUFFERED -" - - screen = 0 - - - if(href_list["network"]) - - var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text - if(newnet && ((usr in range(1, src) || issilicon(usr)))) - if(length(newnet) > 15) - temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" - - else - network = newnet - screen = 0 - machinelist = list() - temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" - - updateUsrDialog() - return - - attackby(var/obj/item/weapon/D as obj, var/mob/user as mob) - if(istype(D, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - new /obj/item/weapon/shard( src.loc ) - var/obj/item/weapon/circuitboard/comm_monitor/M = new /obj/item/weapon/circuitboard/comm_monitor( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 3 - A.icon_state = "3" - A.anchored = 1 - del(src) - else - user << "\blue You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/comm_monitor/M = new /obj/item/weapon/circuitboard/comm_monitor( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) - else if(istype(D, /obj/item/weapon/card/emag) && !emagged) - playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) - emagged = 1 - user << "\blue You you disable the security protocols" - src.updateUsrDialog() - return +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + + +/* + Telecomms monitor tracks the overall trafficing of a telecommunications network + and displays a heirarchy of linked machines. +*/ + + +/obj/machinery/computer/telecomms/monitor + name = "Telecommunications Monitor" + icon_state = "comm_monitor" + + var/screen = 0 // the screen number: + var/list/machinelist = list() // the machines located by the computer + var/obj/machinery/telecomms/SelectedMachine + + var/network = "NULL" // the network to probe + + var/temp = "" // temporary feedback messages + + attack_hand(mob/user as mob) + if(stat & (BROKEN|NOPOWER)) + return + user.set_machine(src) + var/dat = "Telecommunications Monitor
Telecommunications Monitor
" + + switch(screen) + + + // --- Main Menu --- + + if(0) + dat += "
[temp]

" + dat += "
Current Network: [network]
" + if(machinelist.len) + dat += "
Detected Network Entities:" + dat += "
\[Flush Buffer\]" + else + dat += "\[Probe Network\]" + + + // --- Viewing Machine --- + + if(1) + dat += "
[temp]
" + dat += "
\[Main Menu\]
" + dat += "
Current Network: [network]
" + dat += "Selected Network Entity: [SelectedMachine.name] ([SelectedMachine.id])
" + dat += "Linked Entities:
    " + for(var/obj/machinery/telecomms/T in SelectedMachine.links) + if(!T.hide) + dat += "
  1. \ref[T.id] [T.name] ([T.id])
  2. " + dat += "
" + + + + user << browse(dat, "window=comm_monitor;size=575x400") + onclose(user, "server_control") + + temp = "" + return + + + Topic(href, href_list) + if(..()) + return + + + add_fingerprint(usr) + usr.set_machine(src) + + if(href_list["viewmachine"]) + screen = 1 + for(var/obj/machinery/telecomms/T in machinelist) + if(T.id == href_list["viewmachine"]) + SelectedMachine = T + break + + if(href_list["operation"]) + switch(href_list["operation"]) + + if("release") + machinelist = list() + screen = 0 + + if("mainmenu") + screen = 0 + + if("probe") + if(machinelist.len > 0) + temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" + + else + for(var/obj/machinery/telecomms/T in range(25, src)) + if(T.network == network) + machinelist.Add(T) + + if(!machinelist.len) + temp = "- FAILED: UNABLE TO LOCATE NETWORK ENTITIES IN \[[network]\] -" + else + temp = "- [machinelist.len] ENTITIES LOCATED & BUFFERED -" + + screen = 0 + + + if(href_list["network"]) + + var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text + if(newnet && ((usr in range(1, src) || issilicon(usr)))) + if(length(newnet) > 15) + temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" + + else + network = newnet + screen = 0 + machinelist = list() + temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" + + updateUsrDialog() + return + + attackby(var/obj/item/weapon/D as obj, var/mob/user as mob) + if(istype(D, /obj/item/weapon/screwdriver)) + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + if(do_after(user, 20)) + if (src.stat & BROKEN) + user << "\blue The broken glass falls out." + var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) + new /obj/item/weapon/shard( src.loc ) + var/obj/item/weapon/circuitboard/comm_monitor/M = new /obj/item/weapon/circuitboard/comm_monitor( A ) + for (var/obj/C in src) + C.loc = src.loc + A.circuit = M + A.state = 3 + A.icon_state = "3" + A.anchored = 1 + qdel(src) + else + user << "\blue You disconnect the monitor." + var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) + var/obj/item/weapon/circuitboard/comm_monitor/M = new /obj/item/weapon/circuitboard/comm_monitor( A ) + for (var/obj/C in src) + C.loc = src.loc + A.circuit = M + A.state = 4 + A.icon_state = "4" + A.anchored = 1 + qdel(src) + else if(istype(D, /obj/item/weapon/card/emag) && !emagged) + playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) + emagged = 1 + user << "\blue You you disable the security protocols" + src.updateUsrDialog() + return diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm index 226c47229e7..287577626cc 100644 --- a/code/game/machinery/telecomms/traffic_control.dm +++ b/code/game/machinery/telecomms/traffic_control.dm @@ -1,241 +1,241 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 - - - - - -/obj/machinery/computer/telecomms/traffic - name = "Telecommunications Traffic Control" - icon_state = "computer_generic" - - var/screen = 0 // the screen number: - var/list/servers = list() // the servers located by the computer - var/mob/editingcode - var/mob/lasteditor - var/list/viewingcode = list() - var/obj/machinery/telecomms/server/SelectedServer - - var/network = "NULL" // the network to probe - var/temp = "" // temporary feedback messages - - var/storedcode = "" // code stored - - - proc/update_ide() - - // loop if there's someone manning the keyboard - while(editingcode) - if(!editingcode.client) - editingcode = null - break - - // For the typer, the input is enabled. Buffer the typed text - if(editingcode) - storedcode = "[winget(editingcode, "tcscode", "text")]" - if(editingcode) // double if's to work around a runtime error - winset(editingcode, "tcscode", "is-disabled=false") - - // If the player's not manning the keyboard anymore, adjust everything - if( (!(editingcode in range(1, src)) && !issilicon(editingcode)) || (editingcode.machine != src && !issilicon(editingcode))) - if(editingcode) - winshow(editingcode, "Telecomms IDE", 0) // hide the window! - editingcode = null - break - - // For other people viewing the typer type code, the input is disabled and they can only view the code - // (this is put in place so that there's not any magical shenanigans with 50 people inputting different code all at once) - - if(length(viewingcode)) - // This piece of code is very important - it escapes quotation marks so string aren't cut off by the input element - var/showcode = replacetext(storedcode, "\\\"", "\\\\\"") - showcode = replacetext(storedcode, "\"", "\\\"") - - for(var/mob/M in viewingcode) - - if( (M.machine == src && M in view(1, src) ) || issilicon(M)) - winset(M, "tcscode", "is-disabled=true") - winset(M, "tcscode", "text=\"[showcode]\"") - else - viewingcode.Remove(M) - winshow(M, "Telecomms IDE", 0) // hide the window! - - sleep(5) - - if(length(viewingcode) > 0) - editingcode = pick(viewingcode) - viewingcode.Remove(editingcode) - update_ide() - - - - req_access = list(access_tcomsat) - - attack_hand(mob/user as mob) - if(stat & (BROKEN|NOPOWER)) - return - user.set_machine(src) - var/dat = "Telecommunication Traffic Control
Telecommunications Traffic Control
" - - switch(screen) - - - // --- Main Menu --- - - if(0) - dat += "
[temp]
" - dat += "
Current Network: [network]
" - if(servers.len) - dat += "
Detected Telecommunication Servers:" - dat += "
\[Flush Buffer\]" - - else - dat += "
No servers detected. Scan for servers: \[Scan\]" - - - // --- Viewing Server --- - - if(1) - dat += "
[temp]
" - dat += "
\[Main Menu\] \[Refresh\]
" - dat += "
Current Network: [network]" - dat += "
Selected Server: [SelectedServer.id]

" - dat += "
\[Edit Code\]" - dat += "
Signal Execution: " - if(SelectedServer.autoruncode) - dat += "ALWAYS" - else - dat += "NEVER" - - - user << browse(dat, "window=traffic_control;size=575x400") - onclose(user, "server_control") - - temp = "" - return - - - Topic(href, href_list) - if(..()) - return - - - add_fingerprint(usr) - usr.set_machine(src) - if(!src.allowed(usr) && !emagged) - usr << "\red ACCESS DENIED." - return - - if(href_list["viewserver"]) - screen = 1 - for(var/obj/machinery/telecomms/T in servers) - if(T.id == href_list["viewserver"]) - SelectedServer = T - break - - if(href_list["operation"]) - switch(href_list["operation"]) - - if("release") - servers = list() - screen = 0 - - if("mainmenu") - screen = 0 - - if("scan") - if(servers.len > 0) - temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" - - else - for(var/obj/machinery/telecomms/server/T in range(25, src)) - if(T.network == network) - servers.Add(T) - - if(!servers.len) - temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -" - else - temp = "- [servers.len] SERVERS PROBED & BUFFERED -" - - screen = 0 - - if("editcode") - if(editingcode == usr) return - if(usr in viewingcode) return - - if(!editingcode) - lasteditor = usr - editingcode = usr - winshow(editingcode, "Telecomms IDE", 1) // show the IDE - winset(editingcode, "tcscode", "is-disabled=false") - winset(editingcode, "tcscode", "text=\"\"") - var/showcode = replacetext(storedcode, "\\\"", "\\\\\"") - showcode = replacetext(storedcode, "\"", "\\\"") - winset(editingcode, "tcscode", "text=\"[showcode]\"") - spawn() - update_ide() - - else - viewingcode.Add(usr) - winshow(usr, "Telecomms IDE", 1) // show the IDE - winset(usr, "tcscode", "is-disabled=true") - winset(editingcode, "tcscode", "text=\"\"") - var/showcode = replacetext(storedcode, "\"", "\\\"") - winset(usr, "tcscode", "text=\"[showcode]\"") - - if("togglerun") - SelectedServer.autoruncode = !(SelectedServer.autoruncode) - - if(href_list["network"]) - - var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text - - if(newnet && ((usr in range(1, src) || issilicon(usr)))) - if(length(newnet) > 15) - temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" - - else - - network = newnet - screen = 0 - servers = list() - temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" - - updateUsrDialog() - return - - attackby(var/obj/item/weapon/D as obj, var/mob/user as mob) - if(istype(D, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - new /obj/item/weapon/shard( src.loc ) - var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 3 - A.icon_state = "3" - A.anchored = 1 - del(src) - else - user << "\blue You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) - else if(istype(D, /obj/item/weapon/card/emag) && !emagged) - playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) - emagged = 1 - user << "\blue You you disable the security protocols" - src.updateUsrDialog() - return +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + + + + + +/obj/machinery/computer/telecomms/traffic + name = "Telecommunications Traffic Control" + icon_state = "computer_generic" + + var/screen = 0 // the screen number: + var/list/servers = list() // the servers located by the computer + var/mob/editingcode + var/mob/lasteditor + var/list/viewingcode = list() + var/obj/machinery/telecomms/server/SelectedServer + + var/network = "NULL" // the network to probe + var/temp = "" // temporary feedback messages + + var/storedcode = "" // code stored + + + proc/update_ide() + + // loop if there's someone manning the keyboard + while(editingcode) + if(!editingcode.client) + editingcode = null + break + + // For the typer, the input is enabled. Buffer the typed text + if(editingcode) + storedcode = "[winget(editingcode, "tcscode", "text")]" + if(editingcode) // double if's to work around a runtime error + winset(editingcode, "tcscode", "is-disabled=false") + + // If the player's not manning the keyboard anymore, adjust everything + if( (!(editingcode in range(1, src)) && !issilicon(editingcode)) || (editingcode.machine != src && !issilicon(editingcode))) + if(editingcode) + winshow(editingcode, "Telecomms IDE", 0) // hide the window! + editingcode = null + break + + // For other people viewing the typer type code, the input is disabled and they can only view the code + // (this is put in place so that there's not any magical shenanigans with 50 people inputting different code all at once) + + if(length(viewingcode)) + // This piece of code is very important - it escapes quotation marks so string aren't cut off by the input element + var/showcode = replacetext(storedcode, "\\\"", "\\\\\"") + showcode = replacetext(storedcode, "\"", "\\\"") + + for(var/mob/M in viewingcode) + + if( (M.machine == src && M in view(1, src) ) || issilicon(M)) + winset(M, "tcscode", "is-disabled=true") + winset(M, "tcscode", "text=\"[showcode]\"") + else + viewingcode.Remove(M) + winshow(M, "Telecomms IDE", 0) // hide the window! + + sleep(5) + + if(length(viewingcode) > 0) + editingcode = pick(viewingcode) + viewingcode.Remove(editingcode) + update_ide() + + + + req_access = list(access_tcomsat) + + attack_hand(mob/user as mob) + if(stat & (BROKEN|NOPOWER)) + return + user.set_machine(src) + var/dat = "Telecommunication Traffic Control
Telecommunications Traffic Control
" + + switch(screen) + + + // --- Main Menu --- + + if(0) + dat += "
[temp]
" + dat += "
Current Network: [network]
" + if(servers.len) + dat += "
Detected Telecommunication Servers:" + dat += "
\[Flush Buffer\]" + + else + dat += "
No servers detected. Scan for servers: \[Scan\]" + + + // --- Viewing Server --- + + if(1) + dat += "
[temp]
" + dat += "
\[Main Menu\] \[Refresh\]
" + dat += "
Current Network: [network]" + dat += "
Selected Server: [SelectedServer.id]

" + dat += "
\[Edit Code\]" + dat += "
Signal Execution: " + if(SelectedServer.autoruncode) + dat += "ALWAYS" + else + dat += "NEVER" + + + user << browse(dat, "window=traffic_control;size=575x400") + onclose(user, "server_control") + + temp = "" + return + + + Topic(href, href_list) + if(..()) + return + + + add_fingerprint(usr) + usr.set_machine(src) + if(!src.allowed(usr) && !emagged) + usr << "\red ACCESS DENIED." + return + + if(href_list["viewserver"]) + screen = 1 + for(var/obj/machinery/telecomms/T in servers) + if(T.id == href_list["viewserver"]) + SelectedServer = T + break + + if(href_list["operation"]) + switch(href_list["operation"]) + + if("release") + servers = list() + screen = 0 + + if("mainmenu") + screen = 0 + + if("scan") + if(servers.len > 0) + temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" + + else + for(var/obj/machinery/telecomms/server/T in range(25, src)) + if(T.network == network) + servers.Add(T) + + if(!servers.len) + temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -" + else + temp = "- [servers.len] SERVERS PROBED & BUFFERED -" + + screen = 0 + + if("editcode") + if(editingcode == usr) return + if(usr in viewingcode) return + + if(!editingcode) + lasteditor = usr + editingcode = usr + winshow(editingcode, "Telecomms IDE", 1) // show the IDE + winset(editingcode, "tcscode", "is-disabled=false") + winset(editingcode, "tcscode", "text=\"\"") + var/showcode = replacetext(storedcode, "\\\"", "\\\\\"") + showcode = replacetext(storedcode, "\"", "\\\"") + winset(editingcode, "tcscode", "text=\"[showcode]\"") + spawn() + update_ide() + + else + viewingcode.Add(usr) + winshow(usr, "Telecomms IDE", 1) // show the IDE + winset(usr, "tcscode", "is-disabled=true") + winset(editingcode, "tcscode", "text=\"\"") + var/showcode = replacetext(storedcode, "\"", "\\\"") + winset(usr, "tcscode", "text=\"[showcode]\"") + + if("togglerun") + SelectedServer.autoruncode = !(SelectedServer.autoruncode) + + if(href_list["network"]) + + var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text + + if(newnet && ((usr in range(1, src) || issilicon(usr)))) + if(length(newnet) > 15) + temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" + + else + + network = newnet + screen = 0 + servers = list() + temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" + + updateUsrDialog() + return + + attackby(var/obj/item/weapon/D as obj, var/mob/user as mob) + if(istype(D, /obj/item/weapon/screwdriver)) + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + if(do_after(user, 20)) + if (src.stat & BROKEN) + user << "\blue The broken glass falls out." + var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) + new /obj/item/weapon/shard( src.loc ) + var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A ) + for (var/obj/C in src) + C.loc = src.loc + A.circuit = M + A.state = 3 + A.icon_state = "3" + A.anchored = 1 + qdel(src) + else + user << "\blue You disconnect the monitor." + var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) + var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A ) + for (var/obj/C in src) + C.loc = src.loc + A.circuit = M + A.state = 4 + A.icon_state = "4" + A.anchored = 1 + qdel(src) + else if(istype(D, /obj/item/weapon/card/emag) && !emagged) + playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) + emagged = 1 + user << "\blue You you disable the security protocols" + src.updateUsrDialog() + return diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 9e68791df00..b1d45a4840c 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -57,7 +57,7 @@ usr << "You insert the coordinates into the machine." usr << "A message flashes across the screen reminding the traveller that the nuclear authentication disk is to remain on the station at all times." user.drop_item() - del(I) + qdel(I) if(C.data == "Clown Land") //whoops @@ -216,7 +216,7 @@ /* /proc/do_teleport(atom/movable/M as mob|obj, atom/destination, precision) if(istype(M, /obj/effect)) - del(M) + qdel(M) return if (istype(M, /obj/item/weapon/disk/nuclear)) // Don't let nuke disks get teleported --NeoFite for(var/mob/O in viewers(M, null)) diff --git a/code/game/machinery/turret_control.dm b/code/game/machinery/turret_control.dm index 46ea8824e6a..0f68d16f771 100644 --- a/code/game/machinery/turret_control.dm +++ b/code/game/machinery/turret_control.dm @@ -37,7 +37,7 @@ lethal = 1 icon_state = "control_kill" -/obj/machinery/turretid/Del() +/obj/machinery/turretid/Destroy() if(control_area) var/area/A = control_area if(A && istype(A)) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index 965210ae155..f69a781dd77 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -74,7 +74,7 @@ /obj/machinery/turret/proc/take_damage(damage) src.health -= damage if(src.health<=0) - del src + qdel(src) return /obj/machinery/turret/attack_hand(var/mob/living/carbon/human/user) @@ -105,7 +105,7 @@ /obj/machinery/turret/proc/update_health() if(src.health<=0) - del src + qdel(src) return /obj/machinery/turretcover @@ -305,7 +305,7 @@ src.health -= Proj.damage ..() if(prob(45) && Proj.damage > 0) src.spark_system.start() - del (Proj) + qdel (Proj) if (src.health <= 0) src.die() return @@ -337,11 +337,11 @@ src.stat |= BROKEN src.icon_state = "destroyed_target_prism" if (cover!=null) - del(cover) + qdel(cover) sleep(3) flick("explosion", src) spawn(13) - del(src) + qdel(src) /obj/machinery/turret/attack_generic(var/mob/user, var/damage, var/attack_message) if(!damage) @@ -376,7 +376,7 @@ proc/take_damage(damage) src.health -= damage if(src.health<=0) - del src + qdel(src) return @@ -389,15 +389,15 @@ ex_act() - del src + qdel(src) return emp_act() - del src + qdel(src) return meteorhit() - del src + qdel(src) return attack_hand(mob/user as mob) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 794fb0a887a..f4219372f5c 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -21,7 +21,7 @@ if(!name) var/atom/tmp = new path src.product_name = initial(tmp.name) - del(tmp) + qdel(tmp) else src.product_name = name @@ -143,22 +143,22 @@ src.product_records.Add(product) -/obj/machinery/vending/Del() - del(wires) // qdel +/obj/machinery/vending/Destroy() + qdel(wires) wires = null if(coin) - del(coin) // qdel + qdel(coin) coin = null ..() /obj/machinery/vending/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) - del(src) + qdel(src) return if(3.0) if (prob(25)) @@ -173,7 +173,7 @@ if (prob(50)) spawn(0) src.malfunction() - del(src) + qdel(src) return return @@ -251,7 +251,7 @@ for(var/datum/data/vending_product/R in product_records) if(istype(W, R.product_path)) stock(R, user) - del(W) + qdel(W) else ..() @@ -278,7 +278,7 @@ if(cashmoney_bundle.worth <= 0) usr.drop_from_inventory(cashmoney_bundle) - del(cashmoney_bundle) + qdel(cashmoney_bundle) else cashmoney_bundle.update_icon() else @@ -290,7 +290,7 @@ visible_message("\The [usr] inserts a bill into \the [src].") var/left = cashmoney.worth - currently_vending.price usr.drop_from_inventory(cashmoney) - del(cashmoney) + qdel(cashmoney) if(left) spawn_money(left, src.loc, user) @@ -533,10 +533,10 @@ user << "\blue You successfully pull the coin out before \the [src] could swallow it." else user << "\blue You weren't able to pull the coin out fast enough, the machine ate it, string and all." - del(coin) + qdel(coin) categories &= ~CAT_COIN else - del(coin) + qdel(coin) categories &= ~CAT_COIN R.amount-- diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index ad433d12e25..6421f54a67b 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -50,7 +50,7 @@ for(var/obj/item/stack/sheet/hairlesshide/HH in contents) var/obj/item/stack/sheet/wetleather/WL = new(src) WL.amount = HH.amount - del(HH) + qdel(HH) if(crayon) @@ -83,10 +83,10 @@ new_jumpsuit_icon_state = J.icon_state new_jumpsuit_item_state = J.item_state new_jumpsuit_name = J.name - del(J) + qdel(J) //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break - del(J) + qdel(J) for(var/T in typesof(/obj/item/clothing/gloves)) var/obj/item/clothing/gloves/G = new T //world << "DEBUG: [color] == [J.color]" @@ -94,40 +94,40 @@ new_glove_icon_state = G.icon_state new_glove_item_state = G.item_state new_glove_name = G.name - del(G) + qdel(G) //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break - del(G) + qdel(G) for(var/T in typesof(/obj/item/clothing/shoes)) var/obj/item/clothing/shoes/S = new T //world << "DEBUG: [color] == [J.color]" if(wash_color == S.item_color) new_shoe_icon_state = S.icon_state new_shoe_name = S.name - del(S) + qdel(S) //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break - del(S) + qdel(S) for(var/T in typesof(/obj/item/weapon/bedsheet)) var/obj/item/weapon/bedsheet/B = new T //world << "DEBUG: [color] == [J.color]" if(wash_color == B.item_color) new_sheet_icon_state = B.icon_state new_sheet_name = B.name - del(B) + qdel(B) //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break - del(B) + qdel(B) for(var/T in typesof(/obj/item/clothing/head/soft)) var/obj/item/clothing/head/soft/H = new T //world << "DEBUG: [color] == [J.color]" if(wash_color == H.item_color) new_softcap_icon_state = H.icon_state new_softcap_name = H.name - del(H) + qdel(H) //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break - del(H) + qdel(H) if(new_jumpsuit_icon_state && new_jumpsuit_item_state && new_jumpsuit_name) for(var/obj/item/clothing/under/J in contents) //world << "DEBUG: YUP! FOUND IT!" @@ -169,7 +169,7 @@ H.item_color = wash_color H.name = new_softcap_name H.desc = new_desc - del(crayon) + qdel(crayon) crayon = null @@ -212,7 +212,7 @@ var/obj/item/weapon/grab/G = W if(ishuman(G.assailant) && iscorgi(G.affecting)) G.affecting.loc = src - del(G) + qdel(G) state = 3 else ..() diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index aba7a44944c..bf23e579f3f 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -63,7 +63,7 @@ if(equipment.len)//Now to remove it and equip anew. for(ME in equipment) equipment -= ME - del(ME) + qdel(ME) ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src) ME.attach(src) ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive(src) diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm index 2a6e2b62144..f53533828b4 100644 --- a/code/game/mecha/equipment/mecha_equipment.dm +++ b/code/game/mecha/equipment/mecha_equipment.dm @@ -59,7 +59,7 @@ else chassis.occupant << sound('sound/mecha/critdestr.ogg',volume=50) spawn - del src + qdel(src) return /obj/item/mecha_parts/mecha_equipment/proc/critfail() diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 37ffbcebcf6..9f61f660914 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -215,7 +215,7 @@ for(var/a=0, a<5, a++) spawn(0) - var/obj/effect/effect/water/W = new /obj/effect/effect/water( get_turf(chassis) ) + var/obj/effect/effect/water/W = PoolOrNew(/obj/effect/effect/water, get_turf(chassis)) var/turf/my_target = pick(the_targets) var/datum/reagents/R = new/datum/reagents(5) if(!W) return @@ -235,7 +235,7 @@ W.reagents.reaction(atm) if(W.loc == my_target) break sleep(2) - W.delete() + qdel(W) return 1 get_equip_info() @@ -294,7 +294,7 @@ if(do_after_cooldown(target)) if(disabled) return chassis.spark_system.start() - del(target) + qdel(target) playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) chassis.use_power(energy_drain) if(1) @@ -417,7 +417,7 @@ do_after_cooldown() src = null spawn(rand(150,300)) - del(P) + qdel(P) return /obj/item/mecha_parts/mecha_equipment/gravcatapult diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 3d36efea9c8..13d0600df43 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -113,7 +113,7 @@ A.bullet_act(src, def_zone) src.life -= 10 if(life <= 0) - del(src) + qdel(src) return /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser @@ -249,7 +249,7 @@ throw_impact(atom/hit_atom) if(primed) explosion(hit_atom, 0, 1, 2, 4) - del(src) + qdel(src) else ..() return diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index f000499ffdc..1468a03e038 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -193,9 +193,9 @@ if(time_coeff!=diff) time_coeff = diff -/obj/machinery/mecha_part_fabricator/Del() +/obj/machinery/mecha_part_fabricator/Destroy() for(var/atom/A in src) - del A + qdel(A) ..() return @@ -268,7 +268,7 @@ if(!istype(apart)) return 0 for(var/obj/O in part_set) if(O.type == apart.type) - del apart + qdel(apart) return 0 part_set[++part_set.len] = apart return 1 @@ -749,7 +749,7 @@ res.Move(src.loc) result = res.amount else - del res + qdel(res) return result @@ -795,7 +795,7 @@ if(src.resources["diamond"] >= 2000) var/obj/item/stack/sheet/mineral/diamond/G = new /obj/item/stack/sheet/mineral/diamond(src.loc) G.amount = round(src.resources["diamond"] / G.perunit) - del(src) + qdel(src) return 1 else user << "\red You can't load the [src.name] while it's opened." diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index d11bacbd804..86d84b4527a 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -835,7 +835,7 @@ src.reset_icon() user.drop_item() - del(P) + qdel(P) else call((proc_res["dynattackby"]||src), "dynattackby")(W,user) @@ -1736,7 +1736,7 @@ AI.bruteloss = O.getBruteLoss() AI.toxloss = O.toxloss AI.updatehealth() - del(O) + qdel(O) if (!AI.stat) AI.icon_state = "ai" else @@ -1844,7 +1844,7 @@ if(t_air) t_air.merge(removed) else //just delete the cabin gas, we're in space or some shit - del(removed) + qdel(removed) else return stop() return @@ -1887,7 +1887,7 @@ if(mecha.loc && hascall(mecha.loc,"assume_air")) mecha.loc.assume_air(leaked_gas) else - del(leaked_gas) + qdel(leaked_gas) if(mecha.hasInternalDamage(MECHA_INT_SHORT_CIRCUIT)) if(mecha.get_charge()) mecha.spark_system.start() diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 233415cba80..167b9f63d0a 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -78,7 +78,7 @@ custom_action(step, atom/used_atom, mob/user) user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") holder.overlays += used_atom.icon_state+"+o" - del used_atom + qdel(used_atom) return 1 action(atom/used_atom,mob/user as mob) @@ -92,7 +92,7 @@ const_holder.density = 1 const_holder.overlays.len = 0 spawn() - del src + qdel(src) return @@ -194,7 +194,7 @@ if(10) if(diff==FORWARD) user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "ripley5" else user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") @@ -210,7 +210,7 @@ if(8) if(diff==FORWARD) user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "ripley7" else user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") @@ -289,7 +289,7 @@ custom_action(step, atom/used_atom, mob/user) user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") holder.overlays += used_atom.icon_state+"+o" - del used_atom + qdel(used_atom) return 1 action(atom/used_atom,mob/user as mob) @@ -302,7 +302,7 @@ const_holder.icon_state = "gygax0" const_holder.density = 1 spawn() - del src + qdel(src) return @@ -428,7 +428,7 @@ if(16) if(diff==FORWARD) user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "gygax5" else user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") @@ -444,7 +444,7 @@ if(14) if(diff==FORWARD) user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "gygax7" else user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") @@ -460,7 +460,7 @@ if(12) if(diff==FORWARD) user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "gygax9" else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") @@ -476,7 +476,7 @@ if(10) if(diff==FORWARD) user.visible_message("[user] installs advanced scanner module to [holder].", "You install advanced scanner module to [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "gygax11" else user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") @@ -492,7 +492,7 @@ if(8) if(diff==FORWARD) user.visible_message("[user] installs advanced capacitor to [holder].", "You install advanced capacitor to [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "gygax13" else user.visible_message("[user] unfastens the advanced scanner module.", "You unfasten the advanced scanner module.") @@ -531,7 +531,7 @@ if(3) if(diff==FORWARD) user.visible_message("[user] installs Gygax Armour Plates to [holder].", "You install Gygax Armour Plates to [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "gygax18" else user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") @@ -570,7 +570,7 @@ user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") holder.overlays += used_atom.icon_state+"+o" user.drop_item() - del used_atom + qdel(used_atom) return 1 action(atom/used_atom,mob/user as mob) @@ -583,7 +583,7 @@ const_holder.icon_state = "fireripley0" const_holder.density = 1 spawn() - del src + qdel(src) return @@ -690,7 +690,7 @@ if(11) if(diff==FORWARD) user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "fireripley5" else user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") @@ -706,7 +706,7 @@ if(9) if(diff==FORWARD) user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "fireripley7" else user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") @@ -793,7 +793,7 @@ custom_action(step, atom/used_atom, mob/user) user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") holder.overlays += used_atom.icon_state+"+o" - del used_atom + qdel(used_atom) return 1 action(atom/used_atom,mob/user as mob) @@ -806,7 +806,7 @@ const_holder.icon_state = "durand0" const_holder.density = 1 spawn() - del src + qdel(src) return /datum/construction/reversible/mecha/durand @@ -932,7 +932,7 @@ if(16) if(diff==FORWARD) user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "durand5" else user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") @@ -948,7 +948,7 @@ if(14) if(diff==FORWARD) user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "durand7" else user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") @@ -964,7 +964,7 @@ if(12) if(diff==FORWARD) user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "durand9" else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") @@ -980,7 +980,7 @@ if(10) if(diff==FORWARD) user.visible_message("[user] installs advanced scanner module to [holder].", "You install advanced scanner module to [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "durand11" else user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") @@ -996,7 +996,7 @@ if(8) if(diff==FORWARD) user.visible_message("[user] installs advanced capacitor to [holder].", "You install advanced capacitor to [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "durand13" else user.visible_message("[user] unfastens the advanced scanner module.", "You unfasten the advanced scanner module.") @@ -1035,7 +1035,7 @@ if(3) if(diff==FORWARD) user.visible_message("[user] installs Durand Armour Plates to [holder].", "You install Durand Armour Plates to [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "durand18" else user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") @@ -1075,7 +1075,7 @@ custom_action(step, atom/used_atom, mob/user) user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") holder.overlays += used_atom.icon_state+"+o" - del used_atom + qdel(used_atom) return 1 action(atom/used_atom,mob/user as mob) @@ -1096,7 +1096,7 @@ custom_action(step, atom/used_atom, mob/user) user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") holder.overlays += used_atom.icon_state+"+o" - del used_atom + qdel(used_atom) return 1 action(atom/used_atom,mob/user as mob) @@ -1109,7 +1109,7 @@ const_holder.icon_state = "odysseus0" const_holder.density = 1 spawn() - del src + qdel(src) return @@ -1211,7 +1211,7 @@ if(10) if(diff==FORWARD) user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "odysseus5" else user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") @@ -1227,7 +1227,7 @@ if(8) if(diff==FORWARD) user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") - del used_atom + qdel(used_atom) holder.icon_state = "odysseus7" else user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 8fa25a35688..ef254d5914f 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -90,11 +90,11 @@ return answer emp_act() - del src + qdel(src) return ex_act() - del src + qdel(src) return proc/in_mecha() @@ -106,7 +106,7 @@ var/obj/mecha/M = in_mecha() if(M) M.emp_act(2) - del(src) + qdel(src) proc/get_mecha_log() if(!src.in_mecha()) diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index 96b410959b2..8bbeb03fd71 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -23,7 +23,7 @@ /obj/effect/decal/mecha_wreckage/ex_act(severity) if(severity < 2) spawn - del src + qdel(src) return /obj/effect/decal/mecha_wreckage/bullet_act(var/obj/item/projectile/Proj) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 574b6b8823e..c51a34adefb 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -64,6 +64,6 @@ var/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp/HC = new /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp HC.attach(src) for(var/obj/item/mecha_parts/mecha_tracking/B in src.contents)//Deletes the beacon so it can't be found easily - del (B) + qdel (B) diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index 1fa6d4f5ac1..d9e876688f1 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -10,7 +10,7 @@ new /obj/item/mecha_parts/mecha_tracking(src) return -/obj/mecha/working/Del() +/obj/mecha/working/Destroy() for(var/mob/M in src) if(M==src.occupant) continue diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 9f75737fcf1..6b79db8f5b4 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -15,10 +15,16 @@ if(can_buckle && istype(M)) user_buckle_mob(M, user) +//Cleanup /obj/Del() unbuckle_mob() return ..() +/obj/Destroy() + unbuckle_mob() + return ..() + + /obj/proc/buckle_mob(mob/living/M) if(!can_buckle || !istype(M) || (M.loc != loc) || M.buckled || M.pinned.len || (buckle_require_restraints && !M.restrained())) return 0 @@ -85,11 +91,3 @@ add_fingerprint(user) return M -//Cleanup -/obj/Destroy() - . = ..() - unbuckle_mob() - -/obj/Del() - . = ..() - unbuckle_mob() diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 840d779510f..e6b166792f7 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -46,7 +46,7 @@ var/turf/T = get_turf(src) T.thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT -/obj/effect/alien/resin/Del() +/obj/effect/alien/resin/Destroy() var/turf/T = get_turf(src) T.thermal_conductivity = initial(T.thermal_conductivity) ..() @@ -54,7 +54,7 @@ /obj/effect/alien/resin/proc/healthcheck() if(health <=0) density = 0 - del(src) + qdel(src) return /obj/effect/alien/resin/bullet_act(var/obj/item/projectile/Proj) @@ -174,7 +174,7 @@ /obj/effect/alien/weeds/New(pos, node) ..() if(istype(loc, /turf/space)) - del(src) + qdel(src) return linked_node = node if(icon_state == "weeds")icon_state = pick("weeds", "weeds1", "weeds2") @@ -190,7 +190,7 @@ if (locate(/obj/movable, U)) U = locate(/obj/movable, U) if(U.density == 1) - del(src) + qdel(src) return Alien plants should do something if theres a lot of poison @@ -200,7 +200,7 @@ Alien plants should do something if theres a lot of poison return */ if (istype(U, /turf/space)) - del(src) + qdel(src) return if(!linked_node || (get_dist(linked_node, src) > linked_node.node_range) ) @@ -220,19 +220,19 @@ Alien plants should do something if theres a lot of poison if(O.density) continue direction_loop - new /obj/effect/alien/weeds(T, linked_node) + PoolOrNew(/obj/effect/alien/weeds, T, linked_node) /obj/effect/alien/weeds/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) if(2.0) if (prob(50)) - del(src) + qdel(src) if(3.0) if (prob(5)) - del(src) + qdel(src) return /obj/effect/alien/weeds/attackby(var/obj/item/weapon/W, var/mob/user) @@ -255,7 +255,7 @@ Alien plants should do something if theres a lot of poison /obj/effect/alien/weeds/proc/healthcheck() if(health <= 0) - del(src) + qdel(src) /obj/effect/alien/weeds/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) @@ -294,7 +294,7 @@ Alien plants should do something if theres a lot of poison /obj/effect/alien/acid/proc/tick() if(!target) - del(src) + qdel(src) ticks += 1 @@ -307,8 +307,8 @@ Alien plants should do something if theres a lot of poison var/turf/simulated/wall/W = target W.dismantle_wall(1) else - del(target) - del(src) + qdel(target) + qdel(src) return switch(target_strength - ticks) @@ -350,7 +350,7 @@ Alien plants should do something if theres a lot of poison spawn(rand(MIN_GROWTH_TIME,MAX_GROWTH_TIME)) Grow() else - del(src) + qdel(src) /obj/effect/alien/egg/attack_hand(user as mob) @@ -361,7 +361,7 @@ Alien plants should do something if theres a lot of poison switch(status) if(BURST) user << "\red You clear the hatched egg." - del(src) + qdel(src) return if(GROWING) user << "\red The child is not developed yet." diff --git a/code/game/objects/effects/bump_teleporter.dm b/code/game/objects/effects/bump_teleporter.dm index c4f693da158..256caa010a5 100644 --- a/code/game/objects/effects/bump_teleporter.dm +++ b/code/game/objects/effects/bump_teleporter.dm @@ -15,7 +15,7 @@ var/list/obj/effect/bump_teleporter/BUMP_TELEPORTERS = list() ..() BUMP_TELEPORTERS += src -/obj/effect/bump_teleporter/Del() +/obj/effect/bump_teleporter/Destroy() BUMP_TELEPORTERS -= src ..() diff --git a/code/game/objects/effects/chemsmoke.dm b/code/game/objects/effects/chemsmoke.dm index e64a84c47c3..6f68d2a14fb 100644 --- a/code/game/objects/effects/chemsmoke.dm +++ b/code/game/objects/effects/chemsmoke.dm @@ -31,7 +31,7 @@ if(seed_name && plant_controller) seed = plant_controller.seeds[seed_name] if(!seed) - del(src) + qdel(src) ..() /datum/effect/effect/system/smoke_spread/chem/New() @@ -204,7 +204,7 @@ if(passed_smoke) smoke = passed_smoke else - smoke = new(location) + smoke = PoolOrNew(/obj/effect/effect/smoke/chem, location) if(chemholder.reagents.reagent_list.len) chemholder.reagents.copy_to(smoke, chemholder.reagents.total_volume / dist, safety = 1) //copy reagents to the smoke so mob/breathe() can handle inhaling the reagents @@ -218,10 +218,10 @@ sleep(150+rand(0,20)) // turning it off before it is deleted results in cleaner smoke.opacity = 0 // lighting and view range updates fadeOut(smoke) - smoke.delete() + qdel(src) /datum/effect/effect/system/smoke_spread/chem/spores/spawnSmoke(var/turf/T, var/icon/I, var/dist = 1) - var/obj/effect/effect/smoke/chem/spores = new(location) + var/obj/effect/effect/smoke/chem/spores = PoolOrNew(/obj/effect/effect/smoke/chem, location) spores.name = "cloud of [seed.seed_name] [seed.seed_noun]" ..(T, I, dist, spores) diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm index c9ea58b1218..2bf3a2a574d 100644 --- a/code/game/objects/effects/decals/Cleanable/fuel.dm +++ b/code/game/objects/effects/decals/Cleanable/fuel.dm @@ -25,7 +25,7 @@ if(!has_spread) Spread() else - del(src) + qdel(src) proc/Spread(exclude=list()) //Allows liquid fuels to sometimes flow into other tiles. diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index c6b3137806d..d826a78b037 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -21,7 +21,7 @@ var/global/list/image/splatter_cache=list() var/list/datum/disease2/disease/virus2 = list() var/amount = 5 -/obj/effect/decal/cleanable/blood/Del() +/obj/effect/decal/cleanable/blood/Destroy() for(var/datum/disease/D in viruses) D.cure(0) ..() @@ -37,7 +37,7 @@ var/global/list/image/splatter_cache=list() if(B != src) if (B.blood_DNA) blood_DNA |= B.blood_DNA.Copy() - del(B) + qdel(B) spawn(DRYING_TIME * (amount+1)) dry() @@ -198,7 +198,7 @@ var/global/list/image/splatter_cache=list() for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++) sleep(3) if (i > 0) - var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc) + var/obj/effect/decal/cleanable/blood/b = PoolOrNew(/obj/effect/decal/cleanable/blood/splatter, src.loc) b.basecolor = src.basecolor b.update_icon() for(var/datum/disease/D in src.viruses) diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index 4c85144d1e5..74e2fa951f5 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -21,14 +21,14 @@ var/turf/simulated/floor/F = get_turf(src) if (istype(F)) F.dirt += 4 - del(src) + qdel(src) /obj/effect/decal/cleanable/greenglow New() ..() spawn(1200)// 2 minutes - del(src) + qdel(src) /obj/effect/decal/cleanable/dirt name = "dirt" @@ -102,7 +102,7 @@ random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4") var/list/viruses = list() - Del() + Destroy() for(var/datum/disease/D in viruses) D.cure(0) ..() diff --git a/code/game/objects/effects/decals/contraband.dm b/code/game/objects/effects/decals/contraband.dm index 9d097f47a03..eac899d5b15 100644 --- a/code/game/objects/effects/decals/contraband.dm +++ b/code/game/objects/effects/decals/contraband.dm @@ -72,7 +72,7 @@ else P.roll_and_drop(P.loc) - del(oldsrc) //delete it now to cut down on sanity checks afterwards. Agouri's code supports rerolling it anyway + qdel(oldsrc) //delete it now to cut down on sanity checks afterwards. Agouri's code supports rerolling it anyway //############################## THE ACTUAL DECALS ########################### @@ -125,7 +125,7 @@ playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1) if(ruined) user << "You remove the remnants of the poster." - del(src) + qdel(src) else user << "You carefully remove the poster from the wall." roll_and_drop(user.loc) @@ -154,7 +154,7 @@ var/obj/item/weapon/contraband/poster/P = new(src, serial_number) P.loc = newloc src.loc = P - del(src) + qdel(src) /datum/poster // Name suffix. Poster - [name] diff --git a/code/game/objects/effects/decals/remains.dm b/code/game/objects/effects/decals/remains.dm index dd786ddc0de..ff3c8d4a618 100644 --- a/code/game/objects/effects/decals/remains.dm +++ b/code/game/objects/effects/decals/remains.dm @@ -30,7 +30,7 @@ var/turf/simulated/floor/F = get_turf(src) if (istype(F)) new /obj/effect/decal/cleanable/ash(F) - del(src) + qdel(src) /obj/effect/decal/remains/robot/attack_hand(mob/user as mob) return diff --git a/code/game/objects/effects/decals/warning_stripes.dm b/code/game/objects/effects/decals/warning_stripes.dm index 89067ada2a4..e22acfad74e 100644 --- a/code/game/objects/effects/decals/warning_stripes.dm +++ b/code/game/objects/effects/decals/warning_stripes.dm @@ -1,9 +1,11 @@ -/obj/effect/decal/warning_stripes - icon = 'icons/effects/warning_stripes.dmi' - layer = 2 - -/obj/effect/decal/warning_stripes/New() - . = ..() - - loc.overlays += src - del src \ No newline at end of file +/obj/effect/decal/warning_stripes + icon = 'icons/effects/warning_stripes.dmi' + layer = 2 + +/obj/effect/decal/warning_stripes/New() + . = ..() + var/turf/T=get_turf(src) + var/image/I=image(icon, icon_state = icon_state, dir = dir) + I.color=color + T.overlays += I + qdel(src) diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index ea9af2f70fe..abb4c93f215 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -20,11 +20,11 @@ would spawn and follow the beaker, even if it is carried or thrown. var/life = 15.0 mouse_opacity = 0 -/obj/effect/proc/delete() - loc = null +/obj/effect/Destroy() if(reagents) reagents.delete() - return + PlaceInPool(src) + return 1 /obj/effect/effect/water/Move(turf/newloc) //var/turf/T = src.loc @@ -32,7 +32,7 @@ would spawn and follow the beaker, even if it is carried or thrown. // T.firelevel = 0 //TODO: FIX if (--src.life < 1) //SN src = null - delete() + qdel(src) if(newloc.density) return 0 .=..() @@ -100,7 +100,7 @@ steam.start() -- spawns the effect spawn(0) if(holder) src.location = get_turf(holder) - var/obj/effect/effect/steam/steam = new /obj/effect/effect/steam(src.location) + var/obj/effect/effect/steam/steam = PoolOrNew(/obj/effect/effect/steam, src.location) var/direction if(src.cardinals) direction = pick(cardinal) @@ -110,7 +110,7 @@ steam.start() -- spawns the effect sleep(5) step(steam,direction) spawn(20) - steam.delete() + qdel(steam) ///////////////////////////////////////////// //SPARK SYSTEM (like steam system) @@ -133,10 +133,10 @@ steam.start() -- spawns the effect if (istype(T, /turf)) T.hotspot_expose(1000,100) spawn (100) - delete() + qdel(src) return -/obj/effect/effect/sparks/Del() +/obj/effect/effect/sparks/Destroy() var/turf/T = src.loc if (istype(T, /turf)) T.hotspot_expose(1000,100) @@ -171,7 +171,7 @@ steam.start() -- spawns the effect spawn(0) if(holder) src.location = get_turf(holder) - var/obj/effect/effect/sparks/sparks = new /obj/effect/effect/sparks(src.location) + var/obj/effect/effect/sparks/sparks = PoolOrNew(/obj/effect/effect/sparks, src.location) src.total_sparks++ var/direction if(src.cardinals) @@ -183,7 +183,7 @@ steam.start() -- spawns the effect step(sparks,direction) spawn(20) if(sparks) - sparks.delete() + qdel(sparks) src.total_sparks-- @@ -212,7 +212,7 @@ steam.start() -- spawns the effect /obj/effect/effect/smoke/New() ..() spawn (time_to_live) - delete() + qdel(src) return /obj/effect/effect/smoke/Crossed(mob/living/carbon/M as mob ) @@ -357,7 +357,7 @@ steam.start() -- spawns the effect spawn(0) if(holder) src.location = get_turf(holder) - var/obj/effect/effect/smoke/smoke = new smoke_type(src.location) + var/obj/effect/effect/smoke/smoke = PoolOrNew(smoke_type, src.location) src.total_smoke++ var/direction = src.direction if(!direction) @@ -369,7 +369,7 @@ steam.start() -- spawns the effect sleep(10) step(smoke,direction) spawn(smoke.time_to_live*0.75+rand(10,30)) - if (smoke) smoke.delete() + if (smoke) qdel(smoke) src.total_smoke-- @@ -415,13 +415,13 @@ steam.start() -- spawns the effect var/turf/T = get_turf(src.holder) if(T != src.oldposition) if(istype(T, /turf/space)) - var/obj/effect/effect/ion_trails/I = new /obj/effect/effect/ion_trails(src.oldposition) + var/obj/effect/effect/ion_trails/I = PoolOrNew(/obj/effect/effect/ion_trails, src.oldposition) src.oldposition = T I.set_dir(src.holder.dir) flick("ion_fade", I) I.icon_state = "blank" spawn( 20 ) - I.delete() + qdel(I) spawn(2) if(src.on) src.processing = 1 @@ -461,12 +461,12 @@ steam.start() -- spawns the effect src.processing = 0 spawn(0) if(src.number < 3) - var/obj/effect/effect/steam/I = new /obj/effect/effect/steam(src.oldposition) + var/obj/effect/effect/steam/I = PoolOrNew(/obj/effect/effect/steam, src.oldposition) src.number++ src.oldposition = get_turf(holder) I.set_dir(src.holder.dir) spawn(10) - I.delete() + qdel(I) src.number-- spawn(2) if(src.on) @@ -515,13 +515,13 @@ steam.start() -- spawns the effect sleep(30) if(metal) - var/obj/structure/foamedmetal/M = new(src.loc) + var/obj/structure/foamedmetal/M = PoolOrNew(/obj/structure/foamedmetal, src.loc) M.metal = metal M.updateicon() flick("[icon_state]-disolve", src) sleep(5) - delete() + qdel(src) return // transfer any reagents to the floor @@ -551,7 +551,7 @@ steam.start() -- spawns the effect if(F) continue - F = new(T, metal) + F = PoolOrNew(/obj/effect/effect/foam, list(T, metal)) F.amount = amount if(!metal) F.create_reagents(10) @@ -566,7 +566,7 @@ steam.start() -- spawns the effect flick("[icon_state]-disolve", src) spawn(5) - delete() + qdel(src) /obj/effect/effect/foam/Crossed(var/atom/movable/AM) @@ -611,7 +611,7 @@ steam.start() -- spawns the effect F.amount += amount return - F = new(src.location, metal) + F = PoolOrNew(/obj/effect/effect/foam, list(src.location, metal)) F.amount = amount if(!metal) // don't carry other chemicals if a metal foam @@ -642,7 +642,7 @@ steam.start() -- spawns the effect - Del() + Destroy() density = 0 update_nearby_tiles(1) @@ -656,14 +656,14 @@ steam.start() -- spawns the effect ex_act(severity) - del(src) + qdel(src) blob_act() - del(src) + qdel(src) bullet_act() if(metal==1 || prob(50)) - del(src) + qdel(src) attack_hand(var/mob/user) if ((HULK in user.mutations) || (prob(75 - metal*25))) @@ -672,7 +672,7 @@ steam.start() -- spawns the effect if ((O.client && !( O.blinded ))) O << "\red [user] smashes through the foamed metal." - del(src) + qdel(src) else user << "\blue You hit the metal foam but bounce off it." return @@ -686,8 +686,8 @@ steam.start() -- spawns the effect for(var/mob/O in viewers(src)) if (O.client) O << "\red [G.assailant] smashes [G.affecting] through the foamed metal wall." - del(I) - del(src) + qdel(I) + qdel(src) return if(prob(I.force*20 - metal*25)) @@ -695,7 +695,7 @@ steam.start() -- spawns the effect for(var/mob/O in oviewers(user)) if ((O.client && !( O.blinded ))) O << "\red [user] smashes through the foamed metal." - del(src) + qdel(src) else user << "\blue You hit the metal foam to no effect." @@ -722,7 +722,7 @@ steam.start() -- spawns the effect start() if (amount <= 2) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = PoolOrNew(/datum/effect/effect/system/spark_spread) s.set_up(2, 1, location) s.start() diff --git a/code/game/objects/effects/gibs.dm b/code/game/objects/effects/gibs.dm index 808e46c2a38..a7f4c0482fd 100644 --- a/code/game/objects/effects/gibs.dm +++ b/code/game/objects/effects/gibs.dm @@ -25,10 +25,10 @@ var/obj/effect/decal/cleanable/blood/gibs/gib = null for(var/datum/disease/D in viruses) if(D.spread_type == SPECIAL) - del(D) + qdel(D) if(sparks) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = PoolOrNew(/datum/effect/effect/system/spark_spread) s.set_up(2, 1, get_turf(location)) // Not sure if it's safe to pass an arbitrary object to set_up, todo s.start() @@ -63,4 +63,4 @@ if(directions.len) gib.streak(directions) - del(src) \ No newline at end of file + qdel(src) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index da25e6f2cc9..f8b06554bcc 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -13,84 +13,75 @@ switch(name) //some of these are probably obsolete if("shuttle") shuttle_z = z - del(src) - + qdel(src) + return if("airtunnel_stop") airtunnel_stop = x - if("airtunnel_start") airtunnel_start = x - if("airtunnel_bottom") airtunnel_bottom = y - if("monkey") monkeystart += loc - del(src) - + qdel(src) + return if("start") newplayer_start += loc - del(src) - + qdel(src) if("JoinLate") latejoin += loc - del(src) - + qdel(src) if("JoinLateGateway") latejoin_gateway += loc - del(src) - + qdel(src) + return if("JoinLateCryo") latejoin_cryo += loc - del(src) - + qdel(src) + return if("JoinLateCyborg") latejoin_cyborg += loc - del(src) - + qdel(src) + return if("prisonwarp") prisonwarp += loc - del(src) - + qdel(src) + return if("Holding Facility") holdingfacility += loc - if("tdome1") tdome1 += loc - if("tdome2") tdome2 += loc - if("tdomeadmin") tdomeadmin += loc - if("tdomeobserve") tdomeobserve += loc - if("prisonsecuritywarp") prisonsecuritywarp += loc - del(src) - + qdel(src) + return if("blobstart") blobstart += loc - del(src) - + qdel(src) + return if("xeno_spawn") xeno_spawn += loc - del(src) - + qdel(src) + return if("endgame_exit") endgame_safespawns += loc - del(src) - + qdel(src) + return if("bluespacerift") endgame_exits += loc - del(src) + qdel(src) + return landmarks_list += src return 1 -/obj/effect/landmark/Del() +/obj/effect/landmark/Destroy() landmarks_list -= src ..() @@ -121,51 +112,51 @@ var/list/options = typesof(/obj/effect/landmark/costume) var/PICK= options[rand(1,options.len)] new PICK(src.loc) - del(src) + qdel(src) //SUBCLASSES. Spawn a bunch of items and disappear likewise /obj/effect/landmark/costume/chicken/New() new /obj/item/clothing/suit/chickensuit(src.loc) new /obj/item/clothing/head/chicken(src.loc) new /obj/item/weapon/reagent_containers/food/snacks/egg(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/gladiator/New() new /obj/item/clothing/under/gladiator(src.loc) new /obj/item/clothing/head/helmet/gladiator(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/madscientist/New() new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc) new /obj/item/clothing/head/flatcap(src.loc) new /obj/item/clothing/suit/storage/toggle/labcoat/mad(src.loc) new /obj/item/clothing/glasses/gglasses(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/elpresidente/New() new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc) new /obj/item/clothing/head/flatcap(src.loc) new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(src.loc) new /obj/item/clothing/shoes/jackboots(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/nyangirl/New() new /obj/item/clothing/under/schoolgirl(src.loc) new /obj/item/clothing/head/kitty(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/maid/New() new /obj/item/clothing/under/blackskirt(src.loc) var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears ) new CHOICE(src.loc) new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/butler/New() new /obj/item/clothing/suit/wcoat(src.loc) new /obj/item/clothing/under/suit_jacket(src.loc) new /obj/item/clothing/head/that(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/scratch/New() new /obj/item/clothing/gloves/white(src.loc) @@ -173,12 +164,12 @@ new /obj/item/clothing/under/scratch(src.loc) if (prob(30)) new /obj/item/clothing/head/cueball(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/highlander/New() new /obj/item/clothing/under/kilt(src.loc) new /obj/item/clothing/head/beret(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/prig/New() new /obj/item/clothing/suit/wcoat(src.loc) @@ -189,24 +180,24 @@ new /obj/item/weapon/cane(src.loc) new /obj/item/clothing/under/sl_suit(src.loc) new /obj/item/clothing/mask/fakemoustache(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/plaguedoctor/New() new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc) new /obj/item/clothing/head/plaguedoctorhat(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/nightowl/New() new /obj/item/clothing/under/owl(src.loc) new /obj/item/clothing/mask/gas/owl_mask(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/waiter/New() new /obj/item/clothing/under/waiter(src.loc) var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears) new CHOICE(src.loc) new /obj/item/clothing/suit/apron(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/pirate/New() new /obj/item/clothing/under/pirate(src.loc) @@ -214,46 +205,46 @@ var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana ) new CHOICE(src.loc) new /obj/item/clothing/glasses/eyepatch(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/commie/New() new /obj/item/clothing/under/soviet(src.loc) new /obj/item/clothing/head/ushanka(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/imperium_monk/New() new /obj/item/clothing/suit/imperium_monk(src.loc) if (prob(25)) new /obj/item/clothing/mask/gas/cyborg(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/holiday_priest/New() new /obj/item/clothing/suit/holidaypriest(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/marisawizard/fake/New() new /obj/item/clothing/head/wizard/marisa/fake(src.loc) new/obj/item/clothing/suit/wizrobe/marisa/fake(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/cutewitch/New() new /obj/item/clothing/under/sundress(src.loc) new /obj/item/clothing/head/witchwig(src.loc) new /obj/item/weapon/staff/broom(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/fakewizard/New() new /obj/item/clothing/suit/wizrobe/fake(src.loc) new /obj/item/clothing/head/wizard/fake(src.loc) new /obj/item/weapon/staff/(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/sexyclown/New() new /obj/item/clothing/mask/gas/sexyclown(src.loc) new /obj/item/clothing/under/sexyclown(src.loc) - del(src) + qdel(src) /obj/effect/landmark/costume/sexymime/New() new /obj/item/clothing/mask/gas/sexymime(src.loc) new /obj/item/clothing/under/sexymime(src.loc) - del(src) \ No newline at end of file + qdel(src) \ No newline at end of file diff --git a/code/game/objects/effects/manifest.dm b/code/game/objects/effects/manifest.dm index bee6174f123..ec45c7a0894 100644 --- a/code/game/objects/effects/manifest.dm +++ b/code/game/objects/effects/manifest.dm @@ -17,5 +17,5 @@ P.info = dat P.name = "paper- 'Crew Manifest'" //SN src = null - del(src) + qdel(src) return \ No newline at end of file diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index e8bf9348f6a..27e6d7c74a2 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -26,24 +26,24 @@ call(src,triggerproc)(M) /obj/effect/mine/proc/triggerrad(obj) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = PoolOrNew(/datum/effect/effect/system/spark_spread) s.set_up(3, 1, src) s.start() obj:radiation += 50 randmutb(obj) domutcheck(obj,null) spawn(0) - del(src) + qdel(src) /obj/effect/mine/proc/triggerstun(obj) if(ismob(obj)) var/mob/M = obj M.Stun(30) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = PoolOrNew(/datum/effect/effect/system/spark_spread) s.set_up(3, 1, src) s.start() spawn(0) - del(src) + qdel(src) /obj/effect/mine/proc/triggern2o(obj) //example: n2o triggerproc @@ -54,7 +54,7 @@ target.assume_gas("sleeping_agent", 30) spawn(0) - del(src) + qdel(src) /obj/effect/mine/proc/triggerphoron(obj) for (var/turf/simulated/floor/target in range(1,src)) @@ -64,20 +64,20 @@ target.hotspot_expose(1000, CELL_VOLUME) spawn(0) - del(src) + qdel(src) /obj/effect/mine/proc/triggerkick(obj) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = PoolOrNew(/datum/effect/effect/system/spark_spread) s.set_up(3, 1, src) s.start() - del(obj:client) + qdel(obj:client) spawn(0) - del(src) + qdel(src) /obj/effect/mine/proc/explode(obj) explosion(loc, 0, 1, 2, 3) spawn(0) - del(src) + qdel(src) /obj/effect/mine/dnascramble name = "Radiation Mine" diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index 6dd26f7774c..b5ba9584ea3 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -14,7 +14,7 @@ var/tmp/atom/BeamSource New() ..() - spawn(10) del src + spawn(10) qdel(src) /obj/effect/overlay/palmtree_r name = "Palm tree" diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 6a9f16e99ec..702926d6ffb 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -30,7 +30,7 @@ /obj/effect/portal/New() spawn(300) - del(src) + qdel(src) return return @@ -42,7 +42,7 @@ if (icon_state == "portal1") return if (!( target )) - del(src) + qdel(src) return if (istype(M, /atom/movable)) if(prob(failchance)) //oh dear a problem, put em in deep space diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index 3f694a8b49a..547931a5118 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -102,7 +102,7 @@ p4.air_contents.temperature = btemp + T0C p2.secured = 1 - del(src) + qdel(src) */ /obj/effect/spawner/newbomb @@ -168,4 +168,4 @@ V.update_icon() - del(src) + qdel(src) diff --git a/code/game/objects/effects/spawners/vaultspawner.dm b/code/game/objects/effects/spawners/vaultspawner.dm index e91105f5df9..c4b9203cefc 100644 --- a/code/game/objects/effects/spawners/vaultspawner.dm +++ b/code/game/objects/effects/spawners/vaultspawner.dm @@ -23,4 +23,4 @@ else new /turf/simulated/floor/vault(locate(i,j,z),type) - del(src) \ No newline at end of file + qdel(src) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 682347669a7..14c81a10933 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -11,13 +11,13 @@ /obj/effect/spider/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) if(2.0) if (prob(50)) - del(src) + qdel(src) if(3.0) if (prob(5)) - del(src) + qdel(src) return /obj/effect/spider/attackby(var/obj/item/weapon/W, var/mob/user) @@ -45,7 +45,7 @@ /obj/effect/spider/proc/healthcheck() if(health <= 0) - del(src) + qdel(src) /obj/effect/spider/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) @@ -86,7 +86,7 @@ var/num = rand(6,24) for(var/i=0, i[src] dies!") - new /obj/effect/decal/cleanable/spiderling_remains(src.loc) - del(src) + PoolOrNew(/obj/effect/decal/cleanable/spiderling_remains, src.loc) + qdel(src) /obj/effect/spider/spiderling/healthcheck() if(health <= 0) @@ -188,7 +188,7 @@ if(amount_grown >= 100) var/spawn_type = pick(typesof(/mob/living/simple_animal/hostile/giant_spider)) new spawn_type(src.loc) - del(src) + qdel(src) /obj/effect/decal/cleanable/spiderling_remains name = "spiderling remains" @@ -205,7 +205,7 @@ New() icon_state = pick("cocoon1","cocoon2","cocoon3") -/obj/effect/spider/cocoon/Del() +/obj/effect/spider/cocoon/Destroy() src.visible_message("\red \the [src] splits open.") for(var/atom/movable/A in contents) A.loc = src.loc diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm index 8bff463e445..05cdbfee1da 100644 --- a/code/game/objects/empulse.dm +++ b/code/game/objects/empulse.dm @@ -9,13 +9,13 @@ proc/empulse(turf/epicenter, heavy_range, light_range, log=0) log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") if(heavy_range > 1) - var/obj/effect/overlay/pulse = new/obj/effect/overlay ( epicenter ) + var/obj/effect/overlay/pulse = PoolOrNew(/obj/effect/overlay, epicenter) pulse.icon = 'icons/effects/effects.dmi' pulse.icon_state = "emppulse" pulse.name = "emp pulse" pulse.anchored = 1 spawn(20) - pulse.delete() + qdel(pulse) if(heavy_range > light_range) light_range = heavy_range diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 576e7f26179..30494728a51 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -81,15 +81,15 @@ /obj/item/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) - del(src) + qdel(src) return if(3.0) if (prob(5)) - del(src) + qdel(src) return else return diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm index a11b326e455..208a2111da1 100644 --- a/code/game/objects/items/apc_frame.dm +++ b/code/game/objects/items/apc_frame.dm @@ -11,7 +11,7 @@ ..() if (istype(W, /obj/item/weapon/wrench)) new /obj/item/stack/sheet/metal( get_turf(src.loc), 2 ) - del(src) + qdel(src) /obj/item/apc_frame/proc/try_build(turf/on_wall) if (get_dist(on_wall,usr)>1) @@ -38,6 +38,6 @@ var/obj/item/stack/cable_coil/C = new /obj/item/stack/cable_coil(loc) C.amount = 10 usr << "You cut the cables and disassemble the unused power terminal." - del(T) + qdel(T) new /obj/machinery/power/apc(loc, ndir, 1) - del(src) + qdel(src) diff --git a/code/game/objects/items/ashtray.dm b/code/game/objects/items/ashtray.dm index 0d386623ecd..24e9adb5ad9 100644 --- a/code/game/objects/items/ashtray.dm +++ b/code/game/objects/items/ashtray.dm @@ -31,7 +31,7 @@ processing_objects.Remove(cig) var/obj/item/butt = new cig.type_butt(src) cig.transfer_fingerprints_to(butt) - del(cig) + qdel(cig) W = butt else if (cig.lit == 0) user << "You place [cig] in [src] without even smoking it. Why would you do that?" diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 8548e4783e1..8953872d938 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -10,7 +10,7 @@ attack_self(mob/user) var/obj/structure/closet/body_bag/R = new /obj/structure/closet/body_bag(user.loc) R.add_fingerprint(user) - del(src) + qdel(src) /obj/item/weapon/storage/box/bodybags @@ -83,7 +83,7 @@ visible_message("[usr] folds up the [src.name]") new item_path(get_turf(src)) spawn(0) - del(src) + qdel(src) return /obj/structure/closet/body_bag/update_icon() @@ -105,7 +105,7 @@ attack_self(mob/user) var/obj/structure/closet/body_bag/cryobag/R = new /obj/structure/closet/body_bag/cryobag(user.loc) R.add_fingerprint(user) - del(src) + qdel(src) @@ -126,7 +126,7 @@ O.icon = src.icon O.icon_state = "bodybag_used" O.desc = "Pretty useless now.." - del(src) + qdel(src) /obj/structure/closet/body_bag/cryobag/MouseDrop(over_object, src_location, over_location) if((over_object == usr && (in_range(src, usr) || usr.contents.Find(src)))) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 8e1a382a869..1b9ad0991ac 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -85,7 +85,7 @@ uses-- if(!uses) user << "\red You used up your crayon!" - del(src) + qdel(src) return /obj/item/toy/crayon/attack(mob/M as mob, mob/user as mob) @@ -97,6 +97,6 @@ uses -= 5 if(uses <= 0) user << "\red You ate your crayon!" - del(src) + qdel(src) else ..() diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 59c57369431..173da3568ac 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -947,7 +947,7 @@ var/global/list/obj/item/device/pda/PDAs = list() j = prob(10) if(j) //This kills the PDA - P.Del() + qdel(P) if(message) message += "It melts in a puddle of plastic." else @@ -1225,7 +1225,7 @@ var/global/list/obj/item/device/pda/PDAs = list() if ( !(C:blood_DNA) ) user << "\blue No blood found on [C]" if(C:blood_DNA) - del(C:blood_DNA) + qdel(C:blood_DNA) else user << "\blue Blood found on [C]. Analysing..." spawn(15) @@ -1355,7 +1355,7 @@ var/global/list/obj/item/device/pda/PDAs = list() explosion(T, 0, 0, 1, rand(1,2)) return -/obj/item/device/pda/Del() +/obj/item/device/pda/Destroy() PDAs -= src if (src.id && prob(90)) //IDs are kept in 90% of the cases src.id.loc = get_turf(src.loc) diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index 1982fbb4f49..f7ef8ad5c21 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -41,25 +41,25 @@ if(active_dummy) eject_all() playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6) - del(active_dummy) + qdel(active_dummy) active_dummy = null usr << "\blue You deactivate the [src]." - var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src)) + var/obj/effect/overlay/T = PoolOrNew(/obj/effect/overlay, get_turf(src)) T.icon = 'icons/effects/effects.dmi' flick("emppulse",T) - spawn(8) T.delete() + spawn(8) qdel(T) else playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6) var/obj/O = new saved_item(src) if(!O) return - var/obj/effect/dummy/chameleon/C = new/obj/effect/dummy/chameleon(usr.loc) + var/obj/effect/dummy/chameleon/C = PoolOrNew(/obj/effect/dummy/chameleon, usr.loc) C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, src) - del(O) + qdel(O) usr << "\blue You activate the [src]." var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src)) T.icon = 'icons/effects/effects.dmi' flick("emppulse",T) - spawn(8) T.delete() + spawn(8) qdel(T) /obj/item/device/chameleon/proc/disrupt(var/delete_dummy = 1) if(active_dummy) @@ -69,7 +69,7 @@ spark_system.start() eject_all() if(delete_dummy) - del(active_dummy) + qdel(active_dummy) active_dummy = null can_use = 0 spawn(50) can_use = 1 @@ -140,6 +140,6 @@ step(src, direction) return -/obj/effect/dummy/chameleon/Del() +/obj/effect/dummy/chameleon/Destroy() master.disrupt(0) ..() diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 7013b304192..0c1106f12a9 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -103,7 +103,7 @@ animation.master = user flick("blspell", animation) sleep(5) - del(animation) + qdel(animation) if(!flashfail) flick("flash2", src) @@ -154,7 +154,7 @@ animation.master = user flick("blspell", animation) sleep(5) - del(animation) + qdel(animation) for(var/mob/living/carbon/M in oviewers(3, null)) if(prob(50)) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 713706475c0..020b1a83f05 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -90,7 +90,7 @@ AddUses(1) user << "You insert the [L.name] into the [src.name]. You have [uses] lights remaining." user.drop_item() - del(L) + qdel(L) return else user << "You need a working light." @@ -156,7 +156,7 @@ target.brightness = L2.brightness target.on = target.has_power() target.update() - del(L2) + qdel(L2) if(target.on && target.rigged) target.explode() diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm index 8788eaf0f2a..4207546b031 100644 --- a/code/game/objects/items/devices/modkit.dm +++ b/code/game/objects/items/devices/modkit.dm @@ -24,7 +24,7 @@ if(!parts) user << "This kit has no parts for this modification left." user.drop_from_inventory(src) - del(src) + qdel(src) return var/allowed = 0 @@ -60,7 +60,7 @@ if(!parts) user.drop_from_inventory(src) - del(src) + qdel(src) /obj/item/device/modkit/examine(mob/user) ..(user) diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 2cc9d55b6a2..a2a714ee9b4 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -21,7 +21,7 @@ ..() overlays += "pai-off" -/obj/item/device/paicard/Del() +/obj/item/device/paicard/Destroy() //Will stop people throwing friend pAIs into the singularity so they can respawn if(!isnull(pai)) pai.death(0) @@ -311,7 +311,7 @@ if(pai) pai.ex_act(severity) else - del(src) + qdel(src) /obj/item/device/paicard/see_emote(mob/living/M, text) if(pai && pai.client) diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index 8b2469d2dd4..afca3007ac0 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -118,4 +118,4 @@ if(power_drained >= max_power) processing_objects.Remove(src) explosion(src.loc, 3,6,9,12) - del(src) + qdel(src) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index ef332fa336b..32807250d77 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -30,7 +30,7 @@ /obj/item/device/radio/beacon/bacon //Probably a better way of doing this, I'm lazy. proc/digest_delay() spawn(600) - del(src) + qdel(src) // SINGULO BEACON SPAWNER @@ -45,5 +45,5 @@ user << "\blue Locked In" new /obj/machinery/power/singularity_beacon/syndicate( user.loc ) playsound(src, 'sound/effects/pop.ogg', 100, 1, 1) - del(src) + qdel(src) return diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index bfc9e8f69b4..7378c85f168 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -26,6 +26,11 @@ keyslot2 = new ks2type(src) recalculateChannels(1) +/obj/item/device/radio/headset/Destroy() + qdel(keyslot1) + qdel(keyslot2) + ..() + /obj/item/device/radio/headset/examine(mob/user) if(!(..(user, 1) && radio_desc)) return diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 567dc49bf4f..0164806e2ca 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -15,7 +15,7 @@ ..() processing_objects += src -/obj/item/device/radio/intercom/Del() +/obj/item/device/radio/intercom/Destroy() processing_objects -= src ..() diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index dab778dcb90..39cc0304329 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -172,7 +172,7 @@ 0, "*garbled automated announcement*", src, message, from, "Automated Announcement", from, "synthesized voice", 4, 0, list(0), connection.frequency, "states") - del(A) + qdel(A) return // Interprets the message mode when talking into a radio, possibly returning a connection datum diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 1e9405cbeb5..7e450c8f964 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -48,7 +48,7 @@ if(T) T.hotspot_expose(700,125) explosion(T, -1, -1, 0, 4) - del(src) + qdel(src) return /obj/item/device/taperecorder/verb/record() diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm index 57b569c599a..96874bd946b 100644 --- a/code/game/objects/items/devices/uplinks.dm +++ b/code/game/objects/items/devices/uplinks.dm @@ -64,7 +64,7 @@ datum/nano_item_lists world_uplinks += src -/obj/item/device/uplink/Del() +/obj/item/device/uplink/Destroy() world_uplinks -= src ..() @@ -180,7 +180,7 @@ datum/nano_item_lists /obj/item/device/uplink/hidden/New() spawn(2) if(!istype(src.loc, /obj/item)) - del(src) + qdel(src) ..() // Toggles the uplink on and off. Normally this will bypass the item's normal functions and go to the uplink menu, if activated. diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm index e341a8747f0..a37352c7d36 100644 --- a/code/game/objects/items/latexballoon.dm +++ b/code/game/objects/items/latexballoon.dm @@ -30,10 +30,10 @@ burst() switch(severity) if (1) - del(src) + qdel(src) if (2) if (prob(50)) - del(src) + qdel(src) /obj/item/latexballon/bullet_act() burst() diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index da508a8a31f..6e2f9dd64a6 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -134,7 +134,7 @@ if (user.get_inactive_hand()==src) user.remove_from_mob(src) user.put_in_inactive_hand(B) - del(src) + qdel(src) else user << "You need one sheet of metal to arm the robot frame." if(istype(W, /obj/item/robot_parts/l_leg)) @@ -250,7 +250,7 @@ callHook("borgify", list(O)) O.Namepick() - del(src) + qdel(src) else user << "\blue The MMI must go in after everything else!" @@ -303,8 +303,8 @@ user << "\blue You install some manipulators and modify the head, creating a functional spider-bot!" new /mob/living/simple_animal/spiderbot(get_turf(loc)) user.drop_item() - del(W) - del(src) + qdel(W) + qdel(src) return return diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 43b852e2497..ba699e7bdb9 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -35,7 +35,7 @@ //world << R.icon_state icon = 'icons/mob/custom-synthetic.dmi' R.icon_state = "[R.ckey]-Standard" - del(R.module) + qdel(R.module) R.notify_ai(ROBOT_NOTIFICATION_MODULE_RESET, R.module.name) R.module = null R.camera.remove_networks(list("Engineering","Medical","MINE")) diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index 1d92cb9a818..28b8a18fa42 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -97,7 +97,7 @@ for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) O << "\red [src] breaks into tiny pieces and collapses!" - del(src) + qdel(src) // Create a temporary object to represent the damage var/obj/bmark = new diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm index de96eda5f4b..f43d7ae320f 100644 --- a/code/game/objects/items/stacks/sheets/light.dm +++ b/code/game/objects/items/stacks/sheets/light.dm @@ -20,7 +20,7 @@ new/obj/item/stack/sheet/glass(user.loc) if(amount <= 0) user.drop_from_inventory(src) - del(src) + qdel(src) if(istype(O,/obj/item/stack/sheet/metal)) var/obj/item/stack/sheet/metal/M = O diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index a4e7d94fad9..7aa7a034617 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -29,7 +29,7 @@ src.amount = amount return -/obj/item/stack/Del() +/obj/item/stack/Destroy() if(uses_charge) return if (src && usr && usr.machine == src) @@ -139,7 +139,7 @@ if (istype(O, /obj/item/weapon/storage)) //BubbleWrap - so newly formed boxes are empty for (var/obj/item/I in O) - del(I) + qdel(I) /obj/item/stack/Topic(href, href_list) ..() @@ -150,7 +150,7 @@ list_recipes(usr, text2num(href_list["sublist"])) if (href_list["make"]) - if (src.get_amount() < 1) del(src) //Never should happen + if (src.get_amount() < 1) qdel(src) //Never should happen var/list/recipes_list = recipes if (href_list["sublist"]) @@ -187,7 +187,7 @@ if (amount <= 0) //check again in case someone transferred stuff to us if(usr) usr.remove_from_mob(src) - del(src) + qdel(src) return 1 else if(get_amount() < used) diff --git a/code/game/objects/items/stacks/tiles/light.dm b/code/game/objects/items/stacks/tiles/light.dm index 3a14ff1e56e..dc57abc513a 100644 --- a/code/game/objects/items/stacks/tiles/light.dm +++ b/code/game/objects/items/stacks/tiles/light.dm @@ -33,4 +33,4 @@ new/obj/item/stack/light_w(user.loc) if(amount <= 0) user.drop_from_inventory(src) - del(src) + qdel(src) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index a39acac9c16..4829cf5596d 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -63,7 +63,7 @@ if(O.reagents.has_reagent("pacid", 1)) user << "The acid chews through the balloon!" O.reagents.reaction(user) - del(src) + qdel(src) else src.desc = "A translucent balloon with some form of liquid sloshing around in it." user << "\blue You fill the balloon with the contents of [O]." @@ -80,7 +80,7 @@ src.icon_state = "burst" spawn(5) if(src) - del(src) + qdel(src) return /obj/item/toy/balloon/update_icon() @@ -233,7 +233,7 @@ if(istype(I, /obj/item/toy/ammo/crossbow)) if(bullets <= 4) user.drop_item() - del(I) + qdel(I) bullets++ user << "\blue You load the foam dart into the crossbow." else @@ -265,21 +265,21 @@ for(var/mob/O in viewers(world.view, D)) O.show_message(text("\red [] was hit by the foam dart!", M), 1) new /obj/item/toy/ammo/crossbow(M.loc) - del(D) + qdel(D) return for(var/atom/A in D.loc) if(A == user) continue if(A.density) new /obj/item/toy/ammo/crossbow(A.loc) - del(D) + qdel(D) sleep(1) spawn(10) if(D) new /obj/item/toy/ammo/crossbow(D.loc) - del(D) + qdel(D) return else if (bullets == 0) @@ -418,7 +418,7 @@ new /obj/effect/decal/cleanable/ash(src.loc) src.visible_message("\red The [src.name] explodes!","\red You hear a snap!") playsound(src, 'sound/effects/snap.ogg', 50, 1) - del(src) + qdel(src) /obj/item/toy/snappop/Crossed(H as mob|obj) if((ishuman(H))) //i guess carp and shit shouldn't set them off @@ -432,7 +432,7 @@ new /obj/effect/decal/cleanable/ash(src.loc) src.visible_message("\red The [src.name] explodes!","\red You hear a snap!") playsound(src, 'sound/effects/snap.ogg', 50, 1) - del(src) + qdel(src) /* * Water flower @@ -494,7 +494,7 @@ if(ismob(T) && T:client) T:client << "\red [user] has sprayed you with water!" sleep(4) - del(D) + qdel(D) return diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 37dcbf9f4e4..92ce56be523 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -47,7 +47,7 @@ user << "The RCD can't hold any more matter-units." return user.drop_from_inventory(W) - del(W) + qdel(W) stored_matter += 10 playsound(src.loc, 'sound/machines/click.ogg', 50, 1) user << "The RCD now holds [stored_matter]/30 matter-units." @@ -138,7 +138,7 @@ else if(build_other) new build_other(T) else - del(T) + qdel(T) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) return 1 diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index d3dc598cc3d..b96d53c2a87 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -28,7 +28,7 @@ RSF user << "The RSF can't hold any more matter." return - del(W) + qdel(W) stored_matter += 10 playsound(src.loc, 'sound/machines/click.ogg', 10, 1) diff --git a/code/game/objects/items/weapons/autopsy.dm b/code/game/objects/items/weapons/autopsy.dm index dc6787a73b0..bf8c9d583cf 100644 --- a/code/game/objects/items/weapons/autopsy.dm +++ b/code/game/objects/items/weapons/autopsy.dm @@ -68,7 +68,7 @@ else D.organ_names += ", [O.name]" - del D.organs_scanned[O.name] + qdel(D.organs_scanned[O.name]) D.organs_scanned[O.name] = W.copy() for(var/V in O.trace_chemicals) diff --git a/code/game/objects/items/weapons/candle.dm b/code/game/objects/items/weapons/candle.dm index 6fc63420de1..2d8bb8a36a1 100644 --- a/code/game/objects/items/weapons/candle.dm +++ b/code/game/objects/items/weapons/candle.dm @@ -56,7 +56,7 @@ new/obj/item/trash/candle(src.loc) if(istype(src.loc, /mob)) src.dropped() - del(src) + qdel(src) update_icon() if(istype(loc, /turf)) //start a fire if possible var/turf/T = loc diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 393f10363a6..47976ca5e4c 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -118,7 +118,7 @@ user.drop_item() var/obj/item/weapon/card/emag_broken/junk = new(user.loc) junk.add_fingerprint(user) - del(src) + qdel(src) return ..() @@ -170,7 +170,7 @@ src.desc = W.desc src.icon = W.icon src.icon_state = W.icon_state - del(W) + qdel(W) return /obj/item/weapon/card/id/verb/read() diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index fbba55b0400..15b43d63e0d 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -93,9 +93,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM flags |= NOREACT // so it doesn't react until you light it create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15 -/obj/item/clothing/mask/smokable/Del() +/obj/item/clothing/mask/smokable/Destroy() ..() - del(reagents) + qdel(reagents) /obj/item/clothing/mask/smokable/process() var/turf/location = get_turf(src) @@ -127,13 +127,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM var/datum/effect/effect/system/reagents_explosion/e = new() e.set_up(round(reagents.get_reagent_amount("phoron") / 2.5, 1), get_turf(src), 0, 0) e.start() - del(src) + qdel(src) return if(reagents.get_reagent_amount("fuel")) // the fuel explodes, too, but much less violently var/datum/effect/effect/system/reagents_explosion/e = new() e.set_up(round(reagents.get_reagent_amount("fuel") / 5, 1), get_turf(src), 0, 0) e.start() - del(src) + qdel(src) return flags &= ~NOREACT // allowing reagents to react after being lit reagents.handle_reactions() @@ -162,7 +162,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM M.update_inv_l_hand(0) M.update_inv_r_hand(1) processing_objects.Remove(src) - del(src) + qdel(src) else new /obj/effect/decal/cleanable/ash(T) if(ismob(loc)) @@ -377,7 +377,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(G.reagents) G.reagents.trans_to(src, G.reagents.total_volume) name = "[G.name]-packed [initial(name)]" - del(G) + qdel(G) else if(istype(W, /obj/item/weapon/flame/lighter)) var/obj/item/weapon/flame/lighter/L = W diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index 656197fee07..1668b08208c 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -28,7 +28,7 @@ user << "You need to take that [target.name] off before cleaning it." else if(istype(target,/obj/effect/decal/cleanable)) user << "You scrub \the [target.name] out." - del(target) + qdel(target) else user << "You clean \the [target.name]." target.clean_blood() diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index dfd221650b7..8ccc1f10066 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -92,7 +92,7 @@ spawn(0)//this prevents the collapse of space-time continuum if (user) user.drop_from_inventory(src) - del(src) + qdel(src) return uses /obj/item/weapon/dnainjector/attack(mob/M as mob, mob/user as mob) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 030437b4466..36c97d3df2e 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -80,7 +80,7 @@ target.ex_act(1) if(target) target.overlays -= image_overlay - del(src) // qdel + qdel(src) /obj/item/weapon/plastique/attack(mob/M as mob, mob/user as mob, def_zone) return diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 4408e998ce6..1348fc7605e 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -115,7 +115,7 @@ for(var/a=0, a < spray_particles, a++) spawn(0) - var/obj/effect/effect/water/W = new /obj/effect/effect/water( get_turf(src) ) + var/obj/effect/effect/water/W = PoolOrNew(/obj/effect/effect/water, get_turf(src)) var/turf/my_target = pick(the_targets) var/datum/reagents/R = new/datum/reagents(spray_amount) if(!W) return @@ -139,7 +139,7 @@ M.ExtinguishMob() if(W.loc == my_target) break sleep(2) - W.delete() + qdel(W) if((istype(usr.loc, /turf/space)) || (usr.lastarea.has_gravity == 0)) user.inertia_dir = get_dir(target, user) diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 50508594cfa..d90709d9c3f 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -22,13 +22,13 @@ var/obj/item/weapon/tank/phoron/ptank = null -/obj/item/weapon/flamethrower/Del() +/obj/item/weapon/flamethrower/Destroy() if(weldtool) - del(weldtool) + qdel(weldtool) if(igniter) - del(igniter) + qdel(igniter) if(ptank) - del(ptank) + qdel(ptank) ..() return @@ -83,7 +83,7 @@ ptank.loc = T ptank = null new /obj/item/stack/rods(T) - del(src) + qdel(src) return if(isscrewdriver(W) && igniter && !lit) diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index dd3d0886fb1..023eb3bfd31 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -31,11 +31,11 @@ src.gift.add_fingerprint(user) else user << "\blue The gift was empty!" - del(src) + qdel(src) return /obj/item/weapon/a_gift/ex_act() - del(src) + qdel(src) return /obj/effect/spresent/relaymove(mob/user as mob) @@ -58,7 +58,7 @@ M.client.eye = M.client.mob M.client.perspective = MOB_PERSPECTIVE - del(src) + qdel(src) /obj/item/weapon/a_gift/attack_self(mob/M as mob) var/gift_type = pick(/obj/item/weapon/sord, @@ -112,7 +112,7 @@ M.remove_from_mob(src) M.put_in_hands(I) I.add_fingerprint(M) - del(src) + qdel(src) return /* @@ -152,7 +152,7 @@ src.add_fingerprint(user) if (src.amount <= 0) new /obj/item/weapon/c_tube( src.loc ) - del(src) + qdel(src) return else user << "\blue You need scissors!" diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index bb440d1215a..a58ebe4cbe9 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -167,7 +167,7 @@ invisibility = INVISIBILITY_MAXIMUM //Why am i doing this? spawn(50) //To make sure all reagents can work - del(src) //correctly before deleting the grenade. + qdel(src) //correctly before deleting the grenade. /obj/item/weapon/grenade/chem_grenade/large diff --git a/code/game/objects/items/weapons/grenades/emgrenade.dm b/code/game/objects/items/weapons/grenades/emgrenade.dm index 3446fa46c3b..c354aa40396 100644 --- a/code/game/objects/items/weapons/grenades/emgrenade.dm +++ b/code/game/objects/items/weapons/grenades/emgrenade.dm @@ -7,5 +7,5 @@ prime() ..() if(empulse(src, 4, 10)) - del(src) + qdel(src) return diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 03d8ccdffcb..4c3c73c485c 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -23,7 +23,7 @@ new/obj/effect/effect/sparks(src.loc) new/obj/effect/effect/smoke/illumination(src.loc, brightness=15) - del(src) + qdel(src) return proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged. @@ -124,9 +124,8 @@ spawn(0) new /obj/item/weapon/grenade/flashbang/clusterbang/segment(src.loc)//Creates a 'segment' that launches a few more flashbangs playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) - spawn(0) - del(src) - return + qdel(src) + return /obj/item/weapon/grenade/flashbang/clusterbang/segment desc = "A smaller segment of a clusterbang. Better run." @@ -156,9 +155,8 @@ spawn(0) new /obj/item/weapon/grenade/flashbang/cluster(src.loc) playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) - spawn(0) - del(src) - return + qdel(src) + return /obj/item/weapon/grenade/flashbang/cluster/New()//Same concept as the segments, so that all of the parts don't become reliant on the clusterbang spawn(0) diff --git a/code/game/objects/items/weapons/grenades/smokebomb.dm b/code/game/objects/items/weapons/grenades/smokebomb.dm index 139baacb6f7..e1e58b62ac7 100644 --- a/code/game/objects/items/weapons/grenades/smokebomb.dm +++ b/code/game/objects/items/weapons/grenades/smokebomb.dm @@ -10,7 +10,7 @@ New() ..() - src.smoke = new /datum/effect/effect/system/smoke_spread/bad + src.smoke = PoolOrNew(/datum/effect/effect/system/smoke_spread/bad) src.smoke.attach(src) prime() @@ -30,5 +30,5 @@ B.health -= damage B.update_icon() sleep(80) - del(src) + qdel(src) return diff --git a/code/game/objects/items/weapons/grenades/spawnergrenade.dm b/code/game/objects/items/weapons/grenades/spawnergrenade.dm index 8b6b6e938de..6adea8e2f51 100644 --- a/code/game/objects/items/weapons/grenades/spawnergrenade.dm +++ b/code/game/objects/items/weapons/grenades/spawnergrenade.dm @@ -28,7 +28,7 @@ // Spawn some hostile syndicate critters - del(src) + qdel(src) return /obj/item/weapon/grenade/spawnergrenade/manhacks diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 85bec3a8ea2..8aa2f1819df 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -132,7 +132,7 @@ var/last_chew = 0 user.put_in_hands(W) user << "You wrap the cable restraint around the top of the rod." - del(src) + qdel(src) update_icon(user) diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 50b4135dd79..5ceb3a5ccd7 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -155,7 +155,7 @@ Implant Specifics:
"} msg = replace_characters(msg, replacechars) if(findtext(msg,phrase)) activate() - del(src) + qdel(src) activate() if (malfunction == MALFUNCTION_PERMANENT) @@ -179,11 +179,11 @@ Implant Specifics:
"} istype(part,/obj/item/organ/external/head)) part.createwound(BRUISE, 60) //mangle them instead explosion(get_turf(imp_in), -1, -1, 2, 3) - del(src) + qdel(src) else explosion(get_turf(imp_in), -1, -1, 2, 3) part.droplimb(0,DROPLIMB_BLUNT) - del(src) + qdel(src) if (elevel == "Destroy Body") explosion(get_turf(T), -1, 0, 1, 6) T.gib() @@ -249,7 +249,7 @@ Implant Specifics:
"} else part.droplimb(0,DROPLIMB_BLUNT) explosion(get_turf(imp_in), -1, -1, 2, 3) - del(src) + qdel(src) /obj/item/weapon/implant/chem name = "chemical implant" @@ -296,7 +296,7 @@ the implant may become unstable and either pre-maturely inject the subject or si if(!src.reagents.total_volume) R << "You hear a faint click from your chest." spawn(0) - del(src) + qdel(src) return emp_act(severity) @@ -421,17 +421,17 @@ the implant may become unstable and either pre-maturely inject the subject or si a.autosay("[mobname] has died in Space!", "[mobname]'s Death Alarm") else a.autosay("[mobname] has died in [t.name]!", "[mobname]'s Death Alarm") - del(a) + qdel(a) processing_objects.Remove(src) if ("emp") var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null) var/name = prob(50) ? t.name : pick(teleportlocs) a.autosay("[mobname] has died in [name]!", "[mobname]'s Death Alarm") - del(a) + qdel(a) else var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null) a.autosay("[mobname] has died-zzzzt in-in-in...", "[mobname]'s Death Alarm") - del(a) + qdel(a) processing_objects.Remove(src) emp_act(severity) //for some reason alarms stop going off in case they are emp'd, even without this @@ -489,7 +489,7 @@ the implant may become unstable and either pre-maturely inject the subject or si imp_in.put_in_hands(scanned) else scanned.loc = t - del src + qdel(src) implanted(mob/source as mob) src.activation_emote = input("Choose activation emote:") in list("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink") diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 535a4264c0b..2f33eba4135 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -84,7 +84,7 @@ return var/mob/M = G:affecting if(put_mob(M)) - del(G) + qdel(G) src.updateUsrDialog() return diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index f04be5d33a2..67b5468fe3f 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -192,16 +192,16 @@ processing_objects |= src -/obj/item/weapon/melee/energy/blade/Del() +/obj/item/weapon/melee/energy/blade/Destroy() processing_objects -= src ..() /obj/item/weapon/melee/energy/blade/attack_self(mob/user as mob) user.drop_from_inventory(src) - spawn(1) if(src) del(src) + spawn(1) if(src) qdel(src) /obj/item/weapon/melee/energy/blade/dropped() - spawn(1) if(src) del(src) + spawn(1) if(src) qdel(src) /obj/item/weapon/melee/energy/blade/process() if(!creator || loc != creator || (creator.l_hand != src && creator.r_hand != src)) @@ -216,4 +216,4 @@ host.pinned -= src host.embedded -= src host.drop_from_inventory(src) - spawn(1) if(src) del(src) + spawn(1) if(src) qdel(src) diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index fe9945f8f04..0df10cd97c4 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -24,7 +24,7 @@ T.dirt = 0 for(var/obj/effect/O in src) if(istype(O,/obj/effect/rune) || istype(O,/obj/effect/decal/cleanable) || istype(O,/obj/effect/overlay)) - del(O) + qdel(O) source.reagents.reaction(src, TOUCH, 10) //10 is the multiplier for the reaction effect. probably needed to wet the floor properly. source.reagents.remove_any(1) //reaction() doesn't use up the reagents diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/policetape.dm index 283e7e5877a..48d1d4cf64a 100644 --- a/code/game/objects/items/weapons/policetape.dm +++ b/code/game/objects/items/weapons/policetape.dm @@ -191,10 +191,10 @@ var/list/tape_roll_applications = list() for (var/obj/item/tape/P in cur) if(P.icon_state == icon_dir) N = 0 - del(P) + qdel(P) cur = get_step(cur,dir[i]) - del(src) + qdel(src) return diff --git a/code/game/objects/items/weapons/shards.dm b/code/game/objects/items/weapons/shards.dm index 6b48653a6a5..a383d8fb0c1 100644 --- a/code/game/objects/items/weapons/shards.dm +++ b/code/game/objects/items/weapons/shards.dm @@ -64,7 +64,7 @@ G.attackby(NG, user) usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets." //SN src = null - del(src) + qdel(src) return return ..() diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 1695079eaa1..574720d4f25 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -52,18 +52,18 @@ return if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail) user << "\red The Bluespace interfaces of the two devices conflict and malfunction." - del(W) + qdel(W) return /* //BoH+BoH=Singularity, commented out. if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail) investigate_log("has become a singularity. Caused by [user.key]","singulo") user << "\red The Bluespace interfaces of the two devices catastrophically malfunction!" - del(W) + qdel(W) var/obj/singularity/singulo = new /obj/singularity (get_turf(src)) singulo.energy = 300 //should make it a bit bigger~ message_admins("[key_name_admin(user)] detonated a bag of holding") log_game("[key_name(user)] detonated a bag of holding") - del(src) + qdel(src) return */ ..() @@ -81,7 +81,7 @@ else user << "\red The Bluespace generator malfunctions!" for (var/obj/O in src.contents) //it broke, delete what was in it - del(O) + qdel(O) crit_fail = 1 icon_state = "brokenpack" diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 0ee5df08e06..52eaa4510d3 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -162,7 +162,7 @@ usr.client.screen -= S S.dropped(usr) if(!S.amount) - del S + qdel(S) else S.loc = src @@ -207,7 +207,7 @@ N.amount = stacksize S.amount -= stacksize if(!S.amount) - del S // todo: there's probably something missing here + qdel(S) // todo: there's probably something missing here orient2hud(usr) if(usr.s_active) usr.s_active.show_to(usr) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 4c0c58a05ac..e5d376e3a3e 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -48,7 +48,7 @@ // Now make the cardboard user << "You fold [src] flat." new src.foldable(get_turf(src)) - del(src) + qdel(src) /obj/item/weapon/storage/box/survival/ New() diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 7af6e3b16eb..4e0098eb97b 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -146,8 +146,8 @@ new /obj/item/clothing/mask/smokable/cigarette(src) create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one -/obj/item/weapon/storage/fancy/cigarettes/Del() - del(reagents) +/obj/item/weapon/storage/fancy/cigarettes/Destroy() + qdel(reagents) ..() @@ -202,8 +202,8 @@ new /obj/item/clothing/mask/smokable/cigarette/cigar(src) create_reagents(15 * storage_slots) -/obj/item/weapon/storage/fancy/cigar/Del() - del(reagents) +/obj/item/weapon/storage/fancy/cigar/Destroy() + qdel(reagents) ..() /obj/item/weapon/storage/fancy/cigar/update_icon() diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 495d4d75167..c70ade7e621 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -163,7 +163,7 @@ New(obj/item/sample as obj) if(!istype(sample)) - del(src) + qdel(src) sample_object = sample number = 1 diff --git a/code/game/objects/items/weapons/surgery_limbattachment.dm b/code/game/objects/items/weapons/surgery_limbattachment.dm index 23e5013f1a9..b52bb1bb3f3 100644 --- a/code/game/objects/items/weapons/surgery_limbattachment.dm +++ b/code/game/objects/items/weapons/surgery_limbattachment.dm @@ -65,7 +65,7 @@ H.update_body() M.updatehealth() M.UpdateDamageIcon() - del(src) + qdel(src) return 1 return 0 diff --git a/code/game/objects/items/weapons/syndie.dm b/code/game/objects/items/weapons/syndie.dm index e205f20bb09..a0af746ab4c 100644 --- a/code/game/objects/items/weapons/syndie.dm +++ b/code/game/objects/items/weapons/syndie.dm @@ -44,7 +44,7 @@ D.open() if(istype(T,/turf/simulated/wall)) T.dismantle_wall(1) - del(src) + qdel(src) /*Detonator, disguised as a lighter*/ diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm index 2dfc3f4730a..79e512321eb 100644 --- a/code/game/objects/items/weapons/table_rack_parts.dm +++ b/code/game/objects/items/weapons/table_rack_parts.dm @@ -20,7 +20,7 @@ if (istype(W, /obj/item/weapon/wrench)) for(var/material_type in stack_types) new material_type(get_turf(user)) - del(src) + qdel(src) return else if(alter_type && alter_with && istype(W,alter_with)) @@ -28,7 +28,7 @@ if (R.use(alter_cost)) var/obj/item/new_parts = new alter_type (get_turf(loc)) user << "You modify \the [name] into \a [new_parts]." - del(src) + qdel(src) else user << "You need at least [alter_cost] sheets to reinforce the [name]." return @@ -41,7 +41,7 @@ new build_type( user.loc ) user.drop_item() - del(src) + qdel(src) return /obj/item/weapon/table_parts/reinforced @@ -87,7 +87,7 @@ new /obj/item/stack/tile/carpet( get_turf(loc) ) new /obj/item/weapon/table_parts/wood( get_turf(loc) ) user << "You pry the carpet out of the table." - del(src) + qdel(src) ..() /obj/item/weapon/table_parts/rack diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index 422af1d652d..67b5f007a54 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -63,7 +63,7 @@ if(allgases >= 0.005) return 1 - del(G) + qdel(G) return /obj/item/weapon/tank/jetpack/ui_action_click() @@ -143,5 +143,5 @@ var/allgases = G.gas["carbon_dioxide"] + G.gas["nitrogen"] + G.gas["oxygen"] + G.gas["phoron"] if(allgases >= 0.005) return 1 - del(G) + qdel(G) return diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 04d32c49b22..f1cd0286baa 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -31,9 +31,9 @@ processing_objects.Add(src) return -/obj/item/weapon/tank/Del() +/obj/item/weapon/tank/Destroy() if(air_contents) - del(air_contents) + qdel(air_contents) processing_objects.Remove(src) @@ -71,12 +71,12 @@ if(prob(50)) var/turf/location = src.loc if (!( istype(location, /turf) )) - del(src) + qdel(src) if(src.air_contents) location.assume_air(air_contents) - del(src) + qdel(src) /obj/item/weapon/tank/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() @@ -274,7 +274,7 @@ //world << "\blue Exploding Pressure: [pressure] kPa, intensity: [range]" explosion(epicenter, round(range*0.25), round(range*0.5), round(range), round(range*1.5)) - del(src) + qdel(src) else if(pressure > TANK_RUPTURE_PRESSURE) //world << "\blue[x],[y] tank is rupturing: [pressure] kPa, integrity [integrity]" @@ -284,7 +284,7 @@ return T.assume_air(air_contents) playsound(src.loc, 'sound/effects/spray.ogg', 10, 1, -3) - del(src) + qdel(src) else integrity-- diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index 477bce6b32c..911a6334d25 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -58,7 +58,7 @@ user.put_in_hands(stuck) stuck = null overlays = null - del(src) + qdel(src) /obj/item/weapon/ducttape/afterattack(var/A, mob/user, flag, params) if(!in_range(user, A) || istype(A, /obj/machinery/door) || !stuck) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index bce7eabe9dd..480709c34ad 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -112,10 +112,10 @@ name = "offhand" unwield() - del(src) + qdel(src) wield() - del(src) + qdel(src) /obj/item/weapon/twohanded/offhand/update_icon() return @@ -149,7 +149,7 @@ if (W.dir == SOUTHWEST) new /obj/item/weapon/shard( W.loc ) if(W.reinf) new /obj/item/stack/rods( W.loc) - del(A) + qdel(A) /* diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 295fa0c67db..3cabb3f685b 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -177,7 +177,7 @@ if(istype(W,/obj/item/weapon/screwdriver)) user << "You finish the concealed blade weapon." new /obj/item/weapon/butterfly(user.loc) - del(src) + qdel(src) return /obj/item/butterflyblade @@ -198,8 +198,8 @@ if(istype(W,/obj/item/butterflyblade)) user << "You attach the two concealed blade parts." new /obj/item/butterflyconstruction(user.loc) - del(W) - del(src) + qdel(W) + qdel(src) return update_icon(user) @@ -252,8 +252,8 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) user.put_in_hands(S) user << "You fasten the glass shard to the top of the rod with the cable." - del(I) - del(src) + qdel(I) + qdel(src) update_icon(user) else if(istype(I, /obj/item/weapon/wirecutters)) @@ -261,8 +261,8 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) user.put_in_hands(P) user << "You fasten the wirecutters to the top of the rod with the cable, prongs outward." - del(I) - del(src) + qdel(I) + qdel(src) update_icon(user) update_icon(user) @@ -309,7 +309,7 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) /obj/item/weapon/energy_net/dropped() spawn(10) - if(src) del(src) + if(src) qdel(src) /obj/item/weapon/energy_net/throw_impact(atom/hit_atom) ..() @@ -317,7 +317,7 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) var/mob/living/M = hit_atom if(!istype(M) || locate(/obj/effect/energy_net) in M.loc) - del(src) + qdel(src) return 0 var/turf/T = get_turf(M) @@ -327,11 +327,11 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) M.captured = 1 net.affecting = M T.visible_message("[M] was caught in an energy net!") - del(src) + qdel(src) // If we miss or hit an obstacle, we still want to delete the net. spawn(10) - if(src) del(src) + if(src) qdel(src) /obj/effect/energy_net name = "energy net" @@ -356,7 +356,7 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) ..() processing_objects |= src -/obj/effect/energy_net/Del() +/obj/effect/energy_net/Destroy() if(affecting) var/mob/living/carbon/M = affecting @@ -372,13 +372,13 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) if(health <=0) density = 0 src.visible_message("The energy net is torn apart!") - del(src) + qdel(src) return /obj/effect/energy_net/process() if(isnull(affecting) || affecting.loc != loc) - del(src) + qdel(src) return // Countdown begin set to -1 will stop the teleporter from firing. @@ -411,7 +411,7 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) playsound(affecting.loc, 'sound/effects/sparks2.ogg', 50, 1) anim(affecting.loc,affecting,'icons/mob/mob.dmi',,"phasein",,affecting.dir) - del(src) + qdel(src) /obj/effect/energy_net/bullet_act(var/obj/item/projectile/Proj) health -= Proj.damage diff --git a/code/game/objects/items/weapons/weldbackpack.dm b/code/game/objects/items/weapons/weldbackpack.dm index f1c786d3e11..74d119f417e 100644 --- a/code/game/objects/items/weapons/weldbackpack.dm +++ b/code/game/objects/items/weapons/weldbackpack.dm @@ -22,7 +22,7 @@ user << "\red That was stupid of you." explosion(get_turf(src),-1,0,2) if(src) - del(src) + qdel(src) return else if(T.welding) diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index 7508d34a948..de73e5e7b3a 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -11,7 +11,7 @@ ..() if (!prob(spawn_nothing_percentage)) spawn_item() - del src + qdel(src) // this function should return a specific item to spawn diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 900baea3f35..af95bddc408 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -5,11 +5,11 @@ var/breakable var/parts -/obj/structure/proc/destroy() +/obj/structure/Destroy() + ..() if(parts) new parts(loc) density = 0 - del(src) /obj/structure/attack_hand(mob/user) if(breakable) @@ -24,10 +24,10 @@ /obj/structure/blob_act() if(prob(50)) - del(src) + qdel(src) /obj/structure/meteorhit(obj/O as obj) - destroy(src) + qdel(src) /obj/structure/attack_tk() return @@ -35,24 +35,24 @@ /obj/structure/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if(prob(50)) - del(src) + qdel(src) return if(3.0) return /obj/structure/meteorhit(obj/O as obj) - del(src) + qdel(src) /obj/structure/New() ..() if(climbable) verbs += /obj/structure/proc/climb_on -/obj/structure/Del() +/obj/structure/Destroy() ..() /obj/structure/proc/climb_on() @@ -179,5 +179,5 @@ if(!breakable || !damage || !wallbreaker) return 0 visible_message("[user] [attack_verb] the [src] apart!") - spawn(1) destroy() + spawn(1) qdel(src) return 1 diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 08abff9c2bf..07ede680ac2 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -146,19 +146,19 @@ for(var/atom/movable/A as mob|obj in src)//pulls everything out of the locker and hits it with an explosion A.loc = src.loc A.ex_act(severity++) - del(src) + qdel(src) if(2) if(prob(50)) for (var/atom/movable/A as mob|obj in src) A.loc = src.loc A.ex_act(severity++) - del(src) + qdel(src) if(3) if(prob(5)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc A.ex_act(severity++) - del(src) + qdel(src) /obj/structure/closet/bullet_act(var/obj/item/projectile/Proj) if(!(Proj.damage_type == BRUTE || Proj.damage_type == BURN)) @@ -169,7 +169,7 @@ if(health <= 0) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc - del(src) + qdel(src) return @@ -178,14 +178,14 @@ if(prob(75)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc - del(src) + qdel(src) /obj/structure/closet/meteorhit(obj/O as obj) if(O.icon_state == "flaming") for(var/mob/M in src) M.meteorhit(O) src.dump_contents() - del(src) + qdel(src) /obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob) if(src.opened) @@ -202,7 +202,7 @@ new /obj/item/stack/sheet/metal(src.loc) for(var/mob/M in viewers(src)) M.show_message("\The [src] has been cut apart by [user] with \the [WT].", 3, "You hear welding.", 2) - del(src) + qdel(src) return if(isrobot(user)) return @@ -310,5 +310,5 @@ return visible_message("[user] [attack_message] the [src]!") dump_contents() - spawn(1) del(src) + spawn(1) qdel(src) return 1 diff --git a/code/game/objects/structures/crates_lockers/closets/l3closet.dm b/code/game/objects/structures/crates_lockers/closets/l3closet.dm index bb5fe26e4fc..294ee437252 100644 --- a/code/game/objects/structures/crates_lockers/closets/l3closet.dm +++ b/code/game/objects/structures/crates_lockers/closets/l3closet.dm @@ -18,6 +18,7 @@ /obj/structure/closet/l3closet/general/New() ..() + qdel(contents) contents = list() new /obj/item/clothing/suit/bio_suit/general( src ) new /obj/item/clothing/head/bio_hood/general( src ) @@ -30,6 +31,7 @@ /obj/structure/closet/l3closet/virology/New() ..() + qdel(contents) contents = list() new /obj/item/clothing/suit/bio_suit/virology( src ) new /obj/item/clothing/head/bio_hood/virology( src ) @@ -44,6 +46,7 @@ /obj/structure/closet/l3closet/security/New() ..() + qdel(contents) contents = list() new /obj/item/clothing/suit/bio_suit/security( src ) new /obj/item/clothing/head/bio_hood/security( src ) @@ -56,6 +59,7 @@ /obj/structure/closet/l3closet/janitor/New() ..() + qdel(contents) contents = list() new /obj/item/clothing/suit/bio_suit/janitor( src ) new /obj/item/clothing/head/bio_hood/janitor( src ) @@ -68,6 +72,7 @@ /obj/structure/closet/l3closet/scientist/New() ..() + qdel(contents) contents = list() new /obj/item/clothing/suit/bio_suit/scientist( src ) new /obj/item/clothing/head/bio_hood/scientist( src ) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index 8fc77c5b92a..2534c09caa0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -23,7 +23,7 @@ spawn(4) // Not really the best way to do this, but it's better than "contents = list()"! for(var/atom/movable/AM in contents) - del(AM) + qdel(AM) new /obj/item/clothing/under/color/white( src ) new /obj/item/clothing/shoes/white( src ) return @@ -55,7 +55,7 @@ spawn(4) // Not really the best way to do this, but it's better than "contents = list()"! for(var/atom/movable/AM in contents) - del(AM) + qdel(AM) new /obj/item/weapon/storage/backpack/satchel/withwallet( src ) new /obj/item/device/radio/headset( src ) return diff --git a/code/game/objects/structures/crates_lockers/closets/statue.dm b/code/game/objects/structures/crates_lockers/closets/statue.dm index 644f2d7531a..67a159e7cac 100644 --- a/code/game/objects/structures/crates_lockers/closets/statue.dm +++ b/code/game/objects/structures/crates_lockers/closets/statue.dm @@ -40,7 +40,7 @@ desc = "If it takes forever, I will wait for you..." if(health == 0) //meaning if the statue didn't find a valid target - del(src) + qdel(src) return processing_objects.Add(src) @@ -56,7 +56,7 @@ if (timer <= 0) dump_contents() processing_objects.Remove(src) - del(src) + qdel(src) /obj/structure/closet/statue/dump_contents() @@ -130,4 +130,4 @@ user.dust() dump_contents() visible_message("[src] shatters!.") - del(src) + qdel(src) diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index c274a237b6e..31f8115b910 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -56,12 +56,12 @@ // teehee - Ah, tg coders... if ("delete") - del(src) + qdel(src) //If you want to re-add fire, just add "fire" = 15 to the pick list. /*if ("fire") new /obj/structure/closet/firecloset(src.loc) - del(src)*/ + qdel(src)*/ /obj/structure/closet/emcloset/legacy/New() ..() diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 917d244afa1..95e8c06e856 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -105,18 +105,18 @@ switch(severity) if(1.0) for(var/obj/O in src.contents) - del(O) - del(src) + qdel(O) + qdel(src) return if(2.0) for(var/obj/O in src.contents) if(prob(50)) - del(O) - del(src) + qdel(O) + qdel(src) return if(3.0) if (prob(50)) - del(src) + qdel(src) return else return diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index d2b1f56eb38..5419ee26399 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -18,7 +18,7 @@ user.visible_message("[user] pries \the [src] open.", \ "You pry open \the [src].", \ "You hear splitting wood.") - del(src) + qdel(src) else return attack_hand(user) diff --git a/code/game/objects/structures/curtains.dm b/code/game/objects/structures/curtains.dm index 741dc371db6..91e0065d37e 100644 --- a/code/game/objects/structures/curtains.dm +++ b/code/game/objects/structures/curtains.dm @@ -14,7 +14,7 @@ /obj/structure/curtain/bullet_act(obj/item/projectile/P, def_zone) if(!P.nodamage) visible_message("[P] tears [src] down!") - del(src) + qdel(src) else ..(P, def_zone) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 4eb2236ec0c..5150319f15e 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -17,7 +17,7 @@ if (occupied) new /obj/item/weapon/gun/energy/captain( src.loc ) occupied = 0 - del(src) + qdel(src) if (2) if (prob(50)) src.health -= 15 @@ -41,13 +41,13 @@ if (occupied) new /obj/item/weapon/gun/energy/captain( src.loc ) occupied = 0 - del(src) + qdel(src) /obj/structure/displaycase/meteorhit(obj/O as obj) new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/gun/energy/captain( src.loc ) - del(src) + qdel(src) /obj/structure/displaycase/proc/healthcheck() diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 1b92926acd2..a15650405ef 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -166,7 +166,7 @@ if(!src || !WT.isOn()) return user << "\blue You dissasembled the airlock assembly!" new /obj/item/stack/sheet/metal(src.loc, 4) - del (src) + qdel (src) else user << "\blue You need more welding fuel." return @@ -277,7 +277,7 @@ var/obj/machinery/door/new_airlock = new path(src.loc, src) new_airlock.dir = src.dir - del(src) + qdel(src) else ..() update_state() diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm index 074d7c76184..2608a311e39 100644 --- a/code/game/objects/structures/electricchair.dm +++ b/code/game/objects/structures/electricchair.dm @@ -19,7 +19,7 @@ part.loc = loc part.master = null part = null - del(src) + qdel(src) return return diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index f68c7ae7cb9..186f1debacc 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -13,7 +13,7 @@ relativewall_neighbours() ..() -/obj/structure/falsewall/Del() +/obj/structure/falsewall/Destroy() var/temploc = src.loc @@ -98,7 +98,7 @@ T.ChangeTurf(/turf/simulated/wall) else T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]")) - del(src) + qdel(src) if( istype(W, /obj/item/weapon/weldingtool) ) var/obj/item/weapon/weldingtool/WT = W @@ -110,7 +110,7 @@ if(mineral != "phoron")//Stupid shit keeps me from pushing the attackby() to phoron walls -Sieve T = get_turf(src) T.attackby(W,user) - del(src) + qdel(src) else user << "\blue You can't reach, close it first!" @@ -123,7 +123,7 @@ if(mineral != "phoron") T = get_turf(src) T.attackby(W,user) - del(src) + qdel(src) //DRILLING else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) @@ -134,7 +134,7 @@ T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]")) T = get_turf(src) T.attackby(W,user) - del(src) + qdel(src) else if( istype(W, /obj/item/weapon/melee/energy/blade) ) var/turf/T = get_turf(src) @@ -145,7 +145,7 @@ if(mineral != "phoron") T = get_turf(src) T.attackby(W,user) - del(src) + qdel(src) /obj/structure/falsewall/update_icon()//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open ..() @@ -232,7 +232,7 @@ var/turf/T = get_turf(src) user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the wall.") T.ChangeTurf(/turf/simulated/wall) //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you). - del(src) + qdel(src) if( istype(W, /obj/item/weapon/weldingtool) ) var/obj/item/weapon/weldingtool/WT = W @@ -241,14 +241,14 @@ T.ChangeTurf(/turf/simulated/wall) T = get_turf(src) T.attackby(W,user) - del(src) + qdel(src) else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) ) var/turf/T = get_turf(src) T.ChangeTurf(/turf/simulated/wall) T = get_turf(src) T.attackby(W,user) - del(src) + qdel(src) //DRILLING else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) @@ -256,14 +256,14 @@ T.ChangeTurf(/turf/simulated/wall) T = get_turf(src) T.attackby(W,user) - del(src) + qdel(src) else if( istype(W, /obj/item/weapon/melee/energy/blade) ) var/turf/T = get_turf(src) T.ChangeTurf(/turf/simulated/wall) T = get_turf(src) T.attackby(W,user) - del(src) + qdel(src) /* diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index c73c955701f..8c53135528c 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -31,7 +31,7 @@ ..() if(health <= 0) new /obj/item/stack/sheet/metal(get_turf(src)) - del(src) + qdel(src) return @@ -50,7 +50,7 @@ if(get_turf(user, 40)) user << "\blue You secured the girder!" new/obj/structure/girder( src.loc ) - del(src) + qdel(src) else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) user << "\blue Now slicing apart the girder" @@ -78,7 +78,7 @@ if(!src) return user << "\blue You removed the support struts!" new/obj/structure/girder( src.loc ) - del(src) + qdel(src) else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) @@ -87,7 +87,7 @@ if(!src) return user << "\blue You dislodged the girder!" new/obj/structure/girder/displaced( src.loc ) - del(src) + qdel(src) else if(istype(W, /obj/item/stack/sheet)) @@ -99,7 +99,7 @@ if(S.use(2)) user << "You create a false wall! Push on it to open or close the passage." new /obj/structure/falsewall (src.loc) - del(src) + qdel(src) else if(S.get_amount() < 2) return ..() user << "Now adding plating..." @@ -110,7 +110,7 @@ Tsrc.ChangeTurf(/turf/simulated/wall) for(var/turf/simulated/wall/X in Tsrc.loc) if(X) X.add_hiddenprint(usr) - del(src) + qdel(src) return if(/obj/item/stack/sheet/plasteel, /obj/item/stack/sheet/plasteel/cyborg) @@ -118,7 +118,7 @@ if(S.use(2)) user << "\blue You create a false wall! Push on it to open or close the passage." new /obj/structure/falserwall (src.loc) - del(src) + qdel(src) else if (src.icon_state == "reinforced") //I cant believe someone would actually write this line of code... if(S.get_amount() < 1) return ..() @@ -130,7 +130,7 @@ Tsrc.ChangeTurf(/turf/simulated/wall/r_wall) for(var/turf/simulated/wall/r_wall/X in Tsrc.loc) if(X) X.add_hiddenprint(usr) - del(src) + qdel(src) return else if(S.get_amount() < 1) return ..() @@ -139,7 +139,7 @@ if(S.use(1)) user << "Girders reinforced!" new/obj/structure/girder/reinforced( src.loc ) - del(src) + qdel(src) return if(S.sheettype) @@ -154,7 +154,7 @@ user << "\blue You create a false wall! Push on it to open or close the passage." var/F = text2path("/obj/structure/falsewall/[M]") new F (src.loc) - del(src) + qdel(src) else if(S.amount < 2) return ..() user << "\blue Now adding plating..." @@ -166,7 +166,7 @@ Tsrc.ChangeTurf(text2path("/turf/simulated/wall/mineral/[M]")) for(var/turf/simulated/wall/mineral/X in Tsrc.loc) if(X) X.add_hiddenprint(usr) - del(src) + qdel(src) return add_hiddenprint(usr) @@ -182,7 +182,7 @@ /obj/structure/girder/proc/dismantle() new /obj/item/stack/sheet/metal(get_turf(src)) - del(src) + qdel(src) /obj/structure/girder/attack_hand(mob/user as mob) if (HULK in user.mutations) @@ -193,25 +193,25 @@ /obj/structure/girder/blob_act() if(prob(40)) - del(src) + qdel(src) /obj/structure/girder/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(30)) var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal) new remains(loc) - del(src) + qdel(src) return if(3.0) if (prob(5)) var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal) new remains(loc) - del(src) + qdel(src) return else return @@ -246,7 +246,7 @@ /obj/structure/cultgirder/proc/dismantle() new /obj/effect/decal/remains/human(get_turf(src)) - del(src) + qdel(src) /obj/structure/cultgirder/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/wrench)) @@ -289,7 +289,7 @@ /obj/structure/cultgirder/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(30)) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index dda21468a48..54536dd4001 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -14,13 +14,13 @@ /obj/structure/grille/ex_act(severity) - del(src) + qdel(src) /obj/structure/grille/blob_act() - del(src) + qdel(src) /obj/structure/grille/meteorhit(var/obj/M) - del(src) + qdel(src) /obj/structure/grille/update_icon() if(destroyed) @@ -104,7 +104,7 @@ if(!shock(user, 100)) playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1) new /obj/item/stack/rods(loc, 2) - del(src) + qdel(src) else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored)) if(!shock(user, 90)) playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) @@ -178,7 +178,7 @@ else if(health <= -6) new /obj/item/stack/rods(loc) - del(src) + qdel(src) return return diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index 4bbb01a9c54..a9b1359b754 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -11,7 +11,7 @@ var/obj/structure/inflatable/R = new /obj/structure/inflatable(user.loc) src.transfer_fingerprints_to(R) R.add_fingerprint(user) - del(src) + qdel(src) /obj/structure/inflatable name = "inflatable wall" @@ -30,7 +30,7 @@ ..() update_nearby_tiles(need_rebuild=1) -/obj/structure/inflatable/Del() +/obj/structure/inflatable/Destroy() update_nearby_tiles() ..() @@ -50,7 +50,7 @@ /obj/structure/inflatable/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) deflate(1) @@ -94,14 +94,14 @@ visible_message("[src] rapidly deflates!") var/obj/item/inflatable/torn/R = new /obj/item/inflatable/torn(loc) src.transfer_fingerprints_to(R) - del(src) + qdel(src) else //user << "\blue You slowly deflate the inflatable wall." visible_message("[src] slowly deflates.") spawn(50) var/obj/item/inflatable/R = new /obj/item/inflatable(loc) src.transfer_fingerprints_to(R) - del(src) + qdel(src) /obj/structure/inflatable/verb/hand_deflate() set name = "Deflate" @@ -134,7 +134,7 @@ var/obj/structure/inflatable/door/R = new /obj/structure/inflatable/door(user.loc) src.transfer_fingerprints_to(R) R.add_fingerprint(user) - del(src) + qdel(src) /obj/structure/inflatable/door //Based on mineral door code name = "inflatable door" @@ -219,13 +219,13 @@ visible_message("[src] rapidly deflates!") var/obj/item/inflatable/door/torn/R = new /obj/item/inflatable/door/torn(loc) src.transfer_fingerprints_to(R) - del(src) + qdel(src) else visible_message("[src] slowly deflates.") spawn(50) var/obj/item/inflatable/door/R = new /obj/item/inflatable/door(loc) src.transfer_fingerprints_to(R) - del(src) + qdel(src) /obj/item/inflatable/torn name = "torn inflatable wall" diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index de2fef2875e..e865805991b 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -20,8 +20,8 @@ else if(spike(G.affecting)) visible_message("[user] has forced [G.affecting] onto the spike, killing them instantly!") - del(G.affecting) - del(G) + qdel(G.affecting) + qdel(G) else user << "They are too big for the spike, try something smaller!" diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm index 6bbb8cfa245..3c32052d726 100644 --- a/code/game/objects/structures/lamarr_cage.dm +++ b/code/game/objects/structures/lamarr_cage.dm @@ -15,7 +15,7 @@ if (1) new /obj/item/weapon/shard( src.loc ) Break() - del(src) + qdel(src) if (2) if (prob(50)) src.health -= 15 @@ -37,13 +37,13 @@ if (prob(75)) new /obj/item/weapon/shard( src.loc ) Break() - del(src) + qdel(src) /obj/structure/lamarr/meteorhit(obj/O as obj) new /obj/item/weapon/shard( src.loc ) Break() - del(src) + qdel(src) /obj/structure/lamarr/proc/healthcheck() diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index a32af450d5e..788a6711f0e 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -13,10 +13,10 @@ ///// Z-Level Stuff if(!(istype(src.loc, /turf/space) || istype(src.loc, /turf/simulated/floor/open))) ///// Z-Level Stuff - del(src) + qdel(src) for(var/obj/structure/lattice/LAT in src.loc) if(LAT != src) - del(LAT) + qdel(LAT) icon = 'icons/obj/smoothlattice.dmi' icon_state = "latticeblank" updateOverlays() @@ -26,7 +26,7 @@ L = locate(/obj/structure/lattice, get_step(src, dir)) L.updateOverlays() -/obj/structure/lattice/Del() +/obj/structure/lattice/Destroy() for (var/dir in cardinal) var/obj/structure/lattice/L if(locate(/obj/structure/lattice, get_step(src, dir))) @@ -35,16 +35,16 @@ ..() /obj/structure/lattice/blob_act() - del(src) + qdel(src) return /obj/structure/lattice/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) - del(src) + qdel(src) return if(3.0) return @@ -62,13 +62,13 @@ if(WT.remove_fuel(0, user)) user << "\blue Slicing lattice joints ..." new /obj/item/stack/rods(src.loc) - del(src) + qdel(src) return /obj/structure/lattice/proc/updateOverlays() //if(!(istype(src.loc, /turf/space))) - // del(src) + // qdel(src) spawn(1) overlays = list() diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 8ce25ddb671..68316e07a65 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -137,7 +137,7 @@ var/ore = text2path("/obj/item/stack/sheet/mineral/[mineralType]") for(var/i = 3, i <= oreAmount, i++) new ore(get_turf(src)) - del(src) + qdel(src) ex_act(severity = 1) switch(severity) @@ -239,7 +239,7 @@ if(!devastated) for(var/i = 1, i <= oreAmount, i++) new/obj/item/stack/sheet/wood(get_turf(src)) - del(src) + qdel(src) /obj/structure/mineral_door/resin mineralType = "resin" @@ -279,7 +279,7 @@ isSwitchingStates = 0 Dismantle(devastated = 0) - del(src) + qdel(src) CheckHardness() playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index f0a5b9003a1..4868f6e0ca5 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -91,5 +91,5 @@ vox.real_name = newname vox.name = vox.real_name raiders.update_access(vox) - del(user) + qdel(user) ..() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index f30c4d854de..599e8aabc8e 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -36,21 +36,21 @@ for(var/atom/movable/A as mob|obj in src) A.loc = src.loc ex_act(severity) - del(src) + qdel(src) return if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc ex_act(severity) - del(src) + qdel(src) return if(3.0) if (prob(5)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc ex_act(severity) - del(src) + qdel(src) return return @@ -64,7 +64,7 @@ A.loc = src playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) //src.connected = null - del(src.connected) + qdel(src.connected) else playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) src.connected = new /obj/structure/m_tray( src.loc ) @@ -80,7 +80,7 @@ src.connected.set_dir(src.dir) else //src.connected = null - del(src.connected) + qdel(src.connected) src.add_fingerprint(user) update() return @@ -116,7 +116,7 @@ src.connected.icon_state = "morguet" else //src.connected = null - del(src.connected) + qdel(src.connected) return @@ -144,7 +144,7 @@ src.connected.update() add_fingerprint(user) //SN src = null - del(src) + qdel(src) return return @@ -195,21 +195,21 @@ for(var/atom/movable/A as mob|obj in src) A.loc = src.loc ex_act(severity) - del(src) + qdel(src) return if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc ex_act(severity) - del(src) + qdel(src) return if(3.0) if (prob(5)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc ex_act(severity) - del(src) + qdel(src) return return @@ -232,7 +232,7 @@ A.loc = src playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) //src.connected = null - del(src.connected) + qdel(src.connected) else if (src.locked == 0) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) src.connected = new /obj/structure/c_tray( src.loc ) @@ -247,7 +247,7 @@ src.connected.icon_state = "cremat" else //src.connected = null - del(src.connected) + qdel(src.connected) src.add_fingerprint(user) update() @@ -282,7 +282,7 @@ src.connected.icon_state = "cremat" else //src.connected = null - del(src.connected) + qdel(src.connected) return /obj/structure/crematorium/proc/cremate(atom/A, mob/user as mob) @@ -323,10 +323,10 @@ //log_attack("\[[time_stamp()]\] [user]/[user.ckey] cremated [M]/[M.ckey]") M.death(1) M.ghostize() - del(M) + qdel(M) for(var/obj/O in contents) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up - del(O) + qdel(O) new /obj/effect/decal/cleanable/ash(src) sleep(30) @@ -360,7 +360,7 @@ src.connected.update() add_fingerprint(user) //SN src = null - del(src) + qdel(src) return return diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index 0b11d09fccc..f5c988ae972 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -8,19 +8,19 @@ /obj/structure/sign/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) - del(src) + qdel(src) return if(3.0) - del(src) + qdel(src) return else return /obj/structure/sign/blob_act() - del(src) + qdel(src) return /obj/structure/sign/attackby(obj/item/tool as obj, mob/user as mob) //deconstruction @@ -33,7 +33,7 @@ //var/icon/I = icon('icons/obj/decals.dmi', icon_state) //S.icon = I.Scale(24, 24) S.sign_state = icon_state - del(src) + qdel(src) else ..() /obj/item/sign @@ -62,7 +62,7 @@ S.desc = desc S.icon_state = sign_state user << "You fasten \the [S] with your [tool]." - del(src) + qdel(src) else ..() /obj/structure/sign/double/map diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index fad0c3d0bd2..46cf8ffcd8d 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -79,5 +79,5 @@ /obj/structure/bed/nest/proc/healthcheck() if(health <=0) density = 0 - del(src) + qdel(src) return diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 6d50066a748..7e412cfaa96 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -20,27 +20,27 @@ /obj/structure/bed/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) - del(src) + qdel(src) return if(3.0) if (prob(5)) - del(src) + qdel(src) return /obj/structure/bed/blob_act() if(prob(75)) new /obj/item/stack/sheet/metal(src.loc) - del(src) + qdel(src) /obj/structure/bed/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/wrench)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) new /obj/item/stack/sheet/metal(src.loc) - del(src) + qdel(src) else ..() @@ -71,7 +71,7 @@ visible_message("[user] collapses \the [src.name].") new/obj/item/roller(get_turf(src)) spawn(0) - del(src) + qdel(src) return ..() @@ -85,7 +85,7 @@ /obj/item/roller/attack_self(mob/user) var/obj/structure/bed/roller/R = new /obj/structure/bed/roller(user.loc) R.add_fingerprint(user) - del(src) + qdel(src) /obj/item/roller/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -119,7 +119,7 @@ user << "\blue You deploy the roller bed." var/obj/structure/bed/roller/R = new /obj/structure/bed/roller(user.loc) R.add_fingerprint(user) - del(held) + qdel(held) held = null @@ -153,5 +153,5 @@ visible_message("[usr] collapses \the [src.name].") new/obj/item/roller(get_turf(src)) spawn(0) - del(src) + qdel(src) return diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index c8746e1919a..b811294a074 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -26,7 +26,7 @@ E.part = SK SK.loc = E SK.master = E - del(src) + qdel(src) /obj/structure/bed/chair/attack_tk(mob/user as mob) if(buckled_mob) @@ -79,7 +79,7 @@ if(istype(W, /obj/item/weapon/wrench)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) new /obj/item/stack/sheet/wood(src.loc) - del(src) + qdel(src) else ..() diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm index 16e9161dcfc..8de3bcf0a57 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm @@ -13,7 +13,7 @@ user.remove_from_mob(src) var/obj/item/stack/sheet/metal/m = new/obj/item/stack/sheet/metal m.loc = get_turf(src) - del src + qdel(src) var/mob/living/T = M T.Weaken(10) T.apply_damage(20) @@ -23,25 +23,25 @@ /obj/item/weapon/stool/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) - del(src) + qdel(src) return if(3.0) if (prob(5)) - del(src) + qdel(src) return /obj/item/weapon/stool/blob_act() if(prob(75)) new /obj/item/stack/sheet/metal(src.loc) - del(src) + qdel(src) /obj/item/weapon/stool/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/wrench)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) new /obj/item/stack/sheet/metal(src.loc) - del(src) + qdel(src) ..() diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index d14ddf1405f..f206bfc11f0 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -59,11 +59,11 @@ ..() for(var/obj/structure/table/T in src.loc) if(T != src) - del(T) + qdel(T) update_icon() update_adjacent() -/obj/structure/table/Del() +/obj/structure/table/Destroy() update_adjacent() ..() @@ -328,7 +328,7 @@ return 0 else visible_message("[src] breaks down!") - destroy() + qdel(src) return 1 return 1 @@ -375,7 +375,7 @@ G.affecting.loc = src.loc G.affecting.Weaken(5) visible_message("[G.assailant] puts [G.affecting] on \the [src].") - del(W) + qdel(W) return // Handle dissembly. @@ -386,7 +386,7 @@ user << "You locate the bolts and begin disassembling \the [src]..." playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) if(do_after(user,50)) - destroy() + qdel(src) return // Handle weakening. @@ -429,7 +429,7 @@ playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) user.visible_message("The [src] was sliced apart by [user]!") - destroy() + qdel(src) user.drop_item(src.loc) return diff --git a/code/game/objects/structures/transit_tubes.dm b/code/game/objects/structures/transit_tubes.dm index fcd65e2cdff..47a2f53fb3f 100644 --- a/code/game/objects/structures/transit_tubes.dm +++ b/code/game/objects/structures/transit_tubes.dm @@ -47,7 +47,7 @@ -/obj/structure/transit_tube_pod/Del() +/obj/structure/transit_tube_pod/Destroy() for(var/atom/movable/AM in contents) AM.loc = loc @@ -63,7 +63,7 @@ obj/structure/ex_act(severity) AM.loc = loc AM.ex_act(severity++) - del(src) + qdel(src) return if(2.0) if(prob(50)) @@ -71,7 +71,7 @@ obj/structure/ex_act(severity) AM.loc = loc AM.ex_act(severity++) - del(src) + qdel(src) return if(3.0) return diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 62f3ef60c1e..81a3a16cdd3 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -173,7 +173,7 @@ /obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up overlays.Cut() //once it's been on for a while, in addition to handling the water overlay. if(mymist) - del(mymist) + qdel(mymist) if(on) overlays += image('icons/obj/watercloset.dmi', src, "water", MOB_LAYER + 1, dir) @@ -183,16 +183,16 @@ spawn(50) if(src && on) ismist = 1 - mymist = new /obj/effect/mist(loc) + mymist = PoolOrNew(/obj/effect/mist,loc) else ismist = 1 - mymist = new /obj/effect/mist(loc) + mymist = PoolOrNew(/obj/effect/mist,loc) else if(ismist) ismist = 1 - mymist = new /obj/effect/mist(loc) + mymist = PoolOrNew(/obj/effect/mist,loc) spawn(250) if(src && !on) - del(mymist) + qdel(mymist) ismist = 0 /obj/machinery/shower/Crossed(atom/movable/O) @@ -292,7 +292,7 @@ loc.clean_blood() for(var/obj/effect/E in tile) if(istype(E,/obj/effect/rune) || istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay)) - del(E) + qdel(E) /obj/machinery/shower/process() if(!on) return diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index a0855a35b08..0aaeb83c980 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -37,7 +37,7 @@ obj/structure/windoor_assembly/New(Loc, start_dir=NORTH, constructed=0) update_nearby_tiles(need_rebuild=1) -obj/structure/windoor_assembly/Del() +obj/structure/windoor_assembly/Destroy() density = 0 update_nearby_tiles() ..() @@ -79,7 +79,7 @@ obj/structure/windoor_assembly/Del() new /obj/item/stack/sheet/glass/reinforced(get_turf(src), 5) if(secure) new /obj/item/stack/rods(get_turf(src), 4) - del(src) + qdel(src) else user << "\blue You need more welding fuel to dissassemble the windoor assembly." return @@ -249,7 +249,7 @@ obj/structure/windoor_assembly/Del() src.electronics.loc = windoor - del(src) + qdel(src) else diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index fd96873b7ac..c6afa5e2c11 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -93,7 +93,7 @@ else new shardtype(loc) if(reinf) new /obj/item/stack/rods(loc) - del(src) + qdel(src) return @@ -111,7 +111,7 @@ /obj/structure/window/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) shatter(0) @@ -216,7 +216,7 @@ if(istype(G.affecting,/mob/living)) var/mob/living/M = G.affecting var/state = G.state - del(W) //gotta delete it here because if window breaks, it won't get deleted + qdel(W) //gotta delete it here because if window breaks, it won't get deleted switch (state) if(1) M.visible_message("[user] slams [M] against \the [src]!") @@ -266,7 +266,7 @@ mats.amount = is_fulltile() ? 4 : 2 else new glasstype(loc) - del(src) + qdel(src) else if(W.damtype == BRUTE || W.damtype == BURN) hit(W.force) @@ -334,7 +334,7 @@ update_nearby_icons() -/obj/structure/window/Del() +/obj/structure/window/Destroy() density = 0 update_nearby_tiles() update_nearby_icons() diff --git a/code/game/response_team.dm b/code/game/response_team.dm index a64230b1d61..23e5f764a39 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -58,7 +58,7 @@ client/verb/JoinResponseTeam() L.name = "Commando" return create_response_team(L.loc, new_name) - del(L) + qdel(L) else usr << "You need to be an observer or new player to use this." diff --git a/code/game/smoothwall.dm b/code/game/smoothwall.dm index 907b2f67587..c31b5a8ef1e 100644 --- a/code/game/smoothwall.dm +++ b/code/game/smoothwall.dm @@ -100,7 +100,7 @@ ..()*/ -/turf/simulated/wall/Del() +/turf/simulated/wall/Destroy() spawn(10) for(var/turf/simulated/wall/W in range(src,1)) W.relativewall() diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index d32173c2677..beb4133d19b 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -84,13 +84,13 @@ var/list/mechtoys = list( /obj/structure/plasticflaps/ex_act(severity) switch(severity) if (1) - del(src) + qdel(src) if (2) if (prob(50)) - del(src) + qdel(src) if (3) if (prob(5)) - del(src) + qdel(src) /obj/structure/plasticflaps/mining //A specific type for mining that doesn't allow airflow because of them damn crates name = "airtight plastic flaps" @@ -217,7 +217,7 @@ var/list/mechtoys = list( var/obj/item/stack/sheet/mineral/platinum/P = A plat_count += P.get_amount() - del(MA) + qdel(MA) if(phoron_count) points += phoron_count * points_per_phoron diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 07b68a329a7..46007735c33 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -457,7 +457,7 @@ turf/simulated/floor/proc/update_icon() if(is_light_floor()) if(get_lightfloor_state()) user.remove_from_mob(C) - del(C) + qdel(C) set_lightfloor_state(0) //fixing it by bashing it with a light bulb, fun eh? update_icon() user << "\blue You replace the light bulb." diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index e19fadf863b..ef7dd74e8fb 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -45,12 +45,12 @@ take_damage(tforce) -/turf/simulated/wall/Del() - for(var/obj/effect/E in src) if(E.name == "Wallrot") del E +/turf/simulated/wall/Destroy() + for(var/obj/effect/E in src) if(E.name == "Wallrot") qdel(E) ..() /turf/simulated/wall/ChangeTurf(var/newtype) - for(var/obj/effect/E in src) if(E.name == "Wallrot") del E + for(var/obj/effect/E in src) if(E.name == "Wallrot") qdel(E) for(var/obj/effect/plant/plant in range(1)) plant.update_neighbors() ..(newtype) @@ -251,7 +251,7 @@ user << "The thermite starts melting through the wall." spawn(100) - if(O) del(O) + if(O) qdel(O) // F.sd_LumReset() //TODO: ~Carn return @@ -326,7 +326,7 @@ user << "You burn away the fungi with \the [WT]." playsound(src, 'sound/items/Welder.ogg', 10, 1) for(var/obj/effect/E in src) if(E.name == "Wallrot") - del E + qdel(E) rotting = 0 return else if(!is_sharp(W) && W.force >= 10 || W.force >= 20) diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index 5585de31d87..335d7016565 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -92,7 +92,7 @@ for(var/obj/structure/falsewall/phoron/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve var/turf/T = get_turf(F) T.ChangeTurf(/turf/simulated/wall/mineral/phoron/) - del (F) + qdel(F) for(var/turf/simulated/wall/mineral/phoron/W in range(3,src)) W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame for(var/obj/machinery/door/airlock/phoron/D in range(3,src)) diff --git a/code/game/turfs/simulated/walls_reinforced.dm b/code/game/turfs/simulated/walls_reinforced.dm index 497371eb5f6..102a51b2b44 100644 --- a/code/game/turfs/simulated/walls_reinforced.dm +++ b/code/game/turfs/simulated/walls_reinforced.dm @@ -41,7 +41,7 @@ user << "You burn away the fungi with \the [WT]." playsound(src, 'sound/items/Welder.ogg', 10, 1) for(var/obj/effect/E in src) if(E.name == "Wallrot") - del E + qdel(E) rotting = 0 return else if(!is_sharp(W) && W.force >= 10 || W.force >= 20) @@ -126,7 +126,7 @@ if (O.amount > 1) O.amount-- else - del(O) + qdel(O) return if(2) @@ -272,7 +272,7 @@ if (MS.amount > 1) MS.amount-- else - del(MS) + qdel(MS) //APC else if( istype(W,/obj/item/apc_frame) ) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 2fd89bb8769..bfd7548276d 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -43,7 +43,7 @@ var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = var/obj/item/stack/tile/plasteel/S = C if (S.get_amount() < 1) return - del(L) + qdel(L) playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) S.build(src) S.use(1) @@ -69,11 +69,11 @@ var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = if(A.z > 6 && !config.use_overmap) return if (A.x <= TRANSITIONEDGE || A.x >= (world.maxx - TRANSITIONEDGE - 1) || A.y <= TRANSITIONEDGE || A.y >= (world.maxy - TRANSITIONEDGE - 1)) if(istype(A, /obj/effect/meteor)||istype(A, /obj/effect/space_dust)) - del(A) + qdel(A) return if(istype(A, /obj/item/weapon/disk/nuclear)) // Don't let nuke disks travel Z levels ... And moving this shit down here so it only fires when they're actually trying to change z-level. - del(A) //The disk's Del() proc ensures a new one is created + qdel(A) //The disk's Destroy() proc ensures a new one is created return if(config.use_overmap) overmap_spacetravel(src,A) @@ -94,10 +94,10 @@ var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = MM.inertia_dir = 2 else for(var/obj/item/weapon/disk/nuclear/N in disk_search) - del(N)//Make the disk respawn it is on a clientless mob or corpse + qdel(N)//Make the disk respawn it is on a clientless mob or corpse else for(var/obj/item/weapon/disk/nuclear/N in disk_search) - del(N)//Make the disk respawn if it is floating on its own + qdel(N)//Make the disk respawn if it is floating on its own return var/move_to_z = src.z @@ -148,7 +148,7 @@ var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = if(src.x <= 1) if(istype(A, /obj/effect/meteor)||istype(A, /obj/effect/space_dust)) - del(A) + qdel(A) return var/list/cur_pos = src.get_global_map_pos() @@ -173,7 +173,7 @@ var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = A.loc.Entered(A) else if (src.x >= world.maxx) if(istype(A, /obj/effect/meteor)) - del(A) + qdel(A) return var/list/cur_pos = src.get_global_map_pos() @@ -198,7 +198,7 @@ var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = A.loc.Entered(A) else if (src.y <= 1) if(istype(A, /obj/effect/meteor)) - del(A) + qdel(A) return var/list/cur_pos = src.get_global_map_pos() if(!cur_pos) return @@ -223,7 +223,7 @@ var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = else if (src.y >= world.maxy) if(istype(A, /obj/effect/meteor)||istype(A, /obj/effect/space_dust)) - del(A) + qdel(A) return var/list/cur_pos = src.get_global_map_pos() if(!cur_pos) return diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 1bc058ef6df..7353531f593 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -197,7 +197,7 @@ /turf/proc/RemoveLattice() var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) if(L) - del L + qdel(L) //Creates a new turf /turf/proc/ChangeTurf(var/turf/N, var/tell_universe=1, var/force_lighting_update = 0) diff --git a/code/game/vehicles/vehicle.dm b/code/game/vehicles/vehicle.dm index 3ec73f3eeb9..4088528b35f 100644 --- a/code/game/vehicles/vehicle.dm +++ b/code/game/vehicles/vehicle.dm @@ -1,190 +1,190 @@ - - -/obj/vehicle - name = "Vehicle" - icon = 'icons/vehicles/vehicles.dmi' - density = 1 - anchored = 1 - unacidable = 1 //To avoid the pilot-deleting shit that came with mechas - layer = MOB_LAYER - //var/can_move = 1 - var/mob/living/carbon/occupant = null - //var/step_in = 10 //make a step in step_in/10 sec. - //var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South. - //var/step_energy_drain = 10 - var/health = 300 //health is health - //var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act. - //the values in this list show how much damage will pass through, not how much will be absorbed. - var/list/damage_absorption = list("brute"=0.8,"fire"=1.2,"bullet"=0.9,"laser"=1,"energy"=1,"bomb"=1) - var/obj/item/weapon/cell/cell //Our power source - var/state = 0 - var/list/log = new - var/last_message = 0 - var/add_req_access = 1 - var/maint_access = 1 - //var/dna //dna-locking the mech - var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference - var/datum/effect/effect/system/spark_spread/spark_system = new - var/lights = 0 - var/lights_power = 6 - - //inner atmos //These go in airtight.dm, not all vehicles are space-faring -Agouri - //var/use_internal_tank = 0 - //var/internal_tank_valve = ONE_ATMOSPHERE - //var/obj/machinery/portable_atmospherics/canister/internal_tank - //var/datum/gas_mixture/cabin_air - //var/obj/machinery/atmospherics/portables_connector/connected_port = null - - var/obj/item/device/radio/radio = null - - var/max_temperature = 2500 - //var/internal_damage_threshold = 50 //health percentage below which internal damage is possible - var/internal_damage = 0 //contains bitflags - - var/list/operation_req_access = list()//required access level for mecha operation - var/list/internals_req_access = list(access_engine,access_robotics)//required access level to open cell compartment - - //var/datum/global_iterator/pr_int_temp_processor //normalizes internal air mixture temperature //In airtight.dm you go -Agouri - var/datum/global_iterator/pr_inertial_movement //controls intertial movement in spesss - - //var/datum/global_iterator/pr_give_air //moves air from tank to cabin //Y-you too -Agouri - - var/datum/global_iterator/pr_internal_damage //processes internal damage - - - var/wreckage - - var/list/equipment = new - var/obj/selected - //var/max_equip = 3 - - var/datum/events/events - - - -/obj/vehicle/New() - ..() - events = new - icon_state += "-unmanned" - add_radio() - //add_cabin() //No cabin for non-airtights - - spark_system.set_up(2, 0, src) - spark_system.attach(src) - add_cell() - add_iterators() - removeVerb(/obj/mecha/verb/disconnect_from_port) - removeVerb(/atom/movable/verb/pull) - log_message("[src.name]'s functions initialised. Work protocols active - Entering IDLE mode.") - loc.Entered(src) - return - - -//################ Helpers ########################################################### - - -/obj/vehicle/proc/removeVerb(verb_path) - verbs -= verb_path - -/obj/vehicle/proc/addVerb(verb_path) - verbs += verb_path - -/*/obj/vehicle/proc/add_airtank() //In airtight.dm -Agouri - internal_tank = new /obj/machinery/portable_atmospherics/canister/air(src) - return internal_tank*/ - -/obj/vehicle/proc/add_cell(var/obj/item/weapon/cell/C=null) - if(C) - C.forceMove(src) - cell = C - return - cell = new(src) - cell.charge = 15000 - cell.maxcharge = 15000 - -/*/obj/vehicle/proc/add_cabin() //In airtight.dm -Agouri - cabin_air = new - cabin_air.temperature = T20C - cabin_air.volume = 200 - cabin_air.oxygen = O2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) - cabin_air.nitrogen = N2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) - return cabin_air*/ - -/obj/vehicle/proc/add_radio() - radio = new(src) - radio.name = "[src] radio" - radio.icon = icon - radio.icon_state = icon_state - radio.subspace_transmission = 1 - -/obj/vehicle/proc/add_iterators() - pr_inertial_movement = new /datum/global_iterator/vehicle_intertial_movement(null,0) - //pr_internal_damage = new /datum/global_iterator/vehicle_internal_damage(list(src),0) - //pr_int_temp_processor = new /datum/global_iterator/vehicle_preserve_temp(list(src)) //In airtight.dm's add_airtight_iterators -Agouri - //pr_give_air = new /datum/global_iterator/vehicle_tank_give_air(list(src) //Same here -Agouri - -/obj/vehicle/proc/check_for_support() - if(locate(/obj/structure/grille, orange(1, src)) || locate(/obj/structure/lattice, orange(1, src)) || locate(/turf/simulated, orange(1, src)) || locate(/turf/unsimulated, orange(1, src))) - return 1 - else - return 0 - -//################ Logs and messages ############################################ - - -/obj/vehicle/proc/log_message(message as text,red=null) - log.len++ - log[log.len] = list("time"=world.timeofday,"message"="[red?"":null][message][red?"":null]") - return log.len - - - -//################ Global Iterator Datums ###################################### - - -/datum/global_iterator/vehicle_intertial_movement //inertial movement in space - delay = 7 - - process(var/obj/vehicle/V as obj, direction) - if(direction) - if(!step(V, direction)||V.check_for_support()) - src.stop() - else - src.stop() - return - - -/datum/global_iterator/mecha_internal_damage // processing internal damage - - process(var/obj/mecha/mecha) - if(!mecha.hasInternalDamage()) - return stop() - if(mecha.hasInternalDamage(MECHA_INT_FIRE)) - if(!mecha.hasInternalDamage(MECHA_INT_TEMP_CONTROL) && prob(5)) - mecha.clearInternalDamage(MECHA_INT_FIRE) - if(mecha.internal_tank) - if(mecha.internal_tank.return_pressure()>mecha.internal_tank.maximum_pressure && !(mecha.hasInternalDamage(MECHA_INT_TANK_BREACH))) - mecha.setInternalDamage(MECHA_INT_TANK_BREACH) - var/datum/gas_mixture/int_tank_air = mecha.internal_tank.return_air() - if(int_tank_air && int_tank_air.return_volume()>0) //heat the air_contents - int_tank_air.temperature = min(6000+T0C, int_tank_air.temperature+rand(10,15)) - if(mecha.cabin_air && mecha.cabin_air.return_volume()>0) - mecha.cabin_air.temperature = min(6000+T0C, mecha.cabin_air.return_temperature()+rand(10,15)) - if(mecha.cabin_air.return_temperature()>mecha.max_temperature/2) - mecha.take_damage(4/round(mecha.max_temperature/mecha.cabin_air.return_temperature(),0.1),"fire") - if(mecha.hasInternalDamage(MECHA_INT_TEMP_CONTROL)) //stop the mecha_preserve_temp loop datum - mecha.pr_int_temp_processor.stop() - if(mecha.hasInternalDamage(MECHA_INT_TANK_BREACH)) //remove some air from internal tank - if(mecha.internal_tank) - var/datum/gas_mixture/int_tank_air = mecha.internal_tank.return_air() - var/datum/gas_mixture/leaked_gas = int_tank_air.remove_ratio(0.10) - if(mecha.loc && hascall(mecha.loc,"assume_air")) - mecha.loc.assume_air(leaked_gas) - else - del(leaked_gas) - if(mecha.hasInternalDamage(MECHA_INT_SHORT_CIRCUIT)) - if(mecha.get_charge()) - mecha.spark_system.start() - mecha.cell.charge -= min(20,mecha.cell.charge) - mecha.cell.maxcharge -= min(20,mecha.cell.maxcharge) + + +/obj/vehicle + name = "Vehicle" + icon = 'icons/vehicles/vehicles.dmi' + density = 1 + anchored = 1 + unacidable = 1 //To avoid the pilot-deleting shit that came with mechas + layer = MOB_LAYER + //var/can_move = 1 + var/mob/living/carbon/occupant = null + //var/step_in = 10 //make a step in step_in/10 sec. + //var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South. + //var/step_energy_drain = 10 + var/health = 300 //health is health + //var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act. + //the values in this list show how much damage will pass through, not how much will be absorbed. + var/list/damage_absorption = list("brute"=0.8,"fire"=1.2,"bullet"=0.9,"laser"=1,"energy"=1,"bomb"=1) + var/obj/item/weapon/cell/cell //Our power source + var/state = 0 + var/list/log = new + var/last_message = 0 + var/add_req_access = 1 + var/maint_access = 1 + //var/dna //dna-locking the mech + var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference + var/datum/effect/effect/system/spark_spread/spark_system = new + var/lights = 0 + var/lights_power = 6 + + //inner atmos //These go in airtight.dm, not all vehicles are space-faring -Agouri + //var/use_internal_tank = 0 + //var/internal_tank_valve = ONE_ATMOSPHERE + //var/obj/machinery/portable_atmospherics/canister/internal_tank + //var/datum/gas_mixture/cabin_air + //var/obj/machinery/atmospherics/portables_connector/connected_port = null + + var/obj/item/device/radio/radio = null + + var/max_temperature = 2500 + //var/internal_damage_threshold = 50 //health percentage below which internal damage is possible + var/internal_damage = 0 //contains bitflags + + var/list/operation_req_access = list()//required access level for mecha operation + var/list/internals_req_access = list(access_engine,access_robotics)//required access level to open cell compartment + + //var/datum/global_iterator/pr_int_temp_processor //normalizes internal air mixture temperature //In airtight.dm you go -Agouri + var/datum/global_iterator/pr_inertial_movement //controls intertial movement in spesss + + //var/datum/global_iterator/pr_give_air //moves air from tank to cabin //Y-you too -Agouri + + var/datum/global_iterator/pr_internal_damage //processes internal damage + + + var/wreckage + + var/list/equipment = new + var/obj/selected + //var/max_equip = 3 + + var/datum/events/events + + + +/obj/vehicle/New() + ..() + events = new + icon_state += "-unmanned" + add_radio() + //add_cabin() //No cabin for non-airtights + + spark_system.set_up(2, 0, src) + spark_system.attach(src) + add_cell() + add_iterators() + removeVerb(/obj/mecha/verb/disconnect_from_port) + removeVerb(/atom/movable/verb/pull) + log_message("[src.name]'s functions initialised. Work protocols active - Entering IDLE mode.") + loc.Entered(src) + return + + +//################ Helpers ########################################################### + + +/obj/vehicle/proc/removeVerb(verb_path) + verbs -= verb_path + +/obj/vehicle/proc/addVerb(verb_path) + verbs += verb_path + +/*/obj/vehicle/proc/add_airtank() //In airtight.dm -Agouri + internal_tank = new /obj/machinery/portable_atmospherics/canister/air(src) + return internal_tank*/ + +/obj/vehicle/proc/add_cell(var/obj/item/weapon/cell/C=null) + if(C) + C.forceMove(src) + cell = C + return + cell = new(src) + cell.charge = 15000 + cell.maxcharge = 15000 + +/*/obj/vehicle/proc/add_cabin() //In airtight.dm -Agouri + cabin_air = new + cabin_air.temperature = T20C + cabin_air.volume = 200 + cabin_air.oxygen = O2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) + cabin_air.nitrogen = N2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) + return cabin_air*/ + +/obj/vehicle/proc/add_radio() + radio = new(src) + radio.name = "[src] radio" + radio.icon = icon + radio.icon_state = icon_state + radio.subspace_transmission = 1 + +/obj/vehicle/proc/add_iterators() + pr_inertial_movement = new /datum/global_iterator/vehicle_intertial_movement(null,0) + //pr_internal_damage = new /datum/global_iterator/vehicle_internal_damage(list(src),0) + //pr_int_temp_processor = new /datum/global_iterator/vehicle_preserve_temp(list(src)) //In airtight.dm's add_airtight_iterators -Agouri + //pr_give_air = new /datum/global_iterator/vehicle_tank_give_air(list(src) //Same here -Agouri + +/obj/vehicle/proc/check_for_support() + if(locate(/obj/structure/grille, orange(1, src)) || locate(/obj/structure/lattice, orange(1, src)) || locate(/turf/simulated, orange(1, src)) || locate(/turf/unsimulated, orange(1, src))) + return 1 + else + return 0 + +//################ Logs and messages ############################################ + + +/obj/vehicle/proc/log_message(message as text,red=null) + log.len++ + log[log.len] = list("time"=world.timeofday,"message"="[red?"":null][message][red?"":null]") + return log.len + + + +//################ Global Iterator Datums ###################################### + + +/datum/global_iterator/vehicle_intertial_movement //inertial movement in space + delay = 7 + + process(var/obj/vehicle/V as obj, direction) + if(direction) + if(!step(V, direction)||V.check_for_support()) + src.stop() + else + src.stop() + return + + +/datum/global_iterator/mecha_internal_damage // processing internal damage + + process(var/obj/mecha/mecha) + if(!mecha.hasInternalDamage()) + return stop() + if(mecha.hasInternalDamage(MECHA_INT_FIRE)) + if(!mecha.hasInternalDamage(MECHA_INT_TEMP_CONTROL) && prob(5)) + mecha.clearInternalDamage(MECHA_INT_FIRE) + if(mecha.internal_tank) + if(mecha.internal_tank.return_pressure()>mecha.internal_tank.maximum_pressure && !(mecha.hasInternalDamage(MECHA_INT_TANK_BREACH))) + mecha.setInternalDamage(MECHA_INT_TANK_BREACH) + var/datum/gas_mixture/int_tank_air = mecha.internal_tank.return_air() + if(int_tank_air && int_tank_air.return_volume()>0) //heat the air_contents + int_tank_air.temperature = min(6000+T0C, int_tank_air.temperature+rand(10,15)) + if(mecha.cabin_air && mecha.cabin_air.return_volume()>0) + mecha.cabin_air.temperature = min(6000+T0C, mecha.cabin_air.return_temperature()+rand(10,15)) + if(mecha.cabin_air.return_temperature()>mecha.max_temperature/2) + mecha.take_damage(4/round(mecha.max_temperature/mecha.cabin_air.return_temperature(),0.1),"fire") + if(mecha.hasInternalDamage(MECHA_INT_TEMP_CONTROL)) //stop the mecha_preserve_temp loop datum + mecha.pr_int_temp_processor.stop() + if(mecha.hasInternalDamage(MECHA_INT_TANK_BREACH)) //remove some air from internal tank + if(mecha.internal_tank) + var/datum/gas_mixture/int_tank_air = mecha.internal_tank.return_air() + var/datum/gas_mixture/leaked_gas = int_tank_air.remove_ratio(0.10) + if(mecha.loc && hascall(mecha.loc,"assume_air")) + mecha.loc.assume_air(leaked_gas) + else + qdel(leaked_gas) + if(mecha.hasInternalDamage(MECHA_INT_SHORT_CIRCUIT)) + if(mecha.get_charge()) + mecha.spark_system.start() + mecha.cell.charge -= min(20,mecha.cell.charge) + mecha.cell.maxcharge -= min(20,mecha.cell.maxcharge) return \ No newline at end of file diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 0da8f612405..f5bf7af81d7 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -523,7 +523,7 @@ var/list/admin_verbs_mentor = list( if(C) message_admins("[key_name_admin(src)] has warned [key_name_admin(C)] resulting in a [AUTOBANTIME] minute ban.") C << "You have been autobanned due to a warning by [ckey].
This is a temporary ban, it will be removed in [AUTOBANTIME] minutes." - del(C) + qdel(C) else message_admins("[key_name_admin(src)] has warned [warned_ckey] resulting in a [AUTOBANTIME] minute ban.") AddBan(warned_ckey, D.last_id, "Autobanning due to too many formal warnings", ckey, 1, AUTOBANTIME) diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index d1cc15b0fe1..4b2b246cc0a 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -16,7 +16,7 @@ var/list/admin_datums = list() /datum/admins/New(initial_rank = "Temporary Admin", initial_rights = 0, ckey) if(!ckey) error("Admin datum created without a ckey argument. Datum has been deleted") - del(src) + qdel(src) return admincaster_signature = "Nanotrasen Officer #[rand(0,9)][rand(0,9)][rand(0,9)]" rank = initial_rank @@ -92,5 +92,5 @@ you will have to do something like if(client.holder.rights & R_ADMIN) yourself. /client/proc/deadmin() if(holder) holder.disassociate() - //del(holder) + //qdel(holder) return 1 diff --git a/code/modules/admin/player_notes.dm b/code/modules/admin/player_notes.dm index 3a74da5fca6..a00a208d3b5 100644 --- a/code/modules/admin/player_notes.dm +++ b/code/modules/admin/player_notes.dm @@ -1,167 +1,167 @@ -//This stuff was originally intended to be integrated into the ban-system I was working on -//but it's safe to say that'll never be finished. So I've merged it into the current player panel. -//enjoy ~Carn -/* -#define NOTESFILE "data/player_notes.sav" //where the player notes are saved - -datum/admins/proc/notes_show(var/ckey) - usr << browse("Player Notes[notes_gethtml(ckey)]","window=player_notes;size=700x400") - - -datum/admins/proc/notes_gethtml(var/ckey) - var/savefile/notesfile = new(NOTESFILE) - if(!notesfile) return "Error: Cannot access [NOTESFILE]" - if(ckey) - . = "Notes for [ckey]: \[+\] \[-\]
" - notesfile.cd = "/[ckey]" - var/index = 1 - while( !notesfile.eof ) - var/note - notesfile >> note - . += "[note] \[-\]
" - index++ - else - . = "All Notes: \[+\] \[-\]
" - notesfile.cd = "/" - for(var/dir in notesfile.dir) - . += "[dir]
" - return - - -//handles adding notes to the end of a ckey's buffer -//originally had seperate entries such as var/by to record who left the note and when -//but the current bansystem is a heap of dung. -/proc/notes_add(var/ckey, var/note) - if(!ckey) - ckey = ckey(input(usr,"Who would you like to add notes for?","Enter a ckey",null) as text|null) - if(!ckey) return - - if(!note) - note = html_encode(input(usr,"Enter your note:","Enter some text",null) as message|null) - if(!note) return - - var/savefile/notesfile = new(NOTESFILE) - if(!notesfile) return - notesfile.cd = "/[ckey]" - notesfile.eof = 1 //move to the end of the buffer - notesfile << "[time2text(world.realtime,"DD-MMM-YYYY")] | [note][(usr && usr.ckey)?" ~[usr.ckey]":""]" - return - -//handles removing entries from the buffer, or removing the entire directory if no start_index is given -/proc/notes_remove(var/ckey, var/start_index, var/end_index) - var/savefile/notesfile = new(NOTESFILE) - if(!notesfile) return - - if(!ckey) - notesfile.cd = "/" - ckey = ckey(input(usr,"Who would you like to remove notes for?","Enter a ckey",null) as null|anything in notesfile.dir) - if(!ckey) return - - if(start_index) - notesfile.cd = "/[ckey]" - var/list/noteslist = list() - if(!end_index) end_index = start_index - var/index = 0 - while( !notesfile.eof ) - index++ - var/temp - notesfile >> temp - if( (start_index <= index) && (index <= end_index) ) - continue - noteslist += temp - - notesfile.eof = -2 //Move to the start of the buffer and then erase. - - for( var/note in noteslist ) - notesfile << note - else - notesfile.cd = "/" - if(alert(usr,"Are you sure you want to remove all their notes?","Confirmation","No","Yes - Remove all notes") == "Yes - Remove all notes") - notesfile.dir.Remove(ckey) - return - -#undef NOTESFILE -*/ - -//Hijacking this file for BS12 playernotes functions. I like this ^ one systemm alright, but converting sounds too bothersome~ Chinsky. - -/proc/notes_add(var/key, var/note, var/mob/usr) - if (!key || !note) - return - - //Loading list of notes for this key - var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") - var/list/infos - info >> infos - if(!infos) infos = list() - - //Overly complex timestamp creation - var/modifyer = "th" - switch(time2text(world.timeofday, "DD")) - if("01","21","31") - modifyer = "st" - if("02","22",) - modifyer = "nd" - if("03","23") - modifyer = "rd" - var/day_string = "[time2text(world.timeofday, "DD")][modifyer]" - if(copytext(day_string,1,2) == "0") - day_string = copytext(day_string,2) - var/full_date = time2text(world.timeofday, "DDD, Month DD of YYYY") - var/day_loc = findtext(full_date, time2text(world.timeofday, "DD")) - - var/datum/player_info/P = new - if (usr) - P.author = usr.key - P.rank = usr.client.holder.rank - else - P.author = "Adminbot" - P.rank = "Friendly Robot" - P.content = note - P.timestamp = "[copytext(full_date,1,day_loc)][day_string][copytext(full_date,day_loc+2)]" - - infos += P - info << infos - - message_admins("\blue [key_name_admin(usr)] has edited [key]'s notes.") - log_admin("[key_name(usr)] has edited [key]'s notes.") - - del info - - //Updating list of keys with notes on them - var/savefile/note_list = new("data/player_notes.sav") - var/list/note_keys - note_list >> note_keys - if(!note_keys) note_keys = list() - if(!note_keys.Find(key)) note_keys += key - note_list << note_keys - del note_list - - -/proc/notes_del(var/key, var/index) - var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") - var/list/infos - info >> infos - if(!infos || infos.len < index) return - - var/datum/player_info/item = infos[index] - infos.Remove(item) - info << infos - - message_admins("\blue [key_name_admin(usr)] deleted one of [key]'s notes.") - log_admin("[key_name(usr)] deleted one of [key]'s notes.") - - del info - -/proc/show_player_info_irc(var/key as text) - var/dat = " Info on [key]%0D%0A" - var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") - var/list/infos - info >> infos - if(!infos) - dat = "No information found on the given key." - else - for(var/datum/player_info/I in infos) - dat += "[I.content]%0D%0Aby [I.author] ([I.rank]) on [I.timestamp]%0D%0A%0D%0A" - - return dat +//This stuff was originally intended to be integrated into the ban-system I was working on +//but it's safe to say that'll never be finished. So I've merged it into the current player panel. +//enjoy ~Carn +/* +#define NOTESFILE "data/player_notes.sav" //where the player notes are saved + +datum/admins/proc/notes_show(var/ckey) + usr << browse("Player Notes[notes_gethtml(ckey)]","window=player_notes;size=700x400") + + +datum/admins/proc/notes_gethtml(var/ckey) + var/savefile/notesfile = new(NOTESFILE) + if(!notesfile) return "Error: Cannot access [NOTESFILE]" + if(ckey) + . = "Notes for [ckey]: \[+\] \[-\]
" + notesfile.cd = "/[ckey]" + var/index = 1 + while( !notesfile.eof ) + var/note + notesfile >> note + . += "[note] \[-\]
" + index++ + else + . = "All Notes: \[+\] \[-\]
" + notesfile.cd = "/" + for(var/dir in notesfile.dir) + . += "[dir]
" + return + + +//handles adding notes to the end of a ckey's buffer +//originally had seperate entries such as var/by to record who left the note and when +//but the current bansystem is a heap of dung. +/proc/notes_add(var/ckey, var/note) + if(!ckey) + ckey = ckey(input(usr,"Who would you like to add notes for?","Enter a ckey",null) as text|null) + if(!ckey) return + + if(!note) + note = html_encode(input(usr,"Enter your note:","Enter some text",null) as message|null) + if(!note) return + + var/savefile/notesfile = new(NOTESFILE) + if(!notesfile) return + notesfile.cd = "/[ckey]" + notesfile.eof = 1 //move to the end of the buffer + notesfile << "[time2text(world.realtime,"DD-MMM-YYYY")] | [note][(usr && usr.ckey)?" ~[usr.ckey]":""]" + return + +//handles removing entries from the buffer, or removing the entire directory if no start_index is given +/proc/notes_remove(var/ckey, var/start_index, var/end_index) + var/savefile/notesfile = new(NOTESFILE) + if(!notesfile) return + + if(!ckey) + notesfile.cd = "/" + ckey = ckey(input(usr,"Who would you like to remove notes for?","Enter a ckey",null) as null|anything in notesfile.dir) + if(!ckey) return + + if(start_index) + notesfile.cd = "/[ckey]" + var/list/noteslist = list() + if(!end_index) end_index = start_index + var/index = 0 + while( !notesfile.eof ) + index++ + var/temp + notesfile >> temp + if( (start_index <= index) && (index <= end_index) ) + continue + noteslist += temp + + notesfile.eof = -2 //Move to the start of the buffer and then erase. + + for( var/note in noteslist ) + notesfile << note + else + notesfile.cd = "/" + if(alert(usr,"Are you sure you want to remove all their notes?","Confirmation","No","Yes - Remove all notes") == "Yes - Remove all notes") + notesfile.dir.Remove(ckey) + return + +#undef NOTESFILE +*/ + +//Hijacking this file for BS12 playernotes functions. I like this ^ one systemm alright, but converting sounds too bothersome~ Chinsky. + +/proc/notes_add(var/key, var/note, var/mob/usr) + if (!key || !note) + return + + //Loading list of notes for this key + var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") + var/list/infos + info >> infos + if(!infos) infos = list() + + //Overly complex timestamp creation + var/modifyer = "th" + switch(time2text(world.timeofday, "DD")) + if("01","21","31") + modifyer = "st" + if("02","22",) + modifyer = "nd" + if("03","23") + modifyer = "rd" + var/day_string = "[time2text(world.timeofday, "DD")][modifyer]" + if(copytext(day_string,1,2) == "0") + day_string = copytext(day_string,2) + var/full_date = time2text(world.timeofday, "DDD, Month DD of YYYY") + var/day_loc = findtext(full_date, time2text(world.timeofday, "DD")) + + var/datum/player_info/P = new + if (usr) + P.author = usr.key + P.rank = usr.client.holder.rank + else + P.author = "Adminbot" + P.rank = "Friendly Robot" + P.content = note + P.timestamp = "[copytext(full_date,1,day_loc)][day_string][copytext(full_date,day_loc+2)]" + + infos += P + info << infos + + message_admins("\blue [key_name_admin(usr)] has edited [key]'s notes.") + log_admin("[key_name(usr)] has edited [key]'s notes.") + + qdel(info) + + //Updating list of keys with notes on them + var/savefile/note_list = new("data/player_notes.sav") + var/list/note_keys + note_list >> note_keys + if(!note_keys) note_keys = list() + if(!note_keys.Find(key)) note_keys += key + note_list << note_keys + qdel(note_list) + + +/proc/notes_del(var/key, var/index) + var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") + var/list/infos + info >> infos + if(!infos || infos.len < index) return + + var/datum/player_info/item = infos[index] + infos.Remove(item) + info << infos + + message_admins("\blue [key_name_admin(usr)] deleted one of [key]'s notes.") + log_admin("[key_name(usr)] deleted one of [key]'s notes.") + + qdel(info) + +/proc/show_player_info_irc(var/key as text) + var/dat = " Info on [key]%0D%0A" + var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") + var/list/infos + info >> infos + if(!infos) + dat = "No information found on the given key." + else + for(var/datum/player_info/I in infos) + dat += "[I.content]%0D%0Aby [I.author] ([I.rank]) on [I.timestamp]%0D%0A%0D%0A" + + return dat diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 594d663b346..9206b1b933b 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -745,7 +745,7 @@ log_admin("[key_name(usr)] booted [key_name(M)].") message_admins("\blue [key_name_admin(usr)] booted [key_name_admin(M)].", 1) //M.client = null - del(M.client) + qdel(M.client) /* //Player Notes else if(href_list["notes"]) @@ -811,8 +811,8 @@ log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.") message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.") - del(M.client) - //del(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends. + qdel(M.client) + //qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends. if("No") if(!check_rights(R_BAN)) return var/reason = sanitize(input(usr,"Reason?","reason","Griefer") as text|null) @@ -836,8 +836,8 @@ feedback_inc("ban_perma",1) DB_ban_record(BANTYPE_PERMA, M, -1, reason) - del(M.client) - //del(M) + qdel(M.client) + //qdel(M) if("Cancel") return @@ -1301,7 +1301,7 @@ S.victim = M S.loc = M.loc spawn(20) - del(S) + qdel(S) var/turf/simulated/floor/T = get_turf(M) if(istype(T)) @@ -1424,7 +1424,7 @@ src.owner << "\red Message reply failed." spawn(100) - del(P) + qdel(P) return else if(href_list["SolGovFaxReply"]) @@ -1669,28 +1669,28 @@ feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","SC") for(var/obj/item/clothing/under/O in world) - del(O) + qdel(O) ok = 1 if("sec_all_clothes") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","SAC") for(var/obj/item/clothing/O in world) - del(O) + qdel(O) ok = 1 if("sec_classic1") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","SC1") for(var/obj/item/clothing/suit/fire/O in world) - del(O) + qdel(O) for(var/obj/structure/grille/O in world) - del(O) + qdel(O) /* for(var/obj/machinery/vehicle/pod/O in world) for(var/mob/M in src) M.loc = src.loc if (M.client) M.client.perspective = MOB_PERSPECTIVE M.client.eye = M - del(O) + qdel(O) ok = 1*/ if("monkey") feedback_inc("admin_secrets_fun_used",1) @@ -2044,7 +2044,7 @@ var/turf/T = pick(blobstart) var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 ) spawn(rand(100, 600)) - del(bh) + qdel(bh) if("timeanomalies") //dear god this code was awful :P Still needs further optimisation feedback_inc("admin_secrets_fun_used",1) diff --git a/code/modules/admin/verbs/BrokenInhands.dm b/code/modules/admin/verbs/BrokenInhands.dm index 914ba1b5df4..e5d6dc2661a 100644 --- a/code/modules/admin/verbs/BrokenInhands.dm +++ b/code/modules/admin/verbs/BrokenInhands.dm @@ -26,7 +26,7 @@ // if(!istates.Find(O.item_state)) // text += "[O.type] MISSING NORMAL ICON CALLED\n\"[O.item_state]\" IN \"[O.icon]\"\n" //text+="\n" - del(O) + qdel(O) if(text) var/F = file("broken_icons.txt") fdel(F) diff --git a/code/modules/admin/verbs/SDQL.dm b/code/modules/admin/verbs/SDQL.dm index d8626da403a..a98cc3a1d95 100644 --- a/code/modules/admin/verbs/SDQL.dm +++ b/code/modules/admin/verbs/SDQL.dm @@ -1,497 +1,497 @@ - -//Structured Datum Query Language. Basically SQL meets BYOND objects. - -//Note: For use in BS12, need text_starts_with proc, and to modify the action on select to use BS12's object edit command(s). - -/client/proc/SDQL_query(query_text as message) - set category = "Admin" - if(!check_rights(R_DEBUG)) //Shouldn't happen... but just to be safe. - message_admins("\red ERROR: Non-admin [usr.key] attempted to execute a SDQL query!") - log_admin("Non-admin [usr.key] attempted to execute a SDQL query!") - - var/list/query_list = SDQL_tokenize(query_text) - - if(query_list.len < 2) - if(query_list.len > 0) - usr << "\red SDQL: Too few discrete tokens in query \"[query_text]\". Please check your syntax and try again." - return - - if(!(lowertext(query_list[1]) in list("select", "delete", "update"))) - usr << "\red SDQL: Unknown query type: \"[query_list[1]]\" in query \"[query_text]\". Please check your syntax and try again." - return - - var/list/types = list() - - var/i - for(i = 2; i <= query_list.len; i += 2) - types += query_list[i] - - if(i + 1 >= query_list.len || query_list[i + 1] != ",") - break - - i++ - - var/list/from = list() - - if(i <= query_list.len) - if(lowertext(query_list[i]) in list("from", "in")) - for(i++; i <= query_list.len; i += 2) - from += query_list[i] - - if(i + 1 >= query_list.len || query_list[i + 1] != ",") - break - - i++ - - if(from.len < 1) - from += "world" - - var/list/set_vars = list() - - if(lowertext(query_list[1]) == "update") - if(i <= query_list.len && lowertext(query_list[i]) == "set") - for(i++; i <= query_list.len; i++) - if(i + 2 <= query_list.len && query_list[i + 1] == "=") - set_vars += query_list[i] - set_vars[query_list[i]] = query_list[i + 2] - - else - usr << "\red SDQL: Invalid set parameter in query \"[query_text]\". Please check your syntax and try again." - return - - i += 3 - - if(i >= query_list.len || query_list[i] != ",") - break - - if(set_vars.len < 1) - usr << "\red SDQL: Invalid or missing set in query \"[query_text]\". Please check your syntax and try again." - return - - var/list/where = list() - - if(i <= query_list.len && lowertext(query_list[i]) == "where") - where = query_list.Copy(i + 1) - - var/list/from_objs = list() - if("world" in from) - from_objs += world - else - for(var/f in from) - if(copytext(f, 1, 2) == "'" || copytext(f, 1, 2) == "\"") - from_objs += locate(copytext(f, 2, length(f))) - else if(copytext(f, 1, 2) != "/") - from_objs += locate(f) - else - var/f2 = text2path(f) - if(text_starts_with(f, "/mob")) - for(var/mob/m in world) - if(istype(m, f2)) - from_objs += m - - else if(text_starts_with(f, "/turf/space")) - for(var/turf/space/m in world) - if(istype(m, f2)) - from_objs += m - - else if(text_starts_with(f, "/turf/simulated")) - for(var/turf/simulated/m in world) - if(istype(m, f2)) - from_objs += m - - else if(text_starts_with(f, "/turf/unsimulated")) - for(var/turf/unsimulated/m in world) - if(istype(m, f2)) - from_objs += m - - else if(text_starts_with(f, "/turf")) - for(var/turf/m in world) - if(istype(m, f2)) - from_objs += m - - else if(text_starts_with(f, "/area")) - for(var/area/m in world) - if(istype(m, f2)) - from_objs += m - - else if(text_starts_with(f, "/obj/item")) - for(var/obj/item/m in world) - if(istype(m, f2)) - from_objs += m - - else if(text_starts_with(f, "/obj/machinery")) - for(var/obj/machinery/m in world) - if(istype(m, f2)) - from_objs += m - - else if(text_starts_with(f, "/obj")) - for(var/obj/m in world) - if(istype(m, f2)) - from_objs += m - - else if(text_starts_with(f, "/atom")) - for(var/atom/m in world) - if(istype(m, f2)) - from_objs += m -/* - else - for(var/datum/m in world) - if(istype(m, f2)) - from_objs += m -*/ - - var/list/objs = list() - - for(var/from_obj in from_objs) - if("*" in types) - objs += from_obj:contents - else - for(var/f in types) - if(copytext(f, 1, 2) == "'" || copytext(f, 1, 2) == "\"") - objs += locate(copytext(f, 2, length(f))) in from_obj - else if(copytext(f, 1, 2) != "/") - objs += locate(f) in from_obj - else - var/f2 = text2path(f) - if(text_starts_with(f, "/mob")) - for(var/mob/m in from_obj) - if(istype(m, f2)) - objs += m - - else if(text_starts_with(f, "/turf/space")) - for(var/turf/space/m in from_obj) - if(istype(m, f2)) - objs += m - - else if(text_starts_with(f, "/turf/simulated")) - for(var/turf/simulated/m in from_obj) - if(istype(m, f2)) - objs += m - - else if(text_starts_with(f, "/turf/unsimulated")) - for(var/turf/unsimulated/m in from_obj) - if(istype(m, f2)) - objs += m - - else if(text_starts_with(f, "/turf")) - for(var/turf/m in from_obj) - if(istype(m, f2)) - objs += m - - else if(text_starts_with(f, "/area")) - for(var/area/m in from_obj) - if(istype(m, f2)) - objs += m - - else if(text_starts_with(f, "/obj/item")) - for(var/obj/item/m in from_obj) - if(istype(m, f2)) - objs += m - - else if(text_starts_with(f, "/obj/machinery")) - for(var/obj/machinery/m in from_obj) - if(istype(m, f2)) - objs += m - - else if(text_starts_with(f, "/obj")) - for(var/obj/m in from_obj) - if(istype(m, f2)) - objs += m - - else if(text_starts_with(f, "/atom")) - for(var/atom/m in from_obj) - if(istype(m, f2)) - objs += m - - else - for(var/datum/m in from_obj) - if(istype(m, f2)) - objs += m - - - for(var/datum/t in objs) - var/currently_false = 0 - for(i = 1, i - 1 < where.len, i++) - var/v = where[i++] - var/compare_op = where[i++] - if(!(compare_op in list("==", "=", "<>", "<", ">", "<=", ">=", "!="))) - usr << "\red SDQL: Unknown comparison operator [compare_op] in where clause following [v] in query \"[query_text]\". Please check your syntax and try again." - return - - var/j - for(j = i, j <= where.len, j++) - if(lowertext(where[j]) in list("and", "or", ";")) - break - - if(!currently_false) - var/value = SDQL_text2value(t, v) - var/result = SDQL_evaluate(t, where.Copy(i, j)) - - switch(compare_op) - if("=", "==") - currently_false = !(value == result) - - if("!=", "<>") - currently_false = !(value != result) - - if("<") - currently_false = !(value < result) - - if(">") - currently_false = !(value > result) - - if("<=") - currently_false = !(value <= result) - - if(">=") - currently_false = !(value >= result) - - - if(j > where.len || lowertext(where[j]) == ";") - break - else if(lowertext(where[j]) == "or") - if(currently_false) - currently_false = 0 - else - break - - i = j - - if(currently_false) - objs -= t - - - - usr << "\blue SQDL Query: [query_text]" - message_admins("[usr] executed SDQL query: \"[query_text]\".") -/* - for(var/t in types) - usr << "Type: [t]" - - for(var/t in from) - usr << "From: [t]" - - for(var/t in set_vars) - usr << "Set: [t] = [set_vars[t]]" - - if(where.len) - var/where_str = "" - for(var/t in where) - where_str += "[t] " - - usr << "Where: [where_str]" - - usr << "From objects:" - for(var/datum/t in from_objs) - usr << t - - usr << "Objects:" - for(var/datum/t in objs) - usr << t -*/ - switch(lowertext(query_list[1])) - if("delete") - for(var/datum/t in objs) - del t - - if("update") - for(var/datum/t in objs) - objs[t] = list() - for(var/v in set_vars) - if(v in t.vars) - objs[t][v] = SDQL_text2value(t, set_vars[v]) - - for(var/datum/t in objs) - for(var/v in objs[t]) - t.vars[v] = objs[t][v] - - if("select") - var/text = "" - for(var/datum/t in objs) - if(istype(t, /atom)) - var/atom/a = t - - if(a.x) - text += "\ref[t]: [t] at ([a.x], [a.y], [a.z])
" - - else if(a.loc && a.loc.x) - text += "\ref[t]: [t] in [a.loc] at ([a.loc.x], [a.loc.y], [a.loc.z])
" - - else - text += "\ref[t]: [t]
" - - else - text += "\ref[t]: [t]
" - - //text += "[t]
" - usr << browse(text, "window=sdql_result") - - -/client/Topic(href,href_list[],hsrc) - if(href_list["SDQL_select"]) - debug_variables(locate(href_list["SDQL_select"])) - - ..() - - -/proc/SDQL_evaluate(datum/object, list/equation) - if(equation.len == 0) - return null - - else if(equation.len == 1) - return SDQL_text2value(object, equation[1]) - - else if(equation[1] == "!") - return !SDQL_evaluate(object, equation.Copy(2)) - - else if(equation[1] == "-") - return -SDQL_evaluate(object, equation.Copy(2)) - - - else - usr << "\red SDQL: Sorry, equations not yet supported :(" - return null - - -/proc/SDQL_text2value(datum/object, text) - if(text2num(text) != null) - return text2num(text) - else if(text == "null") - return null - else if(copytext(text, 1, 2) == "'" || copytext(text, 1, 2) == "\"" ) - return copytext(text, 2, length(text)) - else if(copytext(text, 1, 2) == "/") - return text2path(text) - else - if(findtext(text, ".")) - var/split = findtext(text, ".") - var/v = copytext(text, 1, split) - - if((v in object.vars) && istype(object.vars[v], /datum)) - return SDQL_text2value(object.vars[v], copytext(text, split + 1)) - else - return null - - else - if(text in object.vars) - return object.vars[text] - else - return null - - -/proc/text_starts_with(text, start) - if(copytext(text, 1, length(start) + 1) == start) - return 1 - else - return 0 - - - - - -/proc/SDQL_tokenize(query_text) - - var/list/whitespace = list(" ", "\n", "\t") - var/list/single = list("(", ")", ",", "+", "-") - var/list/multi = list( - "=" = list("", "="), - "<" = list("", "=", ">"), - ">" = list("", "="), - "!" = list("", "=")) - - var/word = "" - var/list/query_list = list() - var/len = length(query_text) - - for(var/i = 1, i <= len, i++) - var/char = copytext(query_text, i, i + 1) - - if(char in whitespace) - if(word != "") - query_list += word - word = "" - - else if(char in single) - if(word != "") - query_list += word - word = "" - - query_list += char - - else if(char in multi) - if(word != "") - query_list += word - word = "" - - var/char2 = copytext(query_text, i + 1, i + 2) - - if(char2 in multi[char]) - query_list += "[char][char2]" - i++ - - else - query_list += char - - else if(char == "'") - if(word != "") - usr << "\red SDQL: You have an error in your SDQL syntax, unexpected ' in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." - return null - - word = "'" - - for(i++, i <= len, i++) - char = copytext(query_text, i, i + 1) - - if(char == "'") - if(copytext(query_text, i + 1, i + 2) == "'") - word += "'" - i++ - - else - break - - else - word += char - - if(i > len) - usr << "\red SDQL: You have an error in your SDQL syntax, unmatched ' in query: \"[query_text]\". Please check your syntax, and try again." - return null - - query_list += "[word]'" - word = "" - - else if(char == "\"") - if(word != "") - usr << "\red SDQL: You have an error in your SDQL syntax, unexpected \" in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." - return null - - word = "\"" - - for(i++, i <= len, i++) - char = copytext(query_text, i, i + 1) - - if(char == "\"") - if(copytext(query_text, i + 1, i + 2) == "'") - word += "\"" - i++ - - else - break - - else - word += char - - if(i > len) - usr << "\red SDQL: You have an error in your SDQL syntax, unmatched \" in query: \"[query_text]\". Please check your syntax, and try again." - return null - - query_list += "[word]\"" - word = "" - - else - word += char - - if(word != "") - query_list += word - - return query_list + +//Structured Datum Query Language. Basically SQL meets BYOND objects. + +//Note: For use in BS12, need text_starts_with proc, and to modify the action on select to use BS12's object edit command(s). + +/client/proc/SDQL_query(query_text as message) + set category = "Admin" + if(!check_rights(R_DEBUG)) //Shouldn't happen... but just to be safe. + message_admins("\red ERROR: Non-admin [usr.key] attempted to execute a SDQL query!") + log_admin("Non-admin [usr.key] attempted to execute a SDQL query!") + + var/list/query_list = SDQL_tokenize(query_text) + + if(query_list.len < 2) + if(query_list.len > 0) + usr << "\red SDQL: Too few discrete tokens in query \"[query_text]\". Please check your syntax and try again." + return + + if(!(lowertext(query_list[1]) in list("select", "delete", "update"))) + usr << "\red SDQL: Unknown query type: \"[query_list[1]]\" in query \"[query_text]\". Please check your syntax and try again." + return + + var/list/types = list() + + var/i + for(i = 2; i <= query_list.len; i += 2) + types += query_list[i] + + if(i + 1 >= query_list.len || query_list[i + 1] != ",") + break + + i++ + + var/list/from = list() + + if(i <= query_list.len) + if(lowertext(query_list[i]) in list("from", "in")) + for(i++; i <= query_list.len; i += 2) + from += query_list[i] + + if(i + 1 >= query_list.len || query_list[i + 1] != ",") + break + + i++ + + if(from.len < 1) + from += "world" + + var/list/set_vars = list() + + if(lowertext(query_list[1]) == "update") + if(i <= query_list.len && lowertext(query_list[i]) == "set") + for(i++; i <= query_list.len; i++) + if(i + 2 <= query_list.len && query_list[i + 1] == "=") + set_vars += query_list[i] + set_vars[query_list[i]] = query_list[i + 2] + + else + usr << "\red SDQL: Invalid set parameter in query \"[query_text]\". Please check your syntax and try again." + return + + i += 3 + + if(i >= query_list.len || query_list[i] != ",") + break + + if(set_vars.len < 1) + usr << "\red SDQL: Invalid or missing set in query \"[query_text]\". Please check your syntax and try again." + return + + var/list/where = list() + + if(i <= query_list.len && lowertext(query_list[i]) == "where") + where = query_list.Copy(i + 1) + + var/list/from_objs = list() + if("world" in from) + from_objs += world + else + for(var/f in from) + if(copytext(f, 1, 2) == "'" || copytext(f, 1, 2) == "\"") + from_objs += locate(copytext(f, 2, length(f))) + else if(copytext(f, 1, 2) != "/") + from_objs += locate(f) + else + var/f2 = text2path(f) + if(text_starts_with(f, "/mob")) + for(var/mob/m in world) + if(istype(m, f2)) + from_objs += m + + else if(text_starts_with(f, "/turf/space")) + for(var/turf/space/m in world) + if(istype(m, f2)) + from_objs += m + + else if(text_starts_with(f, "/turf/simulated")) + for(var/turf/simulated/m in world) + if(istype(m, f2)) + from_objs += m + + else if(text_starts_with(f, "/turf/unsimulated")) + for(var/turf/unsimulated/m in world) + if(istype(m, f2)) + from_objs += m + + else if(text_starts_with(f, "/turf")) + for(var/turf/m in world) + if(istype(m, f2)) + from_objs += m + + else if(text_starts_with(f, "/area")) + for(var/area/m in world) + if(istype(m, f2)) + from_objs += m + + else if(text_starts_with(f, "/obj/item")) + for(var/obj/item/m in world) + if(istype(m, f2)) + from_objs += m + + else if(text_starts_with(f, "/obj/machinery")) + for(var/obj/machinery/m in world) + if(istype(m, f2)) + from_objs += m + + else if(text_starts_with(f, "/obj")) + for(var/obj/m in world) + if(istype(m, f2)) + from_objs += m + + else if(text_starts_with(f, "/atom")) + for(var/atom/m in world) + if(istype(m, f2)) + from_objs += m +/* + else + for(var/datum/m in world) + if(istype(m, f2)) + from_objs += m +*/ + + var/list/objs = list() + + for(var/from_obj in from_objs) + if("*" in types) + objs += from_obj:contents + else + for(var/f in types) + if(copytext(f, 1, 2) == "'" || copytext(f, 1, 2) == "\"") + objs += locate(copytext(f, 2, length(f))) in from_obj + else if(copytext(f, 1, 2) != "/") + objs += locate(f) in from_obj + else + var/f2 = text2path(f) + if(text_starts_with(f, "/mob")) + for(var/mob/m in from_obj) + if(istype(m, f2)) + objs += m + + else if(text_starts_with(f, "/turf/space")) + for(var/turf/space/m in from_obj) + if(istype(m, f2)) + objs += m + + else if(text_starts_with(f, "/turf/simulated")) + for(var/turf/simulated/m in from_obj) + if(istype(m, f2)) + objs += m + + else if(text_starts_with(f, "/turf/unsimulated")) + for(var/turf/unsimulated/m in from_obj) + if(istype(m, f2)) + objs += m + + else if(text_starts_with(f, "/turf")) + for(var/turf/m in from_obj) + if(istype(m, f2)) + objs += m + + else if(text_starts_with(f, "/area")) + for(var/area/m in from_obj) + if(istype(m, f2)) + objs += m + + else if(text_starts_with(f, "/obj/item")) + for(var/obj/item/m in from_obj) + if(istype(m, f2)) + objs += m + + else if(text_starts_with(f, "/obj/machinery")) + for(var/obj/machinery/m in from_obj) + if(istype(m, f2)) + objs += m + + else if(text_starts_with(f, "/obj")) + for(var/obj/m in from_obj) + if(istype(m, f2)) + objs += m + + else if(text_starts_with(f, "/atom")) + for(var/atom/m in from_obj) + if(istype(m, f2)) + objs += m + + else + for(var/datum/m in from_obj) + if(istype(m, f2)) + objs += m + + + for(var/datum/t in objs) + var/currently_false = 0 + for(i = 1, i - 1 < where.len, i++) + var/v = where[i++] + var/compare_op = where[i++] + if(!(compare_op in list("==", "=", "<>", "<", ">", "<=", ">=", "!="))) + usr << "\red SDQL: Unknown comparison operator [compare_op] in where clause following [v] in query \"[query_text]\". Please check your syntax and try again." + return + + var/j + for(j = i, j <= where.len, j++) + if(lowertext(where[j]) in list("and", "or", ";")) + break + + if(!currently_false) + var/value = SDQL_text2value(t, v) + var/result = SDQL_evaluate(t, where.Copy(i, j)) + + switch(compare_op) + if("=", "==") + currently_false = !(value == result) + + if("!=", "<>") + currently_false = !(value != result) + + if("<") + currently_false = !(value < result) + + if(">") + currently_false = !(value > result) + + if("<=") + currently_false = !(value <= result) + + if(">=") + currently_false = !(value >= result) + + + if(j > where.len || lowertext(where[j]) == ";") + break + else if(lowertext(where[j]) == "or") + if(currently_false) + currently_false = 0 + else + break + + i = j + + if(currently_false) + objs -= t + + + + usr << "\blue SQDL Query: [query_text]" + message_admins("[usr] executed SDQL query: \"[query_text]\".") +/* + for(var/t in types) + usr << "Type: [t]" + + for(var/t in from) + usr << "From: [t]" + + for(var/t in set_vars) + usr << "Set: [t] = [set_vars[t]]" + + if(where.len) + var/where_str = "" + for(var/t in where) + where_str += "[t] " + + usr << "Where: [where_str]" + + usr << "From objects:" + for(var/datum/t in from_objs) + usr << t + + usr << "Objects:" + for(var/datum/t in objs) + usr << t +*/ + switch(lowertext(query_list[1])) + if("delete") + for(var/datum/t in objs) + qdel(t) + + if("update") + for(var/datum/t in objs) + objs[t] = list() + for(var/v in set_vars) + if(v in t.vars) + objs[t][v] = SDQL_text2value(t, set_vars[v]) + + for(var/datum/t in objs) + for(var/v in objs[t]) + t.vars[v] = objs[t][v] + + if("select") + var/text = "" + for(var/datum/t in objs) + if(istype(t, /atom)) + var/atom/a = t + + if(a.x) + text += "\ref[t]: [t] at ([a.x], [a.y], [a.z])
" + + else if(a.loc && a.loc.x) + text += "\ref[t]: [t] in [a.loc] at ([a.loc.x], [a.loc.y], [a.loc.z])
" + + else + text += "\ref[t]: [t]
" + + else + text += "\ref[t]: [t]
" + + //text += "[t]
" + usr << browse(text, "window=sdql_result") + + +/client/Topic(href,href_list[],hsrc) + if(href_list["SDQL_select"]) + debug_variables(locate(href_list["SDQL_select"])) + + ..() + + +/proc/SDQL_evaluate(datum/object, list/equation) + if(equation.len == 0) + return null + + else if(equation.len == 1) + return SDQL_text2value(object, equation[1]) + + else if(equation[1] == "!") + return !SDQL_evaluate(object, equation.Copy(2)) + + else if(equation[1] == "-") + return -SDQL_evaluate(object, equation.Copy(2)) + + + else + usr << "\red SDQL: Sorry, equations not yet supported :(" + return null + + +/proc/SDQL_text2value(datum/object, text) + if(text2num(text) != null) + return text2num(text) + else if(text == "null") + return null + else if(copytext(text, 1, 2) == "'" || copytext(text, 1, 2) == "\"" ) + return copytext(text, 2, length(text)) + else if(copytext(text, 1, 2) == "/") + return text2path(text) + else + if(findtext(text, ".")) + var/split = findtext(text, ".") + var/v = copytext(text, 1, split) + + if((v in object.vars) && istype(object.vars[v], /datum)) + return SDQL_text2value(object.vars[v], copytext(text, split + 1)) + else + return null + + else + if(text in object.vars) + return object.vars[text] + else + return null + + +/proc/text_starts_with(text, start) + if(copytext(text, 1, length(start) + 1) == start) + return 1 + else + return 0 + + + + + +/proc/SDQL_tokenize(query_text) + + var/list/whitespace = list(" ", "\n", "\t") + var/list/single = list("(", ")", ",", "+", "-") + var/list/multi = list( + "=" = list("", "="), + "<" = list("", "=", ">"), + ">" = list("", "="), + "!" = list("", "=")) + + var/word = "" + var/list/query_list = list() + var/len = length(query_text) + + for(var/i = 1, i <= len, i++) + var/char = copytext(query_text, i, i + 1) + + if(char in whitespace) + if(word != "") + query_list += word + word = "" + + else if(char in single) + if(word != "") + query_list += word + word = "" + + query_list += char + + else if(char in multi) + if(word != "") + query_list += word + word = "" + + var/char2 = copytext(query_text, i + 1, i + 2) + + if(char2 in multi[char]) + query_list += "[char][char2]" + i++ + + else + query_list += char + + else if(char == "'") + if(word != "") + usr << "\red SDQL: You have an error in your SDQL syntax, unexpected ' in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." + return null + + word = "'" + + for(i++, i <= len, i++) + char = copytext(query_text, i, i + 1) + + if(char == "'") + if(copytext(query_text, i + 1, i + 2) == "'") + word += "'" + i++ + + else + break + + else + word += char + + if(i > len) + usr << "\red SDQL: You have an error in your SDQL syntax, unmatched ' in query: \"[query_text]\". Please check your syntax, and try again." + return null + + query_list += "[word]'" + word = "" + + else if(char == "\"") + if(word != "") + usr << "\red SDQL: You have an error in your SDQL syntax, unexpected \" in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." + return null + + word = "\"" + + for(i++, i <= len, i++) + char = copytext(query_text, i, i + 1) + + if(char == "\"") + if(copytext(query_text, i + 1, i + 2) == "'") + word += "\"" + i++ + + else + break + + else + word += char + + if(i > len) + usr << "\red SDQL: You have an error in your SDQL syntax, unmatched \" in query: \"[query_text]\". Please check your syntax, and try again." + return null + + query_list += "[word]\"" + word = "" + + else + word += char + + if(word != "") + query_list += word + + return query_list diff --git a/code/modules/admin/verbs/SDQL_2.dm b/code/modules/admin/verbs/SDQL_2.dm index 549447da117..236237c23ad 100644 --- a/code/modules/admin/verbs/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL_2.dm @@ -1,426 +1,426 @@ - - -/client/proc/SDQL2_query(query_text as message) - set category = "Admin" - if(!check_rights(R_DEBUG)) //Shouldn't happen... but just to be safe. - message_admins("\red ERROR: Non-admin [usr.key] attempted to execute a SDQL query!") - log_admin("Non-admin [usr.key] attempted to execute a SDQL query!") - - if(!query_text || length(query_text) < 1) - return - - //world << query_text - - var/list/query_list = SDQL2_tokenize(query_text) - - if(!query_list || query_list.len < 1) - return - - var/list/query_tree = SDQL_parse(query_list) - - if(query_tree.len < 1) - return - - var/list/from_objs = list() - var/list/select_types = list() - - switch(query_tree[1]) - if("explain") - SDQL_testout(query_tree["explain"]) - return - - if("call") - if("on" in query_tree) - select_types = query_tree["on"] - else - return - - if("select", "delete", "update") - select_types = query_tree[query_tree[1]] - - from_objs = SDQL_from_objs(query_tree["from"]) - - var/list/objs = list() - - for(var/type in select_types) - var/char = copytext(type, 1, 2) - - if(char == "/" || char == "*") - for(var/from in from_objs) - objs += SDQL_get_all(type, from) - - else if(char == "'" || char == "\"") - objs += locate(copytext(type, 2, length(type))) - - if("where" in query_tree) - var/objs_temp = objs - objs = list() - for(var/datum/d in objs_temp) - if(SDQL_expression(d, query_tree["where"])) - objs += d - - //usr << "Query: [query_text]" - message_admins("[usr] executed SDQL query: \"[query_text]\".") - - switch(query_tree[1]) - if("delete") - for(var/datum/d in objs) - del d - - if("select") - var/text = "" - for(var/datum/t in objs) - if(istype(t, /atom)) - var/atom/a = t - - if(a.x) - text += "\ref[t]: [t] at ([a.x], [a.y], [a.z])
" - - else if(a.loc && a.loc.x) - text += "\ref[t]: [t] in [a.loc] at ([a.loc.x], [a.loc.y], [a.loc.z])
" - - else - text += "\ref[t]: [t]
" - - else - text += "\ref[t]: [t]
" - - usr << browse(text, "window=SDQL-result") - - if("update") - if("set" in query_tree) - var/list/set_list = query_tree["set"] - for(var/datum/d in objs) - var/list/vals = list() - for(var/v in set_list) - if(v in d.vars) - vals += v - vals[v] = SDQL_expression(d, set_list[v]) - - if(istype(d, /turf)) - for(var/v in vals) - if(v == "x" || v == "y" || v == "z") - continue - - d.vars[v] = vals[v] - - else - for(var/v in vals) - d.vars[v] = vals[v] - - - - - -/proc/SDQL_parse(list/query_list) - var/datum/SDQL_parser/parser = new(query_list) - var/list/query_tree = parser.parse() - - del(parser) - - return query_tree - - - -/proc/SDQL_testout(list/query_tree, indent = 0) - var/spaces = "" - for(var/s = 0, s < indent, s++) - spaces += " " - - for(var/item in query_tree) - if(istype(item, /list)) - world << "[spaces](" - SDQL_testout(item, indent + 1) - world << "[spaces])" - - else - world << "[spaces][item]" - - if(!isnum(item) && query_tree[item]) - - if(istype(query_tree[item], /list)) - world << "[spaces] (" - SDQL_testout(query_tree[item], indent + 2) - world << "[spaces] )" - - else - world << "[spaces] [query_tree[item]]" - - - -/proc/SDQL_from_objs(list/tree) - if("world" in tree) - return list(world) - - var/list/out = list() - - for(var/type in tree) - var/char = copytext(type, 1, 2) - - if(char == "/") - out += SDQL_get_all(type, world) - - else if(char == "'" || char == "\"") - out += locate(copytext(type, 2, length(type))) - - return out - - -/proc/SDQL_get_all(type, location) - var/list/out = list() - - if(type == "*") - for(var/datum/d in location) - out += d - - return out - - type = text2path(type) - - if(ispath(type, /mob)) - for(var/mob/d in location) - if(istype(d, type)) - out += d - - else if(ispath(type, /turf)) - for(var/turf/d in location) - if(istype(d, type)) - out += d - - else if(ispath(type, /obj)) - for(var/obj/d in location) - if(istype(d, type)) - out += d - - else if(ispath(type, /area)) - for(var/area/d in location) - if(istype(d, type)) - out += d - - else if(ispath(type, /atom)) - for(var/atom/d in location) - if(istype(d, type)) - out += d - - else - for(var/datum/d in location) - if(istype(d, type)) - out += d - - return out - - -/proc/SDQL_expression(datum/object, list/expression, start = 1) - var/result = 0 - var/val - - for(var/i = start, i <= expression.len, i++) - var/op = "" - - if(i > start) - op = expression[i] - i++ - - var/list/ret = SDQL_value(object, expression, i) - val = ret["val"] - i = ret["i"] - - if(op != "") - switch(op) - if("+") - result += val - if("-") - result -= val - if("*") - result *= val - if("/") - result /= val - if("&") - result &= val - if("|") - result |= val - if("^") - result ^= val - if("=", "==") - result = (result == val) - if("!=", "<>") - result = (result != val) - if("<") - result = (result < val) - if("<=") - result = (result <= val) - if(">") - result = (result > val) - if(">=") - result = (result >= val) - if("and", "&&") - result = (result && val) - if("or", "||") - result = (result || val) - else - usr << "\red SDQL2: Unknown op [op]" - result = null - else - result = val - - return result - -/proc/SDQL_value(datum/object, list/expression, start = 1) - var/i = start - var/val = null - - if(i > expression.len) - return list("val" = null, "i" = i) - - if(istype(expression[i], /list)) - val = SDQL_expression(object, expression[i]) - - else if(expression[i] == "!") - var/list/ret = SDQL_value(object, expression, i + 1) - val = !ret["val"] - i = ret["i"] - - else if(expression[i] == "~") - var/list/ret = SDQL_value(object, expression, i + 1) - val = ~ret["val"] - i = ret["i"] - - else if(expression[i] == "-") - var/list/ret = SDQL_value(object, expression, i + 1) - val = -ret["val"] - i = ret["i"] - - else if(expression[i] == "null") - val = null - - else if(isnum(expression[i])) - val = expression[i] - - else if(copytext(expression[i], 1, 2) in list("'", "\"")) - val = copytext(expression[i], 2, length(expression[i])) - - else - val = SDQL_var(object, expression, i) - i = expression.len - - return list("val" = val, "i" = i) - -/proc/SDQL_var(datum/object, list/expression, start = 1) - - if(expression[start] in object.vars) - - if(start < expression.len && expression[start + 1] == ".") - return SDQL_var(object.vars[expression[start]], expression[start + 2]) - - else - return object.vars[expression[start]] - - else - return null - -/proc/SDQL2_tokenize(query_text) - - var/list/whitespace = list(" ", "\n", "\t") - var/list/single = list("(", ")", ",", "+", "-", ".") - var/list/multi = list( - "=" = list("", "="), - "<" = list("", "=", ">"), - ">" = list("", "="), - "!" = list("", "=")) - - var/word = "" - var/list/query_list = list() - var/len = length(query_text) - - for(var/i = 1, i <= len, i++) - var/char = copytext(query_text, i, i + 1) - - if(char in whitespace) - if(word != "") - query_list += word - word = "" - - else if(char in single) - if(word != "") - query_list += word - word = "" - - query_list += char - - else if(char in multi) - if(word != "") - query_list += word - word = "" - - var/char2 = copytext(query_text, i + 1, i + 2) - - if(char2 in multi[char]) - query_list += "[char][char2]" - i++ - - else - query_list += char - - else if(char == "'") - if(word != "") - usr << "\red SDQL2: You have an error in your SDQL syntax, unexpected ' in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." - return null - - word = "'" - - for(i++, i <= len, i++) - char = copytext(query_text, i, i + 1) - - if(char == "'") - if(copytext(query_text, i + 1, i + 2) == "'") - word += "'" - i++ - - else - break - - else - word += char - - if(i > len) - usr << "\red SDQL2: You have an error in your SDQL syntax, unmatched ' in query: \"[query_text]\". Please check your syntax, and try again." - return null - - query_list += "[word]'" - word = "" - - else if(char == "\"") - if(word != "") - usr << "\red SDQL2: You have an error in your SDQL syntax, unexpected \" in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." - return null - - word = "\"" - - for(i++, i <= len, i++) - char = copytext(query_text, i, i + 1) - - if(char == "\"") - if(copytext(query_text, i + 1, i + 2) == "'") - word += "\"" - i++ - - else - break - - else - word += char - - if(i > len) - usr << "\red SDQL2: You have an error in your SDQL syntax, unmatched \" in query: \"[query_text]\". Please check your syntax, and try again." - return null - - query_list += "[word]\"" - word = "" - - else - word += char - - if(word != "") - query_list += word - - return query_list + + +/client/proc/SDQL2_query(query_text as message) + set category = "Admin" + if(!check_rights(R_DEBUG)) //Shouldn't happen... but just to be safe. + message_admins("\red ERROR: Non-admin [usr.key] attempted to execute a SDQL query!") + log_admin("Non-admin [usr.key] attempted to execute a SDQL query!") + + if(!query_text || length(query_text) < 1) + return + + //world << query_text + + var/list/query_list = SDQL2_tokenize(query_text) + + if(!query_list || query_list.len < 1) + return + + var/list/query_tree = SDQL_parse(query_list) + + if(query_tree.len < 1) + return + + var/list/from_objs = list() + var/list/select_types = list() + + switch(query_tree[1]) + if("explain") + SDQL_testout(query_tree["explain"]) + return + + if("call") + if("on" in query_tree) + select_types = query_tree["on"] + else + return + + if("select", "delete", "update") + select_types = query_tree[query_tree[1]] + + from_objs = SDQL_from_objs(query_tree["from"]) + + var/list/objs = list() + + for(var/type in select_types) + var/char = copytext(type, 1, 2) + + if(char == "/" || char == "*") + for(var/from in from_objs) + objs += SDQL_get_all(type, from) + + else if(char == "'" || char == "\"") + objs += locate(copytext(type, 2, length(type))) + + if("where" in query_tree) + var/objs_temp = objs + objs = list() + for(var/datum/d in objs_temp) + if(SDQL_expression(d, query_tree["where"])) + objs += d + + //usr << "Query: [query_text]" + message_admins("[usr] executed SDQL query: \"[query_text]\".") + + switch(query_tree[1]) + if("delete") + for(var/datum/d in objs) + qdel(d) + + if("select") + var/text = "" + for(var/datum/t in objs) + if(istype(t, /atom)) + var/atom/a = t + + if(a.x) + text += "\ref[t]: [t] at ([a.x], [a.y], [a.z])
" + + else if(a.loc && a.loc.x) + text += "\ref[t]: [t] in [a.loc] at ([a.loc.x], [a.loc.y], [a.loc.z])
" + + else + text += "\ref[t]: [t]
" + + else + text += "\ref[t]: [t]
" + + usr << browse(text, "window=SDQL-result") + + if("update") + if("set" in query_tree) + var/list/set_list = query_tree["set"] + for(var/datum/d in objs) + var/list/vals = list() + for(var/v in set_list) + if(v in d.vars) + vals += v + vals[v] = SDQL_expression(d, set_list[v]) + + if(istype(d, /turf)) + for(var/v in vals) + if(v == "x" || v == "y" || v == "z") + continue + + d.vars[v] = vals[v] + + else + for(var/v in vals) + d.vars[v] = vals[v] + + + + + +/proc/SDQL_parse(list/query_list) + var/datum/SDQL_parser/parser = new(query_list) + var/list/query_tree = parser.parse() + + qdel(parser) + + return query_tree + + + +/proc/SDQL_testout(list/query_tree, indent = 0) + var/spaces = "" + for(var/s = 0, s < indent, s++) + spaces += " " + + for(var/item in query_tree) + if(istype(item, /list)) + world << "[spaces](" + SDQL_testout(item, indent + 1) + world << "[spaces])" + + else + world << "[spaces][item]" + + if(!isnum(item) && query_tree[item]) + + if(istype(query_tree[item], /list)) + world << "[spaces] (" + SDQL_testout(query_tree[item], indent + 2) + world << "[spaces] )" + + else + world << "[spaces] [query_tree[item]]" + + + +/proc/SDQL_from_objs(list/tree) + if("world" in tree) + return list(world) + + var/list/out = list() + + for(var/type in tree) + var/char = copytext(type, 1, 2) + + if(char == "/") + out += SDQL_get_all(type, world) + + else if(char == "'" || char == "\"") + out += locate(copytext(type, 2, length(type))) + + return out + + +/proc/SDQL_get_all(type, location) + var/list/out = list() + + if(type == "*") + for(var/datum/d in location) + out += d + + return out + + type = text2path(type) + + if(ispath(type, /mob)) + for(var/mob/d in location) + if(istype(d, type)) + out += d + + else if(ispath(type, /turf)) + for(var/turf/d in location) + if(istype(d, type)) + out += d + + else if(ispath(type, /obj)) + for(var/obj/d in location) + if(istype(d, type)) + out += d + + else if(ispath(type, /area)) + for(var/area/d in location) + if(istype(d, type)) + out += d + + else if(ispath(type, /atom)) + for(var/atom/d in location) + if(istype(d, type)) + out += d + + else + for(var/datum/d in location) + if(istype(d, type)) + out += d + + return out + + +/proc/SDQL_expression(datum/object, list/expression, start = 1) + var/result = 0 + var/val + + for(var/i = start, i <= expression.len, i++) + var/op = "" + + if(i > start) + op = expression[i] + i++ + + var/list/ret = SDQL_value(object, expression, i) + val = ret["val"] + i = ret["i"] + + if(op != "") + switch(op) + if("+") + result += val + if("-") + result -= val + if("*") + result *= val + if("/") + result /= val + if("&") + result &= val + if("|") + result |= val + if("^") + result ^= val + if("=", "==") + result = (result == val) + if("!=", "<>") + result = (result != val) + if("<") + result = (result < val) + if("<=") + result = (result <= val) + if(">") + result = (result > val) + if(">=") + result = (result >= val) + if("and", "&&") + result = (result && val) + if("or", "||") + result = (result || val) + else + usr << "\red SDQL2: Unknown op [op]" + result = null + else + result = val + + return result + +/proc/SDQL_value(datum/object, list/expression, start = 1) + var/i = start + var/val = null + + if(i > expression.len) + return list("val" = null, "i" = i) + + if(istype(expression[i], /list)) + val = SDQL_expression(object, expression[i]) + + else if(expression[i] == "!") + var/list/ret = SDQL_value(object, expression, i + 1) + val = !ret["val"] + i = ret["i"] + + else if(expression[i] == "~") + var/list/ret = SDQL_value(object, expression, i + 1) + val = ~ret["val"] + i = ret["i"] + + else if(expression[i] == "-") + var/list/ret = SDQL_value(object, expression, i + 1) + val = -ret["val"] + i = ret["i"] + + else if(expression[i] == "null") + val = null + + else if(isnum(expression[i])) + val = expression[i] + + else if(copytext(expression[i], 1, 2) in list("'", "\"")) + val = copytext(expression[i], 2, length(expression[i])) + + else + val = SDQL_var(object, expression, i) + i = expression.len + + return list("val" = val, "i" = i) + +/proc/SDQL_var(datum/object, list/expression, start = 1) + + if(expression[start] in object.vars) + + if(start < expression.len && expression[start + 1] == ".") + return SDQL_var(object.vars[expression[start]], expression[start + 2]) + + else + return object.vars[expression[start]] + + else + return null + +/proc/SDQL2_tokenize(query_text) + + var/list/whitespace = list(" ", "\n", "\t") + var/list/single = list("(", ")", ",", "+", "-", ".") + var/list/multi = list( + "=" = list("", "="), + "<" = list("", "=", ">"), + ">" = list("", "="), + "!" = list("", "=")) + + var/word = "" + var/list/query_list = list() + var/len = length(query_text) + + for(var/i = 1, i <= len, i++) + var/char = copytext(query_text, i, i + 1) + + if(char in whitespace) + if(word != "") + query_list += word + word = "" + + else if(char in single) + if(word != "") + query_list += word + word = "" + + query_list += char + + else if(char in multi) + if(word != "") + query_list += word + word = "" + + var/char2 = copytext(query_text, i + 1, i + 2) + + if(char2 in multi[char]) + query_list += "[char][char2]" + i++ + + else + query_list += char + + else if(char == "'") + if(word != "") + usr << "\red SDQL2: You have an error in your SDQL syntax, unexpected ' in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." + return null + + word = "'" + + for(i++, i <= len, i++) + char = copytext(query_text, i, i + 1) + + if(char == "'") + if(copytext(query_text, i + 1, i + 2) == "'") + word += "'" + i++ + + else + break + + else + word += char + + if(i > len) + usr << "\red SDQL2: You have an error in your SDQL syntax, unmatched ' in query: \"[query_text]\". Please check your syntax, and try again." + return null + + query_list += "[word]'" + word = "" + + else if(char == "\"") + if(word != "") + usr << "\red SDQL2: You have an error in your SDQL syntax, unexpected \" in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." + return null + + word = "\"" + + for(i++, i <= len, i++) + char = copytext(query_text, i, i + 1) + + if(char == "\"") + if(copytext(query_text, i + 1, i + 2) == "'") + word += "\"" + i++ + + else + break + + else + word += char + + if(i > len) + usr << "\red SDQL2: You have an error in your SDQL syntax, unmatched \" in query: \"[query_text]\". Please check your syntax, and try again." + return null + + query_list += "[word]\"" + word = "" + + else + word += char + + if(word != "") + query_list += word + + return query_list diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index 71bdabf4be0..4b90283a56d 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -8,7 +8,7 @@ M.client.show_popup_menus = 1 for(var/obj/effect/bmode/buildholder/H) if(H.cl == M.client) - del(H) + qdel(H) else log_admin("[key_name(usr)] has entered build mode.") M.client.buildmode = 1 @@ -220,7 +220,7 @@ T.ChangeTurf(/turf/simulated/wall) return else if(istype(object,/obj)) - del(object) + qdel(object) return else if(istype(object,/turf) && pa.Find("alt") && pa.Find("left")) new/obj/machinery/door/airlock(get_turf(object)) @@ -250,7 +250,7 @@ var/obj/A = new holder.buildmode.objholder (get_turf(object)) A.set_dir(holder.builddir.dir) else if(pa.Find("right")) - if(isobj(object)) del(object) + if(isobj(object)) qdel(object) if(pa.Find("middle")) holder.buildmode.objholder = text2path("[object.type]") if(holder.buildmode.objsay) usr << "[object.type]" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 57fe451a7cc..62c9de0d6f7 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -350,7 +350,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that if(hsbitem) for(var/atom/O in world) if(istype(O, hsbitem)) - del(O) + qdel(O) log_admin("[key_name(src)] has deleted all instances of [hsbitem].") message_admins("[key_name_admin(src)] has deleted all instances of [hsbitem].", 0) feedback_add_details("admin_verb","DELA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -420,7 +420,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/mob/adminmob = src.mob M.ckey = src.ckey if( isobserver(adminmob) ) - del(adminmob) + qdel(adminmob) feedback_add_details("admin_verb","ADC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -555,7 +555,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that for (var/obj/item/I in M) if (istype(I, /obj/item/weapon/implant)) continue - del(I) + qdel(I) switch(dresscode) if ("strip") //do nothing @@ -614,7 +614,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes) var/obj/item/weapon/storage/backpack/backpack = new(M) for(var/obj/item/I in backpack) - del(I) + qdel(I) M.equip_to_slot_or_del(backpack, slot_back) M.equip_to_slot_or_del(new /obj/item/weapon/mop(M), slot_r_hand) @@ -705,7 +705,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M) for(var/obj/item/briefcase_item in sec_briefcase) - del(briefcase_item) + qdel(briefcase_item) for(var/i=3, i>0, i--) sec_briefcase.contents += new /obj/item/weapon/spacecash/c1000 sec_briefcase.contents += new /obj/item/weapon/gun/energy/crossbow @@ -929,7 +929,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that if(G.anchored) var/obj/singularity/S = new /obj/singularity(get_turf(G), 50) spawn(0) - del(G) + qdel(G) S.energy = 1750 S.current_size = 7 S.icon = 'icons/effects/224x224.dmi' diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index c6f91e89d3c..bd3c4be0d92 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -55,7 +55,7 @@ var/intercom_range_display_status = 0 for(var/obj/effect/debugging/camera_range/C in world) - del(C) + qdel(C) if(camera_range_display_status) for(var/obj/machinery/camera/C in cameranet.cameras) @@ -114,14 +114,14 @@ var/intercom_range_display_status = 0 intercom_range_display_status = 1 for(var/obj/effect/debugging/marker/M in world) - del(M) + qdel(M) if(intercom_range_display_status) for(var/obj/item/device/radio/intercom/I in world) for(var/turf/T in orange(7,I)) var/obj/effect/debugging/marker/F = new/obj/effect/debugging/marker(T) if (!(F in view(7,I.loc))) - del(F) + qdel(F) feedback_add_details("admin_verb","mIRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! var/list/debug_verbs = list ( @@ -276,7 +276,7 @@ var/list/debug_verbs = list ( var/datum/controller/air_system/old_air = air_master for(var/zone/zone in old_air.zones) zone.c_invalidate() - del old_air + qdel(old_air) air_master = new air_master.Setup() spawn air_master.Start() diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 64e44e17e90..ad35f965c34 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -548,7 +548,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(usr)] deleted [O] at ([O.x],[O.y],[O.z])") message_admins("[key_name_admin(usr)] deleted [O] at ([O.x],[O.y],[O.z])", 1) feedback_add_details("admin_verb","DEL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - del(O) + qdel(O) /client/proc/cmd_admin_list_open_jobs() set category = "Admin" @@ -686,7 +686,7 @@ Traitors and the like can also be revived with the previous role mostly intact. message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.") world.Export("http://216.38.134.132/adminlog.php?type=ban&key=[usr.client.key]&key2=[M.key]&msg=[html_decode(reason)]&time=[mins]&server=[replacetext(config.server_name, "#", "")]") del(M.client) - del(M) + qdel(M) else if("No") @@ -701,7 +701,7 @@ Traitors and the like can also be revived with the previous role mostly intact. message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.") world.Export("http://216.38.134.132/adminlog.php?type=ban&key=[usr.client.key]&key2=[M.key]&msg=[html_decode(reason)]&time=perma&server=[replacetext(config.server_name, "#", "")]") del(M.client) - del(M) + qdel(M) */ /client/proc/update_world() diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index ed3edf5fc00..ba071d7c724 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -39,7 +39,7 @@ bombtank.master = null bombtank = null - del(src) + qdel(src) return if((istype(W, /obj/item/weapon/weldingtool) && W:welding)) if(!status) @@ -144,8 +144,8 @@ ground_zero.hotspot_expose(1000, 125) if(master) - del(master) - del(src) + qdel(master) + qdel(src) /obj/item/weapon/tank/proc/release() //This happens when the bomb is not welded. Tank contents are just spat out. var/datum/gas_mixture/removed = air_contents.remove(air_contents.total_moles) diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index f3bf44b53be..a8a3d246c82 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -190,7 +190,7 @@ a_right:holder = null a_right.loc = T spawn(0) - del(src) + qdel(src) return diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 79e3cf86371..53bc063c918 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -32,7 +32,7 @@ processing_objects.Add(src) else on = 0 - if(first) del(first) + if(first) qdel(first) processing_objects.Remove(src) update_icon() return secured @@ -53,7 +53,7 @@ process()//Old code if(!on) if(first) - del(first) + qdel(first) return if((!(first) && (secured && (istype(loc, /turf) || (holder && istype(holder.loc, /turf)))))) @@ -77,7 +77,7 @@ attack_hand() - del(first) + qdel(first) ..() return @@ -86,14 +86,14 @@ var/t = dir ..() set_dir(t) - del(first) + qdel(first) return holder_movement() if(!holder) return 0 // set_dir(holder.dir) - del(first) + qdel(first) return 1 @@ -175,7 +175,7 @@ if(master) //world << "beam hit \ref[src]: calling master \ref[master].hit" master.trigger_beam() - del(src) + qdel(src) return /obj/effect/beam/i_beam/proc/vis_spread(v) @@ -193,7 +193,7 @@ if((loc.density || !(master))) // world << "beam hit loc [loc] or no master [master], deleting" - del(src) + qdel(src) return //world << "proccess: [src.left] left" @@ -233,17 +233,17 @@ return else //world << "is a next: \ref[next], deleting beam \ref[I]" - del(I) + qdel(I) else //world << "step failed, deleting \ref[next]" - del(next) + qdel(next) spawn(10) process() return return /obj/effect/beam/i_beam/Bump() - del(src) + qdel(src) return /obj/effect/beam/i_beam/Bumped() @@ -258,7 +258,7 @@ return return -/obj/effect/beam/i_beam/Del() - del(next) +/obj/effect/beam/i_beam/Destroy() + qdel(next) ..() return diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm index 5e501e3313f..8ba62cdc371 100644 --- a/code/modules/assembly/shock_kit.dm +++ b/code/modules/assembly/shock_kit.dm @@ -8,9 +8,9 @@ w_class = 5.0 flags = CONDUCT -/obj/item/assembly/shock_kit/Del() - del(part1) - del(part2) +/obj/item/assembly/shock_kit/Destroy() + qdel(part1) + qdel(part2) ..() return @@ -25,7 +25,7 @@ part2.master = null part1 = null part2 = null - del(src) + qdel(src) return if(istype(W, /obj/item/weapon/screwdriver)) status = !status diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 11f78326c69..b6415f22b53 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -77,7 +77,7 @@ W.assignment = corpseidjob W.registered_name = M.real_name M.equip_to_slot_or_del(W, slot_wear_id) - del(src) + qdel(src) diff --git a/code/modules/awaymissions/loot.dm b/code/modules/awaymissions/loot.dm index 706e1716afd..5aeb9651d2b 100644 --- a/code/modules/awaymissions/loot.dm +++ b/code/modules/awaymissions/loot.dm @@ -21,4 +21,4 @@ continue new loot_path(get_turf(src)) - del(src) \ No newline at end of file + qdel(src) diff --git a/code/modules/awaymissions/trigger.dm b/code/modules/awaymissions/trigger.dm index 65ad8f543d6..4afaf4a135d 100644 --- a/code/modules/awaymissions/trigger.dm +++ b/code/modules/awaymissions/trigger.dm @@ -6,7 +6,7 @@ if(M.client) M << "[message]" if(once) - del(src) + qdel(src) /obj/effect/step_trigger/teleport_fancy var/locationx @@ -41,4 +41,4 @@ uses-- if(uses == 0) - del(src) \ No newline at end of file + qdel(src) \ No newline at end of file diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 45ca127f137..a802950c66e 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -33,7 +33,7 @@ if( findtext(href,"You slot \the [input_device] into the suit module.
" user.drop_from_inventory(input_device) - del(input_device) + qdel(input_device) accepted_item.charges++ return 1 @@ -196,7 +196,7 @@ for(var/obj/item/weapon/melee/energy/blade/blade in M.contents) M.drop_from_inventory(blade) - del(blade) + qdel(blade) /obj/item/rig_module/fabricator diff --git a/code/modules/clothing/spacesuits/rig/modules/computer.dm b/code/modules/clothing/spacesuits/rig/modules/computer.dm index 5c02fc11f73..b51bfeccee9 100644 --- a/code/modules/clothing/spacesuits/rig/modules/computer.dm +++ b/code/modules/clothing/spacesuits/rig/modules/computer.dm @@ -153,8 +153,8 @@ user << "You purge the remaining scraps of data from your previous AI, freeing it for use." if(integrated_ai) integrated_ai.ghostize() - del(integrated_ai) - if(ai_card) del(ai_card) + qdel(integrated_ai) + if(ai_card) qdel(ai_card) else if(user) user.put_in_hands(ai_card) else diff --git a/code/modules/clothing/spacesuits/rig/modules/ninja.dm b/code/modules/clothing/spacesuits/rig/modules/ninja.dm index 7458ca1bc9b..51ee46d0d22 100644 --- a/code/modules/clothing/spacesuits/rig/modules/ninja.dm +++ b/code/modules/clothing/spacesuits/rig/modules/ninja.dm @@ -179,12 +179,12 @@ explosion(get_turf(src), 1, 2, 4, 5) if(holder && holder.wearer) holder.wearer.drop_from_inventory(src) - del(holder) - del(src) + qdel(holder) + qdel(src) /obj/item/rig_module/self_destruct/small/engage() explosion(get_turf(src), 0, 0, 3, 4) if(holder && holder.wearer) holder.wearer.drop_from_inventory(src) - del(holder) - del(src) \ No newline at end of file + qdel(holder) + qdel(src) \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index df610a8d4d9..17da31452a8 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -149,12 +149,12 @@ update_icon(1) -/obj/item/weapon/rig/Del() +/obj/item/weapon/rig/Destroy() for(var/obj/item/piece in list(gloves,boots,helmet,chest)) var/mob/living/M = piece.loc if(istype(M)) M.drop_from_inventory(piece) - del(piece) + qdel(piece) processing_objects -= src ..() @@ -659,25 +659,25 @@ var/obj/item/garbage = H.head H.drop_from_inventory(garbage) H.head = null - del(garbage) + qdel(garbage) if(H.gloves) var/obj/item/garbage = H.gloves H.drop_from_inventory(garbage) H.gloves = null - del(garbage) + qdel(garbage) if(H.shoes) var/obj/item/garbage = H.shoes H.drop_from_inventory(garbage) H.shoes = null - del(garbage) + qdel(garbage) if(H.wear_suit) var/obj/item/garbage = H.wear_suit H.drop_from_inventory(garbage) H.wear_suit = null - del(garbage) + qdel(garbage) for(var/piece in list("helmet","gauntlets","chest","boots")) toggle_piece(piece, H, ONLY_DEPLOY) diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 13d1a59d5e7..d861c77f3bc 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -555,7 +555,7 @@ kit.uses-- if(kit.uses<1) user.drop_item() - del(O) + qdel(O) /obj/item/clothing/suit/space/void/attackby(var/obj/item/O as obj, mob/user as mob) ..() @@ -574,7 +574,7 @@ kit.uses-- if(kit.uses<1) user.drop_item() - del(O) + qdel(O) ///////// Salvage crew hardsuit - Cybele Petit - solaruin /////////////// /obj/item/device/kit/suit/fluff/salvage diff --git a/code/modules/customitems/item_spawning.dm b/code/modules/customitems/item_spawning.dm index 8d575538a45..beb8e6b2a7b 100644 --- a/code/modules/customitems/item_spawning.dm +++ b/code/modules/customitems/item_spawning.dm @@ -35,7 +35,7 @@ if(M.ckey == "nerezza" && M.real_name == "Asher Spock" && M.mind.role_alt_title && M.mind.role_alt_title != "Emergency Physician") //only spawn ID if asher is joining as an emergency physician ok = 1 - del(Item) + qdel(Item) goto skip var/obj/item/weapon/card/id/I = Item for(var/obj/item/weapon/card/id/C in M) @@ -59,18 +59,18 @@ I.name = "[M.real_name]'s Technician ID ([M.mind.role_alt_title ? M.mind.role_alt_title : M.mind.assigned_role])" //replace old ID - del(C) + qdel(C) ok = M.equip_to_slot_if_possible(I, slot_wear_id, 0) //if 1, last argument deletes on fail break else if(istype(Item,/obj/item/weapon/storage/belt)) if(M.ckey == "jakksergal" && M.real_name == "Nashi Ra'hal" && M.mind.role_alt_title && M.mind.role_alt_title != "Nurse" && M.mind.role_alt_title != "Chemist") ok = 1 - del(Item) + qdel(Item) goto skip var/obj/item/weapon/storage/belt/medical/fluff/nashi_belt/I = Item if(istype(M.belt,/obj/item/weapon/storage/belt)) for(var/obj/item/weapon/storage/belt/B in M) - del(B) + qdel(B) M.belt=null ok = M.equip_to_slot_if_possible(I, slot_belt, 0) break diff --git a/code/modules/detectivework/scanning_console.dm b/code/modules/detectivework/scanning_console.dm index 2dac51082d5..b5e8af76346 100644 --- a/code/modules/detectivework/scanning_console.dm +++ b/code/modules/detectivework/scanning_console.dm @@ -277,7 +277,7 @@ if(istype(I, /obj/item/weapon/f_card)) if(process_card(I)) M.drop_item() - del(I) + qdel(I) else usr << "Invalid fingerprint card, rejected." if("print") diff --git a/code/modules/economy/ATM.dm b/code/modules/economy/ATM.dm index 1274abff64c..aac37d104a8 100644 --- a/code/modules/economy/ATM.dm +++ b/code/modules/economy/ATM.dm @@ -109,7 +109,7 @@ log transactions user << "You insert [I] into [src]." src.attack_hand(user) - del I + qdel(I) else ..() diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm index 3872b326bc5..6934dc7a332 100644 --- a/code/modules/economy/cash.dm +++ b/code/modules/economy/cash.dm @@ -26,7 +26,7 @@ user.drop_from_inventory(cash) bundle = new (src.loc) bundle.worth += cash.worth - del(cash) + qdel(cash) else //is bundle bundle = W bundle.worth += src.worth @@ -37,7 +37,7 @@ h_user.drop_from_inventory(bundle) h_user.put_in_hands(bundle) user << "You add [src.worth] Thalers worth of money to the bundles.
It holds [bundle.worth] Thalers now.
" - del(src) + qdel(src) /obj/item/weapon/spacecash/bundle name = "pile of thalers" @@ -87,7 +87,7 @@ bundle.update_icon() usr.put_in_hands(bundle) if(!worth) - del(src) + qdel(src) /obj/item/weapon/spacecash/c1 name = "1 Thaler" diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index 16d623d3dae..5416ab26662 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -45,4 +45,4 @@ if(!C.stat) var/turf/T = get_turf(C) if(istype(T, /turf/space)) - del(C) + qdel(C) diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm index f6a7a3ab710..a50a98982ab 100644 --- a/code/modules/events/rogue_drones.dm +++ b/code/modules/events/rogue_drones.dm @@ -40,7 +40,7 @@ D.z = config.admin_levels[1] D.has_loot = 0 - del(D) + qdel(D) num_recovered++ if(num_recovered > drones_list.len * 0.75) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index e35b100269f..803fbc67aee 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -264,26 +264,26 @@ proc/check_panel(mob/M) spawn(300) if(my_target) my_target.hallucinations -= src - del(src) + qdel(src) step_away(src,my_target,2) spawn attack_loop() proc/updateimage() - // del src.currentimage + // qdel(src.currentimage) if(src.dir == NORTH) - del src.currentimage + qdel(src.currentimage) src.currentimage = new /image(up,src) else if(src.dir == SOUTH) - del src.currentimage + qdel(src.currentimage) src.currentimage = new /image(down,src) else if(src.dir == EAST) - del src.currentimage + qdel(src.currentimage) src.currentimage = new /image(right,src) else if(src.dir == WEST) - del src.currentimage + qdel(src.currentimage) src.currentimage = new /image(left,src) my_target << currentimage @@ -329,7 +329,7 @@ proc/check_panel(mob/M) var/image/I = image('icons/effects/blood.dmi',O,"floor[rand(1,7)]",O.dir,1) target << I spawn(300) - del(O) + qdel(O) return var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_magazine/a357,\ diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 50be2e98486..6ff5f22f20f 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -47,7 +47,7 @@ var/obj/item/weapon/hand/H = O for(var/datum/playingcard/P in H.cards) cards += P - del(O) + qdel(O) user << "You place your cards on the bottom of the deck." return ..() @@ -131,7 +131,7 @@ for(var/datum/playingcard/P in H.cards) cards += P src.concealed = H.concealed - del(O) + qdel(O) user.put_in_hands(src) update_icon() return @@ -183,7 +183,7 @@ if(!discarding || !to_discard[discarding] || !usr || !src) return var/datum/playingcard/card = to_discard[discarding] - del(to_discard) + qdel(to_discard) var/obj/item/weapon/hand/H = new(src.loc) H.cards += card @@ -195,7 +195,7 @@ H.loc = get_step(usr,usr.dir) if(!cards.len) - del(src) + qdel(src) /obj/item/weapon/hand/attack_self(var/mob/user as mob) concealed = !concealed @@ -212,7 +212,7 @@ /obj/item/weapon/hand/update_icon(var/direction = 0) if(!cards.len) - del(src) + qdel(src) return else if(cards.len > 1) name = "hand of cards" diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm index f19a8cd4cee..2b383c18ac9 100644 --- a/code/modules/holodeck/HolodeckControl.dm +++ b/code/modules/holodeck/HolodeckControl.dm @@ -178,7 +178,7 @@ var/global/list/holodeck_programs = list( // loadProgram(target) //This could all be done better, but it works for now. -/obj/machinery/computer/HolodeckControl/Del() +/obj/machinery/computer/HolodeckControl/Destroy() emergencyShutdown() ..() @@ -257,7 +257,7 @@ var/global/list/holodeck_programs = list( if(!silent) var/obj/oldobj = obj visible_message("The [oldobj.name] fades away!") - del(obj) + qdel(obj) /obj/machinery/computer/HolodeckControl/proc/checkInteg(var/area/A) for(var/turf/T in A) @@ -321,7 +321,7 @@ var/global/list/holodeck_programs = list( C.derez() for(var/obj/effect/decal/cleanable/blood/B in linkedholodeck) - del(B) + qdel(B) holographic_objs = A.copy_contents_to(linkedholodeck , 1) for(var/obj/holo_obj in holographic_objs) diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index 7200711b605..84b43d5b703 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -85,7 +85,7 @@ icon_state = "boxing" item_state = "boxing" -/obj/structure/window/reinforced/holowindow/Del() +/obj/structure/window/reinforced/holowindow/Destroy() ..() /obj/structure/window/reinforced/holowindow/attackby(obj/item/W as obj, mob/user as mob) @@ -95,7 +95,7 @@ if(istype(G.affecting,/mob/living)) var/mob/living/M = G.affecting var/state = G.state - del(W) //gotta delete it here because if window breaks, it won't get deleted + qdel(W) //gotta delete it here because if window breaks, it won't get deleted switch (state) if(1) M.visible_message("[user] slams [M] against \the [src]!") @@ -138,13 +138,13 @@ playsound(src, "shatter", 70, 1) if(display_message) visible_message("[src] fades away as it shatters!") - del(src) + qdel(src) return -/obj/structure/window/reinforced/holowindow/disappearing/Del() +/obj/structure/window/reinforced/holowindow/disappearing/Destroy() ..() -/obj/machinery/door/window/holowindoor/Del() +/obj/machinery/door/window/holowindoor/Destroy() ..() /obj/machinery/door/window/holowindoor/attackby(obj/item/weapon/I as obj, mob/user as mob) @@ -180,9 +180,9 @@ playsound(src, "shatter", 70, 1) if(display_message) visible_message("[src] fades away as it shatters!") - del(src) + qdel(src) -/obj/structure/bed/chair/holochair/Del() +/obj/structure/bed/chair/holochair/Destroy() ..() /obj/structure/bed/chair/holochair/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -274,7 +274,7 @@ G.affecting.loc = src.loc G.affecting.Weaken(5) visible_message("[G.assailant] dunks [G.affecting] into the [src]!", 3) - del(W) + qdel(W) return else if (istype(W, /obj/item) && get_dist(src,user)<2) user.drop_item(src.loc) @@ -333,7 +333,7 @@ currentarea = get_area(src.loc) if(!currentarea) - del(src) + qdel(src) if(eventstarted) usr << "The event has already begun!" @@ -364,7 +364,7 @@ eventstarted = 1 for(var/obj/structure/window/reinforced/holowindow/disappearing/W in currentarea) - del(W) + qdel(W) for(var/mob/M in currentarea) M << "FIGHT!" @@ -424,4 +424,4 @@ /mob/living/simple_animal/hostile/carp/holodeck/proc/derez() visible_message("\The [src] fades away!") - del(src) + qdel(src) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 8440b9163ee..1d21c049321 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -29,7 +29,7 @@ sleep(250) // ugly hack, should mean roundstart plants are fine. if(!plant_controller) world << "Plant controller does not exist and [src] requires it. Aborting." - del(src) + qdel(src) return seed = plant_controller.seeds[plantname] @@ -65,7 +65,7 @@ sleep(250) // ugly hack, should mean roundstart plants are fine. if(!plant_controller) world << "Plant controller does not exist and [src] requires it. Aborting." - del(src) + qdel(src) return if(plant_controller.product_descs["[seed.uid]"]) @@ -163,7 +163,7 @@ M.Weaken(5) seed.thrown_at(src,M) sleep(-1) - if(src) del(src) + if(src) qdel(src) return /obj/item/weapon/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom) @@ -183,13 +183,13 @@ user.put_in_hands(pocell) pocell.maxcharge = src.potency * 10 pocell.charge = pocell.maxcharge - del(src) + qdel(src) return else if(W.sharp) if(seed.kitchen_tag == "pumpkin") // Ugggh these checks are awful. user.show_message("You carve a face into [src]!", 1) new /obj/item/clothing/head/pumpkinhead (user.loc) - del(src) + qdel(src) return else if(seed.chems) if(istype(W,/obj/item/weapon/hatchet) && !isnull(seed.chems["woodpulp"])) @@ -204,22 +204,22 @@ continue G.attackby(NG, user) user << "You add the newly-formed wood to the stack. It now contains [NG.amount] planks." - del(src) + qdel(src) return else if(!isnull(seed.chems["potato"])) user << "You slice \the [src] into sticks." new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(get_turf(src)) - del(src) + qdel(src) return else if(!isnull(seed.chems["carrotjuice"])) user << "You slice \the [src] into sticks." new /obj/item/weapon/reagent_containers/food/snacks/carrotfries(get_turf(src)) - del(src) + qdel(src) return else if(!isnull(seed.chems["soymilk"])) user << "You roughly chop up \the [src]." new /obj/item/weapon/reagent_containers/food/snacks/soydope(get_turf(src)) - del(src) + qdel(src) return ..() @@ -276,7 +276,7 @@ if(user) user << "\The [src] has fallen to bits." user.drop_from_inventory(src) - del(src) + qdel(src) add_fingerprint(user) return 1 @@ -296,7 +296,7 @@ user.visible_message("\The [user] squashes \the [src]!") seed.thrown_at(src,user) sleep(-1) - if(src) del(src) + if(src) qdel(src) return if(seed.kitchen_tag == "grass") @@ -311,13 +311,13 @@ continue NG.attackby(G, user) user << "You add the newly-formed grass to the stack. It now contains [G.amount] tiles." - del(src) + qdel(src) return if(seed.get_trait(TRAIT_SPREAD) > 0) user << "You plant the [src.name]." new /obj/machinery/portable_atmospherics/hydroponics/soil/invisible(get_turf(user),src.seed) - del(src) + qdel(src) return /* @@ -327,13 +327,13 @@ var/obj/item/stack/medical/bruise_pack/tajaran/poultice = new /obj/item/stack/medical/bruise_pack/tajaran(user.loc) poultice.heal_brute = potency user << "You mash the leaves into a poultice." - del(src) + qdel(src) return if("mtear") var/obj/item/stack/medical/ointment/tajaran/poultice = new /obj/item/stack/medical/ointment/tajaran(user.loc) poultice.heal_burn = potency user << "You mash the petals into a poultice." - del(src) + qdel(src) return */ diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm index da9c00120da..680a7a5ec88 100644 --- a/code/modules/hydroponics/grown_inedible.dm +++ b/code/modules/hydroponics/grown_inedible.dm @@ -48,7 +48,7 @@ if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/kitchenknife/ritual)) user << "You use [W] to fashion a pipe out of the corn cob!" new /obj/item/clothing/mask/smokable/pipe/cobpipe (user.loc) - del(src) + qdel(src) return /obj/item/weapon/bananapeel diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 6734510a5b6..a92e237eeb4 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -102,10 +102,10 @@ if(!istype(target)) if(istype(target, /mob/living/simple_animal/mouse)) new /obj/effect/decal/remains/mouse(get_turf(target)) - del(target) + qdel(target) else if(istype(target, /mob/living/simple_animal/lizard)) new /obj/effect/decal/remains/lizard(get_turf(target)) - del(target) + qdel(target) return @@ -229,7 +229,7 @@ apply_special_effect(M) splatter(T,thrown) origin_turf.visible_message("The [thrown.name] explodes!") - del(thrown) + qdel(thrown) return if(istype(target,/mob/living)) @@ -242,7 +242,7 @@ if(get_trait(TRAIT_JUICY) && splatted) splatter(origin_turf,thrown) origin_turf.visible_message("The [thrown.name] splatters against [target]!") - del(thrown) + qdel(thrown) /datum/seed/proc/handle_environment(var/turf/current_turf, var/datum/gas_mixture/environment, var/light_supplied, var/check_only) diff --git a/code/modules/hydroponics/seed_controller.dm b/code/modules/hydroponics/seed_controller.dm index 9b346b961cc..89cb299f5f6 100644 --- a/code/modules/hydroponics/seed_controller.dm +++ b/code/modules/hydroponics/seed_controller.dm @@ -37,7 +37,7 @@ var/global/datum/controller/plants/plant_controller // Set in New(). /datum/controller/plants/New() if(plant_controller && plant_controller != src) log_debug("Rebuilding plant controller.") - del(plant_controller) + qdel(plant_controller) plant_controller = src setup() process() diff --git a/code/modules/hydroponics/seed_machines.dm b/code/modules/hydroponics/seed_machines.dm index 1160235c9ee..864b56cc281 100644 --- a/code/modules/hydroponics/seed_machines.dm +++ b/code/modules/hydroponics/seed_machines.dm @@ -224,7 +224,7 @@ genetics = seed.seed degradation = 0 - del(seed) + qdel(seed) seed = null if(href_list["get_gene"]) diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm index 0ee7c6175e7..2545cfc01cf 100644 --- a/code/modules/hydroponics/seed_storage.dm +++ b/code/modules/hydroponics/seed_storage.dm @@ -188,16 +188,16 @@ N.seeds -= O if (N.amount <= 0 || N.seeds.len <= 0) piles -= N - del(N) + qdel(N) O.loc = src.loc else piles -= N - del(N) + qdel(N) else if (task == "purge") for (var/obj/O in N.seeds) - del(O) + qdel(O) piles -= N - del(N) + qdel(N) break updateUsrDialog() diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm index 4f52b82ceea..7edcca6303c 100644 --- a/code/modules/hydroponics/spreading/spreading.dm +++ b/code/modules/hydroponics/spreading/spreading.dm @@ -26,13 +26,13 @@ color = DEAD_PLANT_COLOUR /obj/effect/dead_plant/attack_hand() - del(src) + qdel(src) /obj/effect/dead_plant/attackby() ..() for(var/obj/effect/plant/neighbor in range(1)) neighbor.update_neighbors() - del(src) + qdel(src) /obj/effect/plant name = "plant" @@ -60,7 +60,7 @@ var/last_tick = 0 var/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/plant -/obj/effect/plant/Del() +/obj/effect/plant/Destroy() if(plant_controller) plant_controller.remove_plant(src) for(var/obj/effect/plant/neighbor in range(1,src)) @@ -81,14 +81,14 @@ sleep(250) // ugly hack, should mean roundstart plants are fine. if(!plant_controller) world << "Plant controller does not exist and [src] requires it. Aborting." - del(src) + qdel(src) return if(!istype(newseed)) newseed = plant_controller.seeds[DEFAULT_SEED] seed = newseed if(!seed) - del(src) + qdel(src) return name = seed.display_name diff --git a/code/modules/hydroponics/spreading/spreading_growth.dm b/code/modules/hydroponics/spreading/spreading_growth.dm index 7b1eae4f218..2346956d1fa 100644 --- a/code/modules/hydroponics/spreading/spreading_growth.dm +++ b/code/modules/hydroponics/spreading/spreading_growth.dm @@ -99,6 +99,6 @@ for(var/obj/effect/plant/neighbor in check_turf.contents) neighbor.neighbors |= check_turf plant_controller.add_plant(neighbor) - spawn(1) if(src) del(src) + spawn(1) if(src) qdel(src) #undef NEIGHBOR_REFRESH_TIME \ No newline at end of file diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index f88234155ab..f8b7a82be4d 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -457,7 +457,7 @@ if(!S.seed) user << "The packet seems to be empty. You throw it away." - del(O) + qdel(O) return user << "You plant the [S.seed.seed_name] [S.seed.seed_noun]." @@ -468,7 +468,7 @@ health = (istype(S, /obj/item/seeds/cutting) ? round(seed.get_trait(TRAIT_ENDURANCE)/rand(2,5)) : seed.get_trait(TRAIT_ENDURANCE)) lastcycle = world.time - del(O) + qdel(O) check_health() @@ -503,7 +503,7 @@ weedlevel -= spray.weed_kill_str user << "You spray [src] with [O]." playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) - del(O) + qdel(O) check_health() else if(mechanical && istype(O, /obj/item/weapon/wrench)) @@ -522,13 +522,13 @@ user << "[src] is already occupied!" else user.drop_item() - del(O) + qdel(O) var/obj/machinery/apiary/A = new(src.loc) A.icon = src.icon A.icon_state = src.icon_state A.hydrotray_type = src.type - del(src) + qdel(src) else if(O.force && seed) user.visible_message("\The [seed.display_name] has been attacked by [user] with \the [O]!") if(!dead) diff --git a/code/modules/hydroponics/trays/tray_apiary.dm b/code/modules/hydroponics/trays/tray_apiary.dm index f2098e7481c..4ac67613a6c 100644 --- a/code/modules/hydroponics/trays/tray_apiary.dm +++ b/code/modules/hydroponics/trays/tray_apiary.dm @@ -51,7 +51,7 @@ health = 10 nutrilevel += 10 user.drop_item() - del(O) + qdel(O) user << "\blue You carefully insert the queen into [src], she gets busy making a hive." bees_in_hive = 0 else if(istype(O, /obj/item/beezeez)) @@ -62,7 +62,7 @@ user << "\blue You insert [O] into [src]. A relaxed humming appears to pick up." else user << "\blue You insert [O] into [src]. Now it just needs some bees." - del(O) + qdel(O) else if(istype(O, /obj/item/weapon/minihoe)) if(health > 0) user << "\red You begin to dislodge the apiary from the tray, the bees don't like that." @@ -73,7 +73,7 @@ new hydrotray_type(src.loc) new /obj/item/apiary(src.loc) user << "\red You dislodge the apiary from the tray." - del(src) + qdel(src) else if(istype(O, /obj/item/weapon/bee_net)) var/obj/item/weapon/bee_net/N = O if(N.caught_bees > 0) @@ -115,11 +115,11 @@ if(swarming <= 0) for(var/mob/living/simple_animal/bee/B in src.loc) bees_in_hive += B.strength - del(B) + qdel(B) else if(bees_in_hive < 10) for(var/mob/living/simple_animal/bee/B in src.loc) bees_in_hive += B.strength - del(B) + qdel(B) if(world.time > (lastcycle + cycledelay)) lastcycle = world.time @@ -199,7 +199,7 @@ B.target_turf = get_turf(src) B.strength -= 1 if(B.strength <= 0) - del(B) + qdel(B) else if(B.strength <= 5) B.icon_state = "bees[B.strength]" bees_in_hive = 0 diff --git a/code/modules/hydroponics/trays/tray_soil.dm b/code/modules/hydroponics/trays/tray_soil.dm index ff8e3e23df0..54c2380bcf9 100644 --- a/code/modules/hydroponics/trays/tray_soil.dm +++ b/code/modules/hydroponics/trays/tray_soil.dm @@ -41,25 +41,25 @@ /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/remove_dead() ..() - del(src) + qdel(src) /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/harvest() ..() if(!seed) // Repeat harvests are a thing. - del(src) + qdel(src) /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/die() - del(src) + qdel(src) /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/process() if(!seed) - del(src) + qdel(src) return else if(name=="plant") name = seed.display_name ..() -/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/Del() +/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/Destroy() // Check if we're masking a decal that needs to be visible again. for(var/obj/effect/plant/plant in get_turf(src)) if(plant.invisibility == INVISIBILITY_MAXIMUM) diff --git a/code/modules/hydroponics/trays/tray_tools.dm b/code/modules/hydroponics/trays/tray_tools.dm index 10f5961da71..3b42ee38542 100644 --- a/code/modules/hydroponics/trays/tray_tools.dm +++ b/code/modules/hydroponics/trays/tray_tools.dm @@ -277,4 +277,4 @@ for(var/obj/effect/plant/B in orange(A,1)) if(prob(80)) B.die_off(1) - del A \ No newline at end of file + qdel(A) \ No newline at end of file diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index 192efd5ecfc..354d674215a 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -56,20 +56,20 @@ switch(severity) if(1.0) for(var/obj/item/weapon/book/b in contents) - del(b) - del(src) + qdel(b) + qdel(src) return if(2.0) for(var/obj/item/weapon/book/b in contents) if (prob(50)) b.loc = (get_turf(src)) - else del(b) - del(src) + else qdel(b) + qdel(src) return if(3.0) if (prob(50)) for(var/obj/item/weapon/book/b in contents) b.loc = (get_turf(src)) - del(src) + qdel(src) return else return diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 5d390948a3f..f83bcb317f1 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -463,6 +463,6 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f b.dat = O:info b.name = "Print Job #" + "[rand(100, 999)]" b.icon_state = "book[rand(1,7)]" - del(O) + qdel(O) else ..() diff --git a/code/modules/liquid/splash_simulation.dm b/code/modules/liquid/splash_simulation.dm index d7352ff7128..983f46603df 100644 --- a/code/modules/liquid/splash_simulation.dm +++ b/code/modules/liquid/splash_simulation.dm @@ -16,16 +16,16 @@ datum/puddle/proc/process() L.apply_calculated_effect() if(liquid_objects.len == 0) - del(src) + qdel(src) datum/puddle/New() ..() puddles += src -datum/puddle/Del() +datum/puddle/Destroy() puddles -= src for(var/obj/O in liquid_objects) - del(O) + qdel(O) ..() client/proc/splash() @@ -63,11 +63,11 @@ obj/effect/liquid obj/effect/liquid/New() ..() if( !isturf(loc) ) - del(src) + qdel(src) for( var/obj/effect/liquid/L in loc ) if(L != src) - del(L) + qdel(L) obj/effect/liquid/proc/spread() @@ -124,14 +124,14 @@ obj/effect/liquid/proc/apply_calculated_effect() volume += new_volume if(volume < LIQUID_TRANSFER_THRESHOLD) - del(src) + qdel(src) new_volume = 0 update_icon2() obj/effect/liquid/Move() return 0 -obj/effect/liquid/Del() +obj/effect/liquid/Destroy() src.controller.liquid_objects.Remove(src) ..() @@ -140,7 +140,7 @@ obj/effect/liquid/proc/update_icon2() switch(volume) if(0 to 0.1) - del(src) + qdel(src) if(0.1 to 5) icon_state = "1" if(5 to 10) diff --git a/code/modules/maps/swapmaps.dm b/code/modules/maps/swapmaps.dm index cee890ca21f..127af2e7a1e 100644 --- a/code/modules/maps/swapmaps.dm +++ b/code/modules/maps/swapmaps.dm @@ -1,678 +1,678 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 - -/* - SwapMaps library by Lummox JR - developed for digitalBYOND - http://www.digitalbyond.org - - Version 2.1 - - The purpose of this library is to make it easy for authors to swap maps - in and out of their game using savefiles. Swapped-out maps can be - transferred between worlds for an MMORPG, sent to the client, etc. - This is facilitated by the use of a special datum and a global list. - - Uses of swapmaps: - - - Temporary battle arenas - - House interiors - - Individual custom player houses - - Virtually unlimited terrain - - Sharing maps between servers running different instances of the same - game - - Loading and saving pieces of maps for reusable room templates - */ - -/* - User Interface: - - VARS: - - swapmaps_iconcache - An associative list of icon files with names, like - 'player.dmi' = "player" - swapmaps_mode - This must be set at runtime, like in world/New(). - - SWAPMAPS_SAV 0 (default) - Uses .sav files for raw /savefile output. - SWAPMAPS_TEXT 1 - Uses .txt files via ExportText() and ImportText(). These maps - are easily editable and appear to take up less space in the - current version of BYOND. - - PROCS: - - SwapMaps_Find(id) - Find a map by its id - SwapMaps_Load(id) - Load a map by its id - SwapMaps_Save(id) - Save a map by its id (calls swapmap.Save()) - SwapMaps_Unload(id) - Save and unload a map by its id (calls swapmap.Unload()) - SwapMaps_Save_All() - Save all maps - SwapMaps_DeleteFile(id) - Delete a map file - SwapMaps_CreateFromTemplate(id) - Create a new map by loading another map to use as a template. - This map has id==src and will not be saved. To make it savable, - change id with swapmap.SetID(newid). - SwapMaps_LoadChunk(id,turf/locorner) - Load a swapmap as a "chunk", at a specific place. A new datum is - created but it's not added to the list of maps to save or unload. - The new datum can be safely deleted without affecting the turfs - it loaded. The purpose of this is to load a map file onto part of - another swapmap or an existing part of the world. - locorner is the corner turf with the lowest x,y,z values. - SwapMaps_SaveChunk(id,turf/corner1,turf/corner2) - Save a piece of the world as a "chunk". A new datum is created - for the chunk, but it can be deleted without destroying any turfs. - The chunk file can be reloaded as a swapmap all its own, or loaded - via SwapMaps_LoadChunk() to become part of another map. - SwapMaps_GetSize(id) - Return a list corresponding to the x,y,z sizes of a map file, - without loading the map. - Returns null if the map is not found. - SwapMaps_AddIconToCache(name,icon) - Cache an icon file by name for space-saving storage - - swapmap.New(id,x,y,z) - Create a new map; specify id, width (x), height (y), and - depth (z) - Default size is world.maxx,world.maxy,1 - swapmap.New(id,turf1,turf2) - Create a new map; specify id and 2 corners - This becomes a /swapmap for one of the compiled-in maps, for - easy saving. - swapmap.New() - Create a new map datum, but does not allocate space or assign an - ID (used for loading). - swapmap.Del() - Deletes a map but does not save - swapmap.Save() - Saves to map_[id].sav - Maps with id==src are not saved. - swapmap.Unload() - Saves the map and then deletes it - Maps with id==src are not saved. - swapmap.SetID(id) - Change the map's id and make changes to the lookup list - swapmap.AllTurfs(z) - Returns a block of turfs encompassing the entire map, or on just - one z-level - z is in world coordinates; it is optional - swapmap.Contains(turf/T) - Returns nonzero if T is inside the map's boundaries. - Also works for objs and mobs, but the proc is not area-safe. - swapmap.InUse() - Returns nonzero if a mob with a key is within the map's - boundaries. - swapmap.LoCorner(z=z1) - Returns locate(x1,y1,z), where z=z1 if none is specified. - swapmap.HiCorner(z=z2) - Returns locate(x2,y2,z), where z=z2 if none is specified. - swapmap.BuildFilledRectangle(turf/corner1,turf/corner2,item) - Builds a filled rectangle of item from one corner turf to the - other, on multiple z-levels if necessary. The corners may be - specified in any order. - item is a type path like /turf/wall or /obj/barrel{full=1}. - swapmap.BuildRectangle(turf/corner1,turf/corner2,item) - Builds an unfilled rectangle of item from one corner turf to - the other, on multiple z-levels if necessary. - swapmap.BuildInTurfs(list/turfs,item) - Builds item on all of the turfs listed. The list need not - contain only turfs, or even only atoms. - */ - -swapmap - var/id // a string identifying this map uniquely - var/x1 // minimum x,y,z coords - var/y1 - var/z1 - var/x2 // maximum x,y,z coords (also used as width,height,depth until positioned) - var/y2 - var/z2 - var/tmp/locked // don't move anyone to this map; it's saving or loading - var/tmp/mode // save as text-mode - var/ischunk // tells the load routine to load to the specified location - - New(_id,x,y,z) - if(isnull(_id)) return - id=_id - mode=swapmaps_mode - if(isturf(x) && isturf(y)) - /* - Special format: Defines a map as an existing set of turfs; - this is useful for saving a compiled map in swapmap format. - Because this is a compiled-in map, its turfs are not deleted - when the datum is deleted. - */ - x1=min(x:x,y:x);x2=max(x:x,y:x) - y1=min(x:y,y:y);y2=max(x:y,y:y) - z1=min(x:z,y:z);z2=max(x:z,y:z) - InitializeSwapMaps() - if(z2>swapmaps_compiled_maxz ||\ - y2>swapmaps_compiled_maxy ||\ - x2>swapmaps_compiled_maxx) - del(src) - return - x2=x?(x):world.maxx - y2=y?(y):world.maxy - z2=z?(z):1 - AllocateSwapMap() - - Del() - // a temporary datum for a chunk can be deleted outright - // for others, some cleanup is necessary - if(!ischunk) - swapmaps_loaded-=src - swapmaps_byname-=id - if(z2>swapmaps_compiled_maxz ||\ - y2>swapmaps_compiled_maxy ||\ - x2>swapmaps_compiled_maxx) - var/list/areas=new - for(var/atom/A in block(locate(x1,y1,z1),locate(x2,y2,z2))) - for(var/obj/O in A) del(O) - for(var/mob/M in A) - if(!M.key) del(M) - else M.loc=null - areas[A.loc]=null - del(A) - // delete areas that belong only to this map - for(var/area/a in areas) - if(a && !a.contents.len) del(a) - if(x2>=world.maxx || y2>=world.maxy || z2>=world.maxz) CutXYZ() - del(areas) - ..() - - /* - Savefile format: - map - id - x // size, not coords - y - z - areas // list of areas, not including default - [each z; 1 to depth] - [each y; 1 to height] - [each x; 1 to width] - type // of turf - AREA // if non-default; saved as a number (index into areas list) - vars // all other changed vars - */ - Write(savefile/S) - var/x - var/y - var/z - var/n - var/list/areas - var/area/defarea=locate(world.area) - if(!defarea) defarea=new world.area - areas=list() - for(var/turf/T in block(locate(x1,y1,z1),locate(x2,y2,z2))) - areas[T.loc]=null - for(n in areas) // quickly eliminate associations for smaller storage - areas-=n - areas+=n - areas-=defarea - InitializeSwapMaps() - locked=1 - S["id"] << id - S["z"] << z2-z1+1 - S["y"] << y2-y1+1 - S["x"] << x2-x1+1 - S["areas"] << areas - for(n in 1 to areas.len) areas[areas[n]]=n - var/oldcd=S.cd - for(z=z1,z<=z2,++z) - S.cd="[z-z1+1]" - for(y=y1,y<=y2,++y) - S.cd="[y-y1+1]" - for(x=x1,x<=x2,++x) - S.cd="[x-x1+1]" - var/turf/T=locate(x,y,z) - S["type"] << T.type - if(T.loc!=defarea) S["AREA"] << areas[T.loc] - T.Write(S) - S.cd=".." - S.cd=".." - sleep() - S.cd=oldcd - locked=0 - del(areas) - - Read(savefile/S,_id,turf/locorner) - var/x - var/y - var/z - var/n - var/list/areas - var/area/defarea=locate(world.area) - id=_id - if(locorner) - ischunk=1 - x1=locorner.x - y1=locorner.y - z1=locorner.z - if(!defarea) defarea=new world.area - if(!_id) - S["id"] >> id - else - var/dummy - S["id"] >> dummy - S["z"] >> z2 // these are depth, - S["y"] >> y2 // height, - S["x"] >> x2 // width - S["areas"] >> areas - locked=1 - AllocateSwapMap() // adjust x1,y1,z1 - x2,y2,z2 coords - var/oldcd=S.cd - for(z=z1,z<=z2,++z) - S.cd="[z-z1+1]" - for(y=y1,y<=y2,++y) - S.cd="[y-y1+1]" - for(x=x1,x<=x2,++x) - S.cd="[x-x1+1]" - var/tp - S["type"]>>tp - var/turf/T=locate(x,y,z) - T.loc.contents-=T - T=new tp(locate(x,y,z)) - if("AREA" in S.dir) - S["AREA"]>>n - var/area/A=areas[n] - A.contents+=T - else defarea.contents+=T - // clear the turf - for(var/obj/O in T) del(O) - for(var/mob/M in T) - if(!M.key) del(M) - else M.loc=null - // finish the read - T.Read(S) - S.cd=".." - S.cd=".." - sleep() - S.cd=oldcd - locked=0 - del(areas) - - /* - Find an empty block on the world map in which to load this map. - If no space is found, increase world.maxz as necessary. (If the - map is greater in x,y size than the current world, expand - world.maxx and world.maxy too.) - - Ignore certain operations if loading a map as a chunk. Use the - x1,y1,z1 position for it, and *don't* count it as a loaded map. - */ - proc/AllocateSwapMap() - InitializeSwapMaps() - world.maxx=max(x2,world.maxx) // stretch x/y if necessary - world.maxy=max(y2,world.maxy) - if(!ischunk) - if(world.maxz<=swapmaps_compiled_maxz) - z1=swapmaps_compiled_maxz+1 - x1=1;y1=1 - else - var/list/l=ConsiderRegion(1,1,world.maxx,world.maxy,swapmaps_compiled_maxz+1) - x1=l[1] - y1=l[2] - z1=l[3] - del(l) - x2+=x1-1 - y2+=y1-1 - z2+=z1-1 - world.maxz=max(z2,world.maxz) // stretch z if necessary - if(!ischunk) - swapmaps_loaded[src]=null - swapmaps_byname[id]=src - - proc/ConsiderRegion(X1,Y1,X2,Y2,Z1,Z2) - while(1) - var/nextz=0 - var/swapmap/M - for(M in swapmaps_loaded) - if(M.z2Z2) || M.z1>=Z1+z2 ||\ - M.x1>X2 || M.x2=X1+x2 ||\ - M.y1>Y2 || M.y2=Y1+y2) continue - // look for sub-regions with a defined ceiling - var/nz2=Z2?(Z2):Z1+z2-1+M.z2-M.z1 - if(M.x1>=X1+x2) - .=ConsiderRegion(X1,Y1,M.x1-1,Y2,Z1,nz2) - if(.) return - else if(M.x2<=X2-x2) - .=ConsiderRegion(M.x2+1,Y1,X2,Y2,Z1,nz2) - if(.) return - if(M.y1>=Y1+y2) - .=ConsiderRegion(X1,Y1,X2,M.y1-1,Z1,nz2) - if(.) return - else if(M.y2<=Y2-y2) - .=ConsiderRegion(X1,M.y2+1,X2,Y2,Z1,nz2) - if(.) return - nextz=nextz?min(nextz,M.z2+1):(M.z2+1) - if(!M) - /* If nextz is not 0, then at some point there was an overlap that - could not be resolved by using an area to the side */ - if(nextz) Z1=nextz - if(!nextz || (Z2 && Z2-Z1+1=z2)?list(X1,Y1,Z1):null - X1=1;X2=world.maxx - Y1=1;Y2=world.maxy - - proc/CutXYZ() - var/mx=swapmaps_compiled_maxx - var/my=swapmaps_compiled_maxy - var/mz=swapmaps_compiled_maxz - for(var/swapmap/M in swapmaps_loaded) // may not include src - mx=max(mx,M.x2) - my=max(my,M.y2) - mz=max(mz,M.z2) - world.maxx=mx - world.maxy=my - world.maxz=mz - - // save and delete - proc/Unload() - Save() - del(src) - - proc/Save() - if(id==src) return 0 - var/savefile/S=mode?(new):new("map_[id].sav") - S << src - while(locked) sleep(1) - if(mode) - fdel("map_[id].txt") - S.ExportText("/","map_[id].txt") - return 1 - - // this will not delete existing savefiles for this map - proc/SetID(newid) - swapmaps_byname-=id - id=newid - swapmaps_byname[id]=src - - proc/AllTurfs(z) - if(isnum(z) && (zz2)) return null - return block(LoCorner(z),HiCorner(z)) - - // this could be safely called for an obj or mob as well, but - // probably not an area - proc/Contains(turf/T) - return (T && T.x>=x1 && T.x<=x2\ - && T.y>=y1 && T.y<=y2\ - && T.z>=z1 && T.z<=z2) - - proc/InUse() - for(var/turf/T in AllTurfs()) - for(var/mob/M in T) if(M.key) return 1 - - proc/LoCorner(z=z1) - return locate(x1,y1,z) - proc/HiCorner(z=z2) - return locate(x2,y2,z) - - /* - Build procs: Take 2 turfs as corners, plus an item type. - An item may be like: - - /turf/wall - /obj/fence{icon_state="iron"} - */ - proc/BuildFilledRectangle(turf/T1,turf/T2,item) - if(!Contains(T1) || !Contains(T2)) return - var/turf/T=T1 - // pick new corners in a block()-friendly form - T1=locate(min(T1.x,T2.x),min(T1.y,T2.y),min(T1.z,T2.z)) - T2=locate(max(T.x,T2.x),max(T.y,T2.y),max(T.z,T2.z)) - for(T in block(T1,T2)) new item(T) - - proc/BuildRectangle(turf/T1,turf/T2,item) - if(!Contains(T1) || !Contains(T2)) return - var/turf/T=T1 - // pick new corners in a block()-friendly form - T1=locate(min(T1.x,T2.x),min(T1.y,T2.y),min(T1.z,T2.z)) - T2=locate(max(T.x,T2.x),max(T.y,T2.y),max(T.z,T2.z)) - if(T2.x-T1.x<2 || T2.y-T1.y<2) BuildFilledRectangle(T1,T2,item) - else - //for(T in block(T1,T2)-block(locate(T1.x+1,T1.y+1,T1.z),locate(T2.x-1,T2.y-1,T2.z))) - for(T in block(T1,locate(T2.x,T1.y,T2.z))) new item(T) - for(T in block(locate(T1.x,T2.y,T1.z),T2)) new item(T) - for(T in block(locate(T1.x,T1.y+1,T1.z),locate(T1.x,T2.y-1,T2.z))) new item(T) - for(T in block(locate(T2.x,T1.y+1,T1.z),locate(T2.x,T2.y-1,T2.z))) new item(T) - - /* - Supplementary build proc: Takes a list of turfs, plus an item - type. Actually the list doesn't have to be just turfs. - */ - proc/BuildInTurfs(list/turfs,item) - for(var/T in turfs) new item(T) - -atom - Write(savefile/S) - for(var/V in vars-"x"-"y"-"z"-"contents"-"icon"-"overlays"-"underlays") - if(issaved(vars[V])) - if(vars[V]!=initial(vars[V])) S[V]<>ic - if(istext(ic)) icon=swapmaps_iconcache[ic] - if(l && contents!=l) - contents+=l - del(l) - - -// set this up (at runtime) as follows: -// list(\ -// 'player.dmi'="player",\ -// 'monster.dmi'="monster",\ -// ... -// 'item.dmi'="item") -var/list/swapmaps_iconcache - -// preferred mode; sav or text -var/const/SWAPMAPS_SAV=0 -var/const/SWAPMAPS_TEXT=1 -var/swapmaps_mode=SWAPMAPS_SAV - -var/swapmaps_compiled_maxx -var/swapmaps_compiled_maxy -var/swapmaps_compiled_maxz -var/swapmaps_initialized -var/swapmaps_loaded -var/swapmaps_byname - -proc/InitializeSwapMaps() - if(swapmaps_initialized) return - swapmaps_initialized=1 - swapmaps_compiled_maxx=world.maxx - swapmaps_compiled_maxy=world.maxy - swapmaps_compiled_maxz=world.maxz - swapmaps_loaded=list() - swapmaps_byname=list() - if(swapmaps_iconcache) - for(var/V in swapmaps_iconcache) - // reverse-associate everything - // so you can look up an icon file by name or vice-versa - swapmaps_iconcache[swapmaps_iconcache[V]]=V - -proc/SwapMaps_AddIconToCache(name,icon) - if(!swapmaps_iconcache) swapmaps_iconcache=list() - swapmaps_iconcache[name]=icon - swapmaps_iconcache[icon]=name - -proc/SwapMaps_Find(id) - InitializeSwapMaps() - return swapmaps_byname[id] - -proc/SwapMaps_Load(id) - InitializeSwapMaps() - var/swapmap/M=swapmaps_byname[id] - if(!M) - var/savefile/S - var/text=0 - if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[id].txt")) - text=1 - else if(fexists("map_[id].sav")) - S=new("map_[id].sav") - else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[id].txt")) - text=1 - else return // no file found - if(text) - S=new - S.ImportText("/",file("map_[id].txt")) - S >> M - while(M.locked) sleep(1) - M.mode=text - return M - -proc/SwapMaps_Save(id) - InitializeSwapMaps() - var/swapmap/M=swapmaps_byname[id] - if(M) M.Save() - return M - -proc/SwapMaps_Save_All() - InitializeSwapMaps() - for(var/swapmap/M in swapmaps_loaded) - if(M) M.Save() - -proc/SwapMaps_Unload(id) - InitializeSwapMaps() - var/swapmap/M=swapmaps_byname[id] - if(!M) return // return silently from an error - M.Unload() - return 1 - -proc/SwapMaps_DeleteFile(id) - fdel("map_[id].sav") - fdel("map_[id].txt") - -proc/SwapMaps_CreateFromTemplate(template_id) - var/swapmap/M=new - var/savefile/S - var/text=0 - if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[template_id].txt")) - text=1 - else if(fexists("map_[template_id].sav")) - S=new("map_[template_id].sav") - else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[template_id].txt")) - text=1 - else - world.log << "SwapMaps error in SwapMaps_CreateFromTemplate(): map_[template_id] file not found." - return - if(text) - S=new - S.ImportText("/",file("map_[template_id].txt")) - /* - This hacky workaround is needed because S >> M will create a brand new - M to fill with data. There's no way to control the Read() process - properly otherwise. The //.0 path should always match the map, however. - */ - S.cd="//.0" - M.Read(S,M) - M.mode=text - while(M.locked) sleep(1) - return M - -proc/SwapMaps_LoadChunk(chunk_id,turf/locorner) - var/swapmap/M=new - var/savefile/S - var/text=0 - if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[chunk_id].txt")) - text=1 - else if(fexists("map_[chunk_id].sav")) - S=new("map_[chunk_id].sav") - else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[chunk_id].txt")) - text=1 - else - world.log << "SwapMaps error in SwapMaps_LoadChunk(): map_[chunk_id] file not found." - return - if(text) - S=new - S.ImportText("/",file("map_[chunk_id].txt")) - /* - This hacky workaround is needed because S >> M will create a brand new - M to fill with data. There's no way to control the Read() process - properly otherwise. The //.0 path should always match the map, however. - */ - S.cd="//.0" - M.Read(S,M,locorner) - while(M.locked) sleep(1) - del(M) - return 1 - -proc/SwapMaps_SaveChunk(chunk_id,turf/corner1,turf/corner2) - if(!corner1 || !corner2) - world.log << "SwapMaps error in SwapMaps_SaveChunk():" - if(!corner1) world.log << " corner1 turf is null" - if(!corner2) world.log << " corner2 turf is null" - return - var/swapmap/M=new - M.id=chunk_id - M.ischunk=1 // this is a chunk - M.x1=min(corner1.x,corner2.x) - M.y1=min(corner1.y,corner2.y) - M.z1=min(corner1.z,corner2.z) - M.x2=max(corner1.x,corner2.x) - M.y2=max(corner1.y,corner2.y) - M.z2=max(corner1.z,corner2.z) - M.mode=swapmaps_mode - M.Save() - while(M.locked) sleep(1) - del(M) - return 1 - -proc/SwapMaps_GetSize(id) - var/savefile/S - var/text=0 - if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[id].txt")) - text=1 - else if(fexists("map_[id].sav")) - S=new("map_[id].sav") - else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[id].txt")) - text=1 - else - world.log << "SwapMaps error in SwapMaps_GetSize(): map_[id] file not found." - return - if(text) - S=new - S.ImportText("/",file("map_[id].txt")) - /* - The //.0 path should always be the map. There's no other way to - read this data. - */ - S.cd="//.0" - var/x - var/y - var/z - S["x"] >> x - S["y"] >> y - S["z"] >> z - return list(x,y,z) +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/* + SwapMaps library by Lummox JR + developed for digitalBYOND + http://www.digitalbyond.org + + Version 2.1 + + The purpose of this library is to make it easy for authors to swap maps + in and out of their game using savefiles. Swapped-out maps can be + transferred between worlds for an MMORPG, sent to the client, etc. + This is facilitated by the use of a special datum and a global list. + + Uses of swapmaps: + + - Temporary battle arenas + - House interiors + - Individual custom player houses + - Virtually unlimited terrain + - Sharing maps between servers running different instances of the same + game + - Loading and saving pieces of maps for reusable room templates + */ + +/* + User Interface: + + VARS: + + swapmaps_iconcache + An associative list of icon files with names, like + 'player.dmi' = "player" + swapmaps_mode + This must be set at runtime, like in world/New(). + + SWAPMAPS_SAV 0 (default) + Uses .sav files for raw /savefile output. + SWAPMAPS_TEXT 1 + Uses .txt files via ExportText() and ImportText(). These maps + are easily editable and appear to take up less space in the + current version of BYOND. + + PROCS: + + SwapMaps_Find(id) + Find a map by its id + SwapMaps_Load(id) + Load a map by its id + SwapMaps_Save(id) + Save a map by its id (calls swapmap.Save()) + SwapMaps_Unload(id) + Save and unload a map by its id (calls swapmap.Unload()) + SwapMaps_Save_All() + Save all maps + SwapMaps_DeleteFile(id) + Delete a map file + SwapMaps_CreateFromTemplate(id) + Create a new map by loading another map to use as a template. + This map has id==src and will not be saved. To make it savable, + change id with swapmap.SetID(newid). + SwapMaps_LoadChunk(id,turf/locorner) + Load a swapmap as a "chunk", at a specific place. A new datum is + created but it's not added to the list of maps to save or unload. + The new datum can be safely deleted without affecting the turfs + it loaded. The purpose of this is to load a map file onto part of + another swapmap or an existing part of the world. + locorner is the corner turf with the lowest x,y,z values. + SwapMaps_SaveChunk(id,turf/corner1,turf/corner2) + Save a piece of the world as a "chunk". A new datum is created + for the chunk, but it can be deleted without destroying any turfs. + The chunk file can be reloaded as a swapmap all its own, or loaded + via SwapMaps_LoadChunk() to become part of another map. + SwapMaps_GetSize(id) + Return a list corresponding to the x,y,z sizes of a map file, + without loading the map. + Returns null if the map is not found. + SwapMaps_AddIconToCache(name,icon) + Cache an icon file by name for space-saving storage + + swapmap.New(id,x,y,z) + Create a new map; specify id, width (x), height (y), and + depth (z) + Default size is world.maxx,world.maxy,1 + swapmap.New(id,turf1,turf2) + Create a new map; specify id and 2 corners + This becomes a /swapmap for one of the compiled-in maps, for + easy saving. + swapmap.New() + Create a new map datum, but does not allocate space or assign an + ID (used for loading). + swapmap.Del() + Deletes a map but does not save + swapmap.Save() + Saves to map_[id].sav + Maps with id==src are not saved. + swapmap.Unload() + Saves the map and then deletes it + Maps with id==src are not saved. + swapmap.SetID(id) + Change the map's id and make changes to the lookup list + swapmap.AllTurfs(z) + Returns a block of turfs encompassing the entire map, or on just + one z-level + z is in world coordinates; it is optional + swapmap.Contains(turf/T) + Returns nonzero if T is inside the map's boundaries. + Also works for objs and mobs, but the proc is not area-safe. + swapmap.InUse() + Returns nonzero if a mob with a key is within the map's + boundaries. + swapmap.LoCorner(z=z1) + Returns locate(x1,y1,z), where z=z1 if none is specified. + swapmap.HiCorner(z=z2) + Returns locate(x2,y2,z), where z=z2 if none is specified. + swapmap.BuildFilledRectangle(turf/corner1,turf/corner2,item) + Builds a filled rectangle of item from one corner turf to the + other, on multiple z-levels if necessary. The corners may be + specified in any order. + item is a type path like /turf/wall or /obj/barrel{full=1}. + swapmap.BuildRectangle(turf/corner1,turf/corner2,item) + Builds an unfilled rectangle of item from one corner turf to + the other, on multiple z-levels if necessary. + swapmap.BuildInTurfs(list/turfs,item) + Builds item on all of the turfs listed. The list need not + contain only turfs, or even only atoms. + */ + +swapmap + var/id // a string identifying this map uniquely + var/x1 // minimum x,y,z coords + var/y1 + var/z1 + var/x2 // maximum x,y,z coords (also used as width,height,depth until positioned) + var/y2 + var/z2 + var/tmp/locked // don't move anyone to this map; it's saving or loading + var/tmp/mode // save as text-mode + var/ischunk // tells the load routine to load to the specified location + + New(_id,x,y,z) + if(isnull(_id)) return + id=_id + mode=swapmaps_mode + if(isturf(x) && isturf(y)) + /* + Special format: Defines a map as an existing set of turfs; + this is useful for saving a compiled map in swapmap format. + Because this is a compiled-in map, its turfs are not deleted + when the datum is deleted. + */ + x1=min(x:x,y:x);x2=max(x:x,y:x) + y1=min(x:y,y:y);y2=max(x:y,y:y) + z1=min(x:z,y:z);z2=max(x:z,y:z) + InitializeSwapMaps() + if(z2>swapmaps_compiled_maxz ||\ + y2>swapmaps_compiled_maxy ||\ + x2>swapmaps_compiled_maxx) + qdel(src) + return + x2=x?(x):world.maxx + y2=y?(y):world.maxy + z2=z?(z):1 + AllocateSwapMap() + + Del() + // a temporary datum for a chunk can be deleted outright + // for others, some cleanup is necessary + if(!ischunk) + swapmaps_loaded-=src + swapmaps_byname-=id + if(z2>swapmaps_compiled_maxz ||\ + y2>swapmaps_compiled_maxy ||\ + x2>swapmaps_compiled_maxx) + var/list/areas=new + for(var/atom/A in block(locate(x1,y1,z1),locate(x2,y2,z2))) + for(var/obj/O in A) qdel(O) + for(var/mob/M in A) + if(!M.key) qdel(M) + else M.loc=null + areas[A.loc]=null + qdel(A) + // delete areas that belong only to this map + for(var/area/a in areas) + if(a && !a.contents.len) qdel(a) + if(x2>=world.maxx || y2>=world.maxy || z2>=world.maxz) CutXYZ() + qdel(areas) + ..() + + /* + Savefile format: + map + id + x // size, not coords + y + z + areas // list of areas, not including default + [each z; 1 to depth] + [each y; 1 to height] + [each x; 1 to width] + type // of turf + AREA // if non-default; saved as a number (index into areas list) + vars // all other changed vars + */ + Write(savefile/S) + var/x + var/y + var/z + var/n + var/list/areas + var/area/defarea=locate(world.area) + if(!defarea) defarea=new world.area + areas=list() + for(var/turf/T in block(locate(x1,y1,z1),locate(x2,y2,z2))) + areas[T.loc]=null + for(n in areas) // quickly eliminate associations for smaller storage + areas-=n + areas+=n + areas-=defarea + InitializeSwapMaps() + locked=1 + S["id"] << id + S["z"] << z2-z1+1 + S["y"] << y2-y1+1 + S["x"] << x2-x1+1 + S["areas"] << areas + for(n in 1 to areas.len) areas[areas[n]]=n + var/oldcd=S.cd + for(z=z1,z<=z2,++z) + S.cd="[z-z1+1]" + for(y=y1,y<=y2,++y) + S.cd="[y-y1+1]" + for(x=x1,x<=x2,++x) + S.cd="[x-x1+1]" + var/turf/T=locate(x,y,z) + S["type"] << T.type + if(T.loc!=defarea) S["AREA"] << areas[T.loc] + T.Write(S) + S.cd=".." + S.cd=".." + sleep() + S.cd=oldcd + locked=0 + qdel(areas) + + Read(savefile/S,_id,turf/locorner) + var/x + var/y + var/z + var/n + var/list/areas + var/area/defarea=locate(world.area) + id=_id + if(locorner) + ischunk=1 + x1=locorner.x + y1=locorner.y + z1=locorner.z + if(!defarea) defarea=new world.area + if(!_id) + S["id"] >> id + else + var/dummy + S["id"] >> dummy + S["z"] >> z2 // these are depth, + S["y"] >> y2 // height, + S["x"] >> x2 // width + S["areas"] >> areas + locked=1 + AllocateSwapMap() // adjust x1,y1,z1 - x2,y2,z2 coords + var/oldcd=S.cd + for(z=z1,z<=z2,++z) + S.cd="[z-z1+1]" + for(y=y1,y<=y2,++y) + S.cd="[y-y1+1]" + for(x=x1,x<=x2,++x) + S.cd="[x-x1+1]" + var/tp + S["type"]>>tp + var/turf/T=locate(x,y,z) + T.loc.contents-=T + T=new tp(locate(x,y,z)) + if("AREA" in S.dir) + S["AREA"]>>n + var/area/A=areas[n] + A.contents+=T + else defarea.contents+=T + // clear the turf + for(var/obj/O in T) qdel(O) + for(var/mob/M in T) + if(!M.key) qdel(M) + else M.loc=null + // finish the read + T.Read(S) + S.cd=".." + S.cd=".." + sleep() + S.cd=oldcd + locked=0 + qdel(areas) + + /* + Find an empty block on the world map in which to load this map. + If no space is found, increase world.maxz as necessary. (If the + map is greater in x,y size than the current world, expand + world.maxx and world.maxy too.) + + Ignore certain operations if loading a map as a chunk. Use the + x1,y1,z1 position for it, and *don't* count it as a loaded map. + */ + proc/AllocateSwapMap() + InitializeSwapMaps() + world.maxx=max(x2,world.maxx) // stretch x/y if necessary + world.maxy=max(y2,world.maxy) + if(!ischunk) + if(world.maxz<=swapmaps_compiled_maxz) + z1=swapmaps_compiled_maxz+1 + x1=1;y1=1 + else + var/list/l=ConsiderRegion(1,1,world.maxx,world.maxy,swapmaps_compiled_maxz+1) + x1=l[1] + y1=l[2] + z1=l[3] + qdel(l) + x2+=x1-1 + y2+=y1-1 + z2+=z1-1 + world.maxz=max(z2,world.maxz) // stretch z if necessary + if(!ischunk) + swapmaps_loaded[src]=null + swapmaps_byname[id]=src + + proc/ConsiderRegion(X1,Y1,X2,Y2,Z1,Z2) + while(1) + var/nextz=0 + var/swapmap/M + for(M in swapmaps_loaded) + if(M.z2Z2) || M.z1>=Z1+z2 ||\ + M.x1>X2 || M.x2=X1+x2 ||\ + M.y1>Y2 || M.y2=Y1+y2) continue + // look for sub-regions with a defined ceiling + var/nz2=Z2?(Z2):Z1+z2-1+M.z2-M.z1 + if(M.x1>=X1+x2) + .=ConsiderRegion(X1,Y1,M.x1-1,Y2,Z1,nz2) + if(.) return + else if(M.x2<=X2-x2) + .=ConsiderRegion(M.x2+1,Y1,X2,Y2,Z1,nz2) + if(.) return + if(M.y1>=Y1+y2) + .=ConsiderRegion(X1,Y1,X2,M.y1-1,Z1,nz2) + if(.) return + else if(M.y2<=Y2-y2) + .=ConsiderRegion(X1,M.y2+1,X2,Y2,Z1,nz2) + if(.) return + nextz=nextz?min(nextz,M.z2+1):(M.z2+1) + if(!M) + /* If nextz is not 0, then at some point there was an overlap that + could not be resolved by using an area to the side */ + if(nextz) Z1=nextz + if(!nextz || (Z2 && Z2-Z1+1=z2)?list(X1,Y1,Z1):null + X1=1;X2=world.maxx + Y1=1;Y2=world.maxy + + proc/CutXYZ() + var/mx=swapmaps_compiled_maxx + var/my=swapmaps_compiled_maxy + var/mz=swapmaps_compiled_maxz + for(var/swapmap/M in swapmaps_loaded) // may not include src + mx=max(mx,M.x2) + my=max(my,M.y2) + mz=max(mz,M.z2) + world.maxx=mx + world.maxy=my + world.maxz=mz + + // save and delete + proc/Unload() + Save() + qdel(src) + + proc/Save() + if(id==src) return 0 + var/savefile/S=mode?(new):new("map_[id].sav") + S << src + while(locked) sleep(1) + if(mode) + fdel("map_[id].txt") + S.ExportText("/","map_[id].txt") + return 1 + + // this will not delete existing savefiles for this map + proc/SetID(newid) + swapmaps_byname-=id + id=newid + swapmaps_byname[id]=src + + proc/AllTurfs(z) + if(isnum(z) && (zz2)) return null + return block(LoCorner(z),HiCorner(z)) + + // this could be safely called for an obj or mob as well, but + // probably not an area + proc/Contains(turf/T) + return (T && T.x>=x1 && T.x<=x2\ + && T.y>=y1 && T.y<=y2\ + && T.z>=z1 && T.z<=z2) + + proc/InUse() + for(var/turf/T in AllTurfs()) + for(var/mob/M in T) if(M.key) return 1 + + proc/LoCorner(z=z1) + return locate(x1,y1,z) + proc/HiCorner(z=z2) + return locate(x2,y2,z) + + /* + Build procs: Take 2 turfs as corners, plus an item type. + An item may be like: + + /turf/wall + /obj/fence{icon_state="iron"} + */ + proc/BuildFilledRectangle(turf/T1,turf/T2,item) + if(!Contains(T1) || !Contains(T2)) return + var/turf/T=T1 + // pick new corners in a block()-friendly form + T1=locate(min(T1.x,T2.x),min(T1.y,T2.y),min(T1.z,T2.z)) + T2=locate(max(T.x,T2.x),max(T.y,T2.y),max(T.z,T2.z)) + for(T in block(T1,T2)) new item(T) + + proc/BuildRectangle(turf/T1,turf/T2,item) + if(!Contains(T1) || !Contains(T2)) return + var/turf/T=T1 + // pick new corners in a block()-friendly form + T1=locate(min(T1.x,T2.x),min(T1.y,T2.y),min(T1.z,T2.z)) + T2=locate(max(T.x,T2.x),max(T.y,T2.y),max(T.z,T2.z)) + if(T2.x-T1.x<2 || T2.y-T1.y<2) BuildFilledRectangle(T1,T2,item) + else + //for(T in block(T1,T2)-block(locate(T1.x+1,T1.y+1,T1.z),locate(T2.x-1,T2.y-1,T2.z))) + for(T in block(T1,locate(T2.x,T1.y,T2.z))) new item(T) + for(T in block(locate(T1.x,T2.y,T1.z),T2)) new item(T) + for(T in block(locate(T1.x,T1.y+1,T1.z),locate(T1.x,T2.y-1,T2.z))) new item(T) + for(T in block(locate(T2.x,T1.y+1,T1.z),locate(T2.x,T2.y-1,T2.z))) new item(T) + + /* + Supplementary build proc: Takes a list of turfs, plus an item + type. Actually the list doesn't have to be just turfs. + */ + proc/BuildInTurfs(list/turfs,item) + for(var/T in turfs) new item(T) + +atom + Write(savefile/S) + for(var/V in vars-"x"-"y"-"z"-"contents"-"icon"-"overlays"-"underlays") + if(issaved(vars[V])) + if(vars[V]!=initial(vars[V])) S[V]<>ic + if(istext(ic)) icon=swapmaps_iconcache[ic] + if(l && contents!=l) + contents+=l + qdel(l) + + +// set this up (at runtime) as follows: +// list(\ +// 'player.dmi'="player",\ +// 'monster.dmi'="monster",\ +// ... +// 'item.dmi'="item") +var/list/swapmaps_iconcache + +// preferred mode; sav or text +var/const/SWAPMAPS_SAV=0 +var/const/SWAPMAPS_TEXT=1 +var/swapmaps_mode=SWAPMAPS_SAV + +var/swapmaps_compiled_maxx +var/swapmaps_compiled_maxy +var/swapmaps_compiled_maxz +var/swapmaps_initialized +var/swapmaps_loaded +var/swapmaps_byname + +proc/InitializeSwapMaps() + if(swapmaps_initialized) return + swapmaps_initialized=1 + swapmaps_compiled_maxx=world.maxx + swapmaps_compiled_maxy=world.maxy + swapmaps_compiled_maxz=world.maxz + swapmaps_loaded=list() + swapmaps_byname=list() + if(swapmaps_iconcache) + for(var/V in swapmaps_iconcache) + // reverse-associate everything + // so you can look up an icon file by name or vice-versa + swapmaps_iconcache[swapmaps_iconcache[V]]=V + +proc/SwapMaps_AddIconToCache(name,icon) + if(!swapmaps_iconcache) swapmaps_iconcache=list() + swapmaps_iconcache[name]=icon + swapmaps_iconcache[icon]=name + +proc/SwapMaps_Find(id) + InitializeSwapMaps() + return swapmaps_byname[id] + +proc/SwapMaps_Load(id) + InitializeSwapMaps() + var/swapmap/M=swapmaps_byname[id] + if(!M) + var/savefile/S + var/text=0 + if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[id].txt")) + text=1 + else if(fexists("map_[id].sav")) + S=new("map_[id].sav") + else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[id].txt")) + text=1 + else return // no file found + if(text) + S=new + S.ImportText("/",file("map_[id].txt")) + S >> M + while(M.locked) sleep(1) + M.mode=text + return M + +proc/SwapMaps_Save(id) + InitializeSwapMaps() + var/swapmap/M=swapmaps_byname[id] + if(M) M.Save() + return M + +proc/SwapMaps_Save_All() + InitializeSwapMaps() + for(var/swapmap/M in swapmaps_loaded) + if(M) M.Save() + +proc/SwapMaps_Unload(id) + InitializeSwapMaps() + var/swapmap/M=swapmaps_byname[id] + if(!M) return // return silently from an error + M.Unload() + return 1 + +proc/SwapMaps_DeleteFile(id) + fdel("map_[id].sav") + fdel("map_[id].txt") + +proc/SwapMaps_CreateFromTemplate(template_id) + var/swapmap/M=new + var/savefile/S + var/text=0 + if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[template_id].txt")) + text=1 + else if(fexists("map_[template_id].sav")) + S=new("map_[template_id].sav") + else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[template_id].txt")) + text=1 + else + world.log << "SwapMaps error in SwapMaps_CreateFromTemplate(): map_[template_id] file not found." + return + if(text) + S=new + S.ImportText("/",file("map_[template_id].txt")) + /* + This hacky workaround is needed because S >> M will create a brand new + M to fill with data. There's no way to control the Read() process + properly otherwise. The //.0 path should always match the map, however. + */ + S.cd="//.0" + M.Read(S,M) + M.mode=text + while(M.locked) sleep(1) + return M + +proc/SwapMaps_LoadChunk(chunk_id,turf/locorner) + var/swapmap/M=new + var/savefile/S + var/text=0 + if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[chunk_id].txt")) + text=1 + else if(fexists("map_[chunk_id].sav")) + S=new("map_[chunk_id].sav") + else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[chunk_id].txt")) + text=1 + else + world.log << "SwapMaps error in SwapMaps_LoadChunk(): map_[chunk_id] file not found." + return + if(text) + S=new + S.ImportText("/",file("map_[chunk_id].txt")) + /* + This hacky workaround is needed because S >> M will create a brand new + M to fill with data. There's no way to control the Read() process + properly otherwise. The //.0 path should always match the map, however. + */ + S.cd="//.0" + M.Read(S,M,locorner) + while(M.locked) sleep(1) + qdel(M) + return 1 + +proc/SwapMaps_SaveChunk(chunk_id,turf/corner1,turf/corner2) + if(!corner1 || !corner2) + world.log << "SwapMaps error in SwapMaps_SaveChunk():" + if(!corner1) world.log << " corner1 turf is null" + if(!corner2) world.log << " corner2 turf is null" + return + var/swapmap/M=new + M.id=chunk_id + M.ischunk=1 // this is a chunk + M.x1=min(corner1.x,corner2.x) + M.y1=min(corner1.y,corner2.y) + M.z1=min(corner1.z,corner2.z) + M.x2=max(corner1.x,corner2.x) + M.y2=max(corner1.y,corner2.y) + M.z2=max(corner1.z,corner2.z) + M.mode=swapmaps_mode + M.Save() + while(M.locked) sleep(1) + qdel(M) + return 1 + +proc/SwapMaps_GetSize(id) + var/savefile/S + var/text=0 + if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[id].txt")) + text=1 + else if(fexists("map_[id].sav")) + S=new("map_[id].sav") + else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[id].txt")) + text=1 + else + world.log << "SwapMaps error in SwapMaps_GetSize(): map_[id] file not found." + return + if(text) + S=new + S.ImportText("/",file("map_[id].txt")) + /* + The //.0 path should always be the map. There's no other way to + read this data. + */ + S.cd="//.0" + var/x + var/y + var/z + S["x"] >> x + S["y"] >> y + S["z"] >> z + return list(x,y,z) diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index c26c2eb9cd6..758737f1a90 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -164,7 +164,7 @@ user << "The crate's anti-tamper system activates!" var/turf/T = get_turf(src.loc) explosion(T, 0, 0, 0, 1) - del(src) + qdel(src) return else user << "You attempt to interact with the device using a hand gesture, but it appears this crate is from before the DECANECT came out." diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index ee043b14415..bdb70368d2e 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -18,7 +18,7 @@ if (machine) machine.console = src else - del(src) + qdel(src) /obj/machinery/mineral/processing_unit_console/attack_hand(mob/user) add_fingerprint(user) diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index 9dc23503ec7..c0c03d815ad 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -18,7 +18,7 @@ if (machine) machine.console = src else - del(src) + qdel(src) /obj/machinery/mineral/stacking_unit_console/attack_hand(mob/user) add_fingerprint(user) @@ -85,7 +85,7 @@ var/obj/item/stack/S = new stacktype(src) stack_storage[S.name] = 0 stack_paths[S.name] = stacktype - del(S) + qdel(S) stack_storage["glass"] = 0 stack_paths["glass"] = /obj/item/stack/sheet/glass diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index c56bcde6423..67d31c43311 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -319,7 +319,7 @@ if(!S || S.field_type != get_responsive_reagent(F.find_type)) if(X) visible_message("\red[pick("[display_name] crumbles away into dust","[display_name] breaks apart")].") - del(X) + qdel(X) finds.Remove(F) diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index bcf46bb2922..eabb0c3a670 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -42,22 +42,22 @@ if(O) if (istype(O,/obj/item/stack/sheet/mineral/gold)) amt_gold += 100 * O.get_amount() - del(O) + qdel(O) if (istype(O,/obj/item/stack/sheet/mineral/silver)) amt_silver += 100 * O.get_amount() - del(O) + qdel(O) if (istype(O,/obj/item/stack/sheet/mineral/diamond)) amt_diamond += 100 * O.get_amount() - del(O) + qdel(O) if (istype(O,/obj/item/stack/sheet/mineral/phoron)) amt_phoron += 100 * O.get_amount() - del(O) + qdel(O) if (istype(O,/obj/item/stack/sheet/mineral/uranium)) amt_uranium += 100 * O.get_amount() - del(O) + qdel(O) if (istype(O,/obj/item/stack/sheet/metal)) amt_iron += 100 * O.get_amount() - del(O) + qdel(O) /obj/machinery/mineral/mint/attack_hand(user as mob) diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 5428f3f6c0a..ce365bbde27 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -97,5 +97,5 @@ for (var/obj/item/weapon/ore/O in contents) O.loc = src.loc O.ex_act(severity++) - del(src) + qdel(src) return \ No newline at end of file diff --git a/code/modules/mob/dead/observer/logout.dm b/code/modules/mob/dead/observer/logout.dm index cf51df634eb..11c6c3c834c 100644 --- a/code/modules/mob/dead/observer/logout.dm +++ b/code/modules/mob/dead/observer/logout.dm @@ -2,4 +2,4 @@ ..() spawn(0) if(src && !key) //we've transferred to another mob. This ghost should be deleted. - del(src) + qdel(src) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index ee8194a004a..076d117eccf 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -81,10 +81,10 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images real_name = name ..() -/mob/dead/observer/Del() +/mob/dead/observer/Destroy() if (ghostimage) ghost_darkness_images -= ghostimage - del(ghostimage) + qdel(ghostimage) ghostimage = null updateallghostimages() ..() @@ -597,7 +597,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp for(var/image/I in client.images) if(I.icon_state == icon) iconRemoved = 1 - del(I) + qdel(I) if(!iconRemoved) var/image/J = image('icons/mob/mob.dmi', loc = src, icon_state = icon) diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index a97d616dee7..07cd8f19ff4 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -19,8 +19,8 @@ if(do_gibs) gibs(loc, viruses, dna) spawn(15) - if(animation) del(animation) - if(src) del(src) + if(animation) qdel(animation) + if(src) qdel(src) //This is the proc for turning a mob into ash. Mostly a copy of gib code (above). //Originally created for wizard disintegrate. I've removed the virus code since it's irrelevant here. @@ -43,8 +43,8 @@ dead_mob_list -= src spawn(15) - if(animation) del(animation) - if(src) del(src) + if(animation) qdel(animation) + if(src) qdel(src) /mob/proc/death(gibbed,deathmessage="seizes up and falls limp...") diff --git a/code/modules/mob/freelook/ai/eye.dm b/code/modules/mob/freelook/ai/eye.dm index a0df415c033..81aad905c8d 100644 --- a/code/modules/mob/freelook/ai/eye.dm +++ b/code/modules/mob/freelook/ai/eye.dm @@ -39,10 +39,10 @@ if(eyeobj) eyeobj.loc = src.loc -/mob/living/silicon/ai/Del() +/mob/living/silicon/ai/Destroy() if(eyeobj) eyeobj.owner = null - del(eyeobj) // No AI, no Eye + qdel(eyeobj) // No AI, no Eye ..() /atom/proc/move_camera_by_click() diff --git a/code/modules/mob/freelook/ai/update_triggers.dm b/code/modules/mob/freelook/ai/update_triggers.dm index 828281567e5..327b39fbf27 100644 --- a/code/modules/mob/freelook/ai/update_triggers.dm +++ b/code/modules/mob/freelook/ai/update_triggers.dm @@ -41,7 +41,7 @@ dd_insertObjectList(cameranet.cameras, src) update_coverage(1) -/obj/machinery/camera/Del() +/obj/machinery/camera/Destroy() cameranet.cameras -= src clear_all_networks() ..() diff --git a/code/modules/mob/freelook/eye.dm b/code/modules/mob/freelook/eye.dm index a9fefbc5bd9..bec261797d3 100644 --- a/code/modules/mob/freelook/eye.dm +++ b/code/modules/mob/freelook/eye.dm @@ -31,11 +31,11 @@ updateallghostimages() ..() -mob/eye/Del() +mob/eye/Destroy() if (ghostimage) ghost_darkness_images -= ghostimage ghost_sightless_images -= ghostimage - del(ghostimage) + qdel(ghostimage) ghostimage = null updateallghostimages() ..() diff --git a/code/modules/mob/freelook/mask/update_triggers.dm b/code/modules/mob/freelook/mask/update_triggers.dm index d80527a2fa2..a8e68058fde 100644 --- a/code/modules/mob/freelook/mask/update_triggers.dm +++ b/code/modules/mob/freelook/mask/update_triggers.dm @@ -23,7 +23,7 @@ ..() cultnet.updateVisibility(src, 0) -/mob/living/Del() +/mob/living/Destroy() cultnet.updateVisibility(src, 0) ..() diff --git a/code/modules/mob/freelook/update_triggers.dm b/code/modules/mob/freelook/update_triggers.dm index 9bba162c40c..c7dc3466486 100644 --- a/code/modules/mob/freelook/update_triggers.dm +++ b/code/modules/mob/freelook/update_triggers.dm @@ -13,7 +13,7 @@ /turf/drain_power() return -1 -/turf/simulated/Del() +/turf/simulated/Destroy() updateVisibility(src) ..() @@ -24,7 +24,7 @@ // STRUCTURES -/obj/structure/Del() +/obj/structure/Destroy() updateVisibility(src) ..() @@ -34,7 +34,7 @@ // EFFECTS -/obj/effect/Del() +/obj/effect/Destroy() updateVisibility(src) ..() diff --git a/code/modules/mob/freelook/visualnet.dm b/code/modules/mob/freelook/visualnet.dm index 161aeb92b82..38cb5bb3d2a 100644 --- a/code/modules/mob/freelook/visualnet.dm +++ b/code/modules/mob/freelook/visualnet.dm @@ -12,7 +12,7 @@ ..() visual_nets += src -/datum/visualnet/Del() +/datum/visualnet/Destroy() visual_nets -= src ..() diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index 5e7fbe438d4..6347a091f45 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -11,7 +11,7 @@ ..() processing_objects.Add(src) -/obj/item/weapon/holder/Del() +/obj/item/weapon/holder/Destroy() processing_objects.Remove(src) ..() @@ -26,7 +26,7 @@ mob_container.forceMove(get_turf(src)) M.reset_view() - del(src) + qdel(src) /obj/item/weapon/holder/attackby(obj/item/weapon/W as obj, mob/user as mob) for(var/mob/M in src.contents) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 0d20e00166f..44e52b07901 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -20,7 +20,7 @@ if(!W.mob_can_equip(src, slot)) if(del_on_fail) - del(W) + qdel(W) else if(!disable_warning) src << "\red You are unable to equip that." //Only print if del_on_fail is false diff --git a/code/modules/mob/living/blob/blob.dm b/code/modules/mob/living/blob/blob.dm index 2b82ccbedbf..8bbf517e60e 100644 --- a/code/modules/mob/living/blob/blob.dm +++ b/code/modules/mob/living/blob/blob.dm @@ -246,7 +246,7 @@ B << "To create this node you will have to be on a normal blob tile and far enough away from any other node." B << "Check your Blob verbs and hit Create Node to build a node." spawn(10) - del(G_found) + qdel(G_found) diff --git a/code/modules/mob/living/carbon/alien/diona/progression.dm b/code/modules/mob/living/carbon/alien/diona/progression.dm index fa567cbb443..588acea5ad8 100644 --- a/code/modules/mob/living/carbon/alien/diona/progression.dm +++ b/code/modules/mob/living/carbon/alien/diona/progression.dm @@ -13,7 +13,7 @@ if(istype(loc,/obj/item/weapon/holder/diona)) var/obj/item/weapon/holder/diona/L = loc src.loc = L.loc - del(L) + qdel(L) src.visible_message("\red [src] begins to shift and quiver, and erupts in a shower of shed bark as it splits into a tangle of nearly a dozen new dionaea.","\red You begin to shift and quiver, feeling your awareness splinter. All at once, we consume our stored nutrients to surge with growth, splitting into a tangle of at least a dozen new dionaea. We have attained our gestalt form.") return "Diona" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/progression.dm b/code/modules/mob/living/carbon/alien/progression.dm index b6306ed5e2a..54c7f9a9692 100644 --- a/code/modules/mob/living/carbon/alien/progression.dm +++ b/code/modules/mob/living/carbon/alien/progression.dm @@ -38,7 +38,7 @@ for(var/datum/language/L in languages) adult.add_language(L.name) - del(src) + qdel(src) /mob/living/carbon/alien/proc/update_progression() if(amount_grown < max_grown) diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index c4107f8119d..819613ee655 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -61,7 +61,7 @@ living_mob_list += brainmob user.drop_item() - del(O) + qdel(O) name = "Man-Machine Interface: [brainmob.real_name]" icon_state = "mmi_full" diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/carbon/brain/death.dm index 517e32362a9..43918f5288f 100644 --- a/code/modules/mob/living/carbon/brain/death.dm +++ b/code/modules/mob/living/carbon/brain/death.dm @@ -7,8 +7,8 @@ /mob/living/carbon/brain/gib() if(istype(container, /obj/item/device/mmi)) - del(container)//Gets rid of the MMI if there is one + qdel(container)//Gets rid of the MMI if there is one if(loc) if(istype(loc,/obj/item/organ/brain)) - del(loc)//Gets rid of the brain item + qdel(loc)//Gets rid of the brain item ..(null,1) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d3a7f24b362..8ab47583400 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -65,7 +65,7 @@ if (internal) if (!internal.air_contents) - del(internal) + qdel(internal) else stat("Internal Atmosphere Info", internal.name) stat("Tank Pressure", internal.air_contents.return_pressure()) @@ -818,7 +818,7 @@ for(var/x in all_hairs) var/datum/sprite_accessory/hair/H = new x // create new hair datum based on type x hairs.Add(H.name) // add hair name to hairs - del(H) // delete the hair after it's all done + qdel(H) // delete the hair after it's all done var/new_style = input("Please select hair style", "Character Generation",h_style) as null|anything in hairs @@ -833,7 +833,7 @@ for(var/x in all_fhairs) var/datum/sprite_accessory/facial_hair/H = new x fhairs.Add(H.name) - del(H) + qdel(H) new_style = input("Please select facial style", "Character Generation",f_style) as null|anything in fhairs @@ -944,7 +944,7 @@ if(H.brainmob.real_name == src.real_name) if(H.brainmob.mind) H.brainmob.mind.transfer_to(src) - del(H) + qdel(H) for (var/datum/disease/virus in viruses) virus.cure() @@ -1017,7 +1017,7 @@ .=..() if(clean_feet && !shoes && istype(feet_blood_DNA, /list) && feet_blood_DNA.len) feet_blood_color = null - del(feet_blood_DNA) + qdel(feet_blood_DNA) update_inv_shoes(1) return 1 @@ -1143,7 +1143,7 @@ if(client && client.screen) client.screen.len = null if(hud_used) - del(hud_used) + qdel(hud_used) hud_used = new /datum/hud(src) if(species) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index b7cecf3d7e1..94dfeddf343 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -337,12 +337,12 @@ visible_message("[user] has broken [src]'s grip on [lgrab.affecting]!") success = 1 spawn(1) - del(lgrab) + qdel(lgrab) if(istype(r_hand, /obj/item/weapon/grab)) var/obj/item/weapon/grab/rgrab = r_hand if(rgrab.affecting) visible_message("[user] has broken [src]'s grip on [rgrab.affecting]!") success = 1 spawn(1) - del(rgrab) + qdel(rgrab) return success diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 705879c633b..c962b8355bf 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -129,7 +129,7 @@ spark_system.attach(src) spark_system.start() spawn(10) - del(spark_system) + qdel(spark_system) //Handles chem traces /mob/living/carbon/human/proc/handle_trace_chems() diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 5484508fe77..05d6e27e0c6 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -34,7 +34,7 @@ This saves us from having to call add_fingerprint() any time something is put in if (equip_to_slot_if_possible(W, slots[slot], del_on_fail = 0)) return slot if (del_on_fail) - del(W) + qdel(W) return null @@ -341,9 +341,9 @@ This saves us from having to call add_fingerprint() any time something is put in /obj/effect/equip_e/New() if (!ticker) - del(src) + qdel(src) spawn(100) - del(src) + qdel(src) ..() return @@ -354,22 +354,22 @@ This saves us from having to call add_fingerprint() any time something is put in switch(place) if("mask") if (!( target.wear_mask )) - del(src) + qdel(src) if("l_hand") if (!( target.l_hand )) - del(src) + qdel(src) if("r_hand") if (!( target.r_hand )) - del(src) + qdel(src) if("suit") if (!( target.wear_suit )) - del(src) + qdel(src) if("uniform") if (!( target.w_uniform )) - del(src) + qdel(src) if("back") if (!( target.back )) - del(src) + qdel(src) if("syringe") return if("pill") @@ -382,10 +382,10 @@ This saves us from having to call add_fingerprint() any time something is put in return if("handcuff") if (!( target.handcuffed )) - del(src) + qdel(src) if("id") if ((!( target.wear_id ) || !( target.w_uniform ))) - del(src) + qdel(src) if("splints") var/count = 0 for(var/organ in list("l_leg","r_leg","l_arm","r_arm")) @@ -394,19 +394,19 @@ This saves us from having to call add_fingerprint() any time something is put in count = 1 break if(count == 0) - del(src) + qdel(src) return if("sensor") if (! target.w_uniform ) - del(src) + qdel(src) if("internal") if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && (istype(target.back, /obj/item/weapon/tank) || istype(target.belt, /obj/item/weapon/tank) || istype(target.s_store, /obj/item/weapon/tank)) && !( target.internal )) ) && !( target.internal ))) - del(src) + qdel(src) var/list/L = list( "syringe", "pill", "drink", "dnainjector", "fuel", "sensor", "internal", "tie") if ((item && !( L.Find(place) ))) if(isrobot(source) && place != "handcuff") - del(src) + qdel(src) for(var/mob/O in viewers(target, null)) O.show_message("\red [source] is trying to put \a [item] on [target]", 1) else @@ -508,7 +508,7 @@ This saves us from having to call add_fingerprint() any time something is put in message = "\red [source] is trying to empty [target]'s pockets." if("CPR") if (!target.cpr_time) - del(src) + qdel(src) target.cpr_time = 0 message = "\red [source] is trying perform CPR on [target]!" if("internal") @@ -607,13 +607,13 @@ It can still be worn/put on as normal. strip_item = target.shoes if("l_hand") if (istype(target, /obj/item/clothing/suit/straight_jacket)) - del(src) + qdel(src) slot_to_process = slot_l_hand if (target.l_hand) strip_item = target.l_hand if("r_hand") if (istype(target, /obj/item/clothing/suit/straight_jacket)) - del(src) + qdel(src) slot_to_process = slot_r_hand if (target.r_hand) strip_item = target.r_hand @@ -700,11 +700,11 @@ It can still be worn/put on as normal. S.add_fingerprint(source) if (!( istype(S, /obj/item/weapon/dnainjector) )) S.inuse = 0 - del(src) + qdel(src) S.inject(target, source) if (S.s_time >= world.time + 30) S.inuse = 0 - del(src) + qdel(src) S.s_time = world.time for(var/mob/O in viewers(source, null)) O.show_message("\red [source] injects [target] with the DNA Injector!", 1) @@ -763,4 +763,4 @@ It can still be worn/put on as normal. if(source && target) if(source.machine == target) target.show_inv(source) - del(src) \ No newline at end of file + qdel(src) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 568822d1051..440ab03b06c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -974,7 +974,7 @@ else for(var/atom/a in hallucinations) - del a + qdel(a) if(halloss > 100) src << "You're in too much pain to keep going..." @@ -1404,7 +1404,7 @@ if(M.stat == 2) M.death(1) stomach_contents.Remove(M) - del(M) + qdel(M) continue if(air_master.current_cycle%3==1) if(!(M.status_flags & GODMODE)) diff --git a/code/modules/mob/living/carbon/human/species/outsider/shadow.dm b/code/modules/mob/living/carbon/human/species/outsider/shadow.dm index fa40f8ee005..41349846ebb 100644 --- a/code/modules/mob/living/carbon/human/species/outsider/shadow.dm +++ b/code/modules/mob/living/carbon/human/species/outsider/shadow.dm @@ -23,4 +23,4 @@ /datum/species/shadow/handle_death(var/mob/living/carbon/human/H) spawn(1) new /obj/effect/decal/cleanable/ash(H.loc) - del(H) \ No newline at end of file + qdel(H) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 6fddbd92ec2..5c01ea38b4b 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -178,7 +178,7 @@ for(var/obj/item/organ/organ in H.contents) if((organ in H.organs) || (organ in H.internal_organs)) - del(organ) + qdel(organ) if(H.organs) H.organs.Cut() if(H.internal_organs) H.internal_organs.Cut() diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index 62907752aaa..8e1b91a12cc 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -209,7 +209,7 @@ if(D.client) D.loc = H.loc else - del(D) + qdel(D) H.visible_message("\red[H] splits apart with a wet slithering noise!") diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm index 093025189b9..c60d8bca1d7 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm @@ -16,9 +16,9 @@ spawn(0) AddInfectionImages(affected_mob) else - del(src) + qdel(src) -/obj/item/alien_embryo/Del() +/obj/item/alien_embryo/Destroy() if(affected_mob) affected_mob.status_flags &= ~(XENO_HOST) spawn(0) @@ -98,7 +98,7 @@ new_xeno << sound('sound/voice/hiss5.ogg',0,0,0,100) //To get the player's attention if(gib_on_success) affected_mob.gib() - del(src) + qdel(src) /*---------------------------------------- Proc: RefreshInfectionImage() @@ -114,7 +114,7 @@ Des: Removes all infection images from aliens and places an infection image on a if(alien.client) for(var/image/I in alien.client.images) if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) + qdel(I) for(var/mob/living/L in mob_list) if(iscorgi(L) || iscarbon(L)) if(L.status_flags & XENO_HOST) @@ -156,4 +156,4 @@ Des: Removes the alien infection image from all aliens in the world located in p for(var/image/I in alien.client.images) if(I.loc == C) if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) \ No newline at end of file + qdel(I) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm index 6fbdfa8ddbd..bdc505fe343 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm @@ -41,7 +41,7 @@ var/const/MAX_ACTIVE_TIME = 400 if(config.aliens_allowed) ..() else - del(src) + qdel(src) /obj/item/clothing/mask/facehugger/examine(mob/user) ..(user) diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm index e1caf893246..4ef350ef881 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm @@ -45,7 +45,7 @@ Des: Removes all infected images from the alien. if (client) for(var/image/I in client.images) if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) + qdel(I) return /* TODO: Convert this over. diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index dbc78f513cf..42e4c0a6d88 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -239,7 +239,7 @@ var/global/list/damage_icon_parts = list() //0 = destroyed, 1 = normal, 2 = robotic, 3 = necrotic. //Create a new, blank icon for our mob to use. if(stand_icon) - del(stand_icon) + qdel(stand_icon) stand_icon = new(species.icon_template ? species.icon_template : 'icons/mob/human.dmi',"blank") var/icon_key = "[species.race_key][g][s_tone][r_skin][g_skin][b_skin]" var/obj/item/organ/eyes/eyes = internal_organs_by_name["eyes"] @@ -412,7 +412,7 @@ var/global/list/damage_icon_parts = list() if (targeted_by && target_locked) overlays_standing[TARGETED_LAYER] = target_locked else if (!targeted_by && target_locked) - del(target_locked) + qdel(target_locked) if (!targeted_by) overlays_standing[TARGETED_LAYER] = null if(update_icons) update_icons() diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index 2f67cbec85d..7336189e117 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -143,7 +143,7 @@ //now mobs var/speech_bubble_test = say_test(message) var/image/speech_bubble = image('icons/mob/talk.dmi',src,"h[speech_bubble_test]") - spawn(30) del(speech_bubble) + spawn(30) qdel(speech_bubble) for(var/mob/M in listening) M << speech_bubble diff --git a/code/modules/mob/living/carbon/metroid/items.dm b/code/modules/mob/living/carbon/metroid/items.dm index 9f103991123..f7adc8b20fb 100644 --- a/code/modules/mob/living/carbon/metroid/items.dm +++ b/code/modules/mob/living/carbon/metroid/items.dm @@ -23,7 +23,7 @@ user <<"You apply the enhancer. It now has triple the amount of uses." Uses = 3 enhanced = 1 - del(O) + qdel(O) /obj/item/slime_extract/New() ..() @@ -145,14 +145,14 @@ pet.icon_dead = "[M.colour] baby slime dead" pet.colour = "[M.colour]" user <<"You feed the slime the potion, removing it's powers and calming it." - del(M) + qdel(M) var/newname = sanitize(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text, MAX_NAME_LEN) if (!newname) newname = "pet slime" pet.name = newname pet.real_name = newname - del(src) + qdel(src) /obj/item/weapon/slimepotion2 name = "advanced docility potion" @@ -176,14 +176,14 @@ pet.icon_dead = "[M.colour] baby slime dead" pet.colour = "[M.colour]" user <<"You feed the slime the potion, removing it's powers and calming it." - del(M) + qdel(M) var/newname = sanitize(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text, MAX_NAME_LEN) if (!newname) newname = "pet slime" pet.name = newname pet.real_name = newname - del(src) + qdel(src) /obj/item/weapon/slimesteroid @@ -208,7 +208,7 @@ user <<"You feed the slime the steroid. It now has triple the amount of extract." M.cores = 3 - del(src) + qdel(src) /obj/item/weapon/slimesteroid2 name = "extract enhancer" @@ -227,7 +227,7 @@ user <<"You apply the enhancer. It now has triple the amount of uses." target.Uses = 3 target.enahnced = 1 - del(src)*/ + qdel(src)*/ /obj/effect/golemrune anchored = 1 @@ -268,7 +268,7 @@ G.set_species("Golem") G.key = ghost.key G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve [user], and assist them in completing their goals at any cost." - del (src) + qdel(src) proc/announce_to_ghosts() @@ -350,7 +350,7 @@ spawn(rand(50,100)) src.visible_message(" The [name] bursts open!") new/mob/living/carbon/slime(T) - del(src) + qdel(src) /obj/item/weapon/reagent_containers/food/snacks/egg/slime/process() diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index e7e545fb30e..ebbfb991d00 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -178,7 +178,7 @@ var/f_loss = null switch (severity) if (1.0) - del(src) + qdel(src) return if (2.0) diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm index b2f8c2588f3..b5fd583ade7 100644 --- a/code/modules/mob/living/carbon/metroid/powers.dm +++ b/code/modules/mob/living/carbon/metroid/powers.dm @@ -161,7 +161,7 @@ src.mind.transfer_to(new_slime) else new_slime.key = src.key - del(src) + qdel(src) else src << "I am not ready to reproduce yet..." else diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index c4175456ec7..5f620187230 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -512,7 +512,7 @@ default behaviour is: for(var/mob/O in viewers(M, null)) O.show_message(text("\red [] has been pulled from []'s grip by []", G.affecting, G.assailant, src), 1) //G = null - del(G) + qdel(G) else ok = 0 if (locate(/obj/item/weapon/grab, M.grabbed_by.len)) @@ -629,22 +629,22 @@ default behaviour is: var/resisting = 0 for(var/obj/O in L.requests) L.requests.Remove(O) - del(O) + qdel(O) resisting++ for(var/obj/item/weapon/grab/G in usr.grabbed_by) resisting++ switch(G.state) if(GRAB_PASSIVE) - del(G) + qdel(G) if(GRAB_AGGRESSIVE) if(prob(60)) //same chance of breaking the grab as disarm L.visible_message("[L] has broken free of [G.assailant]'s grip!") - del(G) + qdel(G) if(GRAB_NECK) //If the you move when grabbing someone then it's easier for them to break free. Same if the affected mob is immune to stun. if (((world.time - G.assailant.l_move_time < 30 || !L.stunned) && prob(15)) || prob(3)) L.visible_message("[L] has broken free of [G.assailant]'s headlock!") - del(G) + qdel(G) if(resisting) L.visible_message("[L] resists!") @@ -778,7 +778,7 @@ default behaviour is: O.show_message(text("\red [] manages to break the handcuffs!", CM), 1) CM << "\red You successfully break your handcuffs." CM.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) - del(CM.handcuffed) + qdel(CM.handcuffed) CM.handcuffed = null if(buckled && buckled.buckle_require_restraints) buckled.unbuckle_mob() @@ -826,7 +826,7 @@ default behaviour is: O.show_message(text("\red [] manages to break the legcuffs!", CM), 1) CM << "\red You successfully break your legcuffs." CM.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) - del(CM.legcuffed) + qdel(CM.legcuffed) CM.legcuffed = null CM.update_inv_legcuffed() else diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index e3ce0c93022..6e6ead32e7b 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -59,7 +59,7 @@ if(P.taser_effect) stun_effect_act(0, P.agony, def_zone, P) src <<"\red You have been hit by [P]!" - del P + qdel(P) return //Armor diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 3db012b44de..8919ab0952a 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -263,7 +263,7 @@ proc/get_radio_key_from_channel(var/channel) var/speech_bubble_test = say_test(message) var/image/speech_bubble = image('icons/mob/talk.dmi',src,"h[speech_bubble_test]") - spawn(30) del(speech_bubble) + spawn(30) qdel(speech_bubble) for(var/mob/M in listening) M << speech_bubble diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index af26c7ddb98..f4809a79eef 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -146,7 +146,7 @@ var/list/ai_verbs_default = list( if(!safety)//Only used by AIize() to successfully spawn an AI. if (!B)//If there is no player/brain inside. empty_playable_ai_cores += new/obj/structure/AIcore/deactivated(loc)//New empty terminal. - del(src)//Delete AI. + qdel(src)//Delete AI. return else if (B.brainmob.mind) @@ -196,9 +196,9 @@ var/list/ai_verbs_default = list( job = "AI" -/mob/living/silicon/ai/Del() +/mob/living/silicon/ai/Destroy() ai_list -= src - del(eyeobj) + qdel(eyeobj) ..() /mob/living/silicon/ai/pointed(atom/A as mob|obj|turf in view()) @@ -579,7 +579,7 @@ var/list/ai_verbs_default = list( input = input("Select a crew member:") as null|anything in personnel_list var/icon/character_icon = personnel_list[input] if(character_icon) - del(holo_icon)//Clear old icon so we're not storing it in memory. + qdel(holo_icon)//Clear old icon so we're not storing it in memory. holo_icon = getHologramIcon(icon(character_icon)) else alert("No suitable records found. Aborting.") @@ -592,7 +592,7 @@ var/list/ai_verbs_default = list( ) input = input("Please select a hologram:") as null|anything in icon_list if(input) - del(holo_icon) + qdel(holo_icon) switch(input) if("default") holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1")) diff --git a/code/modules/mob/living/silicon/ai/latejoin.dm b/code/modules/mob/living/silicon/ai/latejoin.dm index efa4ccd4a4d..7c60bb75e43 100644 --- a/code/modules/mob/living/silicon/ai/latejoin.dm +++ b/code/modules/mob/living/silicon/ai/latejoin.dm @@ -34,10 +34,10 @@ var/global/list/empty_playable_ai_cores = list() job_master.FreeRole(job) if(mind.objectives.len) - del(mind.objectives) + qdel(mind.objectives) mind.special_role = null clear_antag_roles(mind) ghostize(0) - del(src) + qdel(src) diff --git a/code/modules/mob/living/silicon/ai/subsystems.dm b/code/modules/mob/living/silicon/ai/subsystems.dm index af2f2f5b2ca..54eb92b04b4 100644 --- a/code/modules/mob/living/silicon/ai/subsystems.dm +++ b/code/modules/mob/living/silicon/ai/subsystems.dm @@ -11,7 +11,7 @@ /mob/living/silicon/ai/init_subsystems() ..() - del(alarm_monitor) + qdel(alarm_monitor) alarm_monitor = new/obj/nano_module/alarm_monitor/ai(src) crew_monitor = new(src) rcon = new(src) diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm index 87e70393d0f..920a3a1658d 100644 --- a/code/modules/mob/living/silicon/pai/death.dm +++ b/code/modules/mob/living/silicon/pai/death.dm @@ -3,11 +3,11 @@ card.removePersonality() if(gibbed) src.loc = get_turf(card) - del(card) + qdel(card) else close_up() if(mind) - del(mind) + qdel(mind) ..(gibbed) ghostize() - del(src) \ No newline at end of file + qdel(src) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/pai/life.dm b/code/modules/mob/living/silicon/pai/life.dm index 6c099af932a..fe426c36d0f 100644 --- a/code/modules/mob/living/silicon/pai/life.dm +++ b/code/modules/mob/living/silicon/pai/life.dm @@ -8,7 +8,7 @@ var/turf/T = get_turf_or_move(src.loc) for (var/mob/M in viewers(T)) M.show_message("\red The data cable rapidly retracts back into its spool.", 3, "\red You hear a click and the sound of wire spooling rapidly.", 2) - del(src.cable) + qdel(src.cable) regular_hud_updates() diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index b78deedf7a1..0d70692b134 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -29,7 +29,7 @@ var/obj/item/robot_parts/robot_component/comp = wrapped brokenstate = comp.icon_state_broken if(wrapped) - del wrapped + qdel(wrapped) wrapped = new/obj/item/broken_device diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index ca3c80d3a74..3dd2afd216f 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -1,7 +1,7 @@ /mob/living/silicon/robot/dust() //Delete the MMI first so that it won't go popping out. if(mmi) - del(mmi) + qdel(mmi) ..() /mob/living/silicon/robot/death(gibbed) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index 8353972ba2d..1864e0171b6 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -256,7 +256,7 @@ if(istype(M,/mob/living/simple_animal/lizard) || istype(M,/mob/living/simple_animal/mouse)) src.loc.visible_message("[src.loc] sucks [M] into its decompiler. There's a horrible crunching noise.","It's a bit of a struggle, but you manage to suck [M] into your decompiler. It makes a series of visceral crunching noises.") new/obj/effect/decal/cleanable/blood/splatter(get_turf(src)) - del(M) + qdel(M) if(wood) wood.add_charge(2000) if(plastic) @@ -279,7 +279,7 @@ if(!M || !D) return D << "You carefully and thoroughly decompile [M], storing as much of its resources as you can within yourself." - del(M) + qdel(M) new/obj/effect/decal/cleanable/blood/oil(get_turf(src)) if(metal) @@ -347,7 +347,7 @@ else continue - del(W) + qdel(W) grabbed_something = 1 if(grabbed_something) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index cab055696df..f087cee60c8 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -227,7 +227,7 @@ //If there's an MMI in the robot, have it ejected when the mob goes away. --NEO //Improved /N -/mob/living/silicon/robot/Del() +/mob/living/silicon/robot/Destroy() if(mmi)//Safety for when a cyborg gets dust()ed. Or there is no MMI inside. var/turf/T = get_turf(loc)//To hopefully prevent run time errors. if(T) mmi.loc = T @@ -805,7 +805,7 @@ src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and his commands." if(src.module && istype(src.module, /obj/item/weapon/robot_module/miner)) for(var/obj/item/weapon/pickaxe/borgdrill/D in src.module.modules) - del(D) + qdel(D) src.module.modules += new /obj/item/weapon/pickaxe/diamonddrill(src.module) src.module.rebuild() updateicon() @@ -924,7 +924,7 @@ //Call when target overlay should be added/removed /mob/living/silicon/robot/update_targeted() if(!targeted_by && target_locked) - del(target_locked) + qdel(target_locked) updateicon() if (targeted_by && target_locked) overlays += target_locked @@ -1058,7 +1058,7 @@ for(var/A in tile) if(istype(A, /obj/effect)) if(istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay)) - del(A) + qdel(A) else if(istype(A, /obj/item)) var/obj/item/cleaned_item = A cleaned_item.clean_blood() diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm index d18ca506cca..3bc0dd9a150 100644 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_items.dm @@ -43,11 +43,11 @@ S.use(1) loaded_item = S else - del(S) + qdel(S) desc = initial(desc) icon_state = initial(icon_state) else - del(I) + qdel(I) desc = initial(desc) icon_state = initial(icon_state) else diff --git a/code/modules/mob/living/silicon/robot/robot_upgrades.dm b/code/modules/mob/living/silicon/robot/robot_upgrades.dm index a6d08bd5348..759b7f44418 100644 --- a/code/modules/mob/living/silicon/robot/robot_upgrades.dm +++ b/code/modules/mob/living/silicon/robot/robot_upgrades.dm @@ -24,7 +24,7 @@ /obj/item/borg/upgrade/reset/action(var/mob/living/silicon/robot/R) R.uneq_all() - del(R.module) + qdel(R.module) R.module = null R.modtype = "robot" R.real_name = "Cyborg [R.ident]" diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index b1cc4240ff5..852a5b73b8f 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -31,7 +31,7 @@ add_language("Galactic Common") init_subsystems() -/mob/living/silicon/Del() +/mob/living/silicon/Destroy() for(var/datum/alarm_handler/AH in alarm_manager.all_handlers) AH.unregister(src) ..() diff --git a/code/modules/mob/living/simple_animal/bees.dm b/code/modules/mob/living/simple_animal/bees.dm index 3a5f2f17e56..fc2a1cd72ea 100644 --- a/code/modules/mob/living/simple_animal/bees.dm +++ b/code/modules/mob/living/simple_animal/bees.dm @@ -20,7 +20,7 @@ ..() parent = new_parent -/mob/living/simple_animal/bee/Del() +/mob/living/simple_animal/bee/Destroy() if(parent) parent.owned_bee_swarms.Remove(src) ..() @@ -107,7 +107,7 @@ if(feral > 0) src.strength += B.strength - del(B) + qdel(B) src.icon_state = "bees[src.strength]" if(strength > 5) icon_state = "bees_swarm" @@ -120,7 +120,7 @@ B.icon_state = "bees[B.strength]" if(src.strength <= 0) - del(src) + qdel(src) return src.icon_state = "bees[B.strength]" var/turf/simulated/floor/T = get_turf(get_step(src, pick(1,2,4,8))) @@ -169,7 +169,7 @@ if(!parent && prob(10)) strength -= 1 if(strength <= 0) - del(src) + qdel(src) else if(strength <= 5) icon_state = "bees[strength]" diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm index 333ea3540dc..9480840d71d 100644 --- a/code/modules/mob/living/simple_animal/borer/borer.dm +++ b/code/modules/mob/living/simple_animal/borer/borer.dm @@ -143,7 +143,7 @@ if(!host.lastKnownIP) host.lastKnownIP = b2h_ip - del(host_brain) + qdel(host_brain) /mob/living/simple_animal/borer/proc/leave_host() diff --git a/code/modules/mob/living/simple_animal/borer/borer_powers.dm b/code/modules/mob/living/simple_animal/borer/borer_powers.dm index b0fd2a51216..e1b54dc832e 100644 --- a/code/modules/mob/living/simple_animal/borer/borer_powers.dm +++ b/code/modules/mob/living/simple_animal/borer/borer_powers.dm @@ -304,7 +304,7 @@ host.computer_id = null host.lastKnownIP = null - del(host_brain) + qdel(host_brain) host_brain = new(src) host_brain.ckey = host.ckey diff --git a/code/modules/mob/living/simple_animal/constructs/constructs.dm b/code/modules/mob/living/simple_animal/constructs/constructs.dm index 43ebfd9a499..1ae5bba479f 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs.dm @@ -52,7 +52,7 @@ new /obj/item/weapon/ectoplasm (src.loc) ..(null,"collapses in a shattered heap.") ghostize() - del src + qdel(src) /mob/living/simple_animal/construct/attack_generic(var/mob/user) if(istype(user, /mob/living/simple_animal/construct/builder)) diff --git a/code/modules/mob/living/simple_animal/constructs/soulstone.dm b/code/modules/mob/living/simple_animal/constructs/soulstone.dm index 502b7dd3dd3..2fa81f08c8b 100644 --- a/code/modules/mob/living/simple_animal/constructs/soulstone.dm +++ b/code/modules/mob/living/simple_animal/constructs/soulstone.dm @@ -131,7 +131,7 @@ animation.icon = 'icons/mob/mob.dmi' animation.master = T flick("dust-h", animation) - del(animation) + qdel(animation) var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade( T.loc ) S.loc = C //put shade in stone S.status_flags |= GODMODE //So they won't die inside the stone somehow @@ -152,7 +152,7 @@ U << "\blue Capture successful!: \black [T.real_name]'s soul has been ripped from their body and stored within the soul stone." U << "The soulstone has been imprinted with [S.real_name]'s mind, it will no longer react to other souls." C.imprinted = "[S.name]" - del T + qdel(T) if("SHADE") var/mob/living/simple_animal/shade/T = target var/obj/item/device/soulstone/C = src @@ -184,33 +184,33 @@ Z.key = A.key if(iscultist(U)) cult.add_antagonist(Z.mind) - del(T) + qdel(T) Z << "You are playing a Juggernaut. Though slow, you can withstand extreme punishment, and rip apart enemies and walls alike." Z << "You are still bound to serve your creator, follow their orders and help them complete their goals at all costs." Z.cancel_camera() - del(C) + qdel(C) if("Wraith") var/mob/living/simple_animal/construct/wraith/Z = new /mob/living/simple_animal/construct/wraith (get_turf(T.loc)) Z.key = A.key if(iscultist(U)) cult.add_antagonist(Z.mind) - del(T) + qdel(T) Z << "You are playing a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls." Z << "You are still bound to serve your creator, follow their orders and help them complete their goals at all costs." Z.cancel_camera() - del(C) + qdel(C) if("Artificer") var/mob/living/simple_animal/construct/builder/Z = new /mob/living/simple_animal/construct/builder (get_turf(T.loc)) Z.key = A.key if(iscultist(U)) cult.add_antagonist(Z.mind) - del(T) + qdel(T) Z << "You are playing an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, repair allied constructs (by clicking on them), and even create new constructs" Z << "You are still bound to serve your creator, follow their orders and help them complete their goals at all costs." Z.cancel_camera() - del(C) + qdel(C) else U << "\red Creation failed!: \black The soul stone is empty! Go kill someone!" return diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 4f26dacdb66..93b79423ce2 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -78,7 +78,7 @@ W.assignment = corpseidjob W.registered_name = M.real_name M.equip_to_slot_or_del(W, slot_wear_id) - del(src) + qdel(src) diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 43b6c42ceed..a1284503e12 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -59,7 +59,7 @@ health = min(maxHealth, health + MED.heal_brute) MED.amount -= 1 if(MED.amount <= 0) - del(MED) + qdel(MED) for(var/mob/M in viewers(src, null)) if ((M.client && !( M.blinded ))) M.show_message("\blue [user] applies the [MED] on [src]") diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index b7e72da0c6f..433a46efb7f 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -177,7 +177,7 @@ amount_grown += rand(1,2) if(amount_grown >= 100) new /mob/living/simple_animal/chicken(src.loc) - del(src) + qdel(src) var/const/MAX_CHICKENS = 50 var/global/chicken_count = 0 @@ -228,7 +228,7 @@ var/global/chicken_count = 0 if(!stat && eggsleft < 8) user.visible_message("\blue [user] feeds [O] to [name]! It clucks happily.","\blue You feed [O] to [name]! It clucks happily.") user.drop_item() - del(O) + qdel(O) eggsleft += rand(1, 4) else user << "\blue [name] doesn't seem hungry!" @@ -258,6 +258,6 @@ var/global/chicken_count = 0 visible_message("[src] hatches with a quiet cracking sound.") new /mob/living/simple_animal/chick(get_turf(src)) processing_objects.Remove(src) - del(src) + qdel(src) else processing_objects.Remove(src) diff --git a/code/modules/mob/living/simple_animal/friendly/slime.dm b/code/modules/mob/living/simple_animal/friendly/slime.dm index dab2d2e2d90..d0a8e09207a 100644 --- a/code/modules/mob/living/simple_animal/friendly/slime.dm +++ b/code/modules/mob/living/simple_animal/friendly/slime.dm @@ -45,4 +45,4 @@ S2.icon_living = "[src.colour] baby slime" S2.icon_dead = "[src.colour] baby slime dead" S2.colour = "[src.colour]" - del(src) \ No newline at end of file + qdel(src) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index ab4f7b2269e..02ed66ae21a 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -185,7 +185,7 @@ src.name = "Spider-bot" update_icon() -/mob/living/simple_animal/spiderbot/Del() +/mob/living/simple_animal/spiderbot/Destroy() eject_brain() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index 26d69933e8e..e358f3e69ac 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -51,7 +51,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() - del src + qdel(src) return /mob/living/simple_animal/hostile/hivebot/tele//this still needs work @@ -95,7 +95,7 @@ if("rapid") new /mob/living/simple_animal/hostile/hivebot/rapid(get_turf(src)) spawn(100) - del(src) + qdel(src) return diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index bb4616bbe8e..cc58a7ce1c4 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -188,7 +188,7 @@ if(!A) return if (!istype(target, /turf)) - del(A) + qdel(A) return A.current = target A.starting = get_turf(src) diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 4cd203ee08a..4764dcd5479 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -43,7 +43,7 @@ /mob/living/simple_animal/hostile/mimic/death() ..() - del(src) + qdel(src) // // Crate Mimic diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index e3a4ce46671..cddaadfccda 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -53,5 +53,5 @@ new corpse (src.loc) if(weapon1) new weapon1 (src.loc) - del src + qdel(src) return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm index 872eb95b612..15b6ddc0c62 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm @@ -159,9 +159,9 @@ /mob/living/simple_animal/hostile/retaliate/malf_drone/death() ..(null,"suddenly breaks apart.") - del(src) + qdel(src) -/mob/living/simple_animal/hostile/retaliate/malf_drone/Del() +/mob/living/simple_animal/hostile/retaliate/malf_drone/Destroy() //some random debris left behind if(has_loot) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 84f1c6f27a8..ab044a02f05 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -51,5 +51,5 @@ new corpse (src.loc) if(weapon1) new weapon1 (src.loc) - del src + qdel(src) return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 12f175cfef7..e0845a399d8 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -43,7 +43,7 @@ new weapon1 (src.loc) if(weapon2) new weapon2 (src.loc) - del src + qdel(src) return ///////////////Sword and shield//////////// @@ -159,4 +159,4 @@ /mob/living/simple_animal/hostile/viscerator/death() ..(null,"is smashed into pieces!") - del src + qdel(src) diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 50b2191d3ed..56bcafd6f54 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -53,4 +53,4 @@ /mob/living/simple_animal/hostile/tree/death() ..(null,"is hacked into pieces!") new /obj/item/stack/sheet/wood(loc) - del(src) \ No newline at end of file + qdel(src) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index c284f7ad3c5..359db24c636 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -47,5 +47,5 @@ if((M.client && !( M.blinded ))) M.show_message("\red [src] lets out a contented sigh as their form unwinds. ") ghostize() - del src + qdel(src) return diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 067a9bd8fe6..881cb2d76a8 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -274,7 +274,7 @@ adjustBruteLoss(-MED.heal_brute) MED.amount -= 1 if(MED.amount <= 0) - del(MED) + qdel(MED) for(var/mob/M in viewers(src, null)) if ((M.client && !( M.blinded ))) M.show_message("[user] chops up \the [src]!") new/obj/effect/decal/cleanable/blood/splatter(get_turf(src)) - del(src) + qdel(src) else user.visible_message("[user] butchers \the [src] messily!") gib() diff --git a/code/modules/mob/living/simple_animal/worm.dm b/code/modules/mob/living/simple_animal/worm.dm index fe76fa87b44..33915be02b4 100644 --- a/code/modules/mob/living/simple_animal/worm.dm +++ b/code/modules/mob/living/simple_animal/worm.dm @@ -170,7 +170,7 @@ if(die) newHead.death() - del(src) + qdel(src) proc/ProcessStomach() for(var/atom/movable/stomachContent in contents) @@ -179,16 +179,16 @@ if(!istype(stomachContent,/obj/item/stack/sheet/mineral/phoron)) var/obj/item/stack/oldStack = stomachContent new /obj/item/stack/sheet/mineral/phoron(src, oldStack.get_amount()) - del(oldStack) + qdel(oldStack) continue else if(istype(stomachContent,/obj/item)) //converts to plasma, keeping the w_class var/obj/item/oldItem = stomachContent new /obj/item/stack/sheet/mineral/phoron(src, oldItem.w_class) - del(oldItem) + qdel(oldItem) continue else new /obj/item/stack/sheet/mineral/phoron(src, flatPlasmaValue) //just flat amount - del(stomachContent) + qdel(stomachContent) continue if(previous) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index d34a309ee33..f1bb76c85d7 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -31,7 +31,7 @@ client.images = null //remove the images such as AIs being unable to see runes client.screen = null //remove hud items just in case - if(hud_used) del(hud_used) //remove the hud objects + if(hud_used) qdel(hud_used) //remove the hud objects hud_used = new /datum/hud(src) next_move = 1 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a6b1bc797cd..cfb8696f8fe 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1,4 +1,4 @@ -/mob/Del()//This makes sure that mobs with clients/keys are not just deleted from the game. +/mob/Destroy()//This makes sure that mobs with clients/keys are not just deleted from the game. mob_list -= src dead_mob_list -= src living_mob_list -= src @@ -179,7 +179,7 @@ P.invisibility = invisibility spawn (20) if(P) - del(P) // qdel + qdel(P) // qdel face_atom(A) return 1 @@ -213,7 +213,7 @@ var/list/temp = list( ) temp += L.container //L = null - del(L) + qdel(L) return temp else return L.container @@ -367,7 +367,7 @@ var/mob/new_player/M = new /mob/new_player() if(!client) log_game("[usr.key] AM failed due to disconnect.") - del(M) + qdel(M) return M.key = key @@ -739,7 +739,7 @@ note dizziness decrements automatically in the mob's Life() proc. statpanel("Status",process.name+"([active_diseases.len])","#[process.getTicks()]\t- [process.getLastRunTime()]") process = processScheduler.getProcess("garbage") - statpanel("Status",process.name+"([garbage_collector.destroyed.len])","#[process.getTicks()]\t- [process.getLastRunTime()]") + statpanel("Status",process.name+"([garbage_collector.dels])","#[process.getTicks()]\t- [process.getLastRunTime()]") process = processScheduler.getProcess("machinery") statpanel("Status",process.name+"([machines.len])","#[process.getTicks()]\t- [process.getLastRunTime()]") diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 39895f22b24..2246a031c0c 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -25,7 +25,7 @@ affecting = victim if(affecting.anchored) - del(src) + qdel(src) return affecting.grabbed_by += src @@ -35,7 +35,7 @@ hud.name = "reinforce grab" hud.master = src -/obj/item/weapon/grab/Del() +/obj/item/weapon/grab/Destroy() //make sure the grabbed_by list doesn't fill up with nulls if(affecting) affecting.grabbed_by -= src ..() @@ -118,7 +118,7 @@ if(world.time < (last_upgrade + UPGRADE_COOLDOWN)) return if(!assailant.canmove || assailant.lying) - del(src) + qdel(src) return last_upgrade = world.time @@ -152,10 +152,10 @@ if(state == GRAB_KILL) return if(!affecting) - del(src) + qdel(src) return if(!assailant.canmove || assailant.lying) - del(src) + qdel(src) return state = GRAB_KILL assailant.visible_message("[assailant] has tightened \his grip on [affecting]'s neck!") @@ -174,12 +174,12 @@ //This is used to make sure the victim hasn't managed to yackety sax away before using the grab. /obj/item/weapon/grab/proc/confirm() if(!assailant || !affecting) - del(src) + qdel(src) return 0 if(affecting) if(!isturf(assailant.loc) || ( !isturf(affecting.loc) || assailant.loc != affecting.loc && get_dist(assailant, affecting) > 1) ) - del(src) + qdel(src) return 0 return 1 @@ -216,12 +216,12 @@ user.visible_message("[user] devours [affecting]!") affecting.loc = user attacker.stomach_contents.Add(affecting) - del(src) + qdel(src) /obj/item/weapon/grab/dropped() - del(src) + qdel(src) -/obj/item/weapon/grab/Del() - del(hud) +/obj/item/weapon/grab/Destroy() + qdel(hud) ..() diff --git a/code/modules/mob/mob_transformation_simple.dm b/code/modules/mob/mob_transformation_simple.dm index f07cadb9e80..da68dfc0cc8 100644 --- a/code/modules/mob/mob_transformation_simple.dm +++ b/code/modules/mob/mob_transformation_simple.dm @@ -1,58 +1,58 @@ - -//This proc is the most basic of the procs. All it does is make a new mob on the same tile and transfer over a few variables. -//Returns the new mob -//Note that this proc does NOT do MMI related stuff! -/mob/proc/change_mob_type(var/new_type = null, var/turf/location = null, var/new_name = null as text, var/delete_old_mob = 0 as num, var/subspecies) - - if(istype(src,/mob/new_player)) - usr << "\red cannot convert players who have not entered yet." - return - - if(!new_type) - new_type = input("Mob type path:", "Mob type") as text|null - - if(istext(new_type)) - new_type = text2path(new_type) - - if( !ispath(new_type) ) - usr << "Invalid type path (new_type = [new_type]) in change_mob_type(). Contact a coder." - return - - if( new_type == /mob/new_player ) - usr << "\red cannot convert into a new_player mob type." - return - - var/mob/M - if(isturf(location)) - M = new new_type( location ) - else - M = new new_type( src.loc ) - - if(!M || !ismob(M)) - usr << "Type path is not a mob (new_type = [new_type]) in change_mob_type(). Contact a coder." - del(M) - return - - if( istext(new_name) ) - M.name = new_name - M.real_name = new_name - else - M.name = src.name - M.real_name = src.real_name - - if(src.dna) - M.dna = src.dna.Clone() - - if(mind) - mind.transfer_to(M) - else - M.key = key - - if(subspecies && istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - H.set_species(subspecies) - - if(delete_old_mob) - spawn(1) - del(src) - return M + +//This proc is the most basic of the procs. All it does is make a new mob on the same tile and transfer over a few variables. +//Returns the new mob +//Note that this proc does NOT do MMI related stuff! +/mob/proc/change_mob_type(var/new_type = null, var/turf/location = null, var/new_name = null as text, var/delete_old_mob = 0 as num, var/subspecies) + + if(istype(src,/mob/new_player)) + usr << "\red cannot convert players who have not entered yet." + return + + if(!new_type) + new_type = input("Mob type path:", "Mob type") as text|null + + if(istext(new_type)) + new_type = text2path(new_type) + + if( !ispath(new_type) ) + usr << "Invalid type path (new_type = [new_type]) in change_mob_type(). Contact a coder." + return + + if( new_type == /mob/new_player ) + usr << "\red cannot convert into a new_player mob type." + return + + var/mob/M + if(isturf(location)) + M = new new_type( location ) + else + M = new new_type( src.loc ) + + if(!M || !ismob(M)) + usr << "Type path is not a mob (new_type = [new_type]) in change_mob_type(). Contact a coder." + qdel(M) + return + + if( istext(new_name) ) + M.name = new_name + M.real_name = new_name + else + M.name = src.name + M.real_name = src.real_name + + if(src.dna) + M.dna = src.dna.Clone() + + if(mind) + mind.transfer_to(M) + else + M.key = key + + if(subspecies && istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + H.set_species(subspecies) + + if(delete_old_mob) + spawn(1) + qdel(src) + return M diff --git a/code/modules/mob/new_player/logout.dm b/code/modules/mob/new_player/logout.dm index 9f064a99cd5..ad1c9b3098d 100644 --- a/code/modules/mob/new_player/logout.dm +++ b/code/modules/mob/new_player/logout.dm @@ -3,5 +3,5 @@ ..() if(!spawning)//Here so that if they are spawning and log out, the other procs can play out and they will have a mob to come back to. key = null//We null their key before deleting the mob, so they are properly kicked out. - del(src) + qdel(src) return \ No newline at end of file diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 299caf37c51..360699b991d 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -135,7 +135,7 @@ if(!client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. observer.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing! observer.key = key - del(src) + qdel(src) return 1 @@ -327,8 +327,8 @@ AnnounceCyborg(character, rank, "has been downloaded to the empty core in \the [character.loc.loc]") ticker.mode.latespawn(character) - del(C) - del(src) + qdel(C) + qdel(src) return //Find our spawning point. @@ -368,7 +368,7 @@ else AnnounceCyborg(character, rank, join_message) - del(src) + qdel(src) proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message) if (ticker.current_state == GAME_STATE_PLAYING) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 6330504e3cc..00b6a3b8e4a 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -179,9 +179,9 @@ datum/preferences proc/update_preview_icon() //seriously. This is horrendous. - del(preview_icon_front) - del(preview_icon_side) - del(preview_icon) + qdel(preview_icon_front) + qdel(preview_icon_side) + qdel(preview_icon) var/g = "m" if(gender == FEMALE) g = "f" @@ -690,7 +690,7 @@ datum/preferences preview_icon_front = new(preview_icon, dir = SOUTH) preview_icon_side = new(preview_icon, dir = WEST) - del(eyes_s) - del(underwear_s) - del(undershirt_s) - del(clothes_s) + qdel(eyes_s) + qdel(underwear_s) + qdel(undershirt_s) + qdel(clothes_s) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 958f0b982ae..c0a7fbce3c5 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -12,7 +12,7 @@ icon = null invisibility = 101 for(var/t in organs) - del(t) + qdel(t) var/atom/movable/overlay/animation = new /atom/movable/overlay( loc ) animation.icon_state = "blank" animation.icon = 'icons/mob/mob.dmi' @@ -37,7 +37,7 @@ dna.SetSEValueRange(MONKEYBLOCK,0xDAC, 0xFFF) src << "You are now [species.name]. " - del(animation) + qdel(animation) return src @@ -49,7 +49,7 @@ if (monkeyizing) return for(var/t in organs) - del(t) + qdel(t) return ..(move) @@ -106,8 +106,7 @@ O.add_ai_verbs() O.rename_self("ai",1) - spawn(0) - del(src) + qdel(src) return O //human -> robot @@ -122,7 +121,7 @@ icon = null invisibility = 101 for(var/t in organs) - del(t) + qdel(t) var/mob/living/silicon/robot/O = new /mob/living/silicon/robot( loc ) @@ -159,8 +158,7 @@ callHook("borgify", list(O)) O.Namepick() - spawn(0)//To prevent the proc from returning null. - del(src) + qdel(src) return O //human -> alien @@ -175,7 +173,7 @@ icon = null invisibility = 101 for(var/t in organs) - del(t) + qdel(t) var/alien_caste = pick("Hunter","Sentinel","Drone") var/mob/living/carbon/human/new_xeno = create_new_xenomorph(alien_caste,loc) @@ -184,8 +182,7 @@ new_xeno.key = key new_xeno << "You are now an alien." - spawn(0)//To prevent the proc from returning null. - del(src) + qdel(src) return /mob/living/carbon/human/proc/slimeize(adult as num, reproduce as num) @@ -199,7 +196,7 @@ icon = null invisibility = 101 for(var/t in organs) - del(t) + qdel(t) var/mob/living/carbon/slime/new_slime if(reproduce) @@ -219,8 +216,7 @@ new_slime.key = key new_slime << "You are now a slime. Skreee!" - spawn(0)//To prevent the proc from returning null. - del(src) + qdel(src) return /mob/living/carbon/human/proc/corgize() @@ -234,15 +230,14 @@ icon = null invisibility = 101 for(var/t in organs) //this really should not be necessary - del(t) + qdel(t) var/mob/living/simple_animal/corgi/new_corgi = new /mob/living/simple_animal/corgi (loc) new_corgi.a_intent = I_HURT new_corgi.key = key new_corgi << "You are now a Corgi. Yap Yap!" - spawn(0)//To prevent the proc from returning null. - del(src) + qdel(src) return /mob/living/carbon/human/Animalize() @@ -266,7 +261,7 @@ invisibility = 101 for(var/t in organs) - del(t) + qdel(t) var/mob/new_mob = new mobpath(src.loc) @@ -276,7 +271,7 @@ new_mob << "You suddenly feel more... animalistic." spawn() - del(src) + qdel(src) return /mob/proc/Animalize() @@ -294,7 +289,7 @@ new_mob.a_intent = I_HURT new_mob << "You feel more... animalistic" - del(src) + qdel(src) /* Certain mob types have problems and should not be allowed to be controlled by players. * diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index 1eab38904c9..6cd162b50af 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -288,7 +288,7 @@ proc/blood_splatter(var/target,var/datum/reagent/blood/source,var/large) // Only a certain number of drips (or one large splatter) can be on a given turf. for(var/obj/effect/decal/cleanable/blood/drip/drop in T) drips |= drop.drips - del(drop) + qdel(drop) if(!large && drips.len < 3) decal_type = /obj/effect/decal/cleanable/blood/drip diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index a9da4486937..06dd521f64e 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -315,7 +315,7 @@ var/list/organ_cache = list() if(fingerprintslast) O.fingerprintslast = fingerprintslast user.put_in_active_hand(O) - del(src) + qdel(src) /obj/item/organ/attack_self(mob/user as mob) diff --git a/code/modules/organs/organ_alien.dm b/code/modules/organs/organ_alien.dm index d326e2ade46..4e2610f584a 100644 --- a/code/modules/organs/organ_alien.dm +++ b/code/modules/organs/organ_alien.dm @@ -5,12 +5,12 @@ //This is a terrible hack and I should be ashamed. var/datum/seed/diona = plant_controller.seeds["diona"] if(!diona) - del(src) + qdel(src) spawn(1) // So it has time to be thrown about by the gib() proc. var/mob/living/carbon/alien/diona/D = new(get_turf(organ)) diona.request_player(D) - del(organ) + qdel(organ) /obj/item/organ/external/diona name = "tendril" @@ -130,7 +130,7 @@ /obj/item/organ/external/diona/removed() ..() if(!istype(owner)) - del(src) + qdel(src) if(!owner.organs.len) owner.death() @@ -175,7 +175,7 @@ ..() if(!istype(owner)) - del(src) + qdel(src) if(!owner.internal_organs.len) owner.death() @@ -247,7 +247,7 @@ B.ckey = owner.ckey spawn(0) - del(src) + qdel(src) //XENOMORPH ORGANS /obj/item/organ/xenos/eggsac diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 650eea751cf..221c66df6e3 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -702,7 +702,7 @@ Note that amputating the affected organ does in fact remove the infection from t if(istype(loc,/turf)) I.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30) - del(src) + qdel(src) /**************************************************** HELPERS @@ -878,7 +878,7 @@ Note that amputating the affected organ does in fact remove the infection from t victim.bad_external_organs -= src for(var/implant in implants) //todo: check if this can be left alone - del(implant) + qdel(implant) // Attached organs also fly off. if(!ignore_children) @@ -908,8 +908,8 @@ Note that amputating the affected organ does in fact remove the infection from t spark_system.attach(owner) spark_system.start() spawn(10) - del(spark_system) - del(src) + qdel(spark_system) + qdel(src) /obj/item/organ/external/proc/disfigure(var/type = "brute") if (disfigured) diff --git a/code/modules/organs/organ_stump.dm b/code/modules/organs/organ_stump.dm index c08363e10bd..728f9cd1bc1 100644 --- a/code/modules/organs/organ_stump.dm +++ b/code/modules/organs/organ_stump.dm @@ -21,4 +21,4 @@ /obj/item/organ/external/stump/removed() ..() - del(src) + qdel(src) diff --git a/code/modules/overmap/sectors.dm b/code/modules/overmap/sectors.dm index 7f0b8548c9f..5309b05096f 100644 --- a/code/modules/overmap/sectors.dm +++ b/code/modules/overmap/sectors.dm @@ -108,7 +108,7 @@ var/global/list/map_sectors = list() map_sectors["[map_z]"] = src testing("Temporary sector at [x],[y] was created, corresponding zlevel is [map_z].") -/obj/effect/map/sector/temporary/Del() +/obj/effect/map/sector/temporary/Destroy() map_sectors["[map_z]"] = null testing("Temporary sector at [x],[y] was deleted.") if (can_die()) diff --git a/code/modules/overmap/ships/engines/engine.dm b/code/modules/overmap/ships/engines/engine.dm index 80690aa84dc..6e927e64315 100644 --- a/code/modules/overmap/ships/engines/engine.dm +++ b/code/modules/overmap/ships/engines/engine.dm @@ -57,4 +57,4 @@ var/list/ship_engines = list() if (E.z == zlevel) E.engines -= src break - del(src) \ No newline at end of file + qdel(src) \ No newline at end of file diff --git a/code/modules/overmap/ships/engines/thermal.dm b/code/modules/overmap/ships/engines/thermal.dm index 44a7dcb84f9..b2f537bb963 100644 --- a/code/modules/overmap/ships/engines/thermal.dm +++ b/code/modules/overmap/ships/engines/thermal.dm @@ -57,7 +57,7 @@ ..() controller = new(src) -/obj/machinery/atmospherics/unary/engine/Del() +/obj/machinery/atmospherics/unary/engine/Destroy() ..() controller.die() diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 143b00e6231..2c6b020822b 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -310,7 +310,7 @@ user.drop_from_inventory(src) new /obj/effect/decal/cleanable/ash(src.loc) - del(src) + qdel(src) else user << "\red You must hold \the [P] steady to burn \the [src]." diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index dfa5103ec23..5d9fd9baba6 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -56,7 +56,7 @@ if(screen == 2) screen = 1 user << "You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]." - del(W) + qdel(W) else if(istype(W, /obj/item/weapon/tape_roll)) return 0 @@ -91,7 +91,7 @@ user.drop_from_inventory(src) new /obj/effect/decal/cleanable/ash(src.loc) - del(src) + qdel(src) else user << "\red You must hold \the [P] steady to burn \the [src]." @@ -171,7 +171,7 @@ var/obj/item/weapon/paper/P = src[1] usr.drop_from_inventory(src) usr.put_in_hands(P) - del(src) + qdel(src) else if(page == amount) screen = 2 else if(page == amount+1) @@ -210,7 +210,7 @@ O.layer = initial(O.layer) O.add_fingerprint(usr) usr.drop_from_inventory(src) - del(src) + qdel(src) return diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 7f0ed21c783..0aea8aa0f43 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -118,7 +118,7 @@ user << "You insert the toner cartridge into \the [src]." var/obj/item/device/toner/T = O toner += T.toner_amount - del(O) + qdel(O) updateUsrDialog() else user << "This cartridge is not yet ready for replacement! Use up the rest of the toner." @@ -131,10 +131,10 @@ /obj/machinery/photocopier/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) if(2.0) if(prob(50)) - del(src) + qdel(src) else if(toner > 0) new /obj/effect/decal/cleanable/blood/oil(get_turf(src)) @@ -148,7 +148,7 @@ /obj/machinery/photocopier/blob_act() if(prob(50)) - del(src) + qdel(src) else if(toner > 0) new /obj/effect/decal/cleanable/blood/oil(get_turf(src)) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 24a321ac876..2fb1f52137f 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -159,7 +159,7 @@ var/global/photo_count = 0 return user << "You insert [I] into [src]." user.drop_item() - del(I) + qdel(I) pictures_left = pictures_max return ..() diff --git a/code/modules/power/antimatter/containment_jar.dm b/code/modules/power/antimatter/containment_jar.dm index 8cb372b0c1a..dd0e503bd47 100644 --- a/code/modules/power/antimatter/containment_jar.dm +++ b/code/modules/power/antimatter/containment_jar.dm @@ -20,13 +20,13 @@ if(1.0) explosion(get_turf(src), 1, 2, 3, 5)//Should likely be larger but this works fine for now I guess if(src) - del(src) + qdel(src) return if(2.0) if(prob((fuel/10)-stability)) explosion(get_turf(src), 1, 2, 3, 5) if(src) - del(src) + qdel(src) return stability -= 40 if(3.0) diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm index b9f1075fa1b..9fd35c2c265 100644 --- a/code/modules/power/antimatter/control.dm +++ b/code/modules/power/antimatter/control.dm @@ -35,16 +35,16 @@ linked_cores = list() -/obj/machinery/power/am_control_unit/Del()//Perhaps damage and run stability checks rather than just del on the others +/obj/machinery/power/am_control_unit/Destroy()//Perhaps damage and run stability checks rather than just qdel on the others for(var/obj/machinery/am_shielding/AMS in linked_shielding) - del(AMS) + qdel(AMS) ..() /obj/machinery/power/am_control_unit/process() if(exploding) explosion(get_turf(src),8,12,18,12) - if(src) del(src) + if(src) qdel(src) if(update_shield_icons && !shield_icon_delay) check_shield_icons() @@ -108,7 +108,7 @@ AMS.blob_act() spawn(0) //Likely explode - del(src) + qdel(src) return check_stability() return @@ -211,7 +211,7 @@ /obj/machinery/power/am_control_unit/proc/check_stability()//TODO: make it break when low also might want to add a way to fix it like a part or such that can be replaced if(stability <= 0) - del(src) + qdel(src) return diff --git a/code/modules/power/antimatter/engine.dm b/code/modules/power/antimatter/engine.dm index 77512fb5b0b..a2d4a38ca04 100644 --- a/code/modules/power/antimatter/engine.dm +++ b/code/modules/power/antimatter/engine.dm @@ -47,7 +47,7 @@ user << "You insert the rod into the injector" injecting = 1 var/fuel = F.fuel - del(F) + qdel(F) spawn( 300 ) injecting = 0 new/obj/item/weapon/fuel(src.loc) @@ -60,7 +60,7 @@ user << "You insert the rod into the injector" injecting = 1 var/fuel = F.fuel - del(F) + qdel(F) spawn( 300 ) injecting = 0 new /obj/item/weapon/fuel(src.loc) diff --git a/code/modules/power/antimatter/fuel.dm b/code/modules/power/antimatter/fuel.dm index 3c0a32586de..56098a0b56d 100644 --- a/code/modules/power/antimatter/fuel.dm +++ b/code/modules/power/antimatter/fuel.dm @@ -29,7 +29,7 @@ user << "You have added the anti-Hydrogen to the storage ring, it now contains [src.fuel]kg" if(istype(F, /obj/item/weapon/fuel/H)) src.fuel += F.fuel - del(F) + qdel(F) src:annihilation(src.fuel) if(istype(src, /obj/item/weapon/fuel/H)) if(istype(F, /obj/item/weapon/fuel/H)) @@ -38,7 +38,7 @@ user << "You have added the Hydrogen to the storage ring, it now contains [src.fuel]kg" if(istype(F, /obj/item/weapon/fuel/antiH)) src.fuel += F.fuel - del(src) + qdel(src) F:annihilation(F.fuel) /obj/item/weapon/fuel/antiH/proc/annihilation(var/mass) @@ -54,7 +54,7 @@ if (strength > (300+T0C)) explosion(T, 0, 0, 2, 3) - del(src) + qdel(src) return var/turf/ground_zero = get_turf(loc) @@ -63,7 +63,7 @@ explosion(ground_zero, ground_zero_range, ground_zero_range*2, ground_zero_range*3, ground_zero_range*4) //SN src = null - del(src) + qdel(src) return @@ -77,7 +77,7 @@ M.gib() if("Hydrogen") M << "\blue You feel very light, as if you might just float away..." - del(src) + qdel(src) return /obj/item/weapon/fuel/attack(mob/M as mob, mob/user as mob) diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index 5085fb6c85f..281f6a11175 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -36,12 +36,12 @@ proc/cardinalrange(var/center) /obj/machinery/am_shielding/proc/controllerscan(var/priorscan = 0) //Make sure we are the only one here if(!istype(src.loc, /turf)) - del(src) + qdel(src) return for(var/obj/machinery/am_shielding/AMS in loc.contents) if(AMS == src) continue spawn(0) - del(src) + qdel(src) return //Search for shielding first @@ -61,11 +61,11 @@ proc/cardinalrange(var/center) controllerscan(1)//Last chance return spawn(0) - del(src) + qdel(src) return -/obj/machinery/am_shielding/Del() +/obj/machinery/am_shielding/Destroy() if(control_unit) control_unit.remove_shielding(src) if(processing) shutdown_core() visible_message("\red The [src.name] melts!") @@ -98,7 +98,7 @@ proc/cardinalrange(var/center) else new /obj/effect/blob(src.loc,60) spawn(0) - del(src) + qdel(src) return check_stability() return @@ -185,7 +185,7 @@ proc/cardinalrange(var/center) if(injecting_fuel && control_unit) control_unit.exploding = 1 if(src) - del(src) + qdel(src) return @@ -215,7 +215,7 @@ proc/cardinalrange(var/center) /obj/item/device/am_shielding_container/attackby(var/obj/item/I, var/mob/user) if(istype(I, /obj/item/device/multitool) && istype(src.loc,/turf)) new/obj/machinery/am_shielding(src.loc) - del(src) + qdel(src) return ..() return \ No newline at end of file diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index fb68cea74c9..a279f2fbae1 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -100,7 +100,6 @@ var/update_overlay = -1 var/global/status_overlays = 0 var/updating_icon = 0 - var/standard_max_charge var/global/list/status_overlays_lock var/global/list/status_overlays_charging var/global/list/status_overlays_equipment @@ -143,9 +142,6 @@ /obj/machinery/power/apc/New(turf/loc, var/ndir, var/building=0) ..() wires = new(src) - var/tmp/obj/item/weapon/cell/tmp_cell = new - standard_max_charge = tmp_cell.maxcharge - del(tmp_cell) // offset 24 pixels in direction of dir // this allows the APC to be embedded in a wall, yet still inside an area @@ -169,16 +165,19 @@ spawn(5) src.update() -/obj/machinery/power/apc/Del() +/obj/machinery/power/apc/Destroy() if(operating && malf && src.z in config.station_levels) //if (is_type_in_list(get_area(src), the_station_areas)) malf.hacked_apcs -= src area.power_light = 0 area.power_equip = 0 area.power_environ = 0 area.power_change() - del(wires) + if(wires) + wires.Destroy() + wires = null if(cell) - del(cell) // qdel + cell.loc = loc + cell = null if(terminal) disconnect_terminal() @@ -559,7 +558,7 @@ return new /obj/item/stack/cable_coil(loc,10) user << "You cut the cables and dismantle the power terminal." - del(terminal) // qdel + qdel(terminal) else if (istype(W, /obj/item/weapon/module/power_control) && opened && has_electronics==0 && !((stat & BROKEN) || malfhack)) user.visible_message("[user.name] inserts the power control board into [src].", \ "You start to insert the power control board into the frame...") @@ -568,7 +567,7 @@ if(has_electronics==0) has_electronics = 1 user << "You place the power control board inside the frame." - del(W) // qdel + qdel(W) else if (istype(W, /obj/item/weapon/module/power_control) && opened && has_electronics==0 && ((stat & BROKEN) || malfhack)) user << "You cannot put the board inside, the frame is damaged." return @@ -595,7 +594,7 @@ "[src] has been cut from the wall by [user.name] with the weldingtool.",\ "You cut the APC frame from the wall.",\ "You hear welding.") - del(src) // qdel + qdel(src) return else if (istype(W, /obj/item/apc_frame) && opened && emagged) emagged = 0 @@ -604,7 +603,7 @@ user.visible_message(\ "[user.name] has replaced the damaged APC frontal panel with a new one.",\ "You replace the damaged APC frontal panel with a new one.") - del(W) // qdel + qdel(W) update_icon() else if (istype(W, /obj/item/apc_frame) && opened && ((stat & BROKEN) || malfhack)) if (has_electronics) @@ -616,7 +615,7 @@ user.visible_message(\ "[user.name] has replaced the damaged APC frame with new one.",\ "You replace the damaged APC frame with new one.") - del(W) // qdel + qdel(W) stat &= ~BROKEN malfai = null malfhack = 0 @@ -1209,7 +1208,7 @@ obj/machinery/power/apc/proc/autoset(var/val, var/on) //set_broken() //now Del() do what we need if (cell) cell.ex_act(1.0) // more lags woohoo - del(src) // qdel + qdel(src) return if(2.0) if (prob(50)) diff --git a/code/modules/power/batteryrack.dm b/code/modules/power/batteryrack.dm index ad47a4eb285..ca5326e010d 100644 --- a/code/modules/power/batteryrack.dm +++ b/code/modules/power/batteryrack.dm @@ -78,7 +78,7 @@ if(I.reliability != 100 && crit_fail) I.crit_fail = 1 I.loc = src.loc - del(src) + qdel(src) return 1 else user << "Turn off the [src] before dismantling it." diff --git a/code/modules/power/breaker_box.dm b/code/modules/power/breaker_box.dm index 869e654e6e5..2faa50a4e6f 100644 --- a/code/modules/power/breaker_box.dm +++ b/code/modules/power/breaker_box.dm @@ -117,7 +117,7 @@ else icon_state = icon_state_off for(var/obj/structure/cable/C in src.loc) - del(C) + qdel(C) // Used by RCON to toggle the breaker box. /obj/machinery/power/breakerbox/proc/auto_toggle() diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index f652ebe9ec6..862f7f21179 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -85,7 +85,7 @@ By design, d1 is the smallest direction and d2 is the highest cable_list += src //add it to the global cable list -/obj/structure/cable/Del() // called when a cable is deleted +/obj/structure/cable/Destroy() // called when a cable is deleted if(powernet) cut_cable_from_powernet() // update the powernets cable_list -= src //remove it from global cable list @@ -154,11 +154,11 @@ By design, d1 is the smallest direction and d2 is the highest var/turf/below = locate(src.x, src.y, controller.down_target) for(var/obj/structure/cable/c in below) if(c.d1 == 12 || c.d2 == 12) - c.Del() + qdel(c) ///// Z-Level Stuff investigate_log("was cut by [key_name(usr, usr.client)] in [user.loc.loc]","wires") - del(src) // qdel + qdel(src) return @@ -201,16 +201,16 @@ By design, d1 is the smallest direction and d2 is the highest /obj/structure/cable/ex_act(severity) switch(severity) if(1.0) - del(src) // qdel + qdel(src) if(2.0) if (prob(50)) new/obj/item/stack/cable_coil(src.loc, src.d1 ? 2 : 1, color) - del(src) // qdel + qdel(src) if(3.0) if (prob(25)) new/obj/item/stack/cable_coil(src.loc, src.d1 ? 2 : 1, color) - del(src) // qdel + qdel(src) return obj/structure/cable/proc/cableColor(var/colorC) @@ -418,7 +418,7 @@ obj/structure/cable/proc/cableColor(var/colorC) propagate_network(powerlist[1],PN) //propagates the new powernet beginning at the source cable if(PN.is_empty()) //can happen with machines made nodeless when smoothing cables - del(PN) // qdel + qdel(PN) // cut the cable's powernet at this cable and updates the powergrid /obj/structure/cable/proc/cut_cable_from_powernet() @@ -770,7 +770,7 @@ obj/structure/cable/proc/cableColor(var/colorC) if (C.shock(user, 50)) if (prob(50)) //fail new/obj/item/stack/cable_coil(C.loc, 1, C.color) - del(C) // qdel + qdel(C) // called when cable_coil is click on an installed obj/cable // or click on a turf that already contains a "node" cable @@ -834,7 +834,7 @@ obj/structure/cable/proc/cableColor(var/colorC) if (NC.shock(user, 50)) if (prob(50)) //fail new/obj/item/stack/cable_coil(NC.loc, 1, NC.color) - del(NC) // qdel + qdel(NC) return @@ -882,7 +882,7 @@ obj/structure/cable/proc/cableColor(var/colorC) if (C.shock(user, 50)) if (prob(50)) //fail new/obj/item/stack/cable_coil(C.loc, 2, C.color) - del(C) // qdel + qdel(C) return C.denode()// this call may have disconnected some cables that terminated on the centre of the turf, if so split the powernets. diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 55c78538d6c..efccd0aa4f1 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -118,8 +118,7 @@ explosion(T, devastation_range, heavy_impact_range, light_impact_range, flash_range) - spawn(1) - del(src) + qdel(src) /obj/item/weapon/cell/proc/corrupt() charge /= 2 @@ -144,17 +143,17 @@ switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) - del(src) + qdel(src) return if (prob(50)) corrupt() if(3.0) if (prob(25)) - del(src) + qdel(src) return if (prob(25)) corrupt() diff --git a/code/modules/power/engine.dm b/code/modules/power/engine.dm index c0f761254e8..a9095b3a783 100644 --- a/code/modules/power/engine.dm +++ b/code/modules/power/engine.dm @@ -19,12 +19,12 @@ switch(severity) if(1.0) ChangeTurf(/turf/space) - del(src) + qdel(src) return if(2.0) if (prob(50)) ChangeTurf(/turf/space) - del(src) + qdel(src) return else return @@ -32,6 +32,6 @@ /turf/simulated/floor/engine/blob_act() if (prob(25)) ChangeTurf(/turf/space) - del(src) + qdel(src) return return \ No newline at end of file diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 14bdaa16446..acf243fc99d 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -24,7 +24,7 @@ /obj/item/light_fixture_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/wrench)) new /obj/item/stack/sheet/metal( get_turf(src.loc), sheets_refunded ) - del(src) + qdel(src) return ..() @@ -56,7 +56,7 @@ usr.visible_message("[usr.name] attaches [src] to the wall.", \ "You attach [src] to the wall.") - del(src) + qdel(src) /obj/item/light_fixture_frame/small name = "small light fixture frame" @@ -111,7 +111,7 @@ user.visible_message("[user.name] deconstructs [src].", \ "You deconstruct [src].", "You hear a noise.") playsound(src.loc, 'sound/items/Deconstruct.ogg', 75, 1) - del(src) + qdel(src) if (src.stage == 2) usr << "You have to remove the wires first." return @@ -169,7 +169,7 @@ newlight.dir = src.dir src.transfer_fingerprints_to(newlight) - del(src) + qdel(src) return ..() @@ -253,7 +253,7 @@ spawn(1) update(0) -/obj/machinery/light/Del() +/obj/machinery/light/Destroy() var/area/A = get_area(src) if(A) on = 0 @@ -370,7 +370,7 @@ update() user.drop_item() //drop the item to update overlays and such - del(L) + qdel(L) if(on && rigged) @@ -424,7 +424,7 @@ newlight.fingerprints = src.fingerprints newlight.fingerprintshidden = src.fingerprintshidden newlight.fingerprintslast = src.fingerprintslast - del(src) + qdel(src) return user << "You stick \the [W] into the light socket!" @@ -579,7 +579,7 @@ /obj/machinery/light/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(75)) @@ -629,7 +629,7 @@ sleep(2) explosion(T, 0, 0, 2, 2) sleep(1) - del(src) + qdel(src) // the light item // can be tube or bulb subtypes diff --git a/code/modules/power/pacman2.dm b/code/modules/power/pacman2.dm index 017c5997e66..0664c529d25 100644 --- a/code/modules/power/pacman2.dm +++ b/code/modules/power/pacman2.dm @@ -113,7 +113,7 @@ I.loc = src.loc new_frame.state = 2 new_frame.icon_state = "box_1" - del(src) + qdel(src) attack_hand(mob/user as mob) ..() diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index a858a5fd43f..bd113ff268b 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -76,7 +76,7 @@ /obj/machinery/power/port_gen/proc/explode() explosion(src.loc, -1, 3, 5, -1) - del(src) + qdel(src) #define TEMPERATURE_DIVISOR 40 #define TEMPERATURE_CHANGE_MAX 20 @@ -125,7 +125,7 @@ component_parts += new board_path(src) RefreshParts() -/obj/machinery/power/port_gen/pacman/Del() +/obj/machinery/power/port_gen/pacman/Destroy() DropFuel() ..() @@ -301,7 +301,7 @@ new_frame.state = 2 new_frame.icon_state = "box_1" - del(src) + qdel(src) /obj/machinery/power/port_gen/pacman/attack_hand(mob/user as mob) ..() @@ -424,7 +424,7 @@ L.apply_effect(max(20, round(rads/get_dist(L,src))), IRRADIATE) explosion(src.loc, 3, 3, 5, 3) - del(src) + qdel(src) /obj/machinery/power/port_gen/pacman/mrs name = "M.R.S.P.A.C.M.A.N.-type Portable Generator" @@ -446,4 +446,4 @@ /obj/machinery/power/port_gen/pacman/mrs/explode() //no special effects, but the explosion is pretty big (same as a supermatter shard). explosion(src.loc, 3, 6, 12, 16, 1) - del(src) + qdel(src) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 7cfcc532468..9c24866b39d 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -15,7 +15,7 @@ idle_power_usage = 0 active_power_usage = 0 -/obj/machinery/power/Del() +/obj/machinery/power/Destroy() disconnect_from_network() ..() @@ -235,7 +235,7 @@ // rebuild all power networks from scratch - only called at world creation or by the admin verb /proc/makepowernets() for(var/datum/powernet/PN in powernets) - del(PN) + qdel(PN) powernets.Cut() for(var/obj/structure/cable/PC in cable_list) diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm index 791b69e9498..97d3afe572f 100644 --- a/code/modules/power/powernet.dm +++ b/code/modules/power/powernet.dm @@ -18,7 +18,7 @@ powernets += src ..() -/datum/powernet/Del() +/datum/powernet/Destroy() powernets -= src ..() @@ -42,7 +42,7 @@ cables -= C C.powernet = null if(is_empty())//the powernet is now empty... - del(src)///... delete it - qdel + qdel(src)///... delete it //add a cable to the current powernet //Warning : this proc DON'T check if the cable exists @@ -62,7 +62,7 @@ nodes -=M M.powernet = null if(is_empty())//the powernet is now empty... - del(src)///... delete it - qdel + qdel(src)///... delete it - qdel //add a power machine to the current powernet diff --git a/code/modules/power/rust/core_field.dm b/code/modules/power/rust/core_field.dm index ad974786b76..587dde3ce55 100644 --- a/code/modules/power/rust/core_field.dm +++ b/code/modules/power/rust/core_field.dm @@ -47,7 +47,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K owned_core = core if(!owned_core) - del(src) + qdel(src) //create the gimmicky things to handle field collisions var/obj/effect/rust_particle_catcher/catcher @@ -118,7 +118,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K /obj/effect/rust_em_field/process() //make sure the field generator is still intact if(!owned_core) - del(src) + qdel(src) //handle radiation if(!radiator) @@ -427,10 +427,10 @@ Deuterium-tritium fusion: 4.5 x 10^7 K AddParticles(reactant, reactants_reacting_pool[reactant]) //world << "retained: [reactant], [reactants_reacting_pool[reactant]]" -/obj/effect/rust_em_field/Del() +/obj/effect/rust_em_field/Destroy() //radiate everything in one giant burst for(var/obj/effect/rust_particle_catcher/catcher in particle_catchers) - del (catcher) + qdel (catcher) RadiateAll() processing_objects.Remove(src) diff --git a/code/modules/power/rust/core_gen.dm b/code/modules/power/rust/core_gen.dm index 7cf9f9d6961..78e0a02b150 100644 --- a/code/modules/power/rust/core_gen.dm +++ b/code/modules/power/rust/core_gen.dm @@ -268,7 +268,7 @@ max volume of phoron storeable by the field = the total volume of a number of ti //todo: safety checks for field status if(owned_field) icon_state = "core0" - del(owned_field) + qdel(owned_field) luminosity = 0 use_power = 1 diff --git a/code/modules/power/rust/fuel_assembly_port_construction.dm b/code/modules/power/rust/fuel_assembly_port_construction.dm index 092805de789..0438249e6df 100644 --- a/code/modules/power/rust/fuel_assembly_port_construction.dm +++ b/code/modules/power/rust/fuel_assembly_port_construction.dm @@ -11,7 +11,7 @@ /obj/item/rust_fuel_assembly_port_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/wrench)) new /obj/item/stack/sheet/plasteel( get_turf(src.loc), 12 ) - del(src) + qdel(src) return ..() @@ -30,7 +30,7 @@ usr << "\red Port cannot be placed in this area." return new /obj/machinery/rust_fuel_assembly_port(loc, ndir, 1) - del(src) + qdel(src) //construction steps /obj/machinery/rust_fuel_assembly_port/New(turf/loc, var/ndir, var/building=0) @@ -110,7 +110,7 @@ if(do_after(user, 10)) has_electronics &= 1 user << "You place the port control board inside the frame." - del(W) + qdel(W) return else if (istype(W, /obj/item/weapon/weldingtool) && opened && !has_electronics) @@ -127,7 +127,7 @@ "\red [src] has been cut away from the wall by [user.name].",\ "You detached the port frame.",\ "\red You hear welding.") - del(src) + qdel(src) return ..() diff --git a/code/modules/power/rust/fuel_compressor.dm b/code/modules/power/rust/fuel_compressor.dm index 2abd9f17f81..2a6adfa50f7 100644 --- a/code/modules/power/rust/fuel_compressor.dm +++ b/code/modules/power/rust/fuel_compressor.dm @@ -25,7 +25,7 @@ var/const/max_assembly_amount = 300 /obj/machinery/rust_fuel_compressor/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/rcd_ammo)) compressed_matter += 10 - del(W) + qdel(W) return ..() @@ -93,7 +93,7 @@ var/const/max_assembly_amount = 300 break //world << "\blue [reagent]: new_assembly_quantities[reagent]
" if(fail) - del(F) + qdel(F) compressed_matter = old_matter usr << "\red \icon[src] [src] flashes red: \'Out of matter.\'" else diff --git a/code/modules/power/rust/fuel_compressor_construction.dm b/code/modules/power/rust/fuel_compressor_construction.dm index c9c3895f2b0..422a46116bb 100644 --- a/code/modules/power/rust/fuel_compressor_construction.dm +++ b/code/modules/power/rust/fuel_compressor_construction.dm @@ -11,7 +11,7 @@ /obj/item/rust_fuel_compressor_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/wrench)) new /obj/item/stack/sheet/plasteel( get_turf(src.loc), 12 ) - del(src) + qdel(src) return ..() @@ -30,7 +30,7 @@ usr << "\red Compressor cannot be placed in this area." return new /obj/machinery/rust_fuel_assembly_port(loc, ndir, 1) - del(src) + qdel(src) //construction steps /obj/machinery/rust_fuel_compressor/New(turf/loc, var/ndir, var/building=0) @@ -137,7 +137,7 @@ if(do_after(user, 10)) has_electronics &= 1 user << "You place the circuitboard inside the frame." - del(W) + qdel(W) return else if (istype(W, /obj/item/weapon/weldingtool) && opened && !has_electronics) @@ -154,7 +154,7 @@ "\red [src] has been cut away from the wall by [user.name].",\ "You detached the compressor frame.",\ "\red You hear welding.") - del(src) + qdel(src) return ..() diff --git a/code/modules/power/rust/radiation.dm b/code/modules/power/rust/radiation.dm index b94127ffa2b..88d8cd05ab0 100644 --- a/code/modules/power/rust/radiation.dm +++ b/code/modules/power/rust/radiation.dm @@ -15,7 +15,7 @@ else time_alive -= 0.1 if(time_alive < 0) - del(src) + qdel(src) //radiate mobs nearby here // diff --git a/code/modules/power/rust/virtual_particle_catcher.dm b/code/modules/power/rust/virtual_particle_catcher.dm index 350d9f66fca..8da88e76cb0 100644 --- a/code/modules/power/rust/virtual_particle_catcher.dm +++ b/code/modules/power/rust/virtual_particle_catcher.dm @@ -14,11 +14,11 @@ for(var/obj/machinery/rust/em_field/field in range(6)) parent = field if(!parent) - del(src)*/ + qdel(src)*/ /obj/effect/rust_particle_catcher/process() if(!parent) - del(src) + qdel(src) /obj/effect/rust_particle_catcher/proc/SetSize(var/newsize) name = "collector [newsize]" diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 4dc1fb528e2..dee15d9f140 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -21,7 +21,7 @@ var/global/list/rad_collectors = list() ..() rad_collectors += src -/obj/machinery/power/rad_collector/Del() +/obj/machinery/power/rad_collector/Destroy() rad_collectors -= src ..() diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 2c24eba1085..24758fc27e3 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -14,7 +14,7 @@ var/obj/machinery/field_generator/FG2 = null var/hasShocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second. -/obj/machinery/containment_field/Del() +/obj/machinery/containment_field/Destroy() if(FG1 && !FG1.clean_up) FG1.cleanup() if(FG2 && !FG2.clean_up) @@ -54,7 +54,7 @@ if(hasShocked) return 0 if(!FG1 || !FG2) - del(src) + qdel(src) return 0 if(isliving(user)) hasShocked = 1 diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index c85c48e27a1..11606b3dc1c 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -41,7 +41,7 @@ if(state == 2 && anchored) connect_to_network() -/obj/machinery/power/emitter/Del() +/obj/machinery/power/emitter/Destroy() message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) log_game("Emitter deleted at ([x],[y],[z])") investigate_log("deleted at ([x],[y],[z])","singulo") diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 245df6c7f38..1c97c6f4d3a 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -177,7 +177,7 @@ field_generator power level display return 0 -/obj/machinery/field_generator/Del() +/obj/machinery/field_generator/Destroy() src.cleanup() ..() @@ -325,7 +325,7 @@ field_generator power level display for (var/obj/machinery/containment_field/F in fields) if (isnull(F)) continue - del(F) + qdel(F) fields = list() for(var/obj/machinery/field_generator/FG in connected_gens) if (isnull(FG)) diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index d9757292868..1093390b0e6 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -13,7 +13,7 @@ var/turf/T = get_turf(src) if(src.energy >= 200) new /obj/singularity/(T, 50) - if(src) del(src) + if(src) qdel(src) /obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/weapon/wrench)) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 9560d305912..50093c440b5 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -1,5 +1,4 @@ var/global/narsie_behaviour = "CultStation13" -var/global/narsie_cometh = 0 var/global/list/narsie_list = list() /obj/singularity/narsie //Moving narsie to its own file for the sake of being clearer name = "Nar-Sie" @@ -50,7 +49,6 @@ var/global/list/narsie_list = list() if(narnar) SetUniversalState(/datum/universal_state/hell) - narsie_cometh = 1 spawn(10 SECONDS) if(emergency_shuttle && emergency_shuttle.can_call()) diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index 076207a4d48..10413fb9924 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -48,7 +48,7 @@ if(particle_type && particle_type != "neutron") if(collided_catcher.AddParticles(particle_type, 1 + additional_particles)) collided_catcher.parent.AddEnergy(energy,mega_energy) - del (src) + qdel(src) else if( istype(A,/obj/machinery/power/rust_core) ) var/obj/machinery/power/rust_core/collided_core = A if(particle_type && particle_type != "neutron") @@ -56,7 +56,7 @@ var/energy_loss_ratio = abs(collided_core.owned_field.frequency - frequency) / 1e9 collided_core.owned_field.mega_energy += mega_energy - mega_energy * energy_loss_ratio collided_core.owned_field.energy += energy - energy * energy_loss_ratio - del (src) + qdel(src) return @@ -67,7 +67,7 @@ /obj/effect/accelerated_particle/ex_act(severity) - del(src) + qdel(src) return @@ -95,7 +95,7 @@ src.loc = get_step(src,dir) movement_range-- if(movement_range <= 0) - del(src) + qdel(src) else sleep(lag) move(lag) diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm index 6739bd165e4..485a25137bf 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm @@ -138,15 +138,15 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin /obj/structure/particle_accelerator/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) - del(src) + qdel(src) return if(3.0) if (prob(25)) - del(src) + qdel(src) return else return @@ -154,13 +154,13 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin /obj/structure/particle_accelerator/blob_act() if(prob(50)) - del(src) + qdel(src) return /obj/structure/particle_accelerator/meteorhit() if(prob(50)) - del(src) + qdel(src) return /obj/structure/particle_accelerator/update_icon() @@ -325,15 +325,15 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin /obj/machinery/particle_accelerator/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) - del(src) + qdel(src) return if(3.0) if (prob(25)) - del(src) + qdel(src) return else return @@ -341,13 +341,13 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin /obj/machinery/particle_accelerator/blob_act() if(prob(50)) - del(src) + qdel(src) return /obj/machinery/particle_accelerator/meteorhit() if(prob(50)) - del(src) + qdel(src) return diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 4fdcbe811f8..593a33c7bfd 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -281,7 +281,7 @@ user.visible_message(\ "[user.name] cut the cables and dismantled the power terminal.",\ "You cut the cables and dismantle the power terminal.") - del(terminal) + qdel(terminal) building_terminal = 0 return 0 return 1 @@ -374,7 +374,7 @@ smoke.attach(src) smoke.start() explosion(src.loc, -1, 0, 1, 3, 1, 0) - del(src) + qdel(src) return if(prob(15)) //Power drain var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index 3fe4f511eb6..b2e584c1366 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -258,7 +258,7 @@ src.ping("DANGER! Magnetic containment field failure in 3 ... 2 ... 1 ...") explosion(src.loc,1,2,4,8) // Not sure if this is necessary, but just in case the SMES *somehow* survived.. - del(src) + qdel(src) @@ -345,7 +345,7 @@ if(I.reliability != 100 && crit_fail) I.crit_fail = 1 I.loc = src.loc - del(src) + qdel(src) return // Superconducting Magnetic Coil - Upgrade the SMES diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 28eaf276195..a572d2c8e1e 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -30,7 +30,7 @@ var/list/solars_list = list() Make(S) connect_to_network() -/obj/machinery/power/solar/Del() +/obj/machinery/power/solar/Destroy() unset_control() //remove from control computer ..() @@ -71,7 +71,7 @@ var/list/solars_list = list() S.give_glass() playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user.visible_message("[user] takes the glass off the solar panel.") - del(src) // qdel + qdel(src) return else if (W) src.add_fingerprint(user) @@ -93,7 +93,7 @@ var/list/solars_list = list() else new /obj/item/weapon/shard(src.loc) new /obj/item/weapon/shard(src.loc) - del(src) // qdel + qdel(src) return return @@ -154,13 +154,13 @@ var/list/solars_list = list() if(1.0) if(prob(15)) new /obj/item/weapon/shard( src.loc ) - del(src) // qdel + qdel(src) return if(2.0) if (prob(25)) new /obj/item/weapon/shard( src.loc ) - del(src) // qdel + qdel(src) return if (prob(50)) @@ -270,7 +270,7 @@ var/list/solars_list = list() if(istype(W, /obj/item/weapon/tracker_electronics)) tracker = 1 user.drop_item() - del(W) // qdel + qdel(W) user.visible_message("[user] inserts the electronics into the solar assembly.") return 1 else @@ -314,7 +314,7 @@ var/list/solars_list = list() initialize() connect_to_network() -/obj/machinery/power/solar_control/Del() +/obj/machinery/power/solar_control/Destroy() for(var/obj/machinery/power/solar/M in connected_panels) M.unset_control() if(connected_tracker) @@ -433,7 +433,7 @@ var/list/solars_list = list() A.state = 3 A.icon_state = "3" A.anchored = 1 - del(src) // qdel + qdel(src) else user << "\blue You disconnect the monitor." var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) @@ -444,7 +444,7 @@ var/list/solars_list = list() A.state = 4 A.icon_state = "4" A.anchored = 1 - del(src) // qdel + qdel(src) else src.attack_hand(user) return @@ -534,7 +534,7 @@ var/list/solars_list = list() switch(severity) if(1.0) //SN src = null - del(src) // qdel + qdel(src) return if(2.0) if (prob(50)) diff --git a/code/modules/power/terminal.dm b/code/modules/power/terminal.dm index feec0e3f819..24245f00e40 100644 --- a/code/modules/power/terminal.dm +++ b/code/modules/power/terminal.dm @@ -20,7 +20,7 @@ if(level==1) hide(T.intact) return -/obj/machinery/power/terminal/Del() +/obj/machinery/power/terminal/Destroy() if(master) master.disconnect_terminal() return ..() diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 38824dec5d9..ea572a2b97b 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -21,7 +21,7 @@ Make(S) connect_to_network() -/obj/machinery/power/tracker/Del() +/obj/machinery/power/tracker/Destroy() unset_control() //remove from control computer ..() @@ -69,7 +69,7 @@ S.give_glass() playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user.visible_message("[user] takes the glass off the tracker.") - del(src) // qdel + qdel(src) return ..() diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 9708656d3bd..10d6d8238dc 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -243,7 +243,7 @@ A.state = 3 A.icon_state = "3" A.anchored = 1 - del(src) + qdel(src) else user << "\blue You disconnect the monitor." var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) @@ -255,7 +255,7 @@ A.state = 4 A.icon_state = "4" A.anchored = 1 - del(src) + qdel(src) else src.attack_hand(user) return diff --git a/code/modules/projectiles/effects.dm b/code/modules/projectiles/effects.dm index 066f4cf55d4..d765e353dab 100644 --- a/code/modules/projectiles/effects.dm +++ b/code/modules/projectiles/effects.dm @@ -13,7 +13,7 @@ /obj/effect/projectile/proc/activate() spawn(3) - delete() //see effect_system.dm - sets loc to null and lets GC handle removing these effects + qdel(src) //see effect_system.dm - sets loc to null and lets GC handle removing these effects return @@ -100,13 +100,13 @@ //---------------------------- /obj/effect/projectile/emitter/tracer icon_state = "emitter" - + /obj/effect/projectile/emitter/muzzle icon_state = "muzzle_emitter" - + /obj/effect/projectile/emitter/impact icon_state = "impact_emitter" - + //---------------------------- // Stun beam //---------------------------- diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 77693417dfd..7389c527aed 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -260,7 +260,7 @@ else user << "Ow..." user.apply_effect(110,AGONY,0) - del(in_chamber) + qdel(in_chamber) mouthshoot = 0 return else diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm index 9f611e593df..ff9edcabfcb 100644 --- a/code/modules/projectiles/guns/alien.dm +++ b/code/modules/projectiles/guns/alien.dm @@ -20,7 +20,7 @@ processing_objects.Add(src) last_regen = world.time -/obj/item/weapon/gun/launcher/spikethrower/Del() +/obj/item/weapon/gun/launcher/spikethrower/Destroy() processing_objects.Remove(src) ..() diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 994256b12a9..a92e3fce1d5 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -31,7 +31,7 @@ processing_objects.Add(src) update_icon() -/obj/item/weapon/gun/energy/Del() +/obj/item/weapon/gun/energy/Destroy() if(self_recharge) processing_objects.Remove(src) ..() diff --git a/code/modules/projectiles/guns/energy/temperature.dm b/code/modules/projectiles/guns/energy/temperature.dm index b836d265cce..47bc2cfc00b 100644 --- a/code/modules/projectiles/guns/energy/temperature.dm +++ b/code/modules/projectiles/guns/energy/temperature.dm @@ -18,7 +18,7 @@ processing_objects.Add(src) -/obj/item/weapon/gun/energy/temperature/Del() +/obj/item/weapon/gun/energy/temperature/Destroy() processing_objects.Remove(src) ..() diff --git a/code/modules/projectiles/guns/launcher/crossbow.dm b/code/modules/projectiles/guns/launcher/crossbow.dm index 917d3c338e3..a0654000e55 100644 --- a/code/modules/projectiles/guns/launcher/crossbow.dm +++ b/code/modules/projectiles/guns/launcher/crossbow.dm @@ -257,7 +257,7 @@ if(buildstate == 5) user << "\blue You secure the crossbow's various parts." new /obj/item/weapon/gun/launcher/crossbow(get_turf(src)) - del(src) + qdel(src) return else ..() diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm index b1a0f563df8..863d3348e53 100644 --- a/code/modules/projectiles/guns/launcher/pneumatic.dm +++ b/code/modules/projectiles/guns/launcher/pneumatic.dm @@ -150,7 +150,7 @@ if(istype(W,/obj/item/pipe)) if(buildstate == 0) user.drop_item() - del(W) + qdel(W) user << "\blue You secure the piping inside the frame." buildstate++ update_icon() @@ -168,7 +168,7 @@ else if(istype(W,/obj/item/device/transfer_valve)) if(buildstate == 4) user.drop_item() - del(W) + qdel(W) user << "\blue You install the transfer valve and connect it to the piping." buildstate++ update_icon() @@ -197,7 +197,7 @@ playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) user << "\blue You weld the valve into place." new /obj/item/weapon/gun/launcher/pneumatic(get_turf(src)) - del(src) + qdel(src) return else ..() diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm index cf05a005eda..e6a81c70575 100644 --- a/code/modules/projectiles/guns/projectile/dartgun.dm +++ b/code/modules/projectiles/guns/projectile/dartgun.dm @@ -27,7 +27,7 @@ projectile_type = /obj/item/projectile/bullet/chemdart /obj/item/ammo_casing/chemdart/expend() - del(src) + qdel(src) /obj/item/ammo_magazine/chemdart name = "dart cartridge" diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index 051ae913f64..4a9fdb9c4f6 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -19,11 +19,11 @@ if(istype(M, /mob/living/silicon/robot)) var/mob/living/silicon/robot/Robot = M if(Robot.mmi) - del(Robot.mmi) + qdel(Robot.mmi) else for(var/obj/item/W in M) if(istype(W, /obj/item/weapon/implant)) //TODO: Carn. give implants a dropped() or something - del(W) + qdel(W) continue M.drop_from_inventory(W) @@ -90,7 +90,7 @@ new_mob << "Your form morphs into that of \a [lowertext(randomize)]." - del(M) + qdel(M) return else M << "Your form morphs into that of \a [lowertext(randomize)]." diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index fc69f6ec943..9ef0aea43c5 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -65,7 +65,7 @@ for(var/mob/M in range(10, src)) if(!M.stat && !istype(M, /mob/living/silicon/ai))\ shake_camera(M, 3, 1) - del(src) + qdel(src) return 1 else return 0 @@ -141,12 +141,12 @@ /obj/item/projectile/icarus/pointdefense/process() Icarus_FireLaser(get_turf(original)) spawn - del src + qdel(src) return /obj/item/projectile/icarus/guns/process() Icarus_FireCannon(get_turf(original)) spawn - del src + qdel(src) return diff --git a/code/modules/projectiles/targeting.dm b/code/modules/projectiles/targeting.dm index c69d8afda4d..24bd2916460 100644 --- a/code/modules/projectiles/targeting.dm +++ b/code/modules/projectiles/targeting.dm @@ -40,7 +40,7 @@ for(var/mob/living/M in aim_targets) if(M) M.NotTargeted(src) //Untargeting people. - del(aim_targets) + qdel(aim_targets) //Compute how to fire..... //Return 1 if a target was found, 0 otherwise. @@ -69,7 +69,7 @@ for(var/mob/living/L in aim_targets) if(L) L.NotTargeted(src) - del(aim_targets) + qdel(aim_targets) usr.visible_message("[usr] turns \the [src] on [M]!") else usr.visible_message("[usr] aims \a [src] at [M]!") @@ -234,13 +234,13 @@ targeted_by -= I I.aim_targets.Remove(src) //De-target them if(!I.aim_targets.len) - del(I.aim_targets) + qdel(I.aim_targets) var/mob/living/T = I.loc //Remove the targeting icons if(T && ismob(T) && !I.aim_targets && T.client) T.client.remove_gun_icons() if(!targeted_by.len) - del target_locked //Remove the overlay - del targeted_by + qdel(target_locked) //Remove the overlay + qdel(targeted_by) spawn(1) update_targeted() /mob/living/Move() @@ -308,7 +308,7 @@ else usr << "Target may no longer move." target_can_run = 0 - del(usr.gun_run_icon) //no need for icon for running permission + qdel(usr.gun_run_icon) //no need for icon for running permission //Updating walking permission button if(usr.gun_move_icon) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 6c6c194af58..871bab523c7 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -177,7 +177,7 @@ datum BR.reaction(target, INGEST) spawn(5) BR.trans_to(target, BR.total_volume) - del(B) + qdel(B) return amount @@ -405,7 +405,7 @@ datum var/datum/reagent/R = A if (R.id == reagent) reagent_list -= A - del(A) + qdel(A) update_total() my_atom.on_reagent_change() return 0 diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index e7c8262aa7d..5a79e2a3cde 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -37,19 +37,19 @@ /obj/machinery/chem_master/ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) - del(src) + qdel(src) return /obj/machinery/chem_master/blob_act() if (prob(50)) - del(src) + qdel(src) /obj/machinery/chem_master/meteorhit() - del(src) + qdel(src) return /obj/machinery/chem_master/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob) @@ -751,7 +751,7 @@ /obj/machinery/reagentgrinder/proc/remove_object(var/obj/item/O) holdingitems -= O - del(O) + qdel(O) /obj/machinery/reagentgrinder/proc/grind() diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 44ee2987c42..b1fa7c7bc00 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -246,7 +246,7 @@ datum //Put out fires. var/hotspot = (locate(/obj/fire) in T) if(hotspot) - del(hotspot) + qdel(hotspot) if(environment) environment.react() //react at the new temperature @@ -258,7 +258,7 @@ datum lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) lowertemp.react() T.assume_air(lowertemp) - del(hotspot) + qdel(hotspot) if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube)) var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O if(!cube.wrapped) @@ -372,7 +372,7 @@ datum M.invisibility = 101 for(var/obj/item/W in M) if(istype(W, /obj/item/weapon/implant)) //TODO: Carn. give implants a dropped() or something - del(W) + qdel(W) continue W.layer = initial(W.layer) W.loc = M.loc @@ -384,7 +384,7 @@ datum M.mind.transfer_to(new_mob) else new_mob.key = M.key - del(M) + qdel(M) ..() return @@ -940,7 +940,7 @@ datum reaction_obj(var/obj/O, var/volume) if(istype(O,/obj/effect/decal/cleanable)) - del(O) + qdel(O) else if(O) O.clean_blood() @@ -953,7 +953,7 @@ datum T.clean_blood() for(var/obj/effect/decal/cleanable/C in T.contents) src.reaction_obj(C, volume) - del(C) + qdel(C) for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(5,10)) @@ -1847,7 +1847,7 @@ datum var/turf/simulated/wall/W = T if(W.rotting) W.rotting = 0 - for(var/obj/effect/E in W) if(E.name == "Wallrot") del E + for(var/obj/effect/E in W) if(E.name == "Wallrot") qdel(E) for(var/mob/O in viewers(W, null)) O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1) @@ -2036,7 +2036,7 @@ datum if(H.head) if(prob(meltprob) && !H.head.unacidable) H << "Your headgear melts away but protects you from the acid!" - del(H.head) + qdel(H.head) H.update_inv_head(0) H.update_hair(0) else @@ -2046,7 +2046,7 @@ datum if(H.wear_mask) if(prob(meltprob) && !H.wear_mask.unacidable) H << "Your mask melts away but protects you from the acid!" - del (H.wear_mask) + qdel (H.wear_mask) H.update_inv_wear_mask(0) H.update_hair(0) else @@ -2056,7 +2056,7 @@ datum if(H.glasses) //Doesn't protect you from the acid but can melt anyways! if(prob(meltprob) && !H.glasses.unacidable) H << "Your glasses melts away!" - del (H.glasses) + qdel (H.glasses) H.update_inv_glasses(0) if(!M.unacidable) @@ -2083,7 +2083,7 @@ datum I.desc = "Looks like this was \an [O] some time ago." for(var/mob/M in viewers(5, O)) M << "\red \the [O] melts." - del(O) + qdel(O) toxin/acid/polyacid name = "Polytrinic acid" @@ -2467,7 +2467,7 @@ datum lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) lowertemp.react() T.assume_air(lowertemp) - del(hotspot) + qdel(hotspot) enzyme name = "Universal Enzyme" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 96730fb25b0..028834d9f17 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -869,7 +869,7 @@ datum M.client.screen += blueeffect sleep(20) M.client.screen -= blueeffect - del(blueeffect) + qdel(blueeffect) slimecrit name = "Slime Crit" id = "m_tele" diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index d82ded7bba5..e53d1188988 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -31,7 +31,7 @@ processing_objects.Add(src) -/obj/item/weapon/reagent_containers/borghypo/Del() +/obj/item/weapon/reagent_containers/borghypo/Destroy() processing_objects.Remove(src) ..() diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index bc36317521d..6be4fce8e42 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -30,7 +30,7 @@ user.put_in_active_hand(B) src.transfer_fingerprints_to(B) - del(src) + qdel(src) /obj/item/weapon/reagent_containers/food/drinks/bottle/attack(mob/living/target as mob, mob/living/user as mob) @@ -83,7 +83,7 @@ O.show_message(text("\blue The contents of the [src] splashes all over [target]!"), 1) src.reagents.reaction(target, TOUCH) - //Finally, smash the bottle. This kills (del) the bottle. + //Finally, smash the bottle. This kills (qdel) the bottle. src.smash(target, user) return diff --git a/code/modules/reagents/reagent_containers/food/sandwich.dm b/code/modules/reagents/reagent_containers/food/sandwich.dm index 0d8e614468d..3be62c7d7cd 100644 --- a/code/modules/reagents/reagent_containers/food/sandwich.dm +++ b/code/modules/reagents/reagent_containers/food/sandwich.dm @@ -3,7 +3,7 @@ if(istype(W,/obj/item/weapon/shard) || istype(W,/obj/item/weapon/reagent_containers/food/snacks)) var/obj/item/weapon/reagent_containers/food/snacks/csandwich/S = new(get_turf(src)) S.attackby(W,user) - del(src) + qdel(src) ..() /obj/item/weapon/reagent_containers/food/snacks/csandwich @@ -73,9 +73,9 @@ if(length(name) > 80) name = "[pick(list("absurd","colossal","enormous","ridiculous"))] sandwich" w_class = n_ceil(Clamp((ingredients.len/2),2,4)) -/obj/item/weapon/reagent_containers/food/snacks/csandwich/Del() +/obj/item/weapon/reagent_containers/food/snacks/csandwich/Destroy() for(var/obj/item/O in ingredients) - del(O) + qdel(O) ..() /obj/item/weapon/reagent_containers/food/snacks/csandwich/examine(mob/user) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index c8609074b6e..146ee69b588 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -27,7 +27,7 @@ usr.put_in_hands(TrashItem) else if(istype(trash,/obj/item)) usr.put_in_hands(trash) - del(src) + qdel(src) return /obj/item/weapon/reagent_containers/food/snacks/attack_self(mob/user as mob) @@ -38,7 +38,7 @@ if(!reagents.total_volume) user << "None of [src] left!" user.drop_from_inventory(src) - del(src) + qdel(src) return 0 if(istype(M, /mob/living/carbon)) @@ -152,7 +152,7 @@ reagents.trans_to(U,min(reagents.total_volume,5)) if (reagents.total_volume <= 0) - del(src) + qdel(src) return if (is_sliceable()) @@ -187,13 +187,13 @@ for(var/i=1 to (slices_num-slices_lost)) var/obj/slice = new slice_path (src.loc) reagents.trans_to(slice,reagents_per_slice) - del(src) + qdel(src) return /obj/item/weapon/reagent_containers/food/snacks/proc/is_sliceable() return (slices_num && slice_path && slices_num > 0) -/obj/item/weapon/reagent_containers/food/snacks/Del() +/obj/item/weapon/reagent_containers/food/snacks/Destroy() if(contents) for(var/atom/movable/something in contents) something.loc = get_turf(src) @@ -212,7 +212,7 @@ spawn(5) if(!src && !user.client) user.custom_emote(1,"[pick("burps", "cries for more", "burps twice", "looks at the area where the food was")]") - del(src) + qdel(src) On_Consume(user) ////////////////////////////////////////////////// @@ -477,14 +477,14 @@ user << "You crack \the [src] into \the [O]." reagents.trans_to(O, reagents.total_volume) user.drop_from_inventory(src) - del(src) + qdel(src) /obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom) ..() new/obj/effect/decal/cleanable/egg_smudge(src.loc) src.reagents.reaction(hit_atom, TOUCH) src.visible_message("\red [src.name] has been squashed.","\red You hear a smack.") - del(src) + qdel(src) /obj/item/weapon/reagent_containers/food/snacks/egg/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype( W, /obj/item/toy/crayon )) @@ -924,7 +924,7 @@ ..() new/obj/effect/decal/cleanable/pie_smudge(src.loc) src.visible_message("\red [src.name] splats.","\red You hear a splat.") - del(src) + qdel(src) /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis name = "Berry Clafoutis" @@ -1588,7 +1588,7 @@ M << "\red \The [src] expands!" var/mob/living/carbon/human/H = new (src) H.set_species(monkey_type) - del(src) + qdel(src) proc/Unwrap(mob/user as mob) icon_state = "monkeycube" @@ -2830,7 +2830,7 @@ if(istype(W,/obj/item/weapon/kitchen/rollingpin)) new /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough(src) user << "You flatten the dough." - del(src) + qdel(src) // slicable into 3xdoughslices /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough @@ -2872,30 +2872,30 @@ if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/meatball)) new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src) user << "You make a burger." - del(W) - del(src) + qdel(W) + qdel(src) // Bun + cutlet = hamburger else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/cutlet)) new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src) user << "You make a burger." - del(W) - del(src) + qdel(W) + qdel(src) // Bun + sausage = hotdog else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/sausage)) new /obj/item/weapon/reagent_containers/food/snacks/hotdog(src) user << "You make a hotdog." - del(W) - del(src) + qdel(W) + qdel(src) // Burger + cheese wedge = cheeseburger /obj/item/weapon/reagent_containers/food/snacks/monkeyburger/attackby(obj/item/weapon/reagent_containers/food/snacks/cheesewedge/W as obj, mob/user as mob) if(istype(W))// && !istype(src,/obj/item/weapon/reagent_containers/food/snacks/cheesewedge)) new /obj/item/weapon/reagent_containers/food/snacks/cheeseburger(src) user << "You make a cheeseburger." - del(W) - del(src) + qdel(W) + qdel(src) return else ..() @@ -2905,8 +2905,8 @@ if(istype(W)) new /obj/item/weapon/reagent_containers/food/snacks/cheeseburger(src) user << "You make a cheeseburger." - del(W) - del(src) + qdel(W) + qdel(src) return else ..() @@ -2975,7 +2975,7 @@ if(istype(W,/obj/item/weapon/kitchen/utensil/knife)) new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(src) user << "You cut the potato." - del(src) + qdel(src) else ..() diff --git a/code/modules/reagents/reagent_containers/food/snacks/meat.dm b/code/modules/reagents/reagent_containers/food/snacks/meat.dm index d703a6acb7f..797f605b081 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/meat.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/meat.dm @@ -15,7 +15,7 @@ new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src) new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src) user << "You cut the meat into thin strips." - del(src) + qdel(src) else ..() diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 12b56021d47..997bd5d822a 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -270,10 +270,10 @@ attackby(var/obj/D, mob/user as mob) if(isprox(D)) user << "You add [D] to [src]." - del(D) + qdel(D) user.put_in_hands(new /obj/item/weapon/bucket_sensor) user.drop_from_inventory(src) - del(src) + qdel(src) update_icon() overlays.Cut() diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 4d23bb30ed2..d0f678ddd91 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -31,9 +31,9 @@ M.drop_from_inventory(src) //icon update if(reagents.total_volume) reagents.trans_to_ingest(M, reagents.total_volume) - del(src) + qdel(src) else - del(src) + qdel(src) return 1 else if(istype(M, /mob/living/carbon/human) ) @@ -58,9 +58,9 @@ if(reagents.total_volume) reagents.trans_to_ingest(M, reagents.total_volume) - del(src) + qdel(src) else - del(src) + qdel(src) return 1 @@ -83,7 +83,7 @@ O.show_message("\red [user] puts something in \the [target].", 1) spawn(5) - del(src) + qdel(src) return diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 20c4445e550..1978071e0dc 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -71,7 +71,7 @@ spawn(0) D.reagents.reaction(A) sleep(5) - del(D) + qdel(D) else var/obj/effect/decal/chempuff/D = new/obj/effect/decal/chempuff(get_turf(src)) D.create_reagents(amount_per_transfer_from_this) @@ -93,7 +93,7 @@ D.reagents.reaction(A_turf) sleep(2) sleep(3) - del(D) + qdel(D) return @@ -229,7 +229,7 @@ for(var/atom/t in get_turf(D)) D.reagents.reaction(t) sleep(2) - del(D) + qdel(D) return diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index a1c2fc4415d..e5d2933e35a 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -251,7 +251,7 @@ for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!"), 1) user.remove_from_mob(src) - del(src) + qdel(src) return for(var/mob/O in viewers(world.view, user)) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 0a42e8dee3e..185f6b1342c 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -44,17 +44,17 @@ ex_act(severity) switch(severity) if(1.0) - del(src) + qdel(src) return if(2.0) if (prob(50)) new /obj/effect/effect/water(src.loc) - del(src) + qdel(src) return if(3.0) if (prob(5)) new /obj/effect/effect/water(src.loc) - del(src) + qdel(src) return else return @@ -62,7 +62,7 @@ blob_act() if(prob(50)) new /obj/effect/effect/water(src.loc) - del(src) + qdel(src) @@ -168,7 +168,7 @@ else explosion(src.loc,-1,1,2) if(src) - del(src) + qdel(src) /obj/structure/reagent_dispensers/fueltank/fire_act(datum/gas_mixture/air, temperature, volume) if(temperature > T0C+500) @@ -225,7 +225,7 @@ /obj/structure/reagent_dispensers/beerkeg/blob_act() explosion(src.loc,0,3,5,7,10) - del(src) + qdel(src) /obj/structure/reagent_dispensers/virusfood name = "Virus Food Dispenser" diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index 8b26dd31333..d95921bb2c1 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -288,7 +288,7 @@ src.transfer_fingerprints_to(P) P.set_dir(dir) - del(src) + qdel(src) return else user << "You need more welding fuel to complete this task." diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index e1a5407d0a3..63cad438519 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -83,7 +83,7 @@ C.anchored = 1 C.density = 1 C.update() - del(src) + qdel(src) return else user << "You need more welding fuel to complete this task." @@ -115,7 +115,7 @@ GM.loc = src for (var/mob/C in viewers(src)) C.show_message("\red [GM.name] has been placed in the [src] by [user].", 3) - del(G) + qdel(G) usr.attack_log += text("\[[time_stamp()]\] Has placed [GM.name] ([GM.ckey]) in disposals.") GM.attack_log += text("\[[time_stamp()]\] Has been placed in disposals by [usr.name] ([usr.ckey])") msg_admin_attack("[usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit. (JMP)") @@ -452,7 +452,7 @@ AM.throw_at(target, 5, 1) H.vent_gas(loc) - del(H) + qdel(H) /obj/machinery/disposal/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if (istype(mover,/obj/item) && mover.throwing) @@ -600,7 +600,7 @@ if(other.has_fat_guy) has_fat_guy = 1 - del(other) + qdel(other) proc/settag(var/new_tag) @@ -676,7 +676,7 @@ for(var/atom/movable/AM in H) AM.loc = T AM.pipe_eject(0) - del(H) + qdel(H) ..() return @@ -773,7 +773,7 @@ if(AM) AM.throw_at(target, 100, 1) H.vent_gas(T) - del(H) + qdel(H) else // no specified direction, so throw in random direction @@ -789,7 +789,7 @@ AM.throw_at(target, 5, 1) H.vent_gas(T) // all gas vent to turf - del(H) + qdel(H) return @@ -817,7 +817,7 @@ for(var/atom/movable/AM in H) AM.loc = T AM.pipe_eject(0) - del(H) + qdel(H) return // otherwise, do normal expel from turf @@ -825,7 +825,7 @@ expel(H, T, 0) spawn(2) // delete pipe after 2 ticks to ensure expel proc finished - del(src) + qdel(src) // pipe affected by explosion @@ -918,7 +918,7 @@ C.anchored = 1 C.update() - del(src) + qdel(src) // *** TEST verb //client/verb/dispstop() @@ -1386,7 +1386,7 @@ welded() // var/obj/item/scrap/S = new(src.loc) // S.set_components(200,0,0) - del(src) + qdel(src) // the disposal outlet machine @@ -1429,7 +1429,7 @@ spawn(5) AM.throw_at(target, 3, 1) H.vent_gas(src.loc) - del(H) + qdel(H) return @@ -1462,7 +1462,7 @@ C.update() C.anchored = 1 C.density = 1 - del(src) + qdel(src) return else user << "You need more welding fuel to complete this task." diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 7a7622dd77f..aedbe2a0bde 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -20,7 +20,7 @@ if(istype(wrapped, /obj/structure/closet)) var/obj/structure/closet/O = wrapped O.welded = 0 - del(src) + qdel(src) return attackby(obj/item/W as obj, mob/user as mob) @@ -127,7 +127,7 @@ else wrapped.loc = get_turf(src) - del(src) + qdel(src) return attackby(obj/item/W as obj, mob/user as mob) @@ -297,7 +297,7 @@ user << "\blue The object you are trying to wrap is unsuitable for the sorting machinery!" if (src.amount <= 0) new /obj/item/weapon/c_tube( src.loc ) - del(src) + qdel(src) return return @@ -435,7 +435,7 @@ C.update() C.anchored = 1 C.density = 1 - del(src) + qdel(src) return else user << "You need more welding fuel to complete this task." diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index e1e63c08dc9..aacdbbb3453 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -54,10 +54,10 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). /obj/machinery/r_n_d/circuit_imprinter/blob_act() if(prob(50)) - del(src) + qdel(src) /obj/machinery/r_n_d/circuit_imprinter/meteorhit() - del(src) + qdel(src) return /obj/machinery/r_n_d/circuit_imprinter/proc/TotalMaterials() diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 3fc97cc6ab4..b8d0fca2094 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -35,7 +35,7 @@ Note: Must be placed within 3 tiles of the R&D Console min_reliability = 93 - T /obj/machinery/r_n_d/destructive_analyzer/meteorhit() - del(src) + qdel(src) return /obj/machinery/r_n_d/destructive_analyzer/update_icon() diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index b0cc8d60506..aa1e1a52e45 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -75,7 +75,7 @@ var/global/list/obj/machinery/message_server/message_servers = list() ..() return -/obj/machinery/message_server/Del() +/obj/machinery/message_server/Destroy() message_servers -= src ..() return @@ -122,7 +122,7 @@ var/global/list/obj/machinery/message_server/message_servers = list() istype(O,/obj/item/weapon/circuitboard/message_monitor)) spamfilter_limit += round(MESSAGE_SERVER_DEFAULT_SPAM_LIMIT / 2) user.drop_item() - del(O) + qdel(O) user << "You install additional memory and processors into message server. Its filtering capabilities been enhanced." else ..(O, user) @@ -221,14 +221,14 @@ var/obj/machinery/blackbox_recorder/blackbox var/list/datum/feedback_variable/feedback = new() - //Only one can exsist in the world! + //Only one can exist in the world! /obj/machinery/blackbox_recorder/New() if(blackbox) if(istype(blackbox,/obj/machinery/blackbox_recorder)) - del(src) + qdel(src) blackbox = src -/obj/machinery/blackbox_recorder/Del() +/obj/machinery/blackbox_recorder/Destroy() var/turf/T = locate(1,1,2) if(T) blackbox = null diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 89e31574d2c..6f47ca5bb2f 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -54,7 +54,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, check_tech = new T() if(check_tech.id == ID) return_name = check_tech.name - del(check_tech) + qdel(check_tech) check_tech = null break @@ -86,7 +86,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, temp_reagent = new R() if(temp_reagent.id == ID) return_name = temp_reagent.name - del(temp_reagent) + qdel(temp_reagent) temp_reagent = null break return return_name @@ -274,11 +274,11 @@ won't update every console in existence) but it's more of a hassle to do. Also, S.use(1) linked_destroy.loaded_item = S else - del(S) + qdel(S) linked_destroy.icon_state = "d_analyzer" else if(!(I in linked_destroy.component_parts)) - del(I) + qdel(I) linked_destroy.icon_state = "d_analyzer" use_power(linked_destroy.active_power_usage) screen = 1.0 @@ -468,7 +468,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, sheet.amount = min(available_num_sheets, desired_num_sheets) linked_lathe.vars[res_amount] = max(0, (linked_lathe.vars[res_amount]-sheet.amount * sheet.perunit)) else - del sheet + qdel(sheet) else if(href_list["imprinter_ejectsheet"] && linked_imprinter) //Causes the protolathe to eject a sheet of material var/desired_num_sheets = text2num(href_list["amount"]) var/res_amount, type @@ -492,7 +492,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, sheet.amount = min(available_num_sheets, desired_num_sheets) linked_imprinter.vars[res_amount] = max(0, (linked_imprinter.vars[res_amount]-sheet.amount * sheet.perunit)) else - del sheet + qdel(sheet) else if(href_list["find_device"]) //The R&D console looks for devices nearby to link up with. screen = 0.0 @@ -518,7 +518,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/choice = alert("R&D Console Database Reset", "Are you sure you want to reset the R&D console's database? Data lost cannot be recovered.", "Continue", "Cancel") if(choice == "Continue") screen = 0.0 - del(files) + qdel(files) files = new /datum/research(src) spawn(20) screen = 1.6 diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 6a5311e62be..62da7ef49bd 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -24,7 +24,7 @@ RefreshParts() src.initialize(); //Agouri -/obj/machinery/r_n_d/server/Del() +/obj/machinery/r_n_d/server/Destroy() griefProtection() ..() @@ -149,7 +149,7 @@ if(I.reliability != 100 && crit_fail) I.crit_fail = 1 I.loc = src.loc - del(src) + qdel(src) return 1 /obj/machinery/r_n_d/server/attack_hand(mob/user as mob) diff --git a/code/modules/research/xenoarchaeology/artifact/artifact.dm b/code/modules/research/xenoarchaeology/artifact/artifact.dm index 666d361a2b1..a3256d6f530 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact.dm @@ -1,124 +1,124 @@ - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Large finds - (Potentially) active alien machinery from the dawn of time - -/datum/artifact_find - var/artifact_id - var/artifact_find_type - var/artifact_detect_range - -/datum/artifact_find/New() - artifact_detect_range = rand(5,300) - - artifact_id = "[pick("kappa","sigma","antaeres","beta","omicron","iota","epsilon","omega","gamma","delta","tau","alpha")]-[rand(100,999)]" - - artifact_find_type = pick(\ - 5;/obj/machinery/power/supermatter,\ - 5;/obj/structure/constructshell,\ - 5;/obj/machinery/syndicate_beacon,\ - 25;/obj/machinery/power/supermatter/shard,\ - 50;/obj/structure/cult/pylon,\ - 100;/obj/machinery/auto_cloner,\ - 100;/obj/machinery/giga_drill,\ - 100;/obj/machinery/replicator,\ - 150;/obj/structure/crystal,\ - 1000;/obj/machinery/artifact) - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Boulders - sometimes turn up after excavating turf - excavate further to try and find large xenoarch finds - -/obj/structure/boulder - name = "rocky debris" - desc = "Leftover rock from an excavation, it's been partially dug out already but there's still a lot to go." - icon = 'icons/obj/mining.dmi' - icon_state = "boulder1" - density = 1 - opacity = 1 - anchored = 1 - var/excavation_level = 0 - var/datum/geosample/geological_data - var/datum/artifact_find/artifact_find - var/last_act = 0 - -/obj/structure/boulder/New() - icon_state = "boulder[rand(1,4)]" - excavation_level = rand(5,50) - -/obj/structure/boulder/attackby(obj/item/weapon/W as obj, mob/user as mob) - if (istype(W, /obj/item/device/core_sampler)) - src.geological_data.artifact_distance = rand(-100,100) / 100 - src.geological_data.artifact_id = artifact_find.artifact_id - - var/obj/item/device/core_sampler/C = W - C.sample_item(src, user) - return - - if (istype(W, /obj/item/device/depth_scanner)) - var/obj/item/device/depth_scanner/C = W - C.scan_atom(user, src) - return - - if (istype(W, /obj/item/device/measuring_tape)) - var/obj/item/device/measuring_tape/P = W - user.visible_message("\blue[user] extends [P] towards [src].","\blue You extend [P] towards [src].") - if(do_after(user,40)) - user << "\blue \icon[P] [src] has been excavated to a depth of [2*src.excavation_level]cm." - return - - if (istype(W, /obj/item/weapon/pickaxe)) - var/obj/item/weapon/pickaxe/P = W - - if(last_act + P.digspeed > world.time)//prevents message spam - return - last_act = world.time - - user << "\red You start [P.drill_verb] [src]." - - - - if(!do_after(user,P.digspeed)) - return - - user << "\blue You finish [P.drill_verb] [src]." - excavation_level += P.excavation_amount - - if(excavation_level > 100) - //failure - user.visible_message("[src] suddenly crumbles away.",\ - "\red [src] has disintegrated under your onslaught, any secrets it was holding are long gone.") - del(src) - return - - if(prob(excavation_level)) - //success - if(artifact_find) - var/spawn_type = artifact_find.artifact_find_type - var/obj/O = new spawn_type(get_turf(src)) - if(istype(O,/obj/machinery/artifact)) - var/obj/machinery/artifact/X = O - if(X.my_effect) - X.my_effect.artifact_id = artifact_find.artifact_id - src.visible_message("[src] suddenly crumbles away.") - else - user.visible_message("[src] suddenly crumbles away.",\ - "\blue [src] has been whittled away under your careful excavation, but there was nothing of interest inside.") - del(src) - -/obj/structure/boulder/Bumped(AM) - . = ..() - if(istype(AM,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = AM - if((istype(H.l_hand,/obj/item/weapon/pickaxe)) && (!H.hand)) - attackby(H.l_hand,H) - else if((istype(H.r_hand,/obj/item/weapon/pickaxe)) && H.hand) - attackby(H.r_hand,H) - - else if(istype(AM,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/R = AM - if(istype(R.module_active,/obj/item/weapon/pickaxe)) - attackby(R.module_active,R) - - else if(istype(AM,/obj/mecha)) - var/obj/mecha/M = AM - if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/tool/drill)) - M.selected.action(src) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Large finds - (Potentially) active alien machinery from the dawn of time + +/datum/artifact_find + var/artifact_id + var/artifact_find_type + var/artifact_detect_range + +/datum/artifact_find/New() + artifact_detect_range = rand(5,300) + + artifact_id = "[pick("kappa","sigma","antaeres","beta","omicron","iota","epsilon","omega","gamma","delta","tau","alpha")]-[rand(100,999)]" + + artifact_find_type = pick(\ + 5;/obj/machinery/power/supermatter,\ + 5;/obj/structure/constructshell,\ + 5;/obj/machinery/syndicate_beacon,\ + 25;/obj/machinery/power/supermatter/shard,\ + 50;/obj/structure/cult/pylon,\ + 100;/obj/machinery/auto_cloner,\ + 100;/obj/machinery/giga_drill,\ + 100;/obj/machinery/replicator,\ + 150;/obj/structure/crystal,\ + 1000;/obj/machinery/artifact) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Boulders - sometimes turn up after excavating turf - excavate further to try and find large xenoarch finds + +/obj/structure/boulder + name = "rocky debris" + desc = "Leftover rock from an excavation, it's been partially dug out already but there's still a lot to go." + icon = 'icons/obj/mining.dmi' + icon_state = "boulder1" + density = 1 + opacity = 1 + anchored = 1 + var/excavation_level = 0 + var/datum/geosample/geological_data + var/datum/artifact_find/artifact_find + var/last_act = 0 + +/obj/structure/boulder/New() + icon_state = "boulder[rand(1,4)]" + excavation_level = rand(5,50) + +/obj/structure/boulder/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/device/core_sampler)) + src.geological_data.artifact_distance = rand(-100,100) / 100 + src.geological_data.artifact_id = artifact_find.artifact_id + + var/obj/item/device/core_sampler/C = W + C.sample_item(src, user) + return + + if (istype(W, /obj/item/device/depth_scanner)) + var/obj/item/device/depth_scanner/C = W + C.scan_atom(user, src) + return + + if (istype(W, /obj/item/device/measuring_tape)) + var/obj/item/device/measuring_tape/P = W + user.visible_message("\blue[user] extends [P] towards [src].","\blue You extend [P] towards [src].") + if(do_after(user,40)) + user << "\blue \icon[P] [src] has been excavated to a depth of [2*src.excavation_level]cm." + return + + if (istype(W, /obj/item/weapon/pickaxe)) + var/obj/item/weapon/pickaxe/P = W + + if(last_act + P.digspeed > world.time)//prevents message spam + return + last_act = world.time + + user << "\red You start [P.drill_verb] [src]." + + + + if(!do_after(user,P.digspeed)) + return + + user << "\blue You finish [P.drill_verb] [src]." + excavation_level += P.excavation_amount + + if(excavation_level > 100) + //failure + user.visible_message("[src] suddenly crumbles away.",\ + "\red [src] has disintegrated under your onslaught, any secrets it was holding are long gone.") + qdel(src) + return + + if(prob(excavation_level)) + //success + if(artifact_find) + var/spawn_type = artifact_find.artifact_find_type + var/obj/O = new spawn_type(get_turf(src)) + if(istype(O,/obj/machinery/artifact)) + var/obj/machinery/artifact/X = O + if(X.my_effect) + X.my_effect.artifact_id = artifact_find.artifact_id + src.visible_message("[src] suddenly crumbles away.") + else + user.visible_message("[src] suddenly crumbles away.",\ + "\blue [src] has been whittled away under your careful excavation, but there was nothing of interest inside.") + qdel(src) + +/obj/structure/boulder/Bumped(AM) + . = ..() + if(istype(AM,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = AM + if((istype(H.l_hand,/obj/item/weapon/pickaxe)) && (!H.hand)) + attackby(H.l_hand,H) + else if((istype(H.r_hand,/obj/item/weapon/pickaxe)) && H.hand) + attackby(H.r_hand,H) + + else if(istype(AM,/mob/living/silicon/robot)) + var/mob/living/silicon/robot/R = AM + if(istype(R.module_active,/obj/item/weapon/pickaxe)) + attackby(R.module_active,R) + + else if(istype(AM,/obj/mecha)) + var/obj/mecha/M = AM + if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/tool/drill)) + M.selected.action(src) diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm b/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm index 9829c35ec81..44f257060af 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm @@ -1,36 +1,36 @@ - -/obj/structure/crystal - name = "large crystal" - icon = 'icons/obj/xenoarchaeology.dmi' - icon_state = "crystal" - density = 1 - -/obj/structure/crystal/New() - ..() - - icon_state = pick("ano70","ano80") - - desc = pick(\ - "It shines faintly as it catches the light.",\ - "It appears to have a faint inner glow.",\ - "It seems to draw you inward as you look it at.",\ - "Something twinkles faintly as you look at it.",\ - "It's mesmerizing to behold.") - -/obj/structure/crystal/Del() - src.visible_message("\red[src] shatters!") - if(prob(75)) - new /obj/item/weapon/shard/phoron(src.loc) - if(prob(50)) - new /obj/item/weapon/shard/phoron(src.loc) - if(prob(25)) - new /obj/item/weapon/shard/phoron(src.loc) - if(prob(75)) - new /obj/item/weapon/shard(src.loc) - if(prob(50)) - new /obj/item/weapon/shard(src.loc) - if(prob(25)) - new /obj/item/weapon/shard(src.loc) - ..() - -//todo: laser_act + +/obj/structure/crystal + name = "large crystal" + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "crystal" + density = 1 + +/obj/structure/crystal/New() + ..() + + icon_state = pick("ano70","ano80") + + desc = pick(\ + "It shines faintly as it catches the light.",\ + "It appears to have a faint inner glow.",\ + "It seems to draw you inward as you look it at.",\ + "Something twinkles faintly as you look at it.",\ + "It's mesmerizing to behold.") + +/obj/structure/crystal/Destroy() + src.visible_message("\red[src] shatters!") + if(prob(75)) + new /obj/item/weapon/shard/phoron(src.loc) + if(prob(50)) + new /obj/item/weapon/shard/phoron(src.loc) + if(prob(25)) + new /obj/item/weapon/shard/phoron(src.loc) + if(prob(75)) + new /obj/item/weapon/shard(src.loc) + if(prob(50)) + new /obj/item/weapon/shard(src.loc) + if(prob(25)) + new /obj/item/weapon/shard(src.loc) + ..() + +//todo: laser_act diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm b/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm index 41089867896..7617468b414 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm @@ -102,7 +102,7 @@ spawned_obj.desc += " It is made of [source_material]." else spawned_obj.desc = "It is made of [source_material]." - del(source_material) + qdel(source_material) spawn_progress_time = 0 max_spawn_time = rand(30,100) diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm index 22593fa4f5b..5fbe8dcd41f 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm @@ -1,366 +1,366 @@ - -#define EFFECT_TOUCH 0 -#define EFFECT_AURA 1 -#define EFFECT_PULSE 2 -#define MAX_EFFECT 2 - -#define TRIGGER_TOUCH 0 -#define TRIGGER_WATER 1 -#define TRIGGER_ACID 2 -#define TRIGGER_VOLATILE 3 -#define TRIGGER_TOXIN 4 -#define TRIGGER_FORCE 5 -#define TRIGGER_ENERGY 6 -#define TRIGGER_HEAT 7 -#define TRIGGER_COLD 8 -#define TRIGGER_PHORON 9 -#define TRIGGER_OXY 10 -#define TRIGGER_CO2 11 -#define TRIGGER_NITRO 12 -#define MAX_TRIGGER 12 -/* -//sleeping gas appears to be bugged, currently -var/list/valid_primary_effect_types = list(\ - /datum/artifact_effect/cellcharge,\ - /datum/artifact_effect/celldrain,\ - /datum/artifact_effect/forcefield,\ - /datum/artifact_effect/gasoxy,\ - /datum/artifact_effect/gasplasma,\ -/* /datum/artifact_effect/gassleeping,\*/ - /datum/artifact_effect/heal,\ - /datum/artifact_effect/hurt,\ - /datum/artifact_effect/emp,\ - /datum/artifact_effect/teleport,\ - /datum/artifact_effect/robohurt,\ - /datum/artifact_effect/roboheal) - -var/list/valid_secondary_effect_types = list(\ - /datum/artifact_effect/cold,\ - /datum/artifact_effect/badfeeling,\ - /datum/artifact_effect/cellcharge,\ - /datum/artifact_effect/celldrain,\ - /datum/artifact_effect/dnaswitch,\ - /datum/artifact_effect/emp,\ - /datum/artifact_effect/gasco2,\ - /datum/artifact_effect/gasnitro,\ - /datum/artifact_effect/gasoxy,\ - /datum/artifact_effect/gasphoron,\ -/* /datum/artifact_effect/gassleeping,\*/ - /datum/artifact_effect/goodfeeling,\ - /datum/artifact_effect/heal,\ - /datum/artifact_effect/hurt,\ - /datum/artifact_effect/radiate,\ - /datum/artifact_effect/roboheal,\ - /datum/artifact_effect/robohurt,\ - /datum/artifact_effect/sleepy,\ - /datum/artifact_effect/stun,\ - /datum/artifact_effect/teleport) - */ - -/obj/machinery/artifact - name = "alien artifact" - desc = "A large alien device." - icon = 'icons/obj/xenoarchaeology.dmi' - icon_state = "ano00" - var/icon_num = 0 - density = 1 - var/datum/artifact_effect/my_effect - var/datum/artifact_effect/secondary_effect - var/being_used = 0 - -/obj/machinery/artifact/New() - ..() - - //setup primary effect - these are the main ones (mixed) - var/effecttype = pick(typesof(/datum/artifact_effect) - /datum/artifact_effect) - my_effect = new effecttype(src) - - //75% chance to have a secondary stealthy (and mostly bad) effect - if(prob(75)) - effecttype = pick(typesof(/datum/artifact_effect) - /datum/artifact_effect) - secondary_effect = new effecttype(src) - if(prob(75)) - secondary_effect.ToggleActivate(0) - - icon_num = rand(0,11) - icon_state = "ano[icon_num]0" - if(icon_num == 7 || icon_num == 8) - name = "large crystal" - desc = pick("It shines faintly as it catches the light.",\ - "It appears to have a faint inner glow.",\ - "It seems to draw you inward as you look it at.",\ - "Something twinkles faintly as you look at it.",\ - "It's mesmerizing to behold.") - if(prob(50)) - my_effect.trigger = TRIGGER_ENERGY - else if(icon_num == 9) - name = "alien computer" - desc = "It is covered in strange markings." - if(prob(75)) - my_effect.trigger = TRIGGER_TOUCH - else if(icon_num == 10) - desc = "A large alien device, there appear to be some kind of vents in the side." - if(prob(50)) - my_effect.trigger = rand(6,12) - else if(icon_num == 11) - name = "sealed alien pod" - desc = "A strange alien device." - if(prob(25)) - my_effect.trigger = rand(1,4) - -#define TRIGGER_PHORON 9 -#define TRIGGER_OXY 10 -#define TRIGGER_CO2 11 -#define TRIGGER_NITRO 12 - -/obj/machinery/artifact/process() - - var/turf/L = loc - if(isnull(L) || !istype(L)) // We're inside a container or on null turf, either way stop processing effects - return - - if(my_effect) - my_effect.process() - if(secondary_effect) - secondary_effect.process() - - if(pulledby) - Bumped(pulledby) - - //if either of our effects rely on environmental factors, work that out - var/trigger_cold = 0 - var/trigger_hot = 0 - var/trigger_phoron = 0 - var/trigger_oxy = 0 - var/trigger_co2 = 0 - var/trigger_nitro = 0 - if( (my_effect.trigger >= TRIGGER_HEAT && my_effect.trigger <= TRIGGER_NITRO) || (my_effect.trigger >= TRIGGER_HEAT && my_effect.trigger <= TRIGGER_NITRO) ) - var/turf/T = get_turf(src) - var/datum/gas_mixture/env = T.return_air() - if(env) - if(env.temperature < 225) - trigger_cold = 1 - else if(env.temperature > 375) - trigger_hot = 1 - - if(env.gas["phoron"] >= 10) - trigger_phoron = 1 - if(env.gas["oxygen"] >= 10) - trigger_oxy = 1 - if(env.gas["carbon_dioxide"] >= 10) - trigger_co2 = 1 - if(env.gas["nitrogen"] >= 10) - trigger_nitro = 1 - - //COLD ACTIVATION - if(trigger_cold) - if(my_effect.trigger == TRIGGER_COLD && !my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_COLD && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - else - if(my_effect.trigger == TRIGGER_COLD && my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_COLD && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - - //HEAT ACTIVATION - if(trigger_hot) - if(my_effect.trigger == TRIGGER_HEAT && !my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_HEAT && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - else - if(my_effect.trigger == TRIGGER_HEAT && my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_HEAT && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - - //PHORON GAS ACTIVATION - if(trigger_phoron) - if(my_effect.trigger == TRIGGER_PHORON && !my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_PHORON && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - else - if(my_effect.trigger == TRIGGER_PHORON && my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_PHORON && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - - //OXYGEN GAS ACTIVATION - if(trigger_oxy) - if(my_effect.trigger == TRIGGER_OXY && !my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_OXY && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - else - if(my_effect.trigger == TRIGGER_OXY && my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_OXY && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - - //CO2 GAS ACTIVATION - if(trigger_co2) - if(my_effect.trigger == TRIGGER_CO2 && !my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_CO2 && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - else - if(my_effect.trigger == TRIGGER_CO2 && my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_CO2 && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - - //NITROGEN GAS ACTIVATION - if(trigger_nitro) - if(my_effect.trigger == TRIGGER_NITRO && !my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_NITRO && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - else - if(my_effect.trigger == TRIGGER_NITRO && my_effect.activated) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_NITRO && !secondary_effect.activated) - secondary_effect.ToggleActivate(0) - -/obj/machinery/artifact/attack_hand(var/mob/user as mob) - if (get_dist(user, src) > 1) - user << "\red You can't reach [src] from here." - return - if(ishuman(user) && user:gloves) - user << "You touch [src] with your gloved hands, [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")]." - return - - src.add_fingerprint(user) - - if(my_effect.trigger == TRIGGER_TOUCH) - user << "You touch [src]." - my_effect.ToggleActivate() - else - user << "You touch [src], [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")]." - - if(prob(25) && secondary_effect && secondary_effect.trigger == TRIGGER_TOUCH) - secondary_effect.ToggleActivate(0) - - if (my_effect.effect == EFFECT_TOUCH) - my_effect.DoEffectTouch(user) - - if(secondary_effect && secondary_effect.effect == EFFECT_TOUCH && secondary_effect.activated) - secondary_effect.DoEffectTouch(user) - -/obj/machinery/artifact/attackby(obj/item/weapon/W as obj, mob/living/user as mob) - - if (istype(W, /obj/item/weapon/reagent_containers/)) - if(W.reagents.has_reagent("hydrogen", 1) || W.reagents.has_reagent("water", 1)) - if(my_effect.trigger == TRIGGER_WATER) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_WATER && prob(25)) - secondary_effect.ToggleActivate(0) - else if(W.reagents.has_reagent("acid", 1) || W.reagents.has_reagent("pacid", 1) || W.reagents.has_reagent("diethylamine", 1)) - if(my_effect.trigger == TRIGGER_ACID) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_ACID && prob(25)) - secondary_effect.ToggleActivate(0) - else if(W.reagents.has_reagent("phoron", 1) || W.reagents.has_reagent("thermite", 1)) - if(my_effect.trigger == TRIGGER_VOLATILE) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_VOLATILE && prob(25)) - secondary_effect.ToggleActivate(0) - else if(W.reagents.has_reagent("toxin", 1) || W.reagents.has_reagent("cyanide", 1) || W.reagents.has_reagent("amanitin", 1) || W.reagents.has_reagent("neurotoxin", 1)) - if(my_effect.trigger == TRIGGER_TOXIN) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_TOXIN && prob(25)) - secondary_effect.ToggleActivate(0) - else if(istype(W,/obj/item/weapon/melee/baton) && W:status ||\ - istype(W,/obj/item/weapon/melee/energy) ||\ - istype(W,/obj/item/weapon/melee/cultblade) ||\ - istype(W,/obj/item/weapon/card/emag) ||\ - istype(W,/obj/item/device/multitool)) - if (my_effect.trigger == TRIGGER_ENERGY) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_ENERGY && prob(25)) - secondary_effect.ToggleActivate(0) - - else if (istype(W,/obj/item/weapon/flame) && W:lit ||\ - istype(W,/obj/item/weapon/weldingtool) && W:welding) - if(my_effect.trigger == TRIGGER_HEAT) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_HEAT && prob(25)) - secondary_effect.ToggleActivate(0) - else - ..() - if (my_effect.trigger == TRIGGER_FORCE && W.force >= 10) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) - secondary_effect.ToggleActivate(0) - -/obj/machinery/artifact/Bumped(M as mob|obj) - ..() - if(istype(M,/obj)) - if(M:throwforce >= 10) - if(my_effect.trigger == TRIGGER_FORCE) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) - secondary_effect.ToggleActivate(0) - else if(ishuman(M) && !istype(M:gloves,/obj/item/clothing/gloves)) - var/warn = 0 - - if (my_effect.trigger == TRIGGER_TOUCH && prob(50)) - my_effect.ToggleActivate() - warn = 1 - if(secondary_effect && secondary_effect.trigger == TRIGGER_TOUCH && prob(25)) - secondary_effect.ToggleActivate(0) - warn = 1 - - if (my_effect.effect == EFFECT_TOUCH && prob(50)) - my_effect.DoEffectTouch(M) - warn = 1 - if(secondary_effect && secondary_effect.effect == EFFECT_TOUCH && secondary_effect.activated && prob(50)) - secondary_effect.DoEffectTouch(M) - warn = 1 - - if(warn) - M << "You accidentally touch [src]." - ..() - -/obj/machinery/artifact/bullet_act(var/obj/item/projectile/P) - if(istype(P,/obj/item/projectile/bullet) ||\ - istype(P,/obj/item/projectile/hivebotbullet)) - if(my_effect.trigger == TRIGGER_FORCE) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) - secondary_effect.ToggleActivate(0) - - else if(istype(P,/obj/item/projectile/beam) ||\ - istype(P,/obj/item/projectile/ion) ||\ - istype(P,/obj/item/projectile/energy)) - if(my_effect.trigger == TRIGGER_ENERGY) - my_effect.ToggleActivate() - if(secondary_effect && secondary_effect.trigger == TRIGGER_ENERGY && prob(25)) - secondary_effect.ToggleActivate(0) - -/obj/machinery/artifact/ex_act(severity) - switch(severity) - if(1.0) del src - if(2.0) - if (prob(50)) - del src - else - if(my_effect.trigger == TRIGGER_FORCE || my_effect.trigger == TRIGGER_HEAT) - my_effect.ToggleActivate() - if(secondary_effect && (secondary_effect.trigger == TRIGGER_FORCE || secondary_effect.trigger == TRIGGER_HEAT) && prob(25)) - secondary_effect.ToggleActivate(0) - if(3.0) - if (my_effect.trigger == TRIGGER_FORCE || my_effect.trigger == TRIGGER_HEAT) - my_effect.ToggleActivate() - if(secondary_effect && (secondary_effect.trigger == TRIGGER_FORCE || secondary_effect.trigger == TRIGGER_HEAT) && prob(25)) - secondary_effect.ToggleActivate(0) - return - -/obj/machinery/artifact/Move() - ..() - if(my_effect) - my_effect.UpdateMove() - if(secondary_effect) - secondary_effect.UpdateMove() + +#define EFFECT_TOUCH 0 +#define EFFECT_AURA 1 +#define EFFECT_PULSE 2 +#define MAX_EFFECT 2 + +#define TRIGGER_TOUCH 0 +#define TRIGGER_WATER 1 +#define TRIGGER_ACID 2 +#define TRIGGER_VOLATILE 3 +#define TRIGGER_TOXIN 4 +#define TRIGGER_FORCE 5 +#define TRIGGER_ENERGY 6 +#define TRIGGER_HEAT 7 +#define TRIGGER_COLD 8 +#define TRIGGER_PHORON 9 +#define TRIGGER_OXY 10 +#define TRIGGER_CO2 11 +#define TRIGGER_NITRO 12 +#define MAX_TRIGGER 12 +/* +//sleeping gas appears to be bugged, currently +var/list/valid_primary_effect_types = list(\ + /datum/artifact_effect/cellcharge,\ + /datum/artifact_effect/celldrain,\ + /datum/artifact_effect/forcefield,\ + /datum/artifact_effect/gasoxy,\ + /datum/artifact_effect/gasplasma,\ +/* /datum/artifact_effect/gassleeping,\*/ + /datum/artifact_effect/heal,\ + /datum/artifact_effect/hurt,\ + /datum/artifact_effect/emp,\ + /datum/artifact_effect/teleport,\ + /datum/artifact_effect/robohurt,\ + /datum/artifact_effect/roboheal) + +var/list/valid_secondary_effect_types = list(\ + /datum/artifact_effect/cold,\ + /datum/artifact_effect/badfeeling,\ + /datum/artifact_effect/cellcharge,\ + /datum/artifact_effect/celldrain,\ + /datum/artifact_effect/dnaswitch,\ + /datum/artifact_effect/emp,\ + /datum/artifact_effect/gasco2,\ + /datum/artifact_effect/gasnitro,\ + /datum/artifact_effect/gasoxy,\ + /datum/artifact_effect/gasphoron,\ +/* /datum/artifact_effect/gassleeping,\*/ + /datum/artifact_effect/goodfeeling,\ + /datum/artifact_effect/heal,\ + /datum/artifact_effect/hurt,\ + /datum/artifact_effect/radiate,\ + /datum/artifact_effect/roboheal,\ + /datum/artifact_effect/robohurt,\ + /datum/artifact_effect/sleepy,\ + /datum/artifact_effect/stun,\ + /datum/artifact_effect/teleport) + */ + +/obj/machinery/artifact + name = "alien artifact" + desc = "A large alien device." + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "ano00" + var/icon_num = 0 + density = 1 + var/datum/artifact_effect/my_effect + var/datum/artifact_effect/secondary_effect + var/being_used = 0 + +/obj/machinery/artifact/New() + ..() + + //setup primary effect - these are the main ones (mixed) + var/effecttype = pick(typesof(/datum/artifact_effect) - /datum/artifact_effect) + my_effect = new effecttype(src) + + //75% chance to have a secondary stealthy (and mostly bad) effect + if(prob(75)) + effecttype = pick(typesof(/datum/artifact_effect) - /datum/artifact_effect) + secondary_effect = new effecttype(src) + if(prob(75)) + secondary_effect.ToggleActivate(0) + + icon_num = rand(0,11) + icon_state = "ano[icon_num]0" + if(icon_num == 7 || icon_num == 8) + name = "large crystal" + desc = pick("It shines faintly as it catches the light.",\ + "It appears to have a faint inner glow.",\ + "It seems to draw you inward as you look it at.",\ + "Something twinkles faintly as you look at it.",\ + "It's mesmerizing to behold.") + if(prob(50)) + my_effect.trigger = TRIGGER_ENERGY + else if(icon_num == 9) + name = "alien computer" + desc = "It is covered in strange markings." + if(prob(75)) + my_effect.trigger = TRIGGER_TOUCH + else if(icon_num == 10) + desc = "A large alien device, there appear to be some kind of vents in the side." + if(prob(50)) + my_effect.trigger = rand(6,12) + else if(icon_num == 11) + name = "sealed alien pod" + desc = "A strange alien device." + if(prob(25)) + my_effect.trigger = rand(1,4) + +#define TRIGGER_PHORON 9 +#define TRIGGER_OXY 10 +#define TRIGGER_CO2 11 +#define TRIGGER_NITRO 12 + +/obj/machinery/artifact/process() + + var/turf/L = loc + if(isnull(L) || !istype(L)) // We're inside a container or on null turf, either way stop processing effects + return + + if(my_effect) + my_effect.process() + if(secondary_effect) + secondary_effect.process() + + if(pulledby) + Bumped(pulledby) + + //if either of our effects rely on environmental factors, work that out + var/trigger_cold = 0 + var/trigger_hot = 0 + var/trigger_phoron = 0 + var/trigger_oxy = 0 + var/trigger_co2 = 0 + var/trigger_nitro = 0 + if( (my_effect.trigger >= TRIGGER_HEAT && my_effect.trigger <= TRIGGER_NITRO) || (my_effect.trigger >= TRIGGER_HEAT && my_effect.trigger <= TRIGGER_NITRO) ) + var/turf/T = get_turf(src) + var/datum/gas_mixture/env = T.return_air() + if(env) + if(env.temperature < 225) + trigger_cold = 1 + else if(env.temperature > 375) + trigger_hot = 1 + + if(env.gas["phoron"] >= 10) + trigger_phoron = 1 + if(env.gas["oxygen"] >= 10) + trigger_oxy = 1 + if(env.gas["carbon_dioxide"] >= 10) + trigger_co2 = 1 + if(env.gas["nitrogen"] >= 10) + trigger_nitro = 1 + + //COLD ACTIVATION + if(trigger_cold) + if(my_effect.trigger == TRIGGER_COLD && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_COLD && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_COLD && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_COLD && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //HEAT ACTIVATION + if(trigger_hot) + if(my_effect.trigger == TRIGGER_HEAT && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_HEAT && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_HEAT && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_HEAT && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //PHORON GAS ACTIVATION + if(trigger_phoron) + if(my_effect.trigger == TRIGGER_PHORON && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_PHORON && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_PHORON && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_PHORON && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //OXYGEN GAS ACTIVATION + if(trigger_oxy) + if(my_effect.trigger == TRIGGER_OXY && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_OXY && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_OXY && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_OXY && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //CO2 GAS ACTIVATION + if(trigger_co2) + if(my_effect.trigger == TRIGGER_CO2 && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_CO2 && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_CO2 && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_CO2 && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //NITROGEN GAS ACTIVATION + if(trigger_nitro) + if(my_effect.trigger == TRIGGER_NITRO && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_NITRO && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_NITRO && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_NITRO && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + +/obj/machinery/artifact/attack_hand(var/mob/user as mob) + if (get_dist(user, src) > 1) + user << "\red You can't reach [src] from here." + return + if(ishuman(user) && user:gloves) + user << "You touch [src] with your gloved hands, [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")]." + return + + src.add_fingerprint(user) + + if(my_effect.trigger == TRIGGER_TOUCH) + user << "You touch [src]." + my_effect.ToggleActivate() + else + user << "You touch [src], [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")]." + + if(prob(25) && secondary_effect && secondary_effect.trigger == TRIGGER_TOUCH) + secondary_effect.ToggleActivate(0) + + if (my_effect.effect == EFFECT_TOUCH) + my_effect.DoEffectTouch(user) + + if(secondary_effect && secondary_effect.effect == EFFECT_TOUCH && secondary_effect.activated) + secondary_effect.DoEffectTouch(user) + +/obj/machinery/artifact/attackby(obj/item/weapon/W as obj, mob/living/user as mob) + + if (istype(W, /obj/item/weapon/reagent_containers/)) + if(W.reagents.has_reagent("hydrogen", 1) || W.reagents.has_reagent("water", 1)) + if(my_effect.trigger == TRIGGER_WATER) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_WATER && prob(25)) + secondary_effect.ToggleActivate(0) + else if(W.reagents.has_reagent("acid", 1) || W.reagents.has_reagent("pacid", 1) || W.reagents.has_reagent("diethylamine", 1)) + if(my_effect.trigger == TRIGGER_ACID) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_ACID && prob(25)) + secondary_effect.ToggleActivate(0) + else if(W.reagents.has_reagent("phoron", 1) || W.reagents.has_reagent("thermite", 1)) + if(my_effect.trigger == TRIGGER_VOLATILE) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_VOLATILE && prob(25)) + secondary_effect.ToggleActivate(0) + else if(W.reagents.has_reagent("toxin", 1) || W.reagents.has_reagent("cyanide", 1) || W.reagents.has_reagent("amanitin", 1) || W.reagents.has_reagent("neurotoxin", 1)) + if(my_effect.trigger == TRIGGER_TOXIN) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_TOXIN && prob(25)) + secondary_effect.ToggleActivate(0) + else if(istype(W,/obj/item/weapon/melee/baton) && W:status ||\ + istype(W,/obj/item/weapon/melee/energy) ||\ + istype(W,/obj/item/weapon/melee/cultblade) ||\ + istype(W,/obj/item/weapon/card/emag) ||\ + istype(W,/obj/item/device/multitool)) + if (my_effect.trigger == TRIGGER_ENERGY) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_ENERGY && prob(25)) + secondary_effect.ToggleActivate(0) + + else if (istype(W,/obj/item/weapon/flame) && W:lit ||\ + istype(W,/obj/item/weapon/weldingtool) && W:welding) + if(my_effect.trigger == TRIGGER_HEAT) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_HEAT && prob(25)) + secondary_effect.ToggleActivate(0) + else + ..() + if (my_effect.trigger == TRIGGER_FORCE && W.force >= 10) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) + secondary_effect.ToggleActivate(0) + +/obj/machinery/artifact/Bumped(M as mob|obj) + ..() + if(istype(M,/obj)) + if(M:throwforce >= 10) + if(my_effect.trigger == TRIGGER_FORCE) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) + secondary_effect.ToggleActivate(0) + else if(ishuman(M) && !istype(M:gloves,/obj/item/clothing/gloves)) + var/warn = 0 + + if (my_effect.trigger == TRIGGER_TOUCH && prob(50)) + my_effect.ToggleActivate() + warn = 1 + if(secondary_effect && secondary_effect.trigger == TRIGGER_TOUCH && prob(25)) + secondary_effect.ToggleActivate(0) + warn = 1 + + if (my_effect.effect == EFFECT_TOUCH && prob(50)) + my_effect.DoEffectTouch(M) + warn = 1 + if(secondary_effect && secondary_effect.effect == EFFECT_TOUCH && secondary_effect.activated && prob(50)) + secondary_effect.DoEffectTouch(M) + warn = 1 + + if(warn) + M << "You accidentally touch [src]." + ..() + +/obj/machinery/artifact/bullet_act(var/obj/item/projectile/P) + if(istype(P,/obj/item/projectile/bullet) ||\ + istype(P,/obj/item/projectile/hivebotbullet)) + if(my_effect.trigger == TRIGGER_FORCE) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) + secondary_effect.ToggleActivate(0) + + else if(istype(P,/obj/item/projectile/beam) ||\ + istype(P,/obj/item/projectile/ion) ||\ + istype(P,/obj/item/projectile/energy)) + if(my_effect.trigger == TRIGGER_ENERGY) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_ENERGY && prob(25)) + secondary_effect.ToggleActivate(0) + +/obj/machinery/artifact/ex_act(severity) + switch(severity) + if(1.0) qdel(src) + if(2.0) + if (prob(50)) + qdel(src) + else + if(my_effect.trigger == TRIGGER_FORCE || my_effect.trigger == TRIGGER_HEAT) + my_effect.ToggleActivate() + if(secondary_effect && (secondary_effect.trigger == TRIGGER_FORCE || secondary_effect.trigger == TRIGGER_HEAT) && prob(25)) + secondary_effect.ToggleActivate(0) + if(3.0) + if (my_effect.trigger == TRIGGER_FORCE || my_effect.trigger == TRIGGER_HEAT) + my_effect.ToggleActivate() + if(secondary_effect && (secondary_effect.trigger == TRIGGER_FORCE || secondary_effect.trigger == TRIGGER_HEAT) && prob(25)) + secondary_effect.ToggleActivate(0) + return + +/obj/machinery/artifact/Move() + ..() + if(my_effect) + my_effect.UpdateMove() + if(secondary_effect) + secondary_effect.UpdateMove() diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_forcefield.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_forcefield.dm index e076eedd2bd..0139ea935fb 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_forcefield.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_forcefield.dm @@ -1,80 +1,80 @@ - -/datum/artifact_effect/forcefield - effecttype = "forcefield" - var/list/created_field = list() - effect_type = 4 - -/datum/artifact_effect/forcefield/New() - ..() - trigger = TRIGGER_TOUCH - -/datum/artifact_effect/forcefield/ToggleActivate() - ..() - if(created_field.len) - for(var/obj/effect/energy_field/F in created_field) - created_field.Remove(F) - del F - else if(holder) - var/turf/T = get_turf(holder) - while(created_field.len < 16) - var/obj/effect/energy_field/E = new (locate(T.x,T.y,T.z)) - created_field.Add(E) - E.strength = 1 - E.density = 1 - E.anchored = 1 - E.invisibility = 0 - spawn(10) - UpdateMove() - return 1 - -/datum/artifact_effect/forcefield/process() - ..() - for(var/obj/effect/energy_field/E in created_field) - if(E.strength < 1) - E.Strengthen(0.15) - else if(E.strength < 5) - E.Strengthen(0.25) - -/datum/artifact_effect/forcefield/UpdateMove() - if(created_field.len && holder) - var/turf/T = get_turf(holder) - while(created_field.len < 16) - //for now, just instantly respawn the fields when they get destroyed - var/obj/effect/energy_field/E = new (locate(T.x,T.y,T)) - created_field.Add(E) - E.anchored = 1 - E.density = 1 - E.invisibility = 0 - - var/obj/effect/energy_field/E = created_field[1] - E.loc = locate(T.x + 2,T.y + 2,T.z) - E = created_field[2] - E.loc = locate(T.x + 2,T.y + 1,T.z) - E = created_field[3] - E.loc = locate(T.x + 2,T.y,T.z) - E = created_field[4] - E.loc = locate(T.x + 2,T.y - 1,T.z) - E = created_field[5] - E.loc = locate(T.x + 2,T.y - 2,T.z) - E = created_field[6] - E.loc = locate(T.x + 1,T.y + 2,T.z) - E = created_field[7] - E.loc = locate(T.x + 1,T.y - 2,T.z) - E = created_field[8] - E.loc = locate(T.x,T.y + 2,T.z) - E = created_field[9] - E.loc = locate(T.x,T.y - 2,T.z) - E = created_field[10] - E.loc = locate(T.x - 1,T.y + 2,T.z) - E = created_field[11] - E.loc = locate(T.x - 1,T.y - 2,T.z) - E = created_field[12] - E.loc = locate(T.x - 2,T.y + 2,T.z) - E = created_field[13] - E.loc = locate(T.x - 2,T.y + 1,T.z) - E = created_field[14] - E.loc = locate(T.x - 2,T.y,T.z) - E = created_field[15] - E.loc = locate(T.x - 2,T.y - 1,T.z) - E = created_field[16] - E.loc = locate(T.x - 2,T.y - 2,T.z) + +/datum/artifact_effect/forcefield + effecttype = "forcefield" + var/list/created_field = list() + effect_type = 4 + +/datum/artifact_effect/forcefield/New() + ..() + trigger = TRIGGER_TOUCH + +/datum/artifact_effect/forcefield/ToggleActivate() + ..() + if(created_field.len) + for(var/obj/effect/energy_field/F in created_field) + created_field.Remove(F) + qdel(F) + else if(holder) + var/turf/T = get_turf(holder) + while(created_field.len < 16) + var/obj/effect/energy_field/E = new (locate(T.x,T.y,T.z)) + created_field.Add(E) + E.strength = 1 + E.density = 1 + E.anchored = 1 + E.invisibility = 0 + spawn(10) + UpdateMove() + return 1 + +/datum/artifact_effect/forcefield/process() + ..() + for(var/obj/effect/energy_field/E in created_field) + if(E.strength < 1) + E.Strengthen(0.15) + else if(E.strength < 5) + E.Strengthen(0.25) + +/datum/artifact_effect/forcefield/UpdateMove() + if(created_field.len && holder) + var/turf/T = get_turf(holder) + while(created_field.len < 16) + //for now, just instantly respawn the fields when they get destroyed + var/obj/effect/energy_field/E = new (locate(T.x,T.y,T)) + created_field.Add(E) + E.anchored = 1 + E.density = 1 + E.invisibility = 0 + + var/obj/effect/energy_field/E = created_field[1] + E.loc = locate(T.x + 2,T.y + 2,T.z) + E = created_field[2] + E.loc = locate(T.x + 2,T.y + 1,T.z) + E = created_field[3] + E.loc = locate(T.x + 2,T.y,T.z) + E = created_field[4] + E.loc = locate(T.x + 2,T.y - 1,T.z) + E = created_field[5] + E.loc = locate(T.x + 2,T.y - 2,T.z) + E = created_field[6] + E.loc = locate(T.x + 1,T.y + 2,T.z) + E = created_field[7] + E.loc = locate(T.x + 1,T.y - 2,T.z) + E = created_field[8] + E.loc = locate(T.x,T.y + 2,T.z) + E = created_field[9] + E.loc = locate(T.x,T.y - 2,T.z) + E = created_field[10] + E.loc = locate(T.x - 1,T.y + 2,T.z) + E = created_field[11] + E.loc = locate(T.x - 1,T.y - 2,T.z) + E = created_field[12] + E.loc = locate(T.x - 2,T.y + 2,T.z) + E = created_field[13] + E.loc = locate(T.x - 2,T.y + 1,T.z) + E = created_field[14] + E.loc = locate(T.x - 2,T.y,T.z) + E = created_field[15] + E.loc = locate(T.x - 2,T.y - 1,T.z) + E = created_field[16] + E.loc = locate(T.x - 2,T.y - 2,T.z) diff --git a/code/modules/research/xenoarchaeology/finds/finds.dm b/code/modules/research/xenoarchaeology/finds/finds.dm index 6748aea41e7..5855ee7d735 100644 --- a/code/modules/research/xenoarchaeology/finds/finds.dm +++ b/code/modules/research/xenoarchaeology/finds/finds.dm @@ -57,7 +57,7 @@ else for(var/mob/M in viewers(world.view, user)) M.show_message("[src] burns away into nothing.",1) - del(src) + qdel(src) w.remove_fuel(4) else for(var/mob/M in viewers(world.view, user)) @@ -73,7 +73,7 @@ ..() if(prob(33)) src.visible_message("[src] crumbles away, leaving some dust and gravel behind.") - del(src) + qdel(src) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Archaeological finds @@ -548,7 +548,7 @@ if(talkative) new_item.talking_atom = new(new_item) - del(src) + qdel(src) else if(talkative) src.talking_atom = new(src) diff --git a/code/modules/research/xenoarchaeology/finds/finds_fossils.dm b/code/modules/research/xenoarchaeology/finds/finds_fossils.dm index 80dbf549c06..8df5b92623a 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_fossils.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_fossils.dm @@ -17,7 +17,7 @@ var/turf/T = get_turf(src) if(istype(T, /turf/simulated/mineral)) T:last_find = W - del src + qdel(src) /obj/item/weapon/fossil/bone name = "Fossilised bone" @@ -40,8 +40,8 @@ var/b = new src.type o.contents.Add(a) o.contents.Add(b) - del W - del src + qdel(W) + qdel(src) /obj/skeleton name = "Incomplete skeleton" @@ -62,7 +62,7 @@ if(!bstate) bnum++ src.contents.Add(new/obj/item/weapon/fossil/bone) - del W + qdel(W) if(bnum==breq) usr = user icon_state = "skel" diff --git a/code/modules/research/xenoarchaeology/finds/finds_misc.dm b/code/modules/research/xenoarchaeology/finds/finds_misc.dm index e3e0d96197c..8b7dd3fdfac 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_misc.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_misc.dm @@ -1,74 +1,74 @@ - -/obj/item/weapon/shard/phoron - name = "phoron shard" - desc = "A shard of phoron glass. Considerably tougher then normal glass shards. Apparently not tough enough to be a window." - force = 8.0 - throwforce = 15.0 - icon_state = "phoronlarge" - sharp = 1 - edge = 1 - -/obj/item/weapon/shard/phoron/New() - - src.icon_state = pick("phoronlarge", "phoronmedium", "phoronsmall") - switch(src.icon_state) - if("phoronsmall") - src.pixel_x = rand(-12, 12) - src.pixel_y = rand(-12, 12) - if("phoronmedium") - src.pixel_x = rand(-8, 8) - src.pixel_y = rand(-8, 8) - if("phoronlarge") - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - else - return - -/obj/item/weapon/shard/phoron/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if ( istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - var/obj/item/stack/sheet/glass/phoronglass/NG = new (user.loc) - for (var/obj/item/stack/sheet/glass/phoronglass/G in user.loc) - if(G==NG) - continue - if(G.amount>=G.max_amount) - continue - G.attackby(NG, user) - usr << "You add the newly-formed phoron glass to the stack. It now contains [NG.amount] sheets." - //SN src = null - del(src) - return - return ..() - -//legacy crystal -/obj/machinery/crystal - name = "Crystal" - icon = 'icons/obj/mining.dmi' - icon_state = "crystal" - -/obj/machinery/crystal/New() - if(prob(50)) - icon_state = "crystal2" - -//large finds - /* - /obj/machinery/syndicate_beacon - /obj/machinery/wish_granter - if(18) - item_type = "jagged green crystal" - additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") - icon_state = "crystal" - apply_material_decorations = 0 - if(prob(10)) - apply_image_decorations = 1 - if(19) - item_type = "jagged pink crystal" - additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") - icon_state = "crystal2" - apply_material_decorations = 0 - if(prob(10)) - apply_image_decorations = 1 - */ - //machinery type artifacts? + +/obj/item/weapon/shard/phoron + name = "phoron shard" + desc = "A shard of phoron glass. Considerably tougher then normal glass shards. Apparently not tough enough to be a window." + force = 8.0 + throwforce = 15.0 + icon_state = "phoronlarge" + sharp = 1 + edge = 1 + +/obj/item/weapon/shard/phoron/New() + + src.icon_state = pick("phoronlarge", "phoronmedium", "phoronsmall") + switch(src.icon_state) + if("phoronsmall") + src.pixel_x = rand(-12, 12) + src.pixel_y = rand(-12, 12) + if("phoronmedium") + src.pixel_x = rand(-8, 8) + src.pixel_y = rand(-8, 8) + if("phoronlarge") + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + else + return + +/obj/item/weapon/shard/phoron/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if ( istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0, user)) + var/obj/item/stack/sheet/glass/phoronglass/NG = new (user.loc) + for (var/obj/item/stack/sheet/glass/phoronglass/G in user.loc) + if(G==NG) + continue + if(G.amount>=G.max_amount) + continue + G.attackby(NG, user) + usr << "You add the newly-formed phoron glass to the stack. It now contains [NG.amount] sheets." + //SN src = null + qdel(src) + return + return ..() + +//legacy crystal +/obj/machinery/crystal + name = "Crystal" + icon = 'icons/obj/mining.dmi' + icon_state = "crystal" + +/obj/machinery/crystal/New() + if(prob(50)) + icon_state = "crystal2" + +//large finds + /* + /obj/machinery/syndicate_beacon + /obj/machinery/wish_granter + if(18) + item_type = "jagged green crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "crystal" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(19) + item_type = "jagged pink crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "crystal2" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + */ + //machinery type artifacts? diff --git a/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm b/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm index 38d6a524658..284f2cc0e68 100644 --- a/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm +++ b/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm @@ -60,7 +60,7 @@ datum/genesequence visible_message("\red \icon[src] [src] can not extract any more genetic data from new fossils.") if(4) src.visible_message("\blue \icon[src] [user] inserts [W] into [src], the fossil is consumed as [src] extracts genetic data from it.") - del(W) + qdel(W) updateDialog() else if (istype(W, /obj/item/weapon/storage)) var/obj/item/weapon/storage/S = W @@ -77,7 +77,7 @@ datum/genesequence if(SCANFOSSIL_RETVAL_SUCCESS) numaccepted += 1 S.remove_from_storage(F, src) //This will move the item to this item's contents - del(F) + qdel(F) updateDialog() user.visible_message("[user] empties all the fossils from [S] into [src].", "\blue You empty all the fossils from [S] into [src].", "You hear the sound of rocks being poured into a container") diff --git a/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm b/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm index 441630af301..912d0a062e4 100644 --- a/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm +++ b/code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm @@ -156,7 +156,7 @@ //see if we can clear out an old effect //delete it when the ids match to account for duplicate ids having different effects if(inserted_battery.battery_effect && inserted_battery.stored_charge <= 0) - del(inserted_battery.battery_effect) + qdel(inserted_battery.battery_effect) // var/datum/artifact_effect/source_effect diff --git a/code/modules/research/xenoarchaeology/machinery/coolant.dm b/code/modules/research/xenoarchaeology/machinery/coolant.dm index b2f2cd3d670..a1690aa83ea 100644 --- a/code/modules/research/xenoarchaeology/machinery/coolant.dm +++ b/code/modules/research/xenoarchaeology/machinery/coolant.dm @@ -56,4 +56,4 @@ datum/chemical_reaction/coolant sleep(10) if(src) - del(src) + qdel(src) diff --git a/code/modules/research/xenoarchaeology/master_controller.dm b/code/modules/research/xenoarchaeology/master_controller.dm index 9d347e19c6a..fa09ca64709 100644 --- a/code/modules/research/xenoarchaeology/master_controller.dm +++ b/code/modules/research/xenoarchaeology/master_controller.dm @@ -1,145 +1,145 @@ - -/datum/controller/game_controller - var/list/all_animal_genesequences = list() - var/list/all_plant_genesequences = list() - var/list/genome_prefixes = null - var/list/artifact_spawning_turfs = list() - var/list/digsite_spawning_turfs = list() - - var/list/spawn_types_animal = list("/mob/living/carbon/slime",\ - "/mob/living/simple_animal/hostile/alien",\ - "/mob/living/simple_animal/hostile/alien/drone",\ - "/mob/living/simple_animal/hostile/alien/sentinel",\ - "/mob/living/simple_animal/hostile/giant_spider",\ - "/mob/living/simple_animal/hostile/giant_spider/hunter",\ - "/mob/living/simple_animal/hostile/giant_spider/nurse",\ - "/mob/living/simple_animal/hostile/creature",\ - "/mob/living/simple_animal/hostile/samak",\ - "/mob/living/simple_animal/hostile/diyaab",\ - "/mob/living/simple_animal/hostile/shantak",\ - "/mob/living/simple_animal/tindalos",\ - "/mob/living/simple_animal/yithian") - - var/list/spawn_types_plant = list("/obj/item/seeds/walkingmushroommycelium",\ - "/obj/item/seeds/killertomatoseed",\ - "/obj/item/seeds/shandseed", - "/obj/item/seeds/mtearseed", - "/obj/item/seeds/thaadra",\ - "/obj/item/seeds/telriis",\ - "/obj/item/seeds/jurlmah",\ - "/obj/item/seeds/amauri",\ - "/obj/item/seeds/gelthi",\ - "/obj/item/seeds/vale",\ - "/obj/item/seeds/surik") - -#define XENOARCH_SPAWN_CHANCE 0.5 -#define DIGSITESIZE_LOWER 4 -#define DIGSITESIZE_UPPER 12 -#define ARTIFACTSPAWNNUM_LOWER 6 -#define ARTIFACTSPAWNNUM_UPPER 12 - -datum/controller/game_controller/proc/SetupXenoarch() - //create digsites - for(var/turf/simulated/mineral/M in block(locate(1,1,1), locate(world.maxx, world.maxy, world.maxz))) - if(isnull(M.geologic_data)) - M.geologic_data = new/datum/geosample(M) - - if(!prob(XENOARCH_SPAWN_CHANCE)) - continue - - digsite_spawning_turfs.Add(M) - var/digsite = get_random_digsite_type() - var/target_digsite_size = rand(DIGSITESIZE_LOWER, DIGSITESIZE_UPPER) - var/list/processed_turfs = list() - var/list/turfs_to_process = list(M) - while(turfs_to_process.len) - var/turf/simulated/mineral/archeo_turf = pop(turfs_to_process) - - if(target_digsite_size > 1) - var/list/viable_adjacent_turfs = orange(1, archeo_turf) - for(var/turf/simulated/mineral/T in orange(1, archeo_turf)) - if(T.finds) - continue - if(T in processed_turfs) - continue - viable_adjacent_turfs.Add(T) - - for(var/turf/simulated/mineral/T in viable_adjacent_turfs) - if(prob(target_digsite_size/viable_adjacent_turfs.len)) - turfs_to_process.Add(T) - target_digsite_size -= 1 - if(target_digsite_size <= 0) - break - - processed_turfs.Add(archeo_turf) - if(isnull(archeo_turf.finds)) - archeo_turf.finds = list() - if(prob(50)) - archeo_turf.finds.Add(new /datum/find(digsite, rand(5,95))) - else if(prob(75)) - archeo_turf.finds.Add(new /datum/find(digsite, rand(5,45))) - archeo_turf.finds.Add(new /datum/find(digsite, rand(55,95))) - else - archeo_turf.finds.Add(new /datum/find(digsite, rand(5,30))) - archeo_turf.finds.Add(new /datum/find(digsite, rand(35,75))) - archeo_turf.finds.Add(new /datum/find(digsite, rand(75,95))) - - //sometimes a find will be close enough to the surface to show - var/datum/find/F = archeo_turf.finds[1] - if(F.excavation_required <= F.view_range) - archeo_turf.archaeo_overlay = "overlay_archaeo[rand(1,3)]" - archeo_turf.overlays += archeo_turf.archaeo_overlay - - //have a chance for an artifact to spawn here, but not in animal or plant digsites - if(isnull(M.artifact_find) && digsite != 1 && digsite != 2) - artifact_spawning_turfs.Add(archeo_turf) - - //create artifact machinery - var/num_artifacts_spawn = rand(ARTIFACTSPAWNNUM_LOWER, ARTIFACTSPAWNNUM_UPPER) - while(artifact_spawning_turfs.len > num_artifacts_spawn) - pick_n_take(artifact_spawning_turfs) - - var/list/artifacts_spawnturf_temp = artifact_spawning_turfs.Copy() - while(artifacts_spawnturf_temp.len > 0) - var/turf/simulated/mineral/artifact_turf = pop(artifacts_spawnturf_temp) - artifact_turf.artifact_find = new() - - //make sure we have some prefixes for the gene sequences - if(!genome_prefixes) - genome_prefixes = alphabet_uppercase.Copy() - if(!genome_prefixes.len) - del genome_prefixes - genome_prefixes = alphabet_uppercase.Copy() - - //create animal gene sequences - while(spawn_types_animal.len && genome_prefixes.len) - var/datum/genesequence/new_sequence = new/datum/genesequence() - new_sequence.spawned_type_text = pick(spawn_types_animal) - new_sequence.spawned_type = text2path(new_sequence.spawned_type_text) - spawn_types_animal -= new_sequence.spawned_type_text - - var/prefixletter = pick(genome_prefixes) - genome_prefixes -= prefixletter - while(new_sequence.full_genome_sequence.len < 7) - new_sequence.full_genome_sequence.Add("[prefixletter][pick(alphabet_uppercase)][pick(alphabet_uppercase)][pick(1,2,3,4,5,6,7,8,9,0)][pick(1,2,3,4,5,6,7,8,9,0)]") - - all_animal_genesequences.Add(new_sequence) - - //create plant gene sequences - while(spawn_types_plant.len && genome_prefixes.len) - var/datum/genesequence/new_sequence = new/datum/genesequence() - new_sequence.spawned_type = pick(spawn_types_plant) - spawn_types_plant -= new_sequence.spawned_type_text - - var/prefixletter = pick(genome_prefixes) - genome_prefixes -= prefixletter - while(new_sequence.full_genome_sequence.len < 7) - new_sequence.full_genome_sequence.Add("[prefixletter][pick(1,2,3,4,5,6,7,8,9,0)][pick(1,2,3,4,5,6,7,8,9,0)][pick(alphabet_uppercase)][pick(alphabet_uppercase)]") - - all_plant_genesequences.Add(new_sequence) - -#undef XENOARCH_SPAWN_CHANCE -#undef DIGSITESIZE_LOWER -#undef DIGSITESIZE_UPPER -#undef ARTIFACTSPAWNNUM_LOWER -#undef ARTIFACTSPAWNNUM_UPPER + +/datum/controller/game_controller + var/list/all_animal_genesequences = list() + var/list/all_plant_genesequences = list() + var/list/genome_prefixes = null + var/list/artifact_spawning_turfs = list() + var/list/digsite_spawning_turfs = list() + + var/list/spawn_types_animal = list("/mob/living/carbon/slime",\ + "/mob/living/simple_animal/hostile/alien",\ + "/mob/living/simple_animal/hostile/alien/drone",\ + "/mob/living/simple_animal/hostile/alien/sentinel",\ + "/mob/living/simple_animal/hostile/giant_spider",\ + "/mob/living/simple_animal/hostile/giant_spider/hunter",\ + "/mob/living/simple_animal/hostile/giant_spider/nurse",\ + "/mob/living/simple_animal/hostile/creature",\ + "/mob/living/simple_animal/hostile/samak",\ + "/mob/living/simple_animal/hostile/diyaab",\ + "/mob/living/simple_animal/hostile/shantak",\ + "/mob/living/simple_animal/tindalos",\ + "/mob/living/simple_animal/yithian") + + var/list/spawn_types_plant = list("/obj/item/seeds/walkingmushroommycelium",\ + "/obj/item/seeds/killertomatoseed",\ + "/obj/item/seeds/shandseed", + "/obj/item/seeds/mtearseed", + "/obj/item/seeds/thaadra",\ + "/obj/item/seeds/telriis",\ + "/obj/item/seeds/jurlmah",\ + "/obj/item/seeds/amauri",\ + "/obj/item/seeds/gelthi",\ + "/obj/item/seeds/vale",\ + "/obj/item/seeds/surik") + +#define XENOARCH_SPAWN_CHANCE 0.5 +#define DIGSITESIZE_LOWER 4 +#define DIGSITESIZE_UPPER 12 +#define ARTIFACTSPAWNNUM_LOWER 6 +#define ARTIFACTSPAWNNUM_UPPER 12 + +datum/controller/game_controller/proc/SetupXenoarch() + //create digsites + for(var/turf/simulated/mineral/M in block(locate(1,1,1), locate(world.maxx, world.maxy, world.maxz))) + if(isnull(M.geologic_data)) + M.geologic_data = new/datum/geosample(M) + + if(!prob(XENOARCH_SPAWN_CHANCE)) + continue + + digsite_spawning_turfs.Add(M) + var/digsite = get_random_digsite_type() + var/target_digsite_size = rand(DIGSITESIZE_LOWER, DIGSITESIZE_UPPER) + var/list/processed_turfs = list() + var/list/turfs_to_process = list(M) + while(turfs_to_process.len) + var/turf/simulated/mineral/archeo_turf = pop(turfs_to_process) + + if(target_digsite_size > 1) + var/list/viable_adjacent_turfs = orange(1, archeo_turf) + for(var/turf/simulated/mineral/T in orange(1, archeo_turf)) + if(T.finds) + continue + if(T in processed_turfs) + continue + viable_adjacent_turfs.Add(T) + + for(var/turf/simulated/mineral/T in viable_adjacent_turfs) + if(prob(target_digsite_size/viable_adjacent_turfs.len)) + turfs_to_process.Add(T) + target_digsite_size -= 1 + if(target_digsite_size <= 0) + break + + processed_turfs.Add(archeo_turf) + if(isnull(archeo_turf.finds)) + archeo_turf.finds = list() + if(prob(50)) + archeo_turf.finds.Add(new /datum/find(digsite, rand(5,95))) + else if(prob(75)) + archeo_turf.finds.Add(new /datum/find(digsite, rand(5,45))) + archeo_turf.finds.Add(new /datum/find(digsite, rand(55,95))) + else + archeo_turf.finds.Add(new /datum/find(digsite, rand(5,30))) + archeo_turf.finds.Add(new /datum/find(digsite, rand(35,75))) + archeo_turf.finds.Add(new /datum/find(digsite, rand(75,95))) + + //sometimes a find will be close enough to the surface to show + var/datum/find/F = archeo_turf.finds[1] + if(F.excavation_required <= F.view_range) + archeo_turf.archaeo_overlay = "overlay_archaeo[rand(1,3)]" + archeo_turf.overlays += archeo_turf.archaeo_overlay + + //have a chance for an artifact to spawn here, but not in animal or plant digsites + if(isnull(M.artifact_find) && digsite != 1 && digsite != 2) + artifact_spawning_turfs.Add(archeo_turf) + + //create artifact machinery + var/num_artifacts_spawn = rand(ARTIFACTSPAWNNUM_LOWER, ARTIFACTSPAWNNUM_UPPER) + while(artifact_spawning_turfs.len > num_artifacts_spawn) + pick_n_take(artifact_spawning_turfs) + + var/list/artifacts_spawnturf_temp = artifact_spawning_turfs.Copy() + while(artifacts_spawnturf_temp.len > 0) + var/turf/simulated/mineral/artifact_turf = pop(artifacts_spawnturf_temp) + artifact_turf.artifact_find = new() + + //make sure we have some prefixes for the gene sequences + if(!genome_prefixes) + genome_prefixes = alphabet_uppercase.Copy() + if(!genome_prefixes.len) + qdel(genome_prefixes) + genome_prefixes = alphabet_uppercase.Copy() + + //create animal gene sequences + while(spawn_types_animal.len && genome_prefixes.len) + var/datum/genesequence/new_sequence = new/datum/genesequence() + new_sequence.spawned_type_text = pick(spawn_types_animal) + new_sequence.spawned_type = text2path(new_sequence.spawned_type_text) + spawn_types_animal -= new_sequence.spawned_type_text + + var/prefixletter = pick(genome_prefixes) + genome_prefixes -= prefixletter + while(new_sequence.full_genome_sequence.len < 7) + new_sequence.full_genome_sequence.Add("[prefixletter][pick(alphabet_uppercase)][pick(alphabet_uppercase)][pick(1,2,3,4,5,6,7,8,9,0)][pick(1,2,3,4,5,6,7,8,9,0)]") + + all_animal_genesequences.Add(new_sequence) + + //create plant gene sequences + while(spawn_types_plant.len && genome_prefixes.len) + var/datum/genesequence/new_sequence = new/datum/genesequence() + new_sequence.spawned_type = pick(spawn_types_plant) + spawn_types_plant -= new_sequence.spawned_type_text + + var/prefixletter = pick(genome_prefixes) + genome_prefixes -= prefixletter + while(new_sequence.full_genome_sequence.len < 7) + new_sequence.full_genome_sequence.Add("[prefixletter][pick(1,2,3,4,5,6,7,8,9,0)][pick(1,2,3,4,5,6,7,8,9,0)][pick(alphabet_uppercase)][pick(alphabet_uppercase)]") + + all_plant_genesequences.Add(new_sequence) + +#undef XENOARCH_SPAWN_CHANCE +#undef DIGSITESIZE_LOWER +#undef DIGSITESIZE_UPPER +#undef ARTIFACTSPAWNNUM_LOWER +#undef ARTIFACTSPAWNNUM_UPPER diff --git a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm index c189273bd55..fc50c956e74 100644 --- a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm +++ b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm @@ -190,7 +190,7 @@ p = min(p, 100) icon_state = "anodev[round(p,25)]" -/obj/item/weapon/anodevice/Del() +/obj/item/weapon/anodevice/Destroy() processing_objects.Remove(src) ..() diff --git a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm index 9f498d3faab..b14c892cd03 100644 --- a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm +++ b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm @@ -306,10 +306,10 @@ M.weakened = min(M.weakened, 3) src.visible_message("\blue \icon[src] [src] deactivates with a gentle shudder.") - del(suspension_field) + qdel(suspension_field) icon_state = "suspension2" -/obj/machinery/suspension_gen/Del() +/obj/machinery/suspension_gen/Destroy() //safety checks: clear the field and drop anything it's holding deactivate() ..() @@ -341,7 +341,7 @@ density = 1 var/field_type = "chlorine" -/obj/effect/suspension_field/Del() +/obj/effect/suspension_field/Destroy() for(var/obj/I in src) I.loc = src.loc ..() diff --git a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm index 7c357b53dad..0ed24ad2489 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm @@ -32,7 +32,7 @@ /obj/item/device/core_sampler/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/evidencebag)) if(num_stored_bags < 10) - del(W) + qdel(W) num_stored_bags += 1 user << "\blue You insert the [W] into the core sampler." else diff --git a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm index 425b3e0dc35..e242838a1e1 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm @@ -118,11 +118,11 @@ if(index <= positive_locations.len) var/datum/depth_scan/D = positive_locations[index] positive_locations.Remove(D) - del(D) + qdel(D) else //GC will hopefully pick them up before too long positive_locations = list() - del(current) + qdel(current) else if(href_list["close"]) usr.unset_machine() usr << browse(null, "window=depth_scanner") diff --git a/code/modules/research/xenoarchaeology/tools/tools_locater.dm b/code/modules/research/xenoarchaeology/tools/tools_locater.dm index ad84f0e0100..fb6adf795ac 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_locater.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_locater.dm @@ -16,7 +16,7 @@ ..() processing_objects.Add(src) -/obj/item/device/beacon_locator/Del() +/obj/item/device/beacon_locator/Destroy() processing_objects.Remove(src) ..() diff --git a/code/modules/scripting/Parser/Keywords.dm b/code/modules/scripting/Parser/Keywords.dm index bdd33d8bda0..7d933c52ef8 100644 --- a/code/modules/scripting/Parser/Keywords.dm +++ b/code/modules/scripting/Parser/Keywords.dm @@ -46,7 +46,7 @@ var/const/Represents a special statement in the code triggered by a keyword. nS_Keyword New(inline=0) if(inline) - del src + qdel(src) kwReturn Parse(n_Parser/nS_Parser/parser) diff --git a/code/modules/shieldgen/emergency_shield.dm b/code/modules/shieldgen/emergency_shield.dm index a3616319604..12781021ba7 100644 --- a/code/modules/shieldgen/emergency_shield.dm +++ b/code/modules/shieldgen/emergency_shield.dm @@ -17,7 +17,7 @@ ..() update_nearby_tiles(need_rebuild=1) -/obj/machinery/shield/Del() +/obj/machinery/shield/Destroy() opacity = 0 density = 0 update_nearby_tiles() @@ -41,7 +41,7 @@ if (src.health <= 0) visible_message("\blue The [src] dissipates!") - del(src) + qdel(src) return opacity = 1 @@ -54,7 +54,7 @@ if(src.health <= 0) visible_message("\blue The [src] dissipates!") - del(src) + qdel(src) return opacity = 1 @@ -66,7 +66,7 @@ ..() if(health <=0) visible_message("\blue The [src] dissipates!") - del(src) + qdel(src) return opacity = 1 spawn(20) if(src) opacity = 0 @@ -75,25 +75,25 @@ switch(severity) if(1.0) if (prob(75)) - del(src) + qdel(src) if(2.0) if (prob(50)) - del(src) + qdel(src) if(3.0) if (prob(25)) - del(src) + qdel(src) return /obj/machinery/shield/emp_act(severity) switch(severity) if(1) - del(src) + qdel(src) if(2) if(prob(50)) - del(src) + qdel(src) /obj/machinery/shield/blob_act() - del(src) + qdel(src) /obj/machinery/shield/hitby(AM as mob|obj) @@ -115,7 +115,7 @@ //Handle the destruction of the shield if (src.health <= 0) visible_message("\blue The [src] dissipates!") - del(src) + qdel(src) return //The shield becomes dense to absorb the blow.. purely asthetic. @@ -149,7 +149,7 @@ use_power = 0 idle_power_usage = 0 -/obj/machinery/shieldgen/Del() +/obj/machinery/shieldgen/Destroy() collapse_shields() ..() @@ -187,7 +187,7 @@ /obj/machinery/shieldgen/proc/collapse_shields() for(var/obj/machinery/shield/shield_tile in deployed_shields) - del(shield_tile) + qdel(shield_tile) /obj/machinery/shieldgen/power_change() ..() @@ -204,7 +204,7 @@ if(malfunction) if(deployed_shields.len && prob(5)) - del(pick(deployed_shields)) + qdel(pick(deployed_shields)) else if (check_delay <= 0) create_shields() @@ -227,7 +227,7 @@ if(health <= 0) spawn(0) explosion(get_turf(src.loc), 0, 0, 1, 0, 0, 0) - del(src) + qdel(src) update_icon() return diff --git a/code/modules/shieldgen/energy_field.dm b/code/modules/shieldgen/energy_field.dm index 7558c19ad6f..074d3abbfa9 100644 --- a/code/modules/shieldgen/energy_field.dm +++ b/code/modules/shieldgen/energy_field.dm @@ -17,7 +17,7 @@ ..() update_nearby_tiles() -/obj/effect/energy_field/Del() +/obj/effect/energy_field/Destroy() update_nearby_tiles() ..() diff --git a/code/modules/shieldgen/sheldwallgen.dm b/code/modules/shieldgen/sheldwallgen.dm index 95b3276bd3a..39b7f31d8eb 100644 --- a/code/modules/shieldgen/sheldwallgen.dm +++ b/code/modules/shieldgen/sheldwallgen.dm @@ -199,14 +199,14 @@ T2 = T if(locate(/obj/machinery/shieldwall) in T) F = (locate(/obj/machinery/shieldwall) in T) - del(F) + qdel(F) if(locate(/obj/machinery/shieldwallgen) in T) G = (locate(/obj/machinery/shieldwallgen) in T) if(!G.active) break -/obj/machinery/shieldwallgen/Del() +/obj/machinery/shieldwallgen/Destroy() src.cleanup(1) src.cleanup(2) src.cleanup(4) @@ -252,9 +252,9 @@ else B.storedpower -= generate_power_usage else - del(src) //need at least two generator posts + qdel(src) //need at least two generator posts -/obj/machinery/shieldwall/Del() +/obj/machinery/shieldwall/Destroy() update_nearby_tiles() ..() @@ -265,11 +265,11 @@ /obj/machinery/shieldwall/process() if(needs_power) if(isnull(gen_primary)||isnull(gen_secondary)) - del(src) + qdel(src) return if(!(gen_primary.active)||!(gen_secondary.active)) - del(src) + qdel(src) return if(prob(50)) diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm index 7483dd02fbc..6789867232d 100644 --- a/code/modules/shieldgen/shield_gen.dm +++ b/code/modules/shieldgen/shield_gen.dm @@ -208,7 +208,7 @@ for(var/turf/O in covered_turfs) var/obj/effect/energy_field/E = new(O) field.Add(E) - del covered_turfs + qdel(covered_turfs) for(var/mob/M in view(5,src)) M << "\icon[src] You hear heavy droning start up." diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index b3478322f72..03942ee5f05 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -105,7 +105,7 @@ for(var/atom/movable/AM as mob|obj in T) AM.Move(D) if(istype(T, /turf/simulated)) - del(T) + qdel(T) for(var/mob/living/carbon/bug in destination) bug.gib() diff --git a/code/modules/spells/aoe_turf/charge.dm b/code/modules/spells/aoe_turf/charge.dm index eb8fb76de29..6e7f5b00508 100644 --- a/code/modules/spells/aoe_turf/charge.dm +++ b/code/modules/spells/aoe_turf/charge.dm @@ -48,7 +48,7 @@ var/obj/item/weapon/spellbook/oneuse/I = target if(prob(50)) I.visible_message("[I] catches fire!") - del(I) + qdel(I) else I.used = 0 charged_item = I diff --git a/code/modules/spells/aoe_turf/conjure/conjure.dm b/code/modules/spells/aoe_turf/conjure/conjure.dm index 98377948fa6..6dff0fdb65d 100644 --- a/code/modules/spells/aoe_turf/conjure/conjure.dm +++ b/code/modules/spells/aoe_turf/conjure/conjure.dm @@ -71,4 +71,4 @@ How they spawn stuff is decided by behaviour vars, which are explained below return /spell/aoe_turf/conjure/proc/conjure_animation(var/atom/movable/overlay/animation, var/turf/target) - del(animation) \ No newline at end of file + qdel(animation) \ No newline at end of file diff --git a/code/modules/spells/aoe_turf/conjure/construct.dm b/code/modules/spells/aoe_turf/conjure/construct.dm index fb04db349b3..d5a2de92e2f 100644 --- a/code/modules/spells/aoe_turf/conjure/construct.dm +++ b/code/modules/spells/aoe_turf/conjure/construct.dm @@ -38,7 +38,7 @@ animation.icon_state = "cultfloor" flick("cultfloor",animation) spawn(10) - del(animation) + qdel(animation) /spell/aoe_turf/conjure/wall name = "Lesser Construction" @@ -57,7 +57,7 @@ animation.icon_state = "cultwall" flick("cultwall",animation) spawn(10) - del(animation) + qdel(animation) /spell/aoe_turf/conjure/wall/reinforced name = "Greater Construction" diff --git a/code/modules/spells/spell_code.dm b/code/modules/spells/spell_code.dm index 0a3078507a1..0847146c9a0 100644 --- a/code/modules/spells/spell_code.dm +++ b/code/modules/spells/spell_code.dm @@ -153,7 +153,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now spell.anchored = 1 spell.density = 0 spawn(overlay_lifespan) - del(spell) + qdel(spell) return valid_targets /spell/proc/after_cast(list/targets) diff --git a/code/modules/spells/targeted/ethereal_jaunt.dm b/code/modules/spells/targeted/ethereal_jaunt.dm index 2a0e52cc136..b6c786c2e31 100644 --- a/code/modules/spells/targeted/ethereal_jaunt.dm +++ b/code/modules/spells/targeted/ethereal_jaunt.dm @@ -52,8 +52,8 @@ break target.canmove = 1 target.client.eye = target - del(animation) - del(holder) + qdel(animation) + qdel(holder) /spell/targeted/ethereal_jaunt/proc/jaunt_disappear(var/atom/movable/overlay/animation, var/mob/living/target) animation.icon_state = "liquify" diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 587b5d93428..dd8c279c149 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -91,8 +91,8 @@ radio = new (src) -/obj/machinery/power/supermatter/Del() - del radio +/obj/machinery/power/supermatter/Destroy() + qdel(radio) . = ..() /obj/machinery/power/supermatter/proc/explode() @@ -111,7 +111,7 @@ mob.apply_effect(rads, IRRADIATE) spawn(pull_time) explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1) - del src + qdel(src) return //Changes color and luminosity of the light to these values if they were not already set @@ -311,7 +311,7 @@ user.dust() power += 200 else - del user + qdel(user) power += 200 diff --git a/code/modules/surgery/robolimbs.dm b/code/modules/surgery/robolimbs.dm index 578833e4184..d8214837bf6 100644 --- a/code/modules/surgery/robolimbs.dm +++ b/code/modules/surgery/robolimbs.dm @@ -54,7 +54,7 @@ target.updatehealth() target.UpdateDamageIcon() - del(tool) + qdel(tool) fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("\red [user]'s hand slips, damaging [target]'s flesh!", \ diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index 968a09c2872..b539dde039a 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -306,7 +306,7 @@ var/datum/vehicle_dummy_load/dummy_load = load load = dummy_load.actual_load dummy_load.actual_load = null - del(dummy_load) + qdel(dummy_load) overlays.Cut() ..() diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index c39c8ec047e..164f486b337 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -149,7 +149,7 @@ /obj/vehicle/emp_act(severity) var/was_on = on stat |= EMPED - var/obj/effect/overlay/pulse2 = new/obj/effect/overlay ( src.loc ) + var/obj/effect/overlay/pulse2 = PoolOrNew(new/obj/effect/overlay, src.loc) pulse2.icon = 'icons/effects/effects.dmi' pulse2.icon_state = "empdisable" pulse2.name = "emp sparks" @@ -157,7 +157,7 @@ pulse2.set_dir(pick(cardinal)) spawn(10) - pulse2.delete() + qdel(pulse2) if(on) turn_off() spawn(severity*300) @@ -220,7 +220,7 @@ new /obj/effect/gibspawner/robot(Tsec) new /obj/effect/decal/cleanable/blood/oil(src.loc) - del(src) + qdel(src) /obj/vehicle/proc/healthcheck() if(health <= 0) diff --git a/code/modules/virus2/biohazard destroyer.dm b/code/modules/virus2/biohazard destroyer.dm index abd1803de86..c6281e16805 100644 --- a/code/modules/virus2/biohazard destroyer.dm +++ b/code/modules/virus2/biohazard destroyer.dm @@ -10,7 +10,7 @@ for(var/path in accepts) if(I.type in typesof(path)) user.drop_item() - del(I) + qdel(I) overlays += image('icons/obj/pipes/disposal.dmi', "dispover-handle") return user.drop_item() diff --git a/code/modules/virus2/items_devices.dm b/code/modules/virus2/items_devices.dm index 741fdb099d5..7508818a6d7 100644 --- a/code/modules/virus2/items_devices.dm +++ b/code/modules/virus2/items_devices.dm @@ -64,7 +64,7 @@ for(var/mob/living/carbon/target in view(1, get_turf(src))) if(airborne_can_reach(get_turf(src), get_turf(target))) infect_virus2(target, src.virus2) - del src + qdel(src) /obj/item/weapon/virusdish/examine(mob/user) ..() @@ -91,7 +91,7 @@ if(prob(50)) user << "\The [src] shatters!" - del src + qdel(src) ///////////////GNA DISK/////////////// diff --git a/code/world.dm b/code/world.dm index 01c6b0d1c5e..58823fec88a 100644 --- a/code/world.dm +++ b/code/world.dm @@ -8,7 +8,7 @@ var/global/datum/global_init/init = new () makeDatumRefLists() load_configuration() - del(src) + qdel(src) /world