From 1aa4c73e8def533c550aaebd58a69f20cd4544f0 Mon Sep 17 00:00:00 2001 From: Novacat <35587478+Novacat@users.noreply.github.com> Date: Sat, 27 Aug 2022 08:49:56 -0400 Subject: [PATCH] Revert "[MIRROR] /atom New() => Initialize() [MDB IGNORE]" --- code/ATMOSPHERICS/atmospherics.dm | 4 +- .../binary_devices/binary_atmos_base.dm | 4 +- .../components/binary_devices/circulator.dm | 4 +- .../components/binary_devices/dp_vent_pump.dm | 15 +- .../components/binary_devices/passive_gate.dm | 12 +- .../components/binary_devices/pump.dm | 11 +- .../components/omni_devices/filter.dm | 4 +- .../components/omni_devices/mixer.dm | 4 +- .../components/omni_devices/omni_base.dm | 4 +- .../components/trinary_devices/filter.dm | 11 +- .../components/trinary_devices/mixer.dm | 4 +- .../trinary_devices/trinary_base.dm | 4 +- .../components/unary/outlet_injector.dm | 11 +- .../components/unary/unary_base.dm | 4 +- .../components/unary/vent_pump.dm | 10 +- .../components/unary/vent_scrubber.dm | 4 +- code/ATMOSPHERICS/pipes/he_pipes.dm | 4 +- code/ATMOSPHERICS/pipes/manifold.dm | 4 +- code/ATMOSPHERICS/pipes/manifold4w.dm | 4 +- code/ATMOSPHERICS/pipes/pipe_base.dm | 4 +- code/ATMOSPHERICS/pipes/simple.dm | 4 +- code/ATMOSPHERICS/pipes/tank.dm | 41 +- code/ZAS/Fire.dm | 4 +- code/__defines/subsystems.dm | 7 +- code/_helpers/turfs.dm | 2 +- code/_helpers/unsorted.dm | 27 +- code/_onclick/hud/ability_screen_objects.dm | 11 +- code/_onclick/hud/screen_objects.dm | 12 +- .../emergency_shuttle_controller.dm | 4 +- code/controllers/subsystems/atoms.dm | 91 +-- code/controllers/subsystems/open_space.dm | 96 --- code/controllers/subsystems/ticker.dm | 2 +- code/controllers/verbs.dm | 5 +- code/datums/ghost_query.dm | 8 +- code/defines/obj/weapon.dm | 10 +- code/game/area/Space Station 13 areas.dm | 18 + code/game/area/ai_monitored.dm | 19 +- code/game/area/areas.dm | 13 +- code/game/atoms.dm | 31 +- code/game/atoms_movable.dm | 100 +-- .../gamemodes/changeling/changeling_powers.dm | 2 +- .../gamemodes/changeling/modularchangling.dm | 2 +- .../gamemodes/changeling/powers/armblade.dm | 4 +- .../game/gamemodes/changeling/powers/armor.dm | 8 +- .../changeling/powers/bioelectrogenesis.dm | 3 +- .../changeling/powers/electric_lockpick.dm | 3 +- .../changeling/powers/fabricate_clothing.dm | 6 +- code/game/gamemodes/cult/construct_spells.dm | 9 +- code/game/gamemodes/cult/cult_structures.dm | 1 - code/game/gamemodes/cult/narsie.dm | 9 +- .../endgame/supermatter_cascade/portal.dm | 5 +- code/game/gamemodes/events/black_hole.dm | 6 +- .../gamemodes/events/holidays/Christmas.dm | 3 + code/game/gamemodes/meteor/meteors.dm | 5 +- code/game/gamemodes/technomancer/catalog.dm | 4 +- code/game/gamemodes/technomancer/core_obj.dm | 9 +- .../technomancer/devices/gloves_of_regen.dm | 4 +- .../technomancer/devices/shield_armor.dm | 4 +- code/game/gamemodes/technomancer/equipment.dm | 4 +- .../game/gamemodes/technomancer/spell_objs.dm | 15 +- .../technomancer/spells/aspect_aura.dm | 4 +- .../technomancer/spells/aura/aura.dm | 4 +- .../gamemodes/technomancer/spells/chroma.dm | 4 +- .../technomancer/spells/energy_siphon.dm | 4 +- .../technomancer/spells/flame_tongue.dm | 4 +- .../technomancer/spells/insert/insert.dm | 10 +- .../technomancer/spells/instability_tap.dm | 4 +- .../technomancer/spells/modifier/modifier.dm | 4 +- .../technomancer/spells/phase_shift.dm | 8 +- .../gamemodes/technomancer/spells/radiance.dm | 4 +- .../gamemodes/technomancer/spells/reflect.dm | 4 +- .../gamemodes/technomancer/spells/shield.dm | 4 +- .../technomancer/spells/spawner/darkness.dm | 4 +- .../technomancer/spells/spawner/destablize.dm | 4 +- .../technomancer/spells/spawner/pulsar.dm | 4 +- .../technomancer/spells/warp_strike.dm | 4 +- code/game/machinery/Beacon.dm | 4 +- code/game/machinery/CableLayer.dm | 7 +- code/game/machinery/OpTable.dm | 4 +- code/game/machinery/adv_med.dm | 4 +- code/game/machinery/ai_slipper.dm | 4 +- code/game/machinery/air_alarm.dm | 9 +- code/game/machinery/atm_ret_field.dm | 1 - .../atmoalter/area_atmos_computer.dm | 2 +- code/game/machinery/atmoalter/canister.dm | 43 +- code/game/machinery/atmoalter/clamp.dm | 5 +- .../atmoalter/portable_atmospherics.dm | 8 +- code/game/machinery/atmoalter/pump.dm | 4 +- code/game/machinery/atmoalter/scrubber.dm | 8 +- code/game/machinery/bioprinter.dm | 2 +- code/game/machinery/camera/camera.dm | 6 +- code/game/machinery/camera/presets.dm | 16 +- code/game/machinery/cloning.dm | 19 +- code/game/machinery/computer/Operating.dm | 4 +- code/game/machinery/computer/RCON_Console.dm | 4 +- code/game/machinery/computer/arcade.dm | 13 +- code/game/machinery/computer/atmos_alert.dm | 4 +- code/game/machinery/computer/atmos_control.dm | 3 + code/game/machinery/computer/crew.dm | 4 +- code/game/machinery/computer/guestpass.dm | 4 +- .../machinery/computer/shutoff_monitor.dm | 4 +- code/game/machinery/cryo.dm | 8 +- code/game/machinery/cryopod.dm | 20 +- code/game/machinery/deployable.dm | 4 +- code/game/machinery/doors/airlock.dm | 28 +- code/game/machinery/doors/airlock_control.dm | 8 + code/game/machinery/doors/alarmlock.dm | 7 +- code/game/machinery/doors/door.dm | 2 +- code/game/machinery/doors/multi_tile.dm | 4 +- code/game/machinery/doors/windowdoor.dm | 4 +- code/game/machinery/doppler_array.dm | 4 +- code/game/machinery/floodlight.dm | 4 +- code/game/machinery/floorlayer.dm | 4 +- code/game/machinery/frame.dm | 4 +- code/game/machinery/igniter.dm | 7 +- code/game/machinery/machinery.dm | 11 +- code/game/machinery/magnet.dm | 8 +- code/game/machinery/mass_driver.dm | 2 +- code/game/machinery/navbeacon.dm | 8 +- code/game/machinery/nuclear_bomb.dm | 8 +- code/game/machinery/pda_multicaster.dm | 4 +- code/game/machinery/pipe/pipelayer.dm | 4 +- code/game/machinery/records_scanner.dm | 3 +- code/game/machinery/requests_console.dm | 12 - code/game/machinery/spaceheater.dm | 4 +- code/game/machinery/suit_storage_unit.dm | 2 +- code/game/machinery/supplybeacon.dm | 4 +- code/game/machinery/telecomms/broadcaster.dm | 4 + code/game/machinery/telecomms/presets.dm | 12 +- .../machinery/telecomms/telecomunications.dm | 40 +- code/game/machinery/teleporter.dm | 8 +- code/game/machinery/transformer.dm | 8 +- .../machinery/virtual_reality/vr_console.dm | 6 +- code/game/mecha/combat/durand.dm | 8 +- code/game/mecha/combat/gygax.dm | 8 +- code/game/mecha/combat/marauder.dm | 4 +- code/game/mecha/combat/phazon.dm | 4 +- .../game/mecha/equipment/tools/cable_layer.dm | 7 +- code/game/mecha/equipment/tools/shield.dm | 4 +- code/game/mecha/mecha.dm | 24 +- code/game/mecha/mecha_parts.dm | 32 +- code/game/mecha/mecha_wreckage.dm | 24 +- code/game/mecha/medical/odysseus.dm | 8 +- code/game/mecha/working/ripley.dm | 4 +- code/game/objects/effects/alien/aliens.dm | 262 +------ code/game/objects/effects/bump_teleporter.dm | 4 +- code/game/objects/effects/chem/chemsmoke.dm | 4 +- code/game/objects/effects/chem/coating.dm | 5 +- code/game/objects/effects/chem/foam.dm | 4 +- .../objects/effects/decals/Cleanable/fuel.dm | 23 +- .../effects/decals/Cleanable/humans.dm | 12 +- .../objects/effects/decals/Cleanable/misc.dm | 4 +- code/game/objects/effects/decals/cleanable.dm | 7 +- code/game/objects/effects/decals/crayon.dm | 5 +- .../objects/effects/decals/posters/posters.dm | 4 +- code/game/objects/effects/effect_system.dm | 8 +- .../objects/effects/explosion_particles.dm | 16 +- code/game/objects/effects/gibs.dm | 14 +- code/game/objects/effects/landmarks.dm | 165 +++-- code/game/objects/effects/landmarks_poi_vr.dm | 3 +- code/game/objects/effects/manifest.dm | 8 +- code/game/objects/effects/overlays.dm | 10 +- code/game/objects/effects/prop/columnblast.dm | 8 +- code/game/objects/effects/prop/snake.dm | 6 +- .../objects/effects/spawners/bombspawner.dm | 36 +- .../objects/effects/spawners/gibspawner.dm | 12 +- code/game/objects/effects/spiders.dm | 13 +- code/game/objects/effects/step_triggers.dm | 4 +- .../temporary_visuals/miscellaneous.dm | 1 - .../projectiles/projectile_effects.dm | 4 +- code/game/objects/items.dm | 4 +- code/game/objects/items/antag_spawners.dm | 4 +- .../game/objects/items/devices/ai_detector.dm | 4 +- .../devices/communicator/communicator.dm | 12 +- code/game/objects/items/devices/defib.dm | 8 +- code/game/objects/items/devices/flashlight.dm | 35 +- code/game/objects/items/devices/hacktool.dm | 4 +- .../objects/items/devices/laserpointer.dm | 8 +- .../objects/items/devices/lightreplacer.dm | 4 +- code/game/objects/items/devices/paicard.dm | 4 +- .../objects/items/devices/pipe_painter.dm | 4 +- .../objects/items/devices/radio/headset.dm | 13 +- .../objects/items/devices/radio/intercom.dm | 24 +- .../objects/items/devices/radio/jammer.dm | 3 +- .../game/objects/items/devices/radio/radio.dm | 16 +- .../objects/items/devices/scanners/health.dm | 652 +++++++++--------- code/game/objects/items/devices/spy_bug.dm | 15 +- .../objects/items/devices/taperecorder.dm | 7 +- code/game/objects/items/devices/tvcamera.dm | 5 +- code/game/objects/items/devices/uplink.dm | 12 +- code/game/objects/items/devices/violin.dm | 41 -- code/game/objects/items/glassjar.dm | 4 +- code/game/objects/items/paintkit.dm | 1 - code/game/objects/items/poi_items.dm | 4 +- code/game/objects/items/robot/robot_items.dm | 8 +- code/game/objects/items/robot/robot_parts.dm | 9 +- .../objects/items/stacks/marker_beacons.dm | 2 +- code/game/objects/items/stacks/stack.dm | 2 +- code/game/objects/items/toys/toys.dm | 7 +- code/game/objects/items/trash.dm | 9 +- code/game/objects/items/weapons/candle.dm | 4 +- .../objects/items/weapons/cigs_lighters.dm | 8 +- .../circuitboards/computer/camera_monitor.dm | 12 +- code/game/objects/items/weapons/cosmetics.dm | 3 +- .../objects/items/weapons/dna_injector.dm | 179 +++-- code/game/objects/items/weapons/ecigs.dm | 51 +- code/game/objects/items/weapons/explosives.dm | 4 +- .../objects/items/weapons/flamethrower.dm | 5 +- code/game/objects/items/weapons/game_kit.dm | 3 +- .../objects/items/weapons/gift_wrappaper.dm | 4 +- .../items/weapons/grenades/flashbang.dm | 26 +- .../items/weapons/grenades/smokebomb.dm | 4 +- .../objects/items/weapons/id cards/cards.dm | 2 +- .../objects/items/weapons/implants/implant.dm | 8 +- .../items/weapons/implants/implantcase.dm | 128 ++-- .../items/weapons/implants/implantchair.dm | 4 +- .../items/weapons/implants/implantcircuits.dm | 4 +- .../items/weapons/implants/implanter.dm | 29 +- .../items/weapons/implants/implantfreedom.dm | 6 +- .../items/weapons/implants/implantuplink.dm | 6 +- code/game/objects/items/weapons/manuals.dm | 32 +- .../objects/items/weapons/material/ashtray.dm | 20 +- .../objects/items/weapons/material/bats.dm | 20 +- .../objects/items/weapons/material/foam.dm | 16 +- .../items/weapons/material/material_armor.dm | 4 +- .../weapons/material/material_weapons.dm | 4 +- .../objects/items/weapons/material/shards.dm | 8 +- .../objects/items/weapons/material/thrown.dm | 4 +- .../items/weapons/material/twohanded.dm | 4 +- .../objects/items/weapons/melee/energy.dm | 26 +- code/game/objects/items/weapons/melee/misc.dm | 8 +- code/game/objects/items/weapons/mop.dm | 4 +- code/game/objects/items/weapons/mop_deploy.dm | 3 +- code/game/objects/items/weapons/paint.dm | 4 +- code/game/objects/items/weapons/policetape.dm | 4 +- .../objects/items/weapons/storage/bible.dm | 2 + .../objects/items/weapons/storage/internal.dm | 8 +- .../objects/items/weapons/storage/storage.dm | 5 +- .../objects/items/weapons/storage/wallets.dm | 8 +- code/game/objects/items/weapons/stunbaton.dm | 17 +- code/game/objects/items/weapons/syndie.dm | 3 +- .../objects/items/weapons/tanks/jetpack.dm | 4 +- .../game/objects/items/weapons/tanks/tanks.dm | 24 +- code/game/objects/items/weapons/tape.dm | 4 +- .../objects/items/weapons/tools/combitool.dm | 4 +- .../objects/items/weapons/tools/crowbar.dm | 4 +- .../items/weapons/tools/screwdriver.dm | 8 +- .../items/weapons/tools/weldingtool.dm | 17 +- .../items/weapons/tools/wirecutters.dm | 8 +- .../objects/items/weapons/tools/wrench.dm | 4 +- code/game/objects/items/weapons/towels.dm | 4 +- code/game/objects/items/weapons/weaponry.dm | 4 +- code/game/objects/random/_random.dm | 3 +- code/game/objects/structures/barricades.dm | 8 +- code/game/objects/structures/barsign.dm | 4 +- code/game/objects/structures/bonfire.dm | 16 +- code/game/objects/structures/catwalk.dm | 6 +- .../crates_lockers/closets/statue.dm | 8 +- code/game/objects/structures/door_assembly.dm | 6 +- code/game/objects/structures/electricchair.dm | 2 +- code/game/objects/structures/extinguisher.dm | 5 +- code/game/objects/structures/flora/flora.dm | 68 +- code/game/objects/structures/flora/grass.dm | 12 +- .../structures/ghost_pods/ghost_pods_vr.dm | 3 +- .../objects/structures/ghost_pods/human.dm | 2 +- code/game/objects/structures/girders.dm | 8 +- code/game/objects/structures/gravemarker.dm | 4 +- code/game/objects/structures/grille.dm | 4 +- code/game/objects/structures/inflatable.dm | 4 +- code/game/objects/structures/janicart.dm | 3 +- code/game/objects/structures/mirror.dm | 5 +- code/game/objects/structures/mop_bucket.dm | 4 +- code/game/objects/structures/musician.dm | 366 ---------- .../objects/structures/props/beam_prism.dm | 1 - .../game/objects/structures/props/machines.dm | 2 - code/game/objects/structures/props/statue.dm | 3 +- code/game/objects/structures/railing.dm | 9 +- code/game/objects/structures/safe.dm | 5 +- code/game/objects/structures/signs.dm | 12 +- code/game/objects/structures/simple_doors.dm | 93 +-- .../structures/stool_bed_chair_nest/bed.dm | 21 +- .../structures/stool_bed_chair_nest/chairs.dm | 48 +- .../structures/stool_bed_chair_nest/stools.dm | 27 +- code/game/objects/structures/transit_tubes.dm | 26 +- code/game/objects/structures/watercloset.dm | 3 +- .../objects/structures/windoor_assembly.dm | 5 +- code/game/objects/structures/window.dm | 43 +- code/game/socket_talk.dm | 37 +- code/game/turfs/flooring/flooring_decals.dm | 18 +- code/game/turfs/simulated.dm | 10 +- code/game/turfs/simulated/dungeon/wall.dm | 9 +- code/game/turfs/simulated/floor_types.dm | 8 +- code/game/turfs/simulated/outdoors/snow.dm | 10 +- code/game/turfs/simulated/wall_icon.dm | 23 +- code/game/turfs/simulated/wall_types.dm | 202 +++--- code/game/turfs/simulated/walls.dm | 26 +- code/game/turfs/turf.dm | 1 - code/global.dm | 1 - code/modules/admin/verbs/adminhelp.dm | 12 +- code/modules/admin/verbs/mapping.dm | 3 +- code/modules/artifice/deadringer.dm | 4 +- code/modules/assembly/holder.dm | 4 +- code/modules/assembly/signaler.dm | 3 + code/modules/awaymissions/corpse.dm | 1 - code/modules/awaymissions/exile.dm | 12 +- code/modules/blob/blob.dm | 12 +- code/modules/blob2/blobs/core.dm | 1 - code/modules/blob2/blobs/node.dm | 4 +- code/modules/blob2/core_chunk.dm | 5 +- code/modules/blob2/mobs/spore.dm | 4 +- code/modules/clothing/chameleon.dm | 44 +- code/modules/clothing/clothing.dm | 12 +- code/modules/clothing/glasses/glasses.dm | 24 +- code/modules/clothing/head/fishing.dm | 1 - code/modules/clothing/masks/miscellaneous.dm | 11 +- code/modules/clothing/masks/voice.dm | 4 +- code/modules/clothing/rings/material.dm | 72 +- code/modules/clothing/rings/rings.dm | 8 +- code/modules/clothing/spacesuits/breaches.dm | 4 +- .../clothing/spacesuits/rig/modules/combat.dm | 4 +- .../spacesuits/rig/modules/computer.dm | 4 +- .../spacesuits/rig/modules/modules.dm | 4 +- .../clothing/spacesuits/rig/modules/ninja.dm | 4 +- .../rig/modules/specific/datajack.dm | 4 +- .../spacesuits/rig/modules/specific/device.dm | 8 +- .../rig/modules/specific/jetpack.dm | 4 +- .../rig/modules/specific/mounted_gun.dm | 4 +- .../rig/modules/specific/self_destruct.dm | 4 +- .../spacesuits/rig/modules/specific/vision.dm | 4 +- .../spacesuits/rig/modules/specific/voice.dm | 4 +- .../spacesuits/rig/modules/utility.dm | 16 +- .../clothing/spacesuits/rig/modules/vision.dm | 4 +- code/modules/clothing/spacesuits/rig/rig.dm | 4 +- code/modules/clothing/suits/hooded.dm | 4 +- code/modules/clothing/suits/storage.dm | 8 +- .../clothing/under/accessories/accessory.dm | 42 +- .../clothing/under/accessories/clothing.dm | 23 - code/modules/detectivework/tools/crimekit.dm | 4 +- .../detectivework/tools/sample_kits.dm | 8 +- code/modules/detectivework/tools/storage.dm | 12 +- code/modules/economy/ATM.dm | 4 +- code/modules/economy/Accounts_DB.dm | 4 +- code/modules/economy/cash_register.dm | 4 +- code/modules/economy/coins.dm | 3 +- code/modules/economy/coins_vr.dm | 3 +- code/modules/economy/money_bag.dm | 4 +- code/modules/economy/retail_scanner.dm | 3 +- .../examine/descriptions/atmospherics.dm | 4 +- code/modules/flufftext/Hallucination.dm | 4 +- code/modules/food/food/cans.dm | 8 +- .../modules/food/food/drinks/drinkingglass.dm | 8 +- code/modules/food/kitchen/gibber.dm | 5 +- code/modules/food/kitchen/icecream.dm | 3 +- code/modules/games/cah.dm | 4 +- code/modules/games/cardemon.dm | 4 +- code/modules/games/cards.dm | 4 +- code/modules/games/dice.dm | 15 +- code/modules/games/spaceball_cards.dm | 4 +- code/modules/games/tarot.dm | 4 +- code/modules/holodeck/HolodeckControl.dm | 4 +- code/modules/holodeck/HolodeckObjects.dm | 16 +- code/modules/holomap/station_holomap.dm | 4 +- .../modules/hydroponics/beekeeping/beehive.dm | 8 +- code/modules/hydroponics/grown.dm | 12 +- code/modules/hydroponics/seed_machines.dm | 8 +- code/modules/hydroponics/seed_storage.dm | 4 +- .../hydroponics/spreading/spreading.dm | 10 +- code/modules/hydroponics/trays/tray_soil.dm | 9 +- .../core/assemblies/device.dm | 8 +- .../core/integrated_circuit.dm | 4 +- .../integrated_electronics/core/tools.dm | 52 +- .../integrated_electronics/passive/power.dm | 4 +- .../subtypes/data_transfer.dm | 14 +- .../integrated_electronics/subtypes/input.dm | 12 +- .../subtypes/manipulation.dm | 4 +- .../integrated_electronics/subtypes/memory.dm | 4 +- .../integrated_electronics/subtypes/output.dm | 8 +- .../subtypes/reagents.dm | 4 +- code/modules/library/lib_items.dm | 12 +- code/modules/lighting/lighting_area.dm | 6 + code/modules/lighting/lighting_atom.dm | 3 - code/modules/looking_glass/lg_area.dm | 2 +- code/modules/maps/reader.dm | 2 +- code/modules/maps/tg/map_template.dm | 2 +- code/modules/mining/abandonedcrates.dm | 4 +- .../machinery/machine_input_output_plates.dm | 8 +- .../mining/machinery/machine_stacking.dm | 8 +- code/modules/mining/mine_turfs.dm | 9 +- code/modules/mining/mineral_effect.dm | 4 +- code/modules/mob/dead/corpse.dm | 7 +- code/modules/mob/dead/observer/observer.dm | 11 +- code/modules/mob/freelook/ai/eye.dm | 11 +- .../mob/freelook/ai/update_triggers.dm | 4 +- code/modules/mob/freelook/mask/eye.dm | 4 +- .../mob/freelook/mask/update_triggers.dm | 4 +- code/modules/mob/freelook/update_triggers.dm | 4 +- code/modules/mob/living/bot/bot.dm | 7 +- code/modules/mob/living/bot/cleanbot.dm | 4 +- code/modules/mob/living/bot/farmbot.dm | 8 +- code/modules/mob/living/bot/mulebot.dm | 4 +- code/modules/mob/living/carbon/brain/MMI.dm | 14 +- .../mob/living/carbon/brain/posibrain.dm | 4 +- code/modules/mob/living/carbon/brain/robot.dm | 4 +- code/modules/mob/living/carbon/carbon.dm | 17 +- .../human/ai_controlled/ai_controlled.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 7 +- .../station/protean_vr/protean_blob.dm | 24 +- .../human/species/xenomorphs/alien_embryo.dm | 162 ----- .../species/xenomorphs/alien_facehugger.dm | 220 ------ .../human/species/xenomorphs/xenomorphs.dm | 16 +- code/modules/mob/living/living.dm | 8 +- code/modules/mob/living/silicon/ai/ai.dm | 29 +- .../living/silicon/ai/ai_remote_control.dm | 5 + .../modules/mob/living/silicon/decoy/decoy.dm | 3 +- code/modules/mob/living/silicon/pai/pai.dm | 20 +- .../mob/living/silicon/pai/software.dm | 4 +- .../mob/living/silicon/robot/component.dm | 1 - .../mob/living/silicon/robot/drone/drone.dm | 4 +- .../silicon/robot/drone/drone_manufacturer.dm | 3 + .../modules/mob/living/silicon/robot/robot.dm | 4 +- .../mob/living/silicon/robot/robot_items.dm | 10 +- .../silicon/robot/robot_modules/event.dm | 16 +- .../silicon/robot/robot_modules/station.dm | 138 +--- .../silicon/robot/robot_modules/swarm.dm | 29 +- .../silicon/robot/robot_modules/syndicate.dm | 34 +- .../subtypes/thinktank/thinktank_module.dm | 16 +- .../mob/living/silicon/robot/syndicate.dm | 5 +- code/modules/mob/living/silicon/silicon.dm | 4 +- .../simple_mob/subtypes/animal/borer/borer.dm | 4 +- .../subtypes/animal/farm animals/chicken.dm | 8 +- .../subtypes/animal/farm animals/cow.dm | 4 +- .../subtypes/animal/farm animals/goat.dm | 4 +- .../subtypes/animal/passive/mouse.dm | 11 +- .../subtypes/occult/constructs/_construct.dm | 4 +- .../simple_mob/subtypes/vore/leopardmander.dm | 2 +- code/modules/mob/mob_grab.dm | 12 +- code/modules/mob/mob_planes.dm | 6 +- code/modules/mob/new_player/new_player.dm | 7 +- code/modules/modular_computers/NTNet/NTNet.dm | 2 +- .../modular_computers/NTNet/NTNet_relay.dm | 7 +- .../computers/subtypes/dev_telescreen.dm | 4 +- .../modular_computers/hardware/_hardware.dm | 8 +- .../hardware/battery_module.dm | 8 +- .../modular_computers/hardware/hard_drive.dm | 4 +- .../hardware/network_card.dm | 4 +- .../hardware/portable_hard_drive.dm | 4 +- code/modules/multiz/basic.dm | 7 +- code/modules/multiz/ladders.dm | 6 +- code/modules/multiz/pipes.dm | 4 +- code/modules/multiz/stairs.dm | 16 +- code/modules/multiz/turf.dm | 6 +- code/modules/multiz/zshadow.dm | 127 ---- code/modules/organs/internal/brain.dm | 12 +- code/modules/organs/internal/eyes.dm | 8 +- code/modules/organs/internal/heart.dm | 4 +- code/modules/organs/internal/kidneys.dm | 4 +- code/modules/organs/internal/liver.dm | 4 +- code/modules/organs/internal/lungs.dm | 4 +- code/modules/organs/internal/voicebox.dm | 12 +- code/modules/organs/organ.dm | 46 +- code/modules/organs/organ_external.dm | 7 +- code/modules/organs/organ_stump.dm | 4 +- code/modules/organs/robolimbs.dm | 4 +- code/modules/organs/subtypes/machine.dm | 19 +- code/modules/organs/subtypes/xenos.dm | 20 +- code/modules/overmap/ships/computers/ship.dm | 11 - .../overmap/ships/engines/gas_thruster.dm | 8 +- code/modules/overmap/ships/engines/thermal.dm | 97 --- code/modules/paperwork/adminpaper.dm | 4 +- code/modules/paperwork/clipboard.dm | 3 +- code/modules/paperwork/faxmachine.dm | 4 +- code/modules/paperwork/folders.dm | 3 +- code/modules/paperwork/paper.dm | 37 +- code/modules/paperwork/paperplane.dm | 2 +- code/modules/paperwork/papershredder.dm | 4 +- code/modules/paperwork/pen.dm | 18 +- code/modules/paperwork/photography.dm | 5 +- code/modules/pda/ai.dm | 8 +- code/modules/pda/cart.dm | 2 +- code/modules/pda/pda.dm | 15 +- code/modules/pda/pda_subtypes.dm | 36 +- code/modules/pda/radio.dm | 6 +- code/modules/persistence/graffiti.dm | 4 +- code/modules/persistence/noticeboard.dm | 4 +- code/modules/power/antimatter/computer.dm | 4 +- code/modules/power/antimatter/control.dm | 4 +- code/modules/power/antimatter/engine.dm | 8 +- code/modules/power/antimatter/shielding.dm | 9 +- code/modules/power/apc.dm | 4 +- code/modules/power/batteryrack.dm | 4 +- code/modules/power/cable.dm | 25 +- code/modules/power/cell.dm | 4 +- code/modules/power/cells/power_cells.dm | 20 +- .../modules/power/fusion/core/core_control.dm | 4 +- code/modules/power/fusion/core/core_field.dm | 4 +- .../fusion/fuel_assembly/fuel_assembly.dm | 20 +- .../fusion/fuel_assembly/fuel_control.dm | 4 +- .../power/fusion/gyrotron/gyrotron_control.dm | 4 +- code/modules/power/lighting.dm | 21 +- code/modules/power/pacman2.dm | 9 +- code/modules/power/sensors/powernet_sensor.dm | 4 +- .../power/sensors/sensor_monitoring.dm | 4 +- code/modules/power/singularity/collector.dm | 4 +- .../power/singularity/field_generator.dm | 4 +- .../particle_accelerator/particle.dm | 10 +- .../particle_accelerator/particle_control.dm | 4 +- code/modules/power/singularity/singularity.dm | 4 +- code/modules/power/solar.dm | 6 - code/modules/power/supermatter/supermatter.dm | 6 +- code/modules/power/terminal.dm | 4 +- code/modules/power/tesla/coil.dm | 5 +- code/modules/power/tesla/energy_ball.dm | 7 +- code/modules/projectiles/ammunition.dm | 8 +- .../projectiles/ammunition/smartmag.dm | 6 +- code/modules/projectiles/broken.dm | 13 +- code/modules/projectiles/brokenguns/energy.dm | 12 +- .../projectiles/brokenguns/launcher.dm | 4 +- .../projectiles/brokenguns/magnetic.dm | 4 +- .../projectiles/brokenguns/projectile.dm | 24 +- code/modules/projectiles/gun.dm | 5 +- .../projectiles/guns/automatic_fire.dm | 14 +- code/modules/projectiles/guns/energy.dm | 4 +- .../projectiles/guns/launcher/pneumatic.dm | 4 +- .../projectiles/guns/magnetic/magnetic.dm | 2 +- code/modules/projectiles/guns/modular_guns.dm | 4 +- code/modules/projectiles/guns/projectile.dm | 4 +- .../projectiles/guns/projectile/automatic.dm | 4 +- .../projectiles/guns/projectile/dartgun.dm | 10 +- .../projectiles/guns/projectile/pistol.dm | 4 +- .../projectiles/guns/projectile/revolver.dm | 4 +- .../projectile/sniper/collapsible_sniper.dm | 12 +- code/modules/projectiles/guns/vox.dm | 4 +- code/modules/projectiles/projectile/blob.dm | 6 +- code/modules/projectiles/projectile/energy.dm | 2 +- .../targeting/targeting_overlay.dm | 10 +- code/modules/random_map/automata/diona.dm | 4 +- .../modules/reagents/machinery/chem_master.dm | 4 +- .../machinery/dispenser/reagent_tank.dm | 6 +- .../reagents/reactions/instant/instant_vr.dm | 136 ---- .../reagents/reagent_containers/syringes.dm | 2 +- .../recycling/disposal-construction.dm | 4 +- code/modules/recycling/disposal.dm | 28 +- code/modules/research/message_server.dm | 16 +- code/modules/research/rdconsole.dm | 4 +- code/modules/research/research.dm | 6 +- code/modules/research/server.dm | 5 +- code/modules/resleeving/implant.dm | 4 +- code/modules/shieldgen/directional_shield.dm | 4 +- code/modules/shieldgen/emergency_shield.dm | 6 +- code/modules/shieldgen/energy_field.dm | 4 +- code/modules/shieldgen/handheld_defuser.dm | 2 +- code/modules/shieldgen/sheldwallgen.dm | 10 +- code/modules/shieldgen/shield_diffuser.dm | 5 + code/modules/spells/spellbook.dm | 4 +- .../modules/spells/targeted/ethereal_jaunt.dm | 6 +- code/modules/tables/debug.dm | 7 +- code/modules/tables/presets.dm | 108 +-- code/modules/tables/rack.dm | 39 +- code/modules/tables/update_triggers.dm | 20 + code/modules/turbolift/_turbolift.dm | 2 + code/modules/turbolift/turbolift_console.dm | 4 +- code/modules/turbolift/turbolift_map.dm | 12 +- code/modules/vehicles/bike.dm | 8 +- code/modules/vehicles/boat.dm | 27 +- code/modules/vehicles/cargo_train.dm | 4 +- code/modules/vehicles/construction.dm | 4 +- code/modules/vehicles/quad.dm | 18 +- code/modules/vehicles/vehicle.dm | 4 +- code/modules/virus2/items_devices.dm | 7 +- code/modules/vore/eating/slipvore_vr.dm | 4 +- .../xenoarcheaology/artifacts/artifact.dm | 4 +- .../xenoarcheaology/artifacts/autocloner.dm | 4 +- .../xenoarcheaology/artifacts/crystal.dm | 4 +- .../xenoarcheaology/artifacts/replicator.dm | 4 +- code/modules/xenoarcheaology/boulder.dm | 3 +- .../xenoarcheaology/finds/find_spawning.dm | 3 +- code/modules/xenoarcheaology/finds/finds.dm | 6 +- code/modules/xenoarcheaology/finds/fossils.dm | 20 +- code/modules/xenoarcheaology/finds/special.dm | 14 +- code/modules/xenoarcheaology/sampling.dm | 3 +- .../tools/ano_device_battery.dm | 9 +- .../tools/geosample_scanner.dm | 4 +- code/modules/xenoarcheaology/tools/tools.dm | 11 +- .../xenoarcheaology/tools/tools_pickaxe.dm | 4 +- code/modules/xenobio/items/extracts.dm | 4 +- .../xenobio2/machinery/gene_manipulators.dm | 4 +- code/modules/xenobio2/mob/slime/slime.dm | 6 +- code/modules/xenobio2/mob/xeno.dm | 10 +- code/unit_tests/subsystem_tests.dm | 6 +- maps/expedition_vr/beach/_beach.dm | 1 - maps/expedition_vr/space/_debrisfield.dm | 17 +- maps/southern_cross/overmap/sectors.dm | 8 + maps/southern_cross/southern_cross_defines.dm | 16 +- maps/submaps/engine_submaps/engine.dm | 3 + .../surface_submaps/wilderness/DJOutpost3.dmm | 2 +- .../surface_submaps/wilderness/DJOutpost4.dmm | 2 +- maps/tether/tether_turfs.dm | 1 - tools/Redirector/Redirector.dm | 8 +- vorestation.dme | 1 + 599 files changed, 3329 insertions(+), 4983 deletions(-) delete mode 100644 code/controllers/subsystems/open_space.dm delete mode 100644 code/game/objects/items/devices/violin.dm delete mode 100644 code/game/objects/structures/musician.dm delete mode 100644 code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm delete mode 100644 code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm delete mode 100644 code/modules/multiz/zshadow.dm delete mode 100644 code/modules/overmap/ships/engines/thermal.dm create mode 100644 code/modules/tables/update_triggers.dm diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 0aae436dcb..a5e1563972 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -35,8 +35,8 @@ Pipelines + Other Objects -> Pipe network var/obj/machinery/atmospherics/node1 var/obj/machinery/atmospherics/node2 -/obj/machinery/atmospherics/Initialize(var/ml, newdir) - . = ..() +/obj/machinery/atmospherics/New(loc, newdir) + ..() if(!icon_manager) icon_manager = new() if(!isnull(newdir)) diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm index 6b49555a3a..cc280d97cc 100644 --- a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm +++ b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm @@ -9,8 +9,8 @@ var/datum/pipe_network/network1 var/datum/pipe_network/network2 -/obj/machinery/atmospherics/binary/Initialize() - . = ..() +/obj/machinery/atmospherics/binary/New() + ..() air1 = new air2 = new diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm index cca0593f1a..c5fe955523 100644 --- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm +++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm @@ -24,8 +24,8 @@ density = TRUE -/obj/machinery/atmospherics/binary/circulator/Initialize() - . = ..() +/obj/machinery/atmospherics/binary/circulator/New() + ..() desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]." air1.volume = 400 diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm index 131c7888e8..aebea38901 100644 --- a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm @@ -42,10 +42,8 @@ //2: Do not pass input_pressure_min //4: Do not pass output_pressure_max -/obj/machinery/atmospherics/binary/dp_vent_pump/Initialize() - . = ..() - if(frequency) - set_frequency(frequency) +/obj/machinery/atmospherics/binary/dp_vent_pump/New() + ..() air1.volume = ATMOS_DEFAULT_VOLUME_PUMP air2.volume = ATMOS_DEFAULT_VOLUME_PUMP icon = null @@ -57,8 +55,8 @@ /obj/machinery/atmospherics/binary/dp_vent_pump/high_volume name = "Large Dual Port Air Vent" -/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume/Initialize() - . = ..() +/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume/New() + ..() air1.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800 air2.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800 @@ -196,6 +194,11 @@ return 1 +/obj/machinery/atmospherics/binary/dp_vent_pump/Initialize() + . = ..() + if(frequency) + set_frequency(frequency) + /obj/machinery/atmospherics/binary/dp_vent_pump/examine(mob/user) . = ..() if(Adjacent(user)) diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 02887e8219..686efa6508 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -27,12 +27,10 @@ var/id = null var/datum/radio_frequency/radio_connection -/obj/machinery/atmospherics/binary/passive_gate/Initialize() - . = ..() +/obj/machinery/atmospherics/binary/passive_gate/New() + ..() air1.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5 air2.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5 - if(frequency) - set_frequency(frequency) /obj/machinery/atmospherics/binary/passive_gate/Destroy() unregister_radio(src, frequency) @@ -168,8 +166,14 @@ ) radio_connection.post_signal(src, signal, radio_filter = RADIO_ATMOSIA) + return 1 +/obj/machinery/atmospherics/binary/passive_gate/Initialize() + . = ..() + if(frequency) + set_frequency(frequency) + /obj/machinery/atmospherics/binary/passive_gate/receive_signal(datum/signal/signal) if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) return 0 diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 188f816dce..514216e7fa 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -37,12 +37,10 @@ Thus, the two variables affect pump operation are set in New(): var/id = null var/datum/radio_frequency/radio_connection -/obj/machinery/atmospherics/binary/pump/Initialize() - . = ..() +/obj/machinery/atmospherics/binary/pump/New() + ..() air1.volume = ATMOS_DEFAULT_VOLUME_PUMP air2.volume = ATMOS_DEFAULT_VOLUME_PUMP - if(frequency) - set_frequency(frequency) /obj/machinery/atmospherics/binary/pump/Destroy() unregister_radio(src, frequency) @@ -168,6 +166,11 @@ Thus, the two variables affect pump operation are set in New(): return data +/obj/machinery/atmospherics/binary/pump/Initialize() + . = ..() + if(frequency) + set_frequency(frequency) + /obj/machinery/atmospherics/binary/pump/receive_signal(datum/signal/signal) if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) return 0 diff --git a/code/ATMOSPHERICS/components/omni_devices/filter.dm b/code/ATMOSPHERICS/components/omni_devices/filter.dm index 74f77dabde..1b51693389 100644 --- a/code/ATMOSPHERICS/components/omni_devices/filter.dm +++ b/code/ATMOSPHERICS/components/omni_devices/filter.dm @@ -20,8 +20,8 @@ var/list/filtering_outputs = list() //maps gasids to gas_mixtures -/obj/machinery/atmospherics/omni/atmos_filter/Initialize() - . = ..() +/obj/machinery/atmospherics/omni/atmos_filter/New() + ..() rebuild_filtering_list() for(var/datum/omni_port/P in ports) P.air.volume = ATMOS_DEFAULT_VOLUME_FILTER diff --git a/code/ATMOSPHERICS/components/omni_devices/mixer.dm b/code/ATMOSPHERICS/components/omni_devices/mixer.dm index 3dfb13436c..3487482be3 100644 --- a/code/ATMOSPHERICS/components/omni_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/omni_devices/mixer.dm @@ -24,8 +24,8 @@ var/list/mixing_inputs = list() -/obj/machinery/atmospherics/omni/mixer/Initialize() - . = ..() +/obj/machinery/atmospherics/omni/mixer/New() + ..() if(mapper_set()) var/con = 0 for(var/datum/omni_port/P in ports) diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm index f19fc58fcf..f0c5498fb3 100644 --- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm +++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm @@ -25,8 +25,8 @@ var/list/ports = new() -/obj/machinery/atmospherics/omni/Initialize() - . = ..() +/obj/machinery/atmospherics/omni/New() + ..() icon_state = "base" ports = new() diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index 7e76971377..48085569bc 100755 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -39,8 +39,8 @@ if(frequency) radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) -/obj/machinery/atmospherics/trinary/atmos_filter/Initialize() - . = ..() +/obj/machinery/atmospherics/trinary/atmos_filter/New() + ..() switch(filter_type) if(0) //removing hydrocarbons filtered_out = list("phoron") @@ -56,8 +56,6 @@ air1.volume = ATMOS_DEFAULT_VOLUME_FILTER air2.volume = ATMOS_DEFAULT_VOLUME_FILTER air3.volume = ATMOS_DEFAULT_VOLUME_FILTER - if(frequency) - set_frequency(frequency) /obj/machinery/atmospherics/trinary/atmos_filter/Destroy() unregister_radio(src, frequency) @@ -108,6 +106,11 @@ return 1 +/obj/machinery/atmospherics/trinary/atmos_filter/Initialize() + . = ..() + if(frequency) + set_frequency(frequency) + /obj/machinery/atmospherics/trinary/atmos_filter/attack_hand(user) // -- TLE if(..()) return diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index 87b1eea40c..8cecbc6c65 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -37,8 +37,8 @@ icon_state += "off" update_use_power(USE_POWER_OFF) -/obj/machinery/atmospherics/trinary/mixer/Initialize() - . = ..() +/obj/machinery/atmospherics/trinary/mixer/New() + ..() air1.volume = ATMOS_DEFAULT_VOLUME_MIXER air2.volume = ATMOS_DEFAULT_VOLUME_MIXER air3.volume = ATMOS_DEFAULT_VOLUME_MIXER * 1.5 diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm index 538451bbf6..eaae718b2e 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm @@ -17,8 +17,8 @@ var/datum/pipe_network/network2 var/datum/pipe_network/network3 -/obj/machinery/atmospherics/trinary/Initialize() - . = ..() +/obj/machinery/atmospherics/trinary/New() + ..() air1 = new air2 = new diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index 951426f0bc..b4991c0e5d 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -24,11 +24,9 @@ level = 1 -/obj/machinery/atmospherics/unary/outlet_injector/Initialize() - . = ..() +/obj/machinery/atmospherics/unary/outlet_injector/New() + ..() air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //Give it a small reservoir for injecting. Also allows it to have a higher flow rate limit than vent pumps, to differentiate injectors a bit more. - if(frequency) - set_frequency(frequency) /obj/machinery/atmospherics/unary/outlet_injector/Destroy() unregister_radio(src, frequency) @@ -124,6 +122,11 @@ return 1 +/obj/machinery/atmospherics/unary/outlet_injector/Initialize() + . = ..() + if(frequency) + set_frequency(frequency) + /obj/machinery/atmospherics/unary/outlet_injector/receive_signal(datum/signal/signal) if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) return 0 diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm index a20a860b02..12d6822ad4 100644 --- a/code/ATMOSPHERICS/components/unary/unary_base.dm +++ b/code/ATMOSPHERICS/components/unary/unary_base.dm @@ -13,8 +13,8 @@ var/welded = 0 //defining this here for ventcrawl stuff -/obj/machinery/atmospherics/unary/Initialize() - . = ..() +/obj/machinery/atmospherics/unary/New() + ..() air_contents = new air_contents.volume = 200 diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 3571896156..145381146f 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -83,6 +83,8 @@ . = ..() //soundloop = new(list(src), FALSE) +/obj/machinery/atmospherics/unary/vent_pump/New() + ..() air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP icon = null @@ -110,8 +112,8 @@ icon_connect_type = "-aux" connect_types = CONNECT_TYPE_AUX //connects to aux pipes -/obj/machinery/atmospherics/unary/vent_pump/high_volume/Initialize() - . = ..() +/obj/machinery/atmospherics/unary/vent_pump/high_volume/New() + ..() air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800 // VOREStation Edit Start - Wall mounted vents @@ -135,8 +137,8 @@ power_channel = ENVIRON power_rating = 30000 //15 kW ~ 20 HP -/obj/machinery/atmospherics/unary/vent_pump/engine/Initialize() - . = ..() +/obj/machinery/atmospherics/unary/vent_pump/engine/New() + ..() air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //meant to match air injector /obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0) diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index c50ff795ff..64a57a744e 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -32,8 +32,8 @@ use_power = USE_POWER_IDLE icon_state = "map_scrubber_on" -/obj/machinery/atmospherics/unary/vent_scrubber/Initialize() - . = ..() +/obj/machinery/atmospherics/unary/vent_scrubber/New() + ..() air_contents.volume = ATMOS_DEFAULT_VOLUME_FILTER icon = null diff --git a/code/ATMOSPHERICS/pipes/he_pipes.dm b/code/ATMOSPHERICS/pipes/he_pipes.dm index 0d9e673e68..11f826ae05 100644 --- a/code/ATMOSPHERICS/pipes/he_pipes.dm +++ b/code/ATMOSPHERICS/pipes/he_pipes.dm @@ -23,8 +23,8 @@ buckle_lying = 1 // BubbleWrap -/obj/machinery/atmospherics/pipe/simple/heat_exchanging/Initialize() - . = ..() +/obj/machinery/atmospherics/pipe/simple/heat_exchanging/New() + ..() // BubbleWrap END color = "#404040" //we don't make use of the fancy overlay system for colours, use this to set the default. diff --git a/code/ATMOSPHERICS/pipes/manifold.dm b/code/ATMOSPHERICS/pipes/manifold.dm index 88cb10994e..a02f0e66de 100644 --- a/code/ATMOSPHERICS/pipes/manifold.dm +++ b/code/ATMOSPHERICS/pipes/manifold.dm @@ -19,8 +19,8 @@ level = 1 -/obj/machinery/atmospherics/pipe/manifold/Initialize() - . = ..() +/obj/machinery/atmospherics/pipe/manifold/New() + ..() alpha = 255 icon = null diff --git a/code/ATMOSPHERICS/pipes/manifold4w.dm b/code/ATMOSPHERICS/pipes/manifold4w.dm index 3773ebce73..eac8494a65 100644 --- a/code/ATMOSPHERICS/pipes/manifold4w.dm +++ b/code/ATMOSPHERICS/pipes/manifold4w.dm @@ -20,8 +20,8 @@ level = 1 -/obj/machinery/atmospherics/pipe/manifold4w/Initialize() - . = ..() +/obj/machinery/atmospherics/pipe/manifold4w/New() + ..() alpha = 255 icon = null diff --git a/code/ATMOSPHERICS/pipes/pipe_base.dm b/code/ATMOSPHERICS/pipes/pipe_base.dm index 04b4595421..0d687b8db0 100644 --- a/code/ATMOSPHERICS/pipes/pipe_base.dm +++ b/code/ATMOSPHERICS/pipes/pipe_base.dm @@ -24,10 +24,10 @@ /obj/machinery/atmospherics/pipe/drain_power() return -1 -/obj/machinery/atmospherics/pipe/Initialize() +/obj/machinery/atmospherics/pipe/New() if(istype(get_turf(src), /turf/simulated/wall) || istype(get_turf(src), /turf/simulated/shuttle/wall) || istype(get_turf(src), /turf/unsimulated/wall)) level = 1 - . = ..() + ..() /obj/machinery/atmospherics/pipe/hides_under_flooring() return level != 2 diff --git a/code/ATMOSPHERICS/pipes/simple.dm b/code/ATMOSPHERICS/pipes/simple.dm index 2d81d4d0c0..1f427fb151 100644 --- a/code/ATMOSPHERICS/pipes/simple.dm +++ b/code/ATMOSPHERICS/pipes/simple.dm @@ -26,8 +26,8 @@ level = 1 -/obj/machinery/atmospherics/pipe/simple/Initialize() - . = ..() +/obj/machinery/atmospherics/pipe/simple/New() + ..() // Pipe colors and icon states are handled by an image cache - so color and icon should // be null. For mapping purposes color is defined in the object definitions. diff --git a/code/ATMOSPHERICS/pipes/tank.dm b/code/ATMOSPHERICS/pipes/tank.dm index 89a1d06d6a..6380786288 100644 --- a/code/ATMOSPHERICS/pipes/tank.dm +++ b/code/ATMOSPHERICS/pipes/tank.dm @@ -18,9 +18,9 @@ pipe_flags = PIPING_DEFAULT_LAYER_ONLY density = TRUE -/obj/machinery/atmospherics/pipe/tank/Initialize() +/obj/machinery/atmospherics/pipe/tank/New() icon_state = "air" - . = ..() + ..() /obj/machinery/atmospherics/pipe/tank/init_dir() initialize_directions = dir @@ -74,25 +74,30 @@ name = "Pressure Tank (Air)" icon_state = "air_map" -/obj/machinery/atmospherics/pipe/tank/air/Initialize() +/obj/machinery/atmospherics/pipe/tank/air/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C + air_temporary.adjust_multi("oxygen", (start_pressure*O2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature), \ "nitrogen",(start_pressure*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature)) - . = ..() + + + ..() icon_state = "air" /obj/machinery/atmospherics/pipe/tank/oxygen name = "Pressure Tank (Oxygen)" icon_state = "o2_map" -/obj/machinery/atmospherics/pipe/tank/oxygen/Initialize() +/obj/machinery/atmospherics/pipe/tank/oxygen/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C + air_temporary.adjust_gas("oxygen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature)) - . = ..() + + ..() icon_state = "o2" /obj/machinery/atmospherics/pipe/tank/nitrogen @@ -100,24 +105,28 @@ icon_state = "n2_map" volume = 40000 //Vorestation edit -/obj/machinery/atmospherics/pipe/tank/nitrogen/Initialize() +/obj/machinery/atmospherics/pipe/tank/nitrogen/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C + air_temporary.adjust_gas("nitrogen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature)) - . = ..() + + ..() icon_state = "n2" /obj/machinery/atmospherics/pipe/tank/carbon_dioxide name = "Pressure Tank (Carbon Dioxide)" icon_state = "co2_map" -/obj/machinery/atmospherics/pipe/tank/carbon_dioxide/Initialize() +/obj/machinery/atmospherics/pipe/tank/carbon_dioxide/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C + air_temporary.adjust_gas("carbon_dioxide", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature)) - . = ..() + + ..() icon_state = "co2" /obj/machinery/atmospherics/pipe/tank/phoron @@ -125,22 +134,26 @@ icon_state = "phoron_map" connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_FUEL -/obj/machinery/atmospherics/pipe/tank/phoron/Initialize() +/obj/machinery/atmospherics/pipe/tank/phoron/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T20C + air_temporary.adjust_gas("phoron", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature)) - . = ..() + + ..() icon_state = "phoron" /obj/machinery/atmospherics/pipe/tank/nitrous_oxide name = "Pressure Tank (Nitrous Oxide)" icon_state = "n2o_map" -/obj/machinery/atmospherics/pipe/tank/nitrous_oxide/Initialize() +/obj/machinery/atmospherics/pipe/tank/nitrous_oxide/New() air_temporary = new air_temporary.volume = volume air_temporary.temperature = T0C + air_temporary.adjust_gas("nitrous_oxide", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature)) - . = ..() + + ..() icon_state = "n2o" diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm index cd765f0757..015ffa36a9 100644 --- a/code/ZAS/Fire.dm +++ b/code/ZAS/Fire.dm @@ -179,8 +179,8 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin animate(src, color = fire_color(air_contents.temperature), 5) set_light(l_color = color) -/obj/fire/Initialize(var/ml, fl) - . = ..() +/obj/fire/New(newLoc,fl) + ..() if(!istype(loc, /turf)) qdel(src) diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm index 0c93c81e28..8ed8125dac 100644 --- a/code/__defines/subsystems.dm +++ b/code/__defines/subsystems.dm @@ -19,10 +19,9 @@ #define TIMER_ID_NULL -1 -#define INITIALIZATION_INSSATOMS 0 //New should not call Initialize -#define INITIALIZATION_INSSATOMS_LATE 1 //New should not call Initialize; after the first pass is complete (handled differently) -#define INITIALIZATION_INNEW_MAPLOAD 2 //New should call Initialize(TRUE) -#define INITIALIZATION_INNEW_REGULAR 3 //New should call Initialize(FALSE) +#define INITIALIZATION_INSSATOMS 0 //New should not call Initialize +#define INITIALIZATION_INNEW_MAPLOAD 1 //New should call Initialize(TRUE) +#define INITIALIZATION_INNEW_REGULAR 2 //New should call Initialize(FALSE) #define INITIALIZE_HINT_NORMAL 0 //Nothing happens #define INITIALIZE_HINT_LATELOAD 1 //Call LateInitialize diff --git a/code/_helpers/turfs.dm b/code/_helpers/turfs.dm index 9de7b925ad..ddfcec7421 100644 --- a/code/_helpers/turfs.dm +++ b/code/_helpers/turfs.dm @@ -121,7 +121,7 @@ if(istype(T,/turf/simulated/shuttle)) shuttlework = 1 var/turf/simulated/shuttle/SS = T - if(!SS.landed_holder) SS.landed_holder = new(SS) + if(!SS.landed_holder) SS.landed_holder = new(turf = SS) X = SS.landed_holder.land_on(B) //Generic non-shuttle turf move. diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index f09cb94b0e..84844936c4 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -726,7 +726,7 @@ Turf and target are seperate in case you want to teleport some distance from a t if(istype(T,/turf/simulated/shuttle)) shuttlework = 1 var/turf/simulated/shuttle/SS = T - if(!SS.landed_holder) SS.landed_holder = new(SS) + if(!SS.landed_holder) SS.landed_holder = new(turf = SS) X = SS.landed_holder.land_on(B) //Generic non-shuttle turf move. @@ -1167,13 +1167,15 @@ var/list/WALLITEMS = list( var/color = hex ? hex : "#[num2hex(red, 2)][num2hex(green, 2)][num2hex(blue, 2)]" return "___" - var/mob/dview/dview_mob = new //Version of view() which ignores darkness, because BYOND doesn't have it. /proc/dview(var/range = world.view, var/center, var/invis_flags = 0) if(!center) return + if(!dview_mob) //VOREStation Add: Debugging + dview_mob = new + log_error("Had to recreate the dview mob!") dview_mob.loc = center @@ -1184,10 +1186,10 @@ var/mob/dview/dview_mob = new /mob/dview invisibility = 101 - density = 0 + density = FALSE - anchored = 1 - simulated = 0 + anchored = TRUE + simulated = FALSE see_in_dark = 1e6 @@ -1196,8 +1198,8 @@ var/mob/dview/dview_mob = new color = origin.color set_light(origin.light_range, origin.light_power, origin.light_color) -/mob/dview/Initialize() - . = ..() +/mob/dview/New() + ..() // We don't want to be in any mob lists; we're a dummy not a mob. mob_list -= src if(stat == DEAD) @@ -1205,17 +1207,18 @@ var/mob/dview/dview_mob = new else living_mob_list -= src +/mob/dview/Life() + mob_list -= src + dead_mob_list -= src + living_mob_list -= src + /mob/dview/Destroy(var/force) - crash_with("Attempt to delete the dview_mob: [log_info_line(src)]") + stack_trace("Attempt to delete the dview_mob: [log_info_line(src)]") if (!force) return QDEL_HINT_LETMELIVE global.dview_mob = new return ..() -// call to generate a stack trace and print to runtime logs -/proc/crash_with(msg) - CRASH(msg) - /proc/screen_loc2turf(scr_loc, turf/origin) var/tX = splittext(scr_loc, ",") var/tY = splittext(tX[2], ":") diff --git a/code/_onclick/hud/ability_screen_objects.dm b/code/_onclick/hud/ability_screen_objects.dm index c92da9293d..cb500b4fe3 100644 --- a/code/_onclick/hud/ability_screen_objects.dm +++ b/code/_onclick/hud/ability_screen_objects.dm @@ -12,13 +12,12 @@ var/mob/my_mob = null // The mob that possesses this hud object. -/obj/screen/movable/ability_master/Initialize(ml, owner) - . = ..() +/obj/screen/movable/ability_master/New(owner) if(owner) my_mob = owner update_abilities(0, owner) else - message_admins("ERROR: ability_master's Initialize() was not given an owner argument. This is a bug.") + message_admins("ERROR: ability_master's New() was not given an owner argument. This is a bug.") /obj/screen/movable/ability_master/Destroy() . = ..() @@ -179,10 +178,10 @@ ability_master.toggle_open(1) client.screen -= ability_master -/mob/Initialize() - . = ..() +/mob/New() + ..() if(!ability_master) //VOREStation Edit: S H A D E K I N - ability_master = new /obj/screen/movable/ability_master(null, src) + ability_master = new /obj/screen/movable/ability_master(src) ///////////ACTUAL ABILITIES//////////// //This is what you click to do things// diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index c9c15433d4..8954bf45bc 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -661,9 +661,8 @@ plane = PLANE_PLAYER_HUD_ABOVE var/client/holder -INITIALIZE_IMMEDIATE(/obj/screen/splash) -/obj/screen/splash/Initialize(var/ml, client/C, visible) - . = ..(ml) +/obj/screen/splash/New(client/C, visible) + . = ..() holder = C @@ -731,9 +730,6 @@ INITIALIZE_IMMEDIATE(/obj/screen/splash) var/obj/screen/mapper/extras_holder/extras_holder /obj/screen/movable/mapper_holder/Initialize(mapload, newowner) - - . = ..() - owner = newowner mask_full = new(src) // Full white square mask @@ -821,8 +817,8 @@ INITIALIZE_IMMEDIATE(/obj/screen/splash) mouse_opacity = 0 var/obj/screen/movable/mapper_holder/parent -/obj/screen/mapper/Initialize() - . = ..() +/obj/screen/mapper/New() + ..() parent = loc /obj/screen/mapper/Destroy() diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm index 41c57ecb72..b5fa776f7f 100644 --- a/code/controllers/emergency_shuttle_controller.dm +++ b/code/controllers/emergency_shuttle_controller.dm @@ -251,8 +251,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle = new layer = TURF_LAYER plane = TURF_PLANE -/obj/effect/bgstar/Initialize() - . = ..() +/obj/effect/bgstar/New() + ..() pixel_x += rand(-2,30) pixel_y += rand(-2,30) var/starnum = pick("1", "1", "1", "2", "3", "4") diff --git a/code/controllers/subsystems/atoms.dm b/code/controllers/subsystems/atoms.dm index 335949fa12..a62c5265c5 100644 --- a/code/controllers/subsystems/atoms.dm +++ b/code/controllers/subsystems/atoms.dm @@ -8,54 +8,52 @@ SUBSYSTEM_DEF(atoms) init_order = INIT_ORDER_ATOMS flags = SS_NO_FIRE - // override and GetArguments() exists for mod-override/downstream hook functionality. - // Useful for total-overhaul type modifications. - var/adjust_init_arguments = FALSE - - var/atom_init_stage = INITIALIZATION_INSSATOMS - var/old_init_stage + var/static/initialized = INITIALIZATION_INSSATOMS + // var/list/created_atoms // This is never used, so don't bother. ~Leshana + var/static/old_initialized var/list/late_loaders + var/list/created_atoms + var/list/BadInitializeCalls = list() /datum/controller/subsystem/atoms/Initialize(timeofday) setupgenetics() //to set the mutations' place in structural enzymes, so initializers know where to put mutations. - atom_init_stage = INITIALIZATION_INNEW_MAPLOAD + initialized = INITIALIZATION_INNEW_MAPLOAD + to_world_log("Initializing objects") + admin_notice("Initializing objects", R_DEBUG) InitializeAtoms() return ..() -/datum/controller/subsystem/atoms/proc/InitializeAtoms(var/list/supplied_atoms) - - if(atom_init_stage <= INITIALIZATION_INSSATOMS_LATE) +/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms) + if(initialized == INITIALIZATION_INSSATOMS) return - atom_init_stage = INITIALIZATION_INNEW_MAPLOAD + initialized = INITIALIZATION_INNEW_MAPLOAD LAZYINITLIST(late_loaders) + var/count var/list/mapload_arg = list(TRUE) - var/count = LAZYLEN(supplied_atoms) - if(count) - while(supplied_atoms.len) - var/atom/A = supplied_atoms[supplied_atoms.len] - supplied_atoms.len-- + if(atoms) + created_atoms = list() + count = atoms.len + for(var/atom/A as anything in atoms) if(!A.initialized) - InitAtom(A, GetArguments(A, mapload_arg)) + if(InitAtom(A, mapload_arg)) + atoms -= A CHECK_TICK - else if(!subsystem_initialized) - // If wondering why not just store all atoms in a list and use the block above: that turns out unbearably expensive. - // Instead, atoms without extra arguments in New created on server start are fished out of world directly. - // We do this exactly once. - - for(var/atom/A in world) + else + count = 0 + for(var/atom/A in world) // This must be world, since this operation adds all the atoms to their specific lists. if(!A.initialized) - InitAtom(A, GetArguments(A, mapload_arg, FALSE)) + InitAtom(A, mapload_arg) ++count CHECK_TICK - report_progress("Initialized [count] atom\s") + log_world("Initialized [count] atoms") - atom_init_stage = INITIALIZATION_INNEW_REGULAR + initialized = INITIALIZATION_INNEW_REGULAR if(late_loaders.len) for(var/atom/A as anything in late_loaders) @@ -64,8 +62,12 @@ SUBSYSTEM_DEF(atoms) testing("Late initialized [late_loaders.len] atoms") late_loaders.Cut() + // Nothing ever checks return value of this proc, so don't bother. If this ever changes fix code in /atom/New() ~Leshana + // if(atoms) + // . = created_atoms + atoms + // created_atoms = null + /datum/controller/subsystem/atoms/proc/InitAtom(atom/A, list/arguments) - LAZYREMOVE(global.pre_init_created_atoms, A) var/the_type = A.type if(QDELING(A)) BadInitializeCalls[the_type] |= BAD_INIT_QDEL_BEFORE @@ -84,9 +86,9 @@ SUBSYSTEM_DEF(atoms) switch(result) if(INITIALIZE_HINT_LATELOAD) if(arguments[1]) //mapload - late_loaders[A] = arguments + late_loaders += A else - A.LateInitialize(arglist(arguments)) + A.LateInitialize() if(INITIALIZE_HINT_QDEL) qdel(A) qdeleted = TRUE @@ -100,37 +102,18 @@ SUBSYSTEM_DEF(atoms) return qdeleted || QDELING(A) -// override and GetArguments() exists for mod-override/downstream hook functionality. -// Useful for total-overhaul type modifications. -/atom/proc/AdjustInitializeArguments(list/arguments) - // Lists are passed by reference so can simply modify the arguments list without returning it - -/datum/controller/subsystem/atoms/proc/GetArguments(atom/A, list/mapload_arg, created=TRUE) - if(!created && !adjust_init_arguments) - return mapload_arg // Performance optimization. Nothing to do. - var/list/arguments = mapload_arg.Copy() - var/extra_args = LAZYACCESS(global.pre_init_created_atoms, A) - if(created && extra_args) - arguments += extra_args - if(adjust_init_arguments) - A.AdjustInitializeArguments(arguments) - return arguments - -/datum/controller/subsystem/atoms/stat_entry(msg) - ..("Bad Initialize Calls:[BadInitializeCalls.len]") - /datum/controller/subsystem/atoms/proc/map_loader_begin() - old_init_stage = atom_init_stage - atom_init_stage = INITIALIZATION_INSSATOMS_LATE + old_initialized = initialized + initialized = INITIALIZATION_INSSATOMS /datum/controller/subsystem/atoms/proc/map_loader_stop() - atom_init_stage = old_init_stage + initialized = old_initialized /datum/controller/subsystem/atoms/Recover() - atom_init_stage = SSatoms.atom_init_stage - if(atom_init_stage == INITIALIZATION_INNEW_MAPLOAD) + initialized = SSatoms.initialized + if(initialized == INITIALIZATION_INNEW_MAPLOAD) InitializeAtoms() - old_init_stage = SSatoms.old_init_stage + old_initialized = SSatoms.old_initialized BadInitializeCalls = SSatoms.BadInitializeCalls /datum/controller/subsystem/atoms/proc/InitLog() diff --git a/code/controllers/subsystems/open_space.dm b/code/controllers/subsystems/open_space.dm deleted file mode 100644 index 735a221f56..0000000000 --- a/code/controllers/subsystems/open_space.dm +++ /dev/null @@ -1,96 +0,0 @@ -// -// Controller handling icon updates of open space turfs -// - -GLOBAL_VAR_INIT(open_space_initialised, FALSE) - -SUBSYSTEM_DEF(open_space) - name = "Open Space" - wait = 2 // 5 times per second. - init_order = INIT_ORDER_OPENSPACE - var/list/turfs_to_process = list() // List of turfs queued for update. - var/list/turfs_to_process_old = null // List of turfs currently being updated. - var/counter = 1 // Can't use .len because we need to iterate in order - var/static/image/over_OS_darkness // Image overlayed over the bottom turf with stuff in it. - -/datum/controller/subsystem/open_space/Initialize(timeofday) - over_OS_darkness = image('icons/turf/open_space.dmi', "black_open") - over_OS_darkness.plane = OVER_OPENSPACE_PLANE - over_OS_darkness.layer = MOB_LAYER - initialize_open_space() - // Pre-process open space turfs once before the round starts. - fire(FALSE, TRUE) - return ..() - -/datum/controller/subsystem/open_space/Recover() - flags |= SS_NO_INIT // Make extra sure we don't initialize twice. - . = ..() - -/datum/controller/subsystem/open_space/fire(resumed = 0, init_tick_checks = FALSE) - // We use a different list so any additions to the update lists during a delay from MC_TICK_CHECK - // don't cause things to be cut from the list without being updated. - - //If we're not resuming, this must mean it's a new iteration so we have to grab the turfs - if (!resumed) - src.counter = 1 - src.turfs_to_process_old = turfs_to_process - turfs_to_process = list() - - //cache for sanic speed (lists are references anyways) - var/list/turfs_to_process_old = src.turfs_to_process_old - var/counter = src.counter - while(counter <= turfs_to_process_old.len) - var/turf/T = turfs_to_process_old[counter] - counter += 1 - if(!QDELETED(T)) - update_turf(T) - if (init_tick_checks) - CHECK_TICK // Used during initialization processing - else if (MC_TICK_CHECK) - src.counter = counter // Save for when we're resumed - return // Used during normal MC processing. - -/datum/controller/subsystem/open_space/proc/update_turf(var/turf/T) - for(var/atom/movable/A in T) - A.fall() - T.update_icon() - -/datum/controller/subsystem/open_space/proc/add_turf(var/turf/T, var/recursive = 0) - ASSERT(isturf(T)) - // Check for multiple additions - // Pointless to process the same turf twice. But we need to push it to the end of the list - // because any turfs below it need to process first. - turfs_to_process -= T - turfs_to_process += T - if(recursive > 0) - var/turf/above = GetAbove(T) - if(above && isopenspace(above)) - add_turf(above, recursive) - -// Queue the initial updates of open space turfs when the game starts. This will lag! -/datum/controller/subsystem/open_space/proc/initialize_open_space() - // Do initial setup from bottom to top. - for(var/zlevel = 1 to world.maxz) - for(var/turf/simulated/open/T in block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel))) - add_turf(T) - CHECK_TICK - GLOB.open_space_initialised = TRUE - -/datum/controller/subsystem/open_space/stat_entry(msg_prefix) - return ..("T [turfs_to_process.len]") - -/obj/update_icon() - . = ..() - if(GLOB.open_space_initialised && !invisibility && isturf(loc)) - var/turf/T = GetAbove(src) - if(isopenspace(T)) - // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src].update_icon()") - SSopen_space.add_turf(T, 1) - -// We probably should hook Destroy() If we can think of something more efficient, lets hear it. -/obj/Destroy() - if(GLOB.open_space_initialised && !invisibility && isturf(loc)) - var/turf/T = GetAbove(src) - if(isopenspace(T)) - SSopen_space.add_turf(T, 1) - . = ..() // Important that this be at the bottom, or we will have been moved to nullspace. diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index ad20bbb889..4c6c5e4426 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -416,7 +416,7 @@ var/global/datum/controller/subsystem/ticker/ticker if(new_char) qdel(player) if(new_char.client) - var/obj/screen/splash/S = new(null, new_char.client, TRUE) + var/obj/screen/splash/S = new(new_char.client, TRUE) S.Fade(TRUE) // If they're a carbon, they can get manifested diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm index 9ba4923aa0..da3e8e1baf 100644 --- a/code/controllers/verbs.dm +++ b/code/controllers/verbs.dm @@ -7,9 +7,8 @@ blocks_emissive = FALSE var/target -INITIALIZE_IMMEDIATE(/obj/effect/statclick) -/obj/effect/statclick/Initialize(ml, text, target) - . = ..(ml) +/obj/effect/statclick/New(loc, text, target) //Don't port this to Initialize it's too critical + ..() name = text src.target = target diff --git a/code/datums/ghost_query.dm b/code/datums/ghost_query.dm index 83015e6be1..6a342f5820 100644 --- a/code/datums/ghost_query.dm +++ b/code/datums/ghost_query.dm @@ -20,10 +20,10 @@ // Then wait awhile. while(!finished) - spawn(1 SECOND) - wait_time -= 1 SECOND - if(wait_time <= 0) - finished = TRUE + sleep(1 SECOND) + wait_time -= 1 SECOND + if(wait_time <= 0) + finished = TRUE // Prune the list after the wait, incase any candidates logged out. for(var/mob/observer/dead/D as anything in candidates) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 6721ca7027..efb84bbc85 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -47,9 +47,9 @@ /obj/item/weapon/soap/deluxe icon_state = "soapdeluxe" -/obj/item/weapon/soap/deluxe/Initialize() +/obj/item/weapon/soap/deluxe/New() desc = "A deluxe Waffle Co. brand bar of soap. Smells of [pick("lavender", "vanilla", "strawberry", "chocolate" ,"space")]." - . = ..() + ..() /obj/item/weapon/soap/syndie desc = "An untrustworthy bar of soap. Smells of fear." @@ -406,10 +406,10 @@ drop_sound = 'sound/items/drop/component.ogg' pickup_sound = 'sound/items/pickup/component.ogg' -/obj/item/weapon/stock_parts/Initialize() +/obj/item/weapon/stock_parts/New() src.pixel_x = rand(-5.0, 5) src.pixel_y = rand(-5.0, 5) - . = ..() + ..() /obj/item/weapon/stock_parts/get_rating() return rating @@ -434,7 +434,7 @@ var/charge = 0 var/max_charge = 1000 -/obj/item/weapon/stock_parts/capacitor/Initialize() +/obj/item/weapon/stock_parts/capacitor/New() . = ..() max_charge *= rating diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 0dc346ca81..b24169b821 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -1833,6 +1833,24 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "Tactical" ambience = AMBIENCE_HIGHSEC + +/* + New() + ..() + + spawn(10) //let objects set up first + for(var/turf/turfToGrayscale in src) + if(turfToGrayscale.icon) + var/icon/newIcon = icon(turfToGrayscale.icon) + newIcon.GrayScale() + turfToGrayscale.icon = newIcon + for(var/obj/objectToGrayscale in turfToGrayscale) //1 level deep, means tables, apcs, locker, etc, but not locker contents + if(objectToGrayscale.icon) + var/icon/newIcon = icon(objectToGrayscale.icon) + newIcon.GrayScale() + objectToGrayscale.icon = newIcon +*/ + /area/security/nuke_storage name = "\improper Vault" icon_state = "nuke_storage" diff --git a/code/game/area/ai_monitored.dm b/code/game/area/ai_monitored.dm index fc218150d5..84f2c8eb4e 100644 --- a/code/game/area/ai_monitored.dm +++ b/code/game/area/ai_monitored.dm @@ -2,12 +2,17 @@ name = "AI Monitored Area" var/obj/machinery/camera/motioncamera = null -/area/ai_monitored/LateInitialize() - . = ..() - for(var/obj/machinery/camera/M in src) - if(M.isMotion()) - motioncamera = M - M.area_motion = src + +/area/ai_monitored/New() + ..() + // locate and store the motioncamera + spawn (20) // spawn on a delay to let turfs/objs load + for (var/obj/machinery/camera/M in src) + if(M.isMotion()) + motioncamera = M + M.area_motion = src + return + return /area/ai_monitored/Entered(atom/movable/O) ..() @@ -17,3 +22,5 @@ /area/ai_monitored/Exited(atom/movable/O) if (ismob(O) && motioncamera) motioncamera.lostTarget(O) + + diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 579678bd45..d0cdeb0187 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -19,7 +19,7 @@ var/debug = 0 var/requires_power = 1 - var/always_unpowered = 0 //this gets overriden to 1 for space in area/Initialize() + var/always_unpowered = 0 //this gets overriden to 1 for space in area/New() // Power channel status - Is it currently energized? var/power_equip = TRUE @@ -55,13 +55,10 @@ var/no_spoilers = FALSE // If true, makes it much more difficult to see what is inside an area with things like mesons. var/soundproofed = FALSE // If true, blocks sounds from other areas and prevents hearers on other areas from hearing the sounds within. -/area/New() - icon_state = "" - luminosity = !dynamic_lighting - ..() - /area/Initialize() . = ..() + luminosity = !(dynamic_lighting) + icon_state = "" return INITIALIZE_HINT_LATELOAD // Areas tradiationally are initialized AFTER other atoms. /area/LateInitialize() @@ -73,10 +70,6 @@ if(no_spoilers) set_spoiler_obfuscation(TRUE) - icon = 'icons/turf/areas.dmi' - icon_state = "white" - blend_mode = BLEND_MULTIPLY - // Changes the area of T to A. Do not do this manually. // Area is expected to be a non-null instance. /proc/ChangeArea(var/turf/T, var/area/A) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e61dd0e956..0234ec9371 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -50,22 +50,27 @@ /// The chat color var, without alpha. var/chat_color_hover -var/global/list/pre_init_created_atoms // atom creation ordering means some stuff is trying to init before SSatoms exists, temp workaround /atom/New(loc, ...) - //atom creation method that preloads variables at creation + // Don't call ..() unless /datum/New() ever exists + + // During dynamic mapload (reader.dm) this assigns the var overrides from the .dmm file + // Native BYOND maploading sets those vars before invoking New(), by doing this FIRST we come as close to that behavior as we can. if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New() GLOB._preloader.load(src) - var/do_initialize = SSatoms?.atom_init_stage - if(do_initialize > INITIALIZATION_INSSATOMS_LATE) - args[1] = do_initialize == INITIALIZATION_INNEW_MAPLOAD - SSatoms.InitAtom(src, args) - else - var/list/argument_list - if(length(args) > 1) - argument_list = args.Copy(2) - if(length(argument_list)) - LAZYSET(global.pre_init_created_atoms, src, argument_list) + // Pass our arguments to InitAtom so they can be passed to initialize(), but replace 1st with if-we're-during-mapload. + var/do_initialize = SSatoms.initialized + if(do_initialize > INITIALIZATION_INSSATOMS) + args[1] = (do_initialize == INITIALIZATION_INNEW_MAPLOAD) + if(SSatoms.InitAtom(src, args)) + // We were deleted. No sense continuing + return + + // Uncomment if anything ever uses the return value of SSatoms.InitializeAtoms ~Leshana + // If a map is being loaded, it might want to know about newly created objects so they can be handled. + // var/list/created = SSatoms.created_atoms + // if(created) + // created += src // Note: I removed "auto_init" feature (letting types disable auto-init) since it shouldn't be needed anymore. // You can replicate the same by checking the value of the first parameter to initialize() ~Leshana @@ -77,8 +82,6 @@ var/global/list/pre_init_created_atoms // atom creation ordering means some stuf // Other parameters are passed from New (excluding loc), this does not happen if mapload is TRUE // Must return an Initialize hint. Defined in code/__defines/subsystems.dm /atom/proc/Initialize(mapload, ...) - SHOULD_CALL_PARENT(TRUE) - SHOULD_NOT_SLEEP(TRUE) if(QDELETED(src)) stack_trace("GC: -- [type] had initialize() called after qdel() --") if(initialized) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 6865bc5ffb..ef50823c48 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -427,102 +427,34 @@ continue src.throw_impact(A,speed) -/atom/movable/proc/throw_at(atom/target, range, speed, thrower) - set waitfor = FALSE - if(!target || !src) - return 0 - if(target.z != src.z) - return 0 - //use a modified version of Bresenham's algorithm to get from the atom's current position to that of the target - src.throwing = 1 - src.thrower = thrower - src.throw_source = get_turf(src) //store the origin turf - src.pixel_z = 0 - if(usr) - if(HULK in usr.mutations) - src.throwing = 2 // really strong throw! +/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, datum/callback/callback) //If this returns FALSE then callback will not be called. + . = TRUE + if (!target || speed <= 0 || QDELETED(src) || (target.z != src.z)) + return FALSE - var/dist_travelled = 0 - var/dist_since_sleep = 0 - var/area/a = get_area(src.loc) + if (pulledby) + pulledby.stop_pulling() - var/dist_x = abs(target.x - src.x) - var/dist_y = abs(target.y - src.y) + var/datum/thrownthing/TT = new(src, target, range, speed, thrower, callback) + throwing = TT - var/dx - if (target.x > src.x) - dx = EAST - else - dx = WEST + pixel_z = 0 + if(spin && does_spin) + SpinAnimation(4,1) - var/dy - if (target.y > src.y) - dy = NORTH - else - dy = SOUTH - - var/error - var/major_dir - var/major_dist - var/minor_dir - var/minor_dist - if(dist_x > dist_y) - error = dist_x/2 - dist_y - major_dir = dx - major_dist = dist_x - minor_dir = dy - minor_dist = dist_y - else - error = dist_y/2 - dist_x - major_dir = dy - major_dist = dist_y - minor_dir = dx - minor_dist = dist_x - - range = min(dist_x + dist_y, range) - - while(src && target && src.throwing && istype(src.loc, /turf) \ - && ((abs(target.x - src.x)+abs(target.y - src.y) > 0 && dist_travelled < range) \ - || (a && a.has_gravity == 0) \ - || istype(src.loc, /turf/space))) - // only stop when we've gone the whole distance (or max throw range) and are on a non-space tile, or hit something, or hit the end of the map, or someone picks it up - var/atom/step - if(error >= 0) - step = get_step(src, major_dir) - error -= minor_dist - else - step = get_step(src, minor_dir) - error += major_dist - if(!step) // going off the edge of the map makes get_step return null, don't let things go off the edge - break - src.Move(step) - hit_check(speed) - dist_travelled++ - dist_since_sleep++ - if(dist_since_sleep >= speed) - dist_since_sleep = 0 - sleep(1) - a = get_area(src.loc) - // and yet it moves - if(src.does_spin) - src.SpinAnimation(speed = 4, loops = 1) - - //done throwing, either because it hit something or it finished moving - if(isobj(src)) src.throw_impact(get_turf(src),speed) - src.throwing = 0 - src.thrower = null - src.throw_source = null - fall() + SSthrowing.processing[src] = TT + if (SSthrowing.state == SS_PAUSED && length(SSthrowing.currentrun)) + SSthrowing.currentrun[src] = TT //Overlays /atom/movable/overlay var/atom/master = null anchored = TRUE -/atom/movable/overlay/Initialize() +/atom/movable/overlay/New() for(var/x in src.verbs) src.verbs -= x - . = ..() + ..() /atom/movable/overlay/attackby(a, b) if (src.master) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index c960fc4772..431b4e06f3 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -88,7 +88,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E verbs.Add(P.verbpath) if(P.make_hud_button) if(!src.ability_master) - src.ability_master = new /obj/screen/movable/ability_master(null, src) + src.ability_master = new /obj/screen/movable/ability_master(src) src.ability_master.add_ling_ability( object_given = src, verb_given = P.verbpath, diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm index e95148d80b..5563d4f01b 100644 --- a/code/game/gamemodes/changeling/modularchangling.dm +++ b/code/game/gamemodes/changeling/modularchangling.dm @@ -344,7 +344,7 @@ var/list/datum/power/changeling/powerinstances = list() if(Thepower.make_hud_button && Thepower.isVerb) if(!M.current.ability_master) - M.current.ability_master = new /obj/screen/movable/ability_master(null, M.current) + M.current.ability_master = new /obj/screen/movable/ability_master(M.current) M.current.ability_master.add_ling_ability( object_given = M.current, verb_given = Thepower.verbpath, diff --git a/code/game/gamemodes/changeling/powers/armblade.dm b/code/game/gamemodes/changeling/powers/armblade.dm index 6751821695..ffdc9b4ae3 100644 --- a/code/game/gamemodes/changeling/powers/armblade.dm +++ b/code/game/gamemodes/changeling/powers/armblade.dm @@ -65,8 +65,8 @@ defend_chance = 40 // The base chance for the weapon to parry. projectile_parry_chance = 15 // The base chance for a projectile to be deflected. -/obj/item/weapon/melee/changeling/Initialize() - . = ..() +/obj/item/weapon/melee/changeling/New(location) + ..() START_PROCESSING(SSobj, src) if(ismob(loc)) visible_message("A grotesque weapon forms around [loc.name]\'s arm!", diff --git a/code/game/gamemodes/changeling/powers/armor.dm b/code/game/gamemodes/changeling/powers/armor.dm index 390c10eea5..5a6db52833 100644 --- a/code/game/gamemodes/changeling/powers/armor.dm +++ b/code/game/gamemodes/changeling/powers/armor.dm @@ -41,8 +41,8 @@ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) //No armor at all. canremove = FALSE -/obj/item/clothing/suit/space/changeling/Initialize() - . = ..() +/obj/item/clothing/suit/space/changeling/New() + ..() if(ismob(loc)) loc.visible_message("[loc.name]\'s flesh rapidly inflates, forming a bloated mass around their body!", "We inflate our flesh, creating a spaceproof suit!", @@ -105,8 +105,8 @@ max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE slowdown = 1.5 -/obj/item/clothing/suit/space/changeling/armored/Initialize() - . = ..() +/obj/item/clothing/suit/space/changeling/armored/New() + ..() if(ismob(loc)) loc.visible_message("[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!", "We harden our flesh, creating a suit of armor!", diff --git a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm index d35a2f2161..ca92d67ff7 100644 --- a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm +++ b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm @@ -113,8 +113,7 @@ agony_amount = 80 electrocute_amount = 20 -/obj/item/weapon/electric_hand/Initialize() - . = ..() +/obj/item/weapon/electric_hand/New() if(ismob(loc)) visible_message("Electrical arcs form around [loc.name]\'s hand!", "We store a charge of electricity in our hand.", diff --git a/code/game/gamemodes/changeling/powers/electric_lockpick.dm b/code/game/gamemodes/changeling/powers/electric_lockpick.dm index 40ba101f4e..262d90429f 100644 --- a/code/game/gamemodes/changeling/powers/electric_lockpick.dm +++ b/code/game/gamemodes/changeling/powers/electric_lockpick.dm @@ -32,8 +32,7 @@ icon_state = "electric_hand" show_examine = FALSE -/obj/item/weapon/finger_lockpick/Initialize() - . = ..() +/obj/item/weapon/finger_lockpick/New() if(ismob(loc)) to_chat(loc, "We shape our finger to fit inside electronics, and are ready to force them open.") diff --git a/code/game/gamemodes/changeling/powers/fabricate_clothing.dm b/code/game/gamemodes/changeling/powers/fabricate_clothing.dm index 91b58f42a2..c3c5f2aa15 100644 --- a/code/game/gamemodes/changeling/powers/fabricate_clothing.dm +++ b/code/game/gamemodes/changeling/powers/fabricate_clothing.dm @@ -264,10 +264,12 @@ var/global/list/changeling_fabricated_clothing = list( access = null canremove = FALSE +/obj/item/weapon/card/id/syndicate/changeling/New(mob/user as mob) + ..() + registered_user = user + /obj/item/weapon/card/id/syndicate/changeling/Initialize() . = ..() - if(ismob(loc)) - registered_user = loc access = null /obj/item/weapon/card/id/syndicate/changeling/verb/shred() diff --git a/code/game/gamemodes/cult/construct_spells.dm b/code/game/gamemodes/cult/construct_spells.dm index 57de2b4976..62cdd5bf48 100644 --- a/code/game/gamemodes/cult/construct_spells.dm +++ b/code/game/gamemodes/cult/construct_spells.dm @@ -439,9 +439,16 @@ toggled = 0 // Mainly used for overlays. cooldown = 0 // If set, will add a cooldown overlay and adjust click delay. Must be a multiple of 5 for overlays. cast_sound = null // Sound file played when this is used. - needs_core = FALSE // Does not need a core. var/last_castcheck = null // The last time this spell was cast. +/obj/item/weapon/spell/construct/New() + //..() //This kills the spell, because super on this calls the default spell's New, which checks for a core. Can't have that. + if(isliving(loc)) + owner = loc + if(!owner) + qdel(src) + update_icon() + /obj/item/weapon/spell/construct/adjust_instability(var/amount) //The only drawback to the boons of the geometer is the use of a mortal's blood as fuel. Constructs have already paid that price long ago. return diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index f8a12c3e3b..3740010914 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -154,7 +154,6 @@ return /obj/effect/gateway/active/Initialize() - . = ..() addtimer(CALLBACK(src, .proc/spawn_and_qdel), rand(30, 60) SECONDS) /obj/effect/gateway/active/proc/spawn_and_qdel() diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm index d706703192..9c3504924f 100644 --- a/code/game/gamemodes/cult/narsie.dm +++ b/code/game/gamemodes/cult/narsie.dm @@ -16,8 +16,8 @@ var/global/list/narsie_list = list() consume_range = 3 //How many tiles out do we eat -/obj/singularity/narsie/Initialize() - . = ..() +/obj/singularity/narsie/New() + ..() narsie_list.Add(src) /obj/singularity/narsie/Destroy() @@ -40,8 +40,8 @@ var/global/list/narsie_list = list() var/announce=1 var/cause_hell = 1 -/obj/singularity/narsie/large/Initialize() - . = ..() +/obj/singularity/narsie/large/New() + ..() if(announce) to_world("[uppertext(name)] HAS RISEN") world << sound('sound/effects/weather/wind/wind_5_1.ogg') @@ -358,7 +358,6 @@ var/global/list/narsie_list = list() consume(T) /obj/singularity/narsie/proc/narsie_spawn_animation() - set waitfor = FALSE icon = 'icons/obj/narsie_spawn_anim.dmi' dir = SOUTH move_self = 0 diff --git a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm index 8016ed42f2..a74867d990 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm @@ -14,9 +14,8 @@ consume_range = 6 - -/obj/singularity/narsie/large/exit/Initialize() - . = ..() +/obj/singularity/narsie/large/exit/New() + ..() START_PROCESSING(SSobj, src) /obj/singularity/narsie/large/exit/update_icon() diff --git a/code/game/gamemodes/events/black_hole.dm b/code/game/gamemodes/events/black_hole.dm index 2e62b4cf11..b18310ed88 100644 --- a/code/game/gamemodes/events/black_hole.dm +++ b/code/game/gamemodes/events/black_hole.dm @@ -8,9 +8,9 @@ density = FALSE anchored = TRUE -/obj/effect/bhole/Initialize() - . = ..() - addtimer(CALLBACK(src, .proc/controller), 4) +/obj/effect/bhole/New() + spawn(4) + controller() /obj/effect/bhole/proc/controller() while(src) diff --git a/code/game/gamemodes/events/holidays/Christmas.dm b/code/game/gamemodes/events/holidays/Christmas.dm index 65d23e8f5f..e0991edaa2 100644 --- a/code/game/gamemodes/events/holidays/Christmas.dm +++ b/code/game/gamemodes/events/holidays/Christmas.dm @@ -23,6 +23,9 @@ desc = "Directions for use: Requires two people, one to pull each end." var/cracked = 0 +/obj/item/weapon/toy/xmas_cracker/New() + ..() + /obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user) if( !cracked && (istype(target,/mob/living/silicon) || (istype(target,/mob/living/carbon/human) && !target.get_active_hand())) && target.stat == CONSCIOUS) target.visible_message("[user] and [target] pop \an [src]! *pop*", "You pull \an [src] with [target]! *pop*", "You hear a *pop*.") diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 24e411a707..950910fe5f 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -130,7 +130,6 @@ . = ..() z_original = z GLOB.meteor_list += src - SpinAnimation() /obj/effect/meteor/Move() if(z != z_original || loc == dest) @@ -152,6 +151,10 @@ GLOB.meteor_list -= src return ..() +/obj/effect/meteor/New() + ..() + SpinAnimation() + /obj/effect/meteor/Bump(atom/A) if(attempt_vr(src,"Bump_vr",list(A))) return //VOREStation Edit - allows meteors to be deflected by baseball bats if(A) diff --git a/code/game/gamemodes/technomancer/catalog.dm b/code/game/gamemodes/technomancer/catalog.dm index bcf80cee4b..5dd0d64310 100644 --- a/code/game/gamemodes/technomancer/catalog.dm +++ b/code/game/gamemodes/technomancer/catalog.dm @@ -73,8 +73,8 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance // Proc: New() // Parameters: 0 // Description: Sets up the catalog, as shown below. -/obj/item/weapon/technomancer_catalog/Initialize() - . = ..() +/obj/item/weapon/technomancer_catalog/New() + ..() set_up() // Proc: set_up() diff --git a/code/game/gamemodes/technomancer/core_obj.dm b/code/game/gamemodes/technomancer/core_obj.dm index 5e44b3b6da..0bdf378582 100644 --- a/code/game/gamemodes/technomancer/core_obj.dm +++ b/code/game/gamemodes/technomancer/core_obj.dm @@ -37,8 +37,8 @@ var/max_summons = 10 // Maximum allowed summoned entities. Some cores will have different caps. var/universal = FALSE // Allows non-technomancers to use the core - VOREStation Add -/obj/item/weapon/technomancer_core/Initialize() - . = ..() +/obj/item/weapon/technomancer_core/New() + ..() START_PROCESSING(SSobj, src) /obj/item/weapon/technomancer_core/Destroy() @@ -142,10 +142,9 @@ var/obj/item/weapon/technomancer_core/core = null var/ability_icon_state = null -/obj/spellbutton/Initialize(var/ml, var/path, var/new_name, var/new_icon_state) - . = ..() +/obj/spellbutton/New(loc, var/path, var/new_name, var/new_icon_state) if(!path || !ispath(path)) - message_admins("ERROR: /obj/spellbutton/Initialize() was not given a proper path!") + message_admins("ERROR: /obj/spellbutton/New() was not given a proper path!") qdel(src) src.name = new_name src.spellpath = path diff --git a/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm b/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm index 26dda90524..9d78afe0b2 100644 --- a/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm +++ b/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm @@ -36,9 +36,9 @@ wearer.custom_pain("Your hands hurt like hell!",1) wearer = null -/obj/item/clothing/gloves/regen/Initialize() +/obj/item/clothing/gloves/regen/New() START_PROCESSING(SSobj, src) - . = ..() + ..() /obj/item/clothing/gloves/regen/Destroy() wearer = null diff --git a/code/game/gamemodes/technomancer/devices/shield_armor.dm b/code/game/gamemodes/technomancer/devices/shield_armor.dm index eb11f761c7..eec695278f 100644 --- a/code/game/gamemodes/technomancer/devices/shield_armor.dm +++ b/code/game/gamemodes/technomancer/devices/shield_armor.dm @@ -24,8 +24,8 @@ var/datum/effect/effect/system/spark_spread/spark_system = null var/block_percentage = 75 -/obj/item/clothing/suit/armor/shield/Initialize() - . = ..() +/obj/item/clothing/suit/armor/shield/New() + ..() spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src) diff --git a/code/game/gamemodes/technomancer/equipment.dm b/code/game/gamemodes/technomancer/equipment.dm index aca1ec01af..940e31f3cd 100644 --- a/code/game/gamemodes/technomancer/equipment.dm +++ b/code/game/gamemodes/technomancer/equipment.dm @@ -108,7 +108,7 @@ name = "hypo belt" desc = "A medical belt designed to carry autoinjectors and other medical equipment." -/obj/item/weapon/storage/belt/medical/technomancer/Initialize() +/obj/item/weapon/storage/belt/medical/technomancer/New() new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute(src) new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn(src) new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/toxin(src) @@ -117,7 +117,7 @@ new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain(src) new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ(src) new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat(src) - . = ..() + ..() /datum/technomancer/equipment/belt_of_holding name = "Belt of Holding" diff --git a/code/game/gamemodes/technomancer/spell_objs.dm b/code/game/gamemodes/technomancer/spell_objs.dm index 339ec59c23..f8833d13b2 100644 --- a/code/game/gamemodes/technomancer/spell_objs.dm +++ b/code/game/gamemodes/technomancer/spell_objs.dm @@ -18,7 +18,6 @@ var/toggled = 0 // Mainly used for overlays. var/cooldown = 0 // If set, will add a cooldown overlay and adjust click delay. Must be a multiple of 5 for overlays. var/cast_sound = null // Sound file played when this is used. - var/needs_core = TRUE // Does this spell need a core to be usable? // Proc: on_use_cast() // Parameters: 1 (user - the technomancer casting the spell) @@ -111,18 +110,18 @@ // Proc: New() // Parameters: 0 // Description: Sets owner to equal its loc, links to the owner's core, then applies overlays if needed. -/obj/item/weapon/spell/Initialize() - . = ..() +/obj/item/weapon/spell/New() + ..() if(isliving(loc)) owner = loc if(owner) core = owner.get_technomancer_core() - if(!core && needs_core) + if(!core) to_chat(owner, "You need a Core to do that.") - return INITIALIZE_HINT_QDEL - else - return INITIALIZE_HINT_QDEL - + qdel(src) + return +// if(istype(/obj/item/weapon/technomancer_core, owner.back)) +// core = owner.back update_icon() // Proc: Destroy() diff --git a/code/game/gamemodes/technomancer/spells/aspect_aura.dm b/code/game/gamemodes/technomancer/spells/aspect_aura.dm index ec5c248639..eec4304d71 100644 --- a/code/game/gamemodes/technomancer/spells/aspect_aura.dm +++ b/code/game/gamemodes/technomancer/spells/aspect_aura.dm @@ -41,8 +41,8 @@ aspect = ASPECT_CHROMATIC var/glow_color = "#FFFFFF" -/obj/item/weapon/spell/aura/Initialize() - . = ..() +/obj/item/weapon/spell/aura/New() + ..() set_light(7, 4, l_color = glow_color) START_PROCESSING(SSobj, src) diff --git a/code/game/gamemodes/technomancer/spells/aura/aura.dm b/code/game/gamemodes/technomancer/spells/aura/aura.dm index 9bdffceac1..be986bb7ee 100644 --- a/code/game/gamemodes/technomancer/spells/aura/aura.dm +++ b/code/game/gamemodes/technomancer/spells/aura/aura.dm @@ -6,8 +6,8 @@ aspect = null var/glow_color = "#FFFFFF" -/obj/item/weapon/spell/aura/Initialize() - . = ..() +/obj/item/weapon/spell/aura/New() + ..() set_light(calculate_spell_power(7), calculate_spell_power(4), l_color = glow_color) START_PROCESSING(SSobj, src) log_and_message_admins("has started casting [src].") diff --git a/code/game/gamemodes/technomancer/spells/chroma.dm b/code/game/gamemodes/technomancer/spells/chroma.dm index dff834f668..b87a82a0ae 100644 --- a/code/game/gamemodes/technomancer/spells/chroma.dm +++ b/code/game/gamemodes/technomancer/spells/chroma.dm @@ -14,8 +14,8 @@ aspect = ASPECT_LIGHT var/color_to_use = "#FFFFFF" -/obj/item/weapon/spell/chroma/Initialize() - . = ..() +/obj/item/weapon/spell/chroma/New() + ..() set_light(6, 5, l_color = color_to_use) /obj/effect/temporary_effect/chroma diff --git a/code/game/gamemodes/technomancer/spells/energy_siphon.dm b/code/game/gamemodes/technomancer/spells/energy_siphon.dm index 16b82068fd..1659b8f17b 100644 --- a/code/game/gamemodes/technomancer/spells/energy_siphon.dm +++ b/code/game/gamemodes/technomancer/spells/energy_siphon.dm @@ -20,8 +20,8 @@ var/list/things_to_siphon = list() //Things which are actually drained as a result of the above not being null. var/flow_rate = 1000 // Limits how much electricity can be drained per second. Measured by default in god knows what. -/obj/item/weapon/spell/energy_siphon/Initialize() - . = ..() +/obj/item/weapon/spell/energy_siphon/New() + ..() START_PROCESSING(SSobj, src) /obj/item/weapon/spell/energy_siphon/Destroy() diff --git a/code/game/gamemodes/technomancer/spells/flame_tongue.dm b/code/game/gamemodes/technomancer/spells/flame_tongue.dm index a0471fe4ad..9a52c5d82f 100644 --- a/code/game/gamemodes/technomancer/spells/flame_tongue.dm +++ b/code/game/gamemodes/technomancer/spells/flame_tongue.dm @@ -14,8 +14,8 @@ aspect = ASPECT_FIRE var/obj/item/weapon/weldingtool/spell/welder = null -/obj/item/weapon/spell/flame_tongue/Initialize() - . = ..() +/obj/item/weapon/spell/flame_tongue/New() + ..() set_light(3, 2, l_color = "#FF6A00") visible_message("\The [loc]'s hand begins to emit a flame.") welder = new /obj/item/weapon/weldingtool/spell(src) diff --git a/code/game/gamemodes/technomancer/spells/insert/insert.dm b/code/game/gamemodes/technomancer/spells/insert/insert.dm index 0d537b35a9..9ac0295e2b 100644 --- a/code/game/gamemodes/technomancer/spells/insert/insert.dm +++ b/code/game/gamemodes/technomancer/spells/insert/insert.dm @@ -11,8 +11,8 @@ var/obj/item/weapon/inserted_spell/inserting = null var/allow_stacking = 0 -/obj/item/weapon/spell/insert/Initialize() - . = ..() +/obj/item/weapon/spell/insert/New() + ..() set_light(spell_light_range, spell_light_intensity, l_color = light_color) /obj/item/weapon/inserted_spell @@ -20,9 +20,9 @@ var/mob/living/host = null var/spell_power_at_creation = 1.0 // This is here because the spell object that made this object probably won't exist. -/obj/item/weapon/inserted_spell/Initialize(var/ml, var/user, var/obj/item/weapon/spell/insert/inserter) - . = ..() - host = loc +/obj/item/weapon/inserted_spell/New(var/newloc, var/user, var/obj/item/weapon/spell/insert/inserter) + ..(newloc) + host = newloc origin = user if(light_color) spawn(1) diff --git a/code/game/gamemodes/technomancer/spells/instability_tap.dm b/code/game/gamemodes/technomancer/spells/instability_tap.dm index e5a80fdafc..ad2c72518b 100644 --- a/code/game/gamemodes/technomancer/spells/instability_tap.dm +++ b/code/game/gamemodes/technomancer/spells/instability_tap.dm @@ -14,8 +14,8 @@ cast_methods = CAST_USE aspect = ASPECT_UNSTABLE -/obj/item/weapon/spell/instability_tap/Initialize() - . = ..() +/obj/item/weapon/spell/instability_tap/New() + ..() set_light(3, 2, l_color = "#FA58F4") /obj/item/weapon/spell/instability_tap/on_use_cast(mob/user) diff --git a/code/game/gamemodes/technomancer/spells/modifier/modifier.dm b/code/game/gamemodes/technomancer/spells/modifier/modifier.dm index f612f00d3f..3ea278286e 100644 --- a/code/game/gamemodes/technomancer/spells/modifier/modifier.dm +++ b/code/game/gamemodes/technomancer/spells/modifier/modifier.dm @@ -9,8 +9,8 @@ var/spell_light_intensity = 2 var/spell_light_range = 3 -/obj/item/weapon/spell/modifier/Initialize() - . = ..() +/obj/item/weapon/spell/modifier/New() + ..() set_light(spell_light_range, spell_light_intensity, l_color = light_color) /obj/item/weapon/spell/modifier/on_melee_cast(atom/hit_atom, mob/user) diff --git a/code/game/gamemodes/technomancer/spells/phase_shift.dm b/code/game/gamemodes/technomancer/spells/phase_shift.dm index 0a64aec0b6..7cee437685 100644 --- a/code/game/gamemodes/technomancer/spells/phase_shift.dm +++ b/code/game/gamemodes/technomancer/spells/phase_shift.dm @@ -15,8 +15,8 @@ cast_methods = CAST_USE aspect = ASPECT_TELE -/obj/item/weapon/spell/phase_shift/Initialize() - . = ..() +/obj/item/weapon/spell/phase_shift/New() + ..() set_light(3, 2, l_color = "#FA58F4") /obj/effect/phase_shift @@ -28,8 +28,8 @@ /obj/effect/phase_shift/ex_act() return -/obj/effect/phase_shift/Initialize() - . = ..() +/obj/effect/phase_shift/New() + ..() set_light(3, 5, l_color = "#FA58F4") START_PROCESSING(SSobj, src) diff --git a/code/game/gamemodes/technomancer/spells/radiance.dm b/code/game/gamemodes/technomancer/spells/radiance.dm index 80a7d76ec9..d86428354e 100644 --- a/code/game/gamemodes/technomancer/spells/radiance.dm +++ b/code/game/gamemodes/technomancer/spells/radiance.dm @@ -16,8 +16,8 @@ var/power = 250 toggled = 1 -/obj/item/weapon/spell/radiance/Initialize() - . = ..() +/obj/item/weapon/spell/radiance/New() + ..() set_light(7, 4, l_color = "#D9D900") START_PROCESSING(SSobj, src) log_and_message_admins("has casted [src].") diff --git a/code/game/gamemodes/technomancer/spells/reflect.dm b/code/game/gamemodes/technomancer/spells/reflect.dm index b5ca6047a4..07f3595eda 100644 --- a/code/game/gamemodes/technomancer/spells/reflect.dm +++ b/code/game/gamemodes/technomancer/spells/reflect.dm @@ -16,8 +16,8 @@ var/damage_to_energy_multiplier = 60.0 //Determines how much energy to charge for blocking, e.g. 20 damage attack = 1200 energy cost var/datum/effect/effect/system/spark_spread/spark_system = null -/obj/item/weapon/spell/reflect/Initialize() - . = ..() +/obj/item/weapon/spell/reflect/New() + ..() set_light(3, 2, l_color = "#006AFF") spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src) diff --git a/code/game/gamemodes/technomancer/spells/shield.dm b/code/game/gamemodes/technomancer/spells/shield.dm index 849ea56fbc..b11d5590b0 100644 --- a/code/game/gamemodes/technomancer/spells/shield.dm +++ b/code/game/gamemodes/technomancer/spells/shield.dm @@ -18,8 +18,8 @@ var/damage_to_energy_multiplier = 30.0 //Determines how much energy to charge for blocking, e.g. 20 damage attack = 600 energy cost var/datum/effect/effect/system/spark_spread/spark_system = null -/obj/item/weapon/spell/shield/Initialize() - . = ..() +/obj/item/weapon/spell/shield/New() + ..() set_light(3, 2, l_color = "#006AFF") spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src) diff --git a/code/game/gamemodes/technomancer/spells/spawner/darkness.dm b/code/game/gamemodes/technomancer/spells/spawner/darkness.dm index 9a1a7bd365..f54f9b7502 100644 --- a/code/game/gamemodes/technomancer/spells/spawner/darkness.dm +++ b/code/game/gamemodes/technomancer/spells/spawner/darkness.dm @@ -18,8 +18,8 @@ adjust_instability(4) ..() -/obj/item/weapon/spell/spawner/darkness/Initialize() - . = ..() +/obj/item/weapon/spell/spawner/darkness/New() + ..() set_light(6, -20, l_color = "#FFFFFF") /obj/effect/temporary_effect/darkness diff --git a/code/game/gamemodes/technomancer/spells/spawner/destablize.dm b/code/game/gamemodes/technomancer/spells/spawner/destablize.dm index a24c020989..9bf6b07281 100644 --- a/code/game/gamemodes/technomancer/spells/spawner/destablize.dm +++ b/code/game/gamemodes/technomancer/spells/spawner/destablize.dm @@ -14,8 +14,8 @@ aspect = ASPECT_UNSTABLE spawner_type = /obj/effect/temporary_effect/destablize -/obj/item/weapon/spell/spawner/destablize/Initialize() - . = ..() +/obj/item/weapon/spell/spawner/destablize/New() + ..() set_light(3, 2, l_color = "#C26DDE") /obj/item/weapon/spell/spawner/destablize/on_ranged_cast(atom/hit_atom, mob/user) diff --git a/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm b/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm index 1594286377..b56ea64e9c 100644 --- a/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm +++ b/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm @@ -13,8 +13,8 @@ aspect = ASPECT_EMP spawner_type = /obj/effect/temporary_effect/pulse/pulsar -/obj/item/weapon/spell/spawner/pulsar/Initialize() - . = ..() +/obj/item/weapon/spell/spawner/pulsar/New() + ..() set_light(3, 2, l_color = "#2ECCFA") /obj/item/weapon/spell/spawner/pulsar/on_ranged_cast(atom/hit_atom, mob/user) diff --git a/code/game/gamemodes/technomancer/spells/warp_strike.dm b/code/game/gamemodes/technomancer/spells/warp_strike.dm index b0f7712cfa..83a2336ab6 100644 --- a/code/game/gamemodes/technomancer/spells/warp_strike.dm +++ b/code/game/gamemodes/technomancer/spells/warp_strike.dm @@ -14,8 +14,8 @@ aspect = ASPECT_TELE var/datum/effect/effect/system/spark_spread/sparks -/obj/item/weapon/spell/warp_strike/Initialize() - . = ..() +/obj/item/weapon/spell/warp_strike/New() + ..() sparks = new /datum/effect/effect/system/spark_spread() sparks.set_up(5, 0, src) sparks.attach(loc) diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm index 7fc7fdf98c..f1066caffc 100644 --- a/code/game/machinery/Beacon.dm +++ b/code/game/machinery/Beacon.dm @@ -10,8 +10,8 @@ idle_power_usage = 0 var/obj/item/device/radio/beacon/Beacon -/obj/machinery/bluespace_beacon/Initialize() - . = ..() +/obj/machinery/bluespace_beacon/New() + ..() var/turf/T = src.loc Beacon = new /obj/item/device/radio/beacon Beacon.invisibility = INVISIBILITY_MAXIMUM diff --git a/code/game/machinery/CableLayer.dm b/code/game/machinery/CableLayer.dm index 3f9477431a..20677bb0ff 100644 --- a/code/game/machinery/CableLayer.dm +++ b/code/game/machinery/CableLayer.dm @@ -8,10 +8,9 @@ var/max_cable = 100 var/on = 0 -/obj/machinery/cablelayer/Initialize() - cable = new(src) - cable.amount = 100 - . = ..() +/obj/machinery/cablelayer/New() + cable = new(src, 100) + ..() /obj/machinery/cablelayer/Moved(atom/old_loc, direction, forced = FALSE) . = ..() diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 0e22433714..9a5eb65ba6 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -15,8 +15,8 @@ var/strapped = 0.0 var/obj/machinery/computer/operating/computer = null -/obj/machinery/optable/Initialize() - . = ..() +/obj/machinery/optable/New() + ..() for(var/direction in list(NORTH,EAST,SOUTH,WEST)) computer = locate(/obj/machinery/computer/operating, get_step(src, direction)) if(computer) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 54bbc4baca..f33549fc23 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -552,8 +552,8 @@ circuit = /obj/item/weapon/circuitboard/scanner_console var/printing = null -/obj/machinery/body_scanconsole/Initialize() - . = ..() +/obj/machinery/body_scanconsole/New() + ..() findscanner() /obj/machinery/body_scanconsole/Destroy() diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index dd897f659d..86f55631a4 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -14,8 +14,8 @@ var/cooldown_on = 0 req_access = list(access_ai_upload) -/obj/machinery/ai_slipper/Initialize() - . = ..() +/obj/machinery/ai_slipper/New() + ..() update_icon() /obj/machinery/ai_slipper/power_change() diff --git a/code/game/machinery/air_alarm.dm b/code/game/machinery/air_alarm.dm index 3cb7ac5b34..ca40f0dc53 100644 --- a/code/game/machinery/air_alarm.dm +++ b/code/game/machinery/air_alarm.dm @@ -120,9 +120,6 @@ if(!pixel_x && !pixel_y) offset_airalarm() first_run() - set_frequency(frequency) - if(!master_is_operating()) - elect_master() /obj/machinery/alarm/Destroy() unregister_radio(src, frequency) @@ -157,6 +154,12 @@ update_icon() +/obj/machinery/alarm/Initialize() + . = ..() + set_frequency(frequency) + if(!master_is_operating()) + elect_master() + /obj/machinery/alarm/process() if((stat & (NOPOWER|BROKEN)) || shorted) return diff --git a/code/game/machinery/atm_ret_field.dm b/code/game/machinery/atm_ret_field.dm index 36e92d5281..bcf78539a7 100644 --- a/code/game/machinery/atm_ret_field.dm +++ b/code/game/machinery/atm_ret_field.dm @@ -81,7 +81,6 @@ return /obj/machinery/atmospheric_field_generator/perma/Initialize() - . = ..() generate_field() /obj/machinery/atmospheric_field_generator/update_icon() diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index 82f23e72a6..bfe95bada7 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -14,7 +14,7 @@ //Simple variable to prevent me from doing attack_hand in both this and the child computer var/zone = "This computer is working on a wireless range, the range is currently limited to " -/obj/machinery/computer/area_atmos/LateInitialize() +/obj/machinery/computer/area_atmos/Initialize() . = ..() scanscrubbers() diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 4849c78080..cb11dce0b5 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -368,30 +368,30 @@ update_flag add_fingerprint(usr) update_icon() -/obj/machinery/portable_atmospherics/canister/phoron/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/canister/phoron/New() + ..() src.air_contents.adjust_gas("phoron", MolesForPressure()) src.update_icon() return 1 -/obj/machinery/portable_atmospherics/canister/oxygen/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/canister/oxygen/New() + ..() src.air_contents.adjust_gas("oxygen", MolesForPressure()) src.update_icon() return 1 -/obj/machinery/portable_atmospherics/canister/oxygen/prechilled/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/canister/oxygen/prechilled/New() + ..() src.air_contents.adjust_gas("oxygen", MolesForPressure()) src.air_contents.temperature = 80 src.update_icon() return 1 -/obj/machinery/portable_atmospherics/canister/nitrous_oxide/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/canister/nitrous_oxide/New() + ..() air_contents.adjust_gas("nitrous_oxide", MolesForPressure()) src.update_icon() @@ -407,20 +407,23 @@ update_flag air_contents = new return 1 -/obj/machinery/portable_atmospherics/canister/nitrogen/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/canister/nitrogen/New() + + ..() + src.air_contents.adjust_gas("nitrogen", MolesForPressure()) src.update_icon() return 1 -/obj/machinery/portable_atmospherics/canister/carbon_dioxide/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/canister/carbon_dioxide/New() + ..() src.air_contents.adjust_gas("carbon_dioxide", MolesForPressure()) src.update_icon() return 1 -/obj/machinery/portable_atmospherics/canister/air/Initialize() - . = ..() + +/obj/machinery/portable_atmospherics/canister/air/New() + ..() var/list/air_mix = StandardAirMix() src.air_contents.adjust_multi("oxygen", air_mix["oxygen"], "nitrogen", air_mix["nitrogen"]) @@ -429,20 +432,20 @@ update_flag //R-UST port // Special types used for engine setup admin verb, they contain double amount of that of normal canister. -/obj/machinery/portable_atmospherics/canister/nitrogen/engine_setup/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/canister/nitrogen/engine_setup/New() + ..() src.air_contents.adjust_gas("nitrogen", MolesForPressure()) src.update_icon() return 1 -/obj/machinery/portable_atmospherics/canister/carbon_dioxide/engine_setup/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/canister/carbon_dioxide/engine_setup/New() + ..() src.air_contents.adjust_gas("carbon_dioxide", MolesForPressure()) src.update_icon() return 1 -/obj/machinery/portable_atmospherics/canister/phoron/engine_setup/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/canister/phoron/engine_setup/New() + ..() src.air_contents.adjust_gas("phoron", MolesForPressure()) src.update_icon() return 1 diff --git a/code/game/machinery/atmoalter/clamp.dm b/code/game/machinery/atmoalter/clamp.dm index 4467376601..a77999a661 100644 --- a/code/game/machinery/atmoalter/clamp.dm +++ b/code/game/machinery/atmoalter/clamp.dm @@ -14,8 +14,8 @@ var/datum/pipe_network/network_node1 var/datum/pipe_network/network_node2 -/obj/machinery/clamp/Initialize(var/ml, var/obj/machinery/atmospherics/pipe/simple/to_attach = null) - . = ..() +/obj/machinery/clamp/New(loc, var/obj/machinery/atmospherics/pipe/simple/to_attach = null) + ..() if(istype(to_attach)) target = to_attach else @@ -23,6 +23,7 @@ if(target) update_networks() dir = target.dir + return 1 /obj/machinery/clamp/proc/update_networks() if(!target) diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index 900dc7cd95..6bdf71c525 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -13,14 +13,18 @@ var/start_pressure = ONE_ATMOSPHERE var/maximum_pressure = 90 * ONE_ATMOSPHERE -/obj/machinery/portable_atmospherics/Initialize() +/obj/machinery/portable_atmospherics/New() ..() //VOREStation Edit - Fix runtime if(air_contents) air_contents.volume = volume air_contents.temperature = T20C //VOREStation Edit End - + + return 1 + +/obj/machinery/portable_atmospherics/Initialize() + ..() return INITIALIZE_HINT_LATELOAD /obj/machinery/portable_atmospherics/LateInitialize() diff --git a/code/game/machinery/atmoalter/pump.dm b/code/game/machinery/atmoalter/pump.dm index 8d496eddde..1a502c675f 100644 --- a/code/game/machinery/atmoalter/pump.dm +++ b/code/game/machinery/atmoalter/pump.dm @@ -21,8 +21,8 @@ /obj/machinery/portable_atmospherics/powered/pump/filled start_pressure = 90 * ONE_ATMOSPHERE -/obj/machinery/portable_atmospherics/powered/pump/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/powered/pump/New() + ..() cell = new/obj/item/weapon/cell/apc(src) var/list/air_mix = StandardAirMix() diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm index 80d053eb72..7ab58e2c88 100644 --- a/code/game/machinery/atmoalter/scrubber.dm +++ b/code/game/machinery/atmoalter/scrubber.dm @@ -20,8 +20,8 @@ var/list/scrubbing_gas = list("phoron", "carbon_dioxide", "nitrous_oxide", "volatile_fuel") -/obj/machinery/portable_atmospherics/powered/scrubber/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/powered/scrubber/New() + ..() cell = new/obj/item/weapon/cell/apc(src) /obj/machinery/portable_atmospherics/powered/scrubber/emp_act(severity) @@ -164,8 +164,8 @@ var/global/gid = 1 var/id = 0 -/obj/machinery/portable_atmospherics/powered/scrubber/huge/Initialize() - . = ..() +/obj/machinery/portable_atmospherics/powered/scrubber/huge/New() + ..() cell = null id = gid diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm index e3bf76493c..4c684abb99 100644 --- a/code/game/machinery/bioprinter.dm +++ b/code/game/machinery/bioprinter.dm @@ -338,7 +338,7 @@ var/matter_amount_per_sheet = 10 var/matter_type = MAT_STEEL -/obj/machinery/organ_printer/robot/full/Initialize() +/obj/machinery/organ_printer/robot/full/New() . = ..() stored_matter = max_stored_matter diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 1f1059422e..85f23cb1db 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -42,7 +42,7 @@ var/list/camera_computers_using_this = list() -/obj/machinery/camera/Initialize() +/obj/machinery/camera/New() wires = new(src) assembly = new(src) assembly.state = 4 @@ -65,8 +65,8 @@ if(!c_tag) var/area/A = get_area(src) c_tag = "[A ? A.name : "Unknown"] #[rand(111,999)]" + ..() // VOREStation Edit End - . = ..() /obj/machinery/camera/Destroy() if(isMotion()) @@ -185,7 +185,7 @@ else assembly.state = 1 to_chat(user, "You cut \the [src] free from the wall.") - new /obj/item/stack/cable_coil(src.loc, 2) + new /obj/item/stack/cable_coil(src.loc, length=2) assembly = null //so qdel doesn't eat it. qdel(src) diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index 52741d6ebe..7e1de88bbb 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -112,8 +112,8 @@ var/global/list/engineering_networks = list( // EMP -/obj/machinery/camera/emp_proof/Initialize() - . = ..() +/obj/machinery/camera/emp_proof/New() + ..() upgradeEmpProof() // X-RAY @@ -133,14 +133,14 @@ var/global/list/engineering_networks = list( /obj/machinery/camera/xray/research network = list(NETWORK_RESEARCH) -/obj/machinery/camera/xray/Initialize() - . = ..() +/obj/machinery/camera/xray/New() + ..() upgradeXRay() // MOTION -/obj/machinery/camera/motion/Initialize() - . = ..() +/obj/machinery/camera/motion/New() + ..() upgradeMotion() /obj/machinery/camera/motion/engineering_outpost @@ -155,8 +155,8 @@ var/global/list/engineering_networks = list( /obj/machinery/camera/all/command network = list(NETWORK_COMMAND) -/obj/machinery/camera/all/Initialize() - . = ..() +/obj/machinery/camera/all/New() + ..() upgradeEmpProof() upgradeXRay() upgradeMotion() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 2d52929e72..49c917f312 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -456,8 +456,8 @@ icon_state = "pod_g" -/obj/machinery/clonepod/full/Initialize() - . = ..() +/obj/machinery/clonepod/full/New() + ..() for(var/i = 1 to container_limit) containers += new /obj/item/weapon/reagent_containers/glass/bottle/biomass(src) @@ -499,8 +499,7 @@ name = "data disk - 'God Emperor of Mankind'" read_only = 1 -/obj/item/weapon/disk/data/demo/Initialize() - . = ..() +/obj/item/weapon/disk/data/demo/New() initializeDisk() buf.types=DNA2_BUF_UE|DNA2_BUF_UI //data = "066000033000000000AF00330660FF4DB002690" @@ -515,8 +514,8 @@ name = "data disk - 'Mr. Muggles'" read_only = 1 -/obj/item/weapon/disk/data/monkey/Initialize() - . = ..() +/obj/item/weapon/disk/data/monkey/New() + ..() initializeDisk() buf.types=DNA2_BUF_SE var/list/new_SE=list(0x098,0x3E8,0x403,0x44C,0x39F,0x4B0,0x59D,0x514,0x5FC,0x578,0x5DC,0x640,0x6A4) @@ -525,8 +524,8 @@ buf.dna.SE=new_SE buf.dna.SetSEValueRange(MONKEYBLOCK,0xDAC, 0xFFF) -/obj/item/weapon/disk/data/Initialize() - . = ..() +/obj/item/weapon/disk/data/New() + ..() var/diskcolor = pick(0,1,2) icon_state = "datadisk[diskcolor]" @@ -546,8 +545,8 @@ name = "Diskette Box" icon_state = "disk_kit" -/obj/item/weapon/storage/box/disks/Initialize() - . = ..() +/obj/item/weapon/storage/box/disks/New() + ..() new /obj/item/weapon/disk/data(src) new /obj/item/weapon/disk/data(src) new /obj/item/weapon/disk/data(src) diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index 11c07b74f2..4efec263f8 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -20,8 +20,8 @@ var/healthAlarm = 50 var/oxy = 1 //oxygen beeping toggle -/obj/machinery/computer/operating/Initialize() - . = ..() +/obj/machinery/computer/operating/New() + ..() for(var/direction in list(NORTH,EAST,SOUTH,WEST)) table = locate(/obj/machinery/optable, get_step(src, direction)) if(table) diff --git a/code/game/machinery/computer/RCON_Console.dm b/code/game/machinery/computer/RCON_Console.dm index 156f74ffa5..d6df0d2d6d 100644 --- a/code/game/machinery/computer/RCON_Console.dm +++ b/code/game/machinery/computer/RCON_Console.dm @@ -15,8 +15,8 @@ var/current_tag = null var/datum/tgui_module/rcon/rcon -/obj/machinery/computer/rcon/Initialize() - . = ..() +/obj/machinery/computer/rcon/New() + ..() rcon = new(src) /obj/machinery/computer/rcon/Destroy() diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index fec159f48d..016a96c723 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -96,6 +96,9 @@ /obj/machinery/computer/arcade/battle/Initialize() . = ..() + randomize_characters() + +/obj/machinery/computer/arcade/battle/proc/randomize_characters() var/name_action var/name_part1 var/name_part2 @@ -188,6 +191,7 @@ turtle = 0 if(emagged) + randomize_characters() emagged = 0 add_fingerprint(usr) @@ -206,6 +210,7 @@ new /obj/item/clothing/head/collectable/petehat(src.loc) message_admins("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.") log_game("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.") + randomize_characters() emagged = 0 else if(!contents.len) feedback_inc("arcade_win_normal") @@ -339,8 +344,8 @@ var/gameStatus = ORION_STATUS_START var/canContinueEvent = 0 -/obj/machinery/computer/arcade/orion_trail/Initialize() - . = ..() +/obj/machinery/computer/arcade/orion_trail/New() + ..() // Sets up the main trail stops = list("Pluto","Asteroid Belt","Proxima Centauri","Dead Space","Rigel Prime","Tau Ceti Beta","Black Hole","Space Outpost Beta-9","Orion Prime") stopblurbs = list( @@ -1229,8 +1234,8 @@ /// End Payment -/obj/machinery/computer/arcade/clawmachine/Initialize() - . = ..() +/obj/machinery/computer/arcade/clawmachine/New() + ..() /obj/machinery/computer/arcade/clawmachine/attack_hand(mob/living/user) if(..()) diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 9bc132c7f1..24a7d21a5f 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -12,8 +12,8 @@ var/global/list/minor_air_alarms = list() icon_screen = "alert:0" light_color = "#e6ffff" -/obj/machinery/computer/atmos_alert/Initialize() - . = ..() +/obj/machinery/computer/atmos_alert/New() + ..() atmosphere_alarm.register_alarm(src, /atom/proc/update_icon) /obj/machinery/computer/atmos_alert/Destroy() diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 4eac351ce1..869756f987 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -15,6 +15,9 @@ var/list/monitored_alarm_ids = null var/datum/tgui_module/atmos_control/atmos_control +/obj/machinery/computer/atmoscontrol/New() + ..() + /obj/machinery/computer/atmoscontrol/laptop //[TO DO] Change name to PCU and update mapdata to include replacement computers name = "\improper Atmospherics PCU" desc = "A personal computer unit. It seems to have only the Atmosphereics Control program installed." diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index fa73834f6f..1af31afe80 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -10,9 +10,9 @@ circuit = /obj/item/weapon/circuitboard/crew var/datum/tgui_module/crew_monitor/crew_monitor -/obj/machinery/computer/crew/Initialize() +/obj/machinery/computer/crew/New() crew_monitor = new(src) - . = ..() + ..() /obj/machinery/computer/crew/Destroy() qdel(crew_monitor) diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index 6b6cd3a1ae..24b97e2099 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -101,8 +101,8 @@ var/list/internal_log = list() var/mode = 0 // 0 - making pass, 1 - viewing logs -/obj/machinery/computer/guestpass/Initialize() - . = ..() +/obj/machinery/computer/guestpass/New() + ..() uid = "[rand(100,999)]-G[rand(10,99)]" diff --git a/code/game/machinery/computer/shutoff_monitor.dm b/code/game/machinery/computer/shutoff_monitor.dm index 37eb2060a7..8cc101d804 100644 --- a/code/game/machinery/computer/shutoff_monitor.dm +++ b/code/game/machinery/computer/shutoff_monitor.dm @@ -7,8 +7,8 @@ circuit = /obj/item/weapon/circuitboard/shutoff_monitor var/datum/tgui_module/shutoff_monitor/monitor -/obj/machinery/computer/shutoff_monitor/Initialize() - . = ..() +/obj/machinery/computer/shutoff_monitor/New() + ..() monitor = new(src) /obj/machinery/computer/shutoff_monitor/Destroy() diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 90b323358f..35a060863e 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -27,24 +27,24 @@ var/image/fluid -/obj/machinery/atmospherics/unary/cryo_cell/Initialize() - . = ..() +/obj/machinery/atmospherics/unary/cryo_cell/New() + ..() icon = 'icons/obj/cryogenics_split.dmi' icon_state = "base" initialize_directions = dir +/obj/machinery/atmospherics/unary/cryo_cell/Initialize() + . = ..() var/image/tank = image(icon,"tank") tank.alpha = 200 tank.pixel_y = 18 tank.plane = MOB_PLANE tank.layer = MOB_LAYER+0.2 //Above fluid - fluid = image(icon, "tube_filler") fluid.pixel_y = 18 fluid.alpha = 200 fluid.plane = MOB_PLANE fluid.layer = MOB_LAYER+0.1 //Below glass, above mob - add_overlay(tank) update_icon() diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 5a210c9136..c0c23f9420 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -289,20 +289,9 @@ time_till_despawn = 60 //1 second, because gateway. -/obj/machinery/cryopod/robot/door/checkpoint - name = "automated checkpoint" - desc = "A reinforced, automated checkpoint tracking arrivals and departures from the outpost. Beyond this vault is a small airstrip, then nothing but untamed wilderness." - on_store_message = "has departed from the colony." - on_store_name = "Travel Oversight" - on_enter_occupant_message = "The checkpoint unseals and grinds open, and you step through." - on_store_visible_message_1 = "grinds closed after" - on_store_visible_message_2 = "passes through it." - time_till_despawn = 10 // 1 second, because math - -/obj/machinery/cryopod/Initialize() - . = ..() +/obj/machinery/cryopod/New() announce = new /obj/item/device/radio/intercom(src) - find_control_computer() + ..() /obj/machinery/cryopod/Destroy() if(occupant) @@ -310,6 +299,11 @@ occupant.resting = 1 return ..() +/obj/machinery/cryopod/Initialize() + . = ..() + + find_control_computer() + /obj/machinery/cryopod/proc/find_control_computer(urgent=0) control_computer = null diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 9ea64dc99f..a72d814c79 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -21,8 +21,8 @@ Deployable items var/locked = 0.0 // req_access = list(access_maint_tunnels) -/obj/machinery/deployable/barrier/Initialize() - . = ..() +/obj/machinery/deployable/barrier/New() + ..() icon_state = "barrier[locked]" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index bd2a091576..20d0f634da 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1444,15 +1444,8 @@ About the new airlock wires panel: return 0 return ..(M) -/obj/machinery/door/airlock/Initialize(var/ml, var/obj/structure/door_assembly/assembly=null) - if(src.closeOtherId != null) - for (var/obj/machinery/door/airlock/A in machines) - if(A.closeOtherId == src.closeOtherId && A != src) - src.closeOther = A - break - name = "\improper [name]" - - . = ..() +/obj/machinery/door/airlock/New(var/newloc, var/obj/structure/door_assembly/assembly=null) + ..() //if assembly is given, create the new door from the assembly if (assembly && istype(assembly)) @@ -1480,17 +1473,22 @@ About the new airlock wires panel: set_dir(assembly.dir) //wires - var/turf/T = get_turf(src) + var/turf/T = get_turf(newloc) if(T && (T.z in using_map.admin_levels)) secured_wires = 1 if (secured_wires) wires = new/datum/wires/airlock/secure(src) else wires = new/datum/wires/airlock(src) - - if(frequency) - set_frequency(frequency) - update_icon() + +/obj/machinery/door/airlock/Initialize() + if(src.closeOtherId != null) + for (var/obj/machinery/door/airlock/A in machines) + if(A.closeOtherId == src.closeOtherId && A != src) + src.closeOther = A + break + name = "\improper [name]" + . = ..() /obj/machinery/door/airlock/Destroy() qdel(wires) @@ -1555,4 +1553,4 @@ About the new airlock wires panel: to_chat(user, span("notice", "You deconstruct \the [src].")) qdel(src) return TRUE - return FALSE \ No newline at end of file + return FALSE diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 9d3e7c4adf..3c91bd7c02 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -132,6 +132,14 @@ frequency = new_frequency radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK) + +/obj/machinery/door/airlock/Initialize() + . = ..() + if(frequency) + set_frequency(frequency) + + update_icon() + /obj/machinery/door/airlock/Destroy() if(frequency && radio_controller) radio_controller.remove_object(src,frequency) diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm index 7508f559a8..f7dda48feb 100644 --- a/code/game/machinery/doors/alarmlock.dm +++ b/code/game/machinery/doors/alarmlock.dm @@ -9,6 +9,10 @@ var/air_frequency = 1437 autoclose = 0 +/obj/machinery/door/airlock/alarmlock/New() + ..() + air_connection = new + /obj/machinery/door/airlock/alarmlock/Destroy() if(radio_controller) radio_controller.remove_object(src,air_frequency) @@ -18,7 +22,8 @@ . = ..() radio_controller.remove_object(src, air_frequency) air_connection = radio_controller.add_object(src, air_frequency, RADIO_TO_AIRALARM) - addtimer(CALLBACK(src, .proc/open), 0) + open() + /obj/machinery/door/airlock/alarmlock/receive_signal(datum/signal/signal) ..() diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index fd4060db9c..fa31ef365f 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -53,7 +53,7 @@ visible_message("\The [user] bonks \the [src] harmlessly.") user.do_attack_animation(src) -/obj/machinery/door/Initialize() +/obj/machinery/door/New() . = ..() if(density) layer = closed_layer diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index 67181cb824..23b71bdb0f 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -7,7 +7,7 @@ open_sound_powered = 'sound/machines/door/WideOpen.ogg' close_sound_powered = 'sound/machines/door/WideClose.ogg' -/obj/machinery/door/airlock/multi_tile/Initialize() +/obj/machinery/door/airlock/multi_tile/Initialize(mapload) . = ..() SetBounds() RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/SetBounds) @@ -48,4 +48,4 @@ /obj/machinery/door/airlock/multi_tile/metal/mait icon = 'icons/obj/doors/Door2x1_Maint.dmi' - //req_one_access = list(access_maint_tunnels) //VOREStaiton Edit - Maintenance is open access \ No newline at end of file + //req_one_access = list(access_maint_tunnels) //VOREStaiton Edit - Maintenance is open access diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index b11781dbb0..28afc5e9ff 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -17,8 +17,8 @@ can_atmos_pass = ATMOS_PASS_PROC air_properties_vary_with_direction = 1 -/obj/machinery/door/window/Initialize() - . = ..() +/obj/machinery/door/window/New() + ..() update_nearby_tiles() if(LAZYLEN(req_access)) src.icon_state = "[src.icon_state]" diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index dd15e02a99..7b8039cb6f 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -9,8 +9,8 @@ var/list/doppler_arrays = list() icon_state = "doppler" -/obj/machinery/doppler_array/Initialize() - . = ..() +/obj/machinery/doppler_array/New() + ..() doppler_arrays += src /obj/machinery/doppler_array/Destroy() diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index 39693f3e28..a5cc7d6750 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -13,9 +13,9 @@ var/open = 0 var/brightness_on = 8 //can't remember what the maxed out value is -/obj/machinery/floodlight/Initialize() - . = ..() +/obj/machinery/floodlight/New() cell = new(src) + ..() /obj/machinery/floodlight/update_icon() cut_overlays() diff --git a/code/game/machinery/floorlayer.dm b/code/game/machinery/floorlayer.dm index 3be956bcae..dfbf3c38df 100644 --- a/code/game/machinery/floorlayer.dm +++ b/code/game/machinery/floorlayer.dm @@ -8,9 +8,9 @@ var/obj/item/stack/tile/T var/list/mode = list("dismantle"=0,"laying"=0,"collect"=0) -/obj/machinery/floorlayer/Initialize() - . = ..() +/obj/machinery/floorlayer/New() T = new/obj/item/stack/tile/floor(src) + ..() /obj/machinery/floorlayer/Moved(atom/old_loc, direction, forced = FALSE) . = ..() diff --git a/code/game/machinery/frame.dm b/code/game/machinery/frame.dm index 69652ef021..d651ad2025 100644 --- a/code/game/machinery/frame.dm +++ b/code/game/machinery/frame.dm @@ -280,8 +280,8 @@ for(var/obj/ct as anything in req_components) req_component_names[ct] = initial(ct.name) -/obj/structure/frame/Initialize(var/ml, var/dir, var/building = 0, var/datum/frame/frame_types/type, mob/user as mob) - . = ..() +/obj/structure/frame/New(var/loc, var/dir, var/building = 0, var/datum/frame/frame_types/type, mob/user as mob) + ..() if(building) frame_type = type state = FRAME_PLACED diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index a511e09d9b..060bd029fc 100755 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -30,8 +30,8 @@ location.hotspot_expose(1000,500,1) return 1 -/obj/machinery/igniter/Initialize() - . = ..() +/obj/machinery/igniter/New() + ..() icon_state = "igniter[on]" /obj/machinery/igniter/power_change() @@ -58,6 +58,9 @@ idle_power_usage = 2 active_power_usage = 4 +/obj/machinery/sparker/New() + ..() + /obj/machinery/sparker/power_change() ..() if(!(stat & NOPOWER) && disable == 0) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 6152f07df3..6ceab53895 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -121,12 +121,15 @@ Class Procs: blocks_emissive = EMISSIVE_BLOCK_GENERIC -/obj/machinery/Initialize(var/ml, d=0) - . = ..() - if(isnum(d)) //VOREStation Edit - bugfix +/obj/machinery/New(l, d=0) + ..() + if(isnum(d)) set_dir(d) if(ispath(circuit)) circuit = new circuit(src) + +/obj/machinery/Initialize(var/mapload) + . = ..() global.machines += src if(ispath(circuit)) circuit = new circuit(src) @@ -134,7 +137,7 @@ Class Procs: START_MACHINE_PROCESSING(src) else START_PROCESSING(SSfastprocess, src) - if(!ml) + if(!mapload) power_change() /obj/machinery/Destroy() diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index 6bfd03372c..e2b76f3632 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -27,8 +27,8 @@ var/center_y = 0 var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer -/obj/machinery/magnetic_module/Initialize() - . = ..() +/obj/machinery/magnetic_module/New() + ..() var/turf/T = loc hide(!T.is_plating()) center = T @@ -209,8 +209,8 @@ var/datum/radio_frequency/radio_connection -/obj/machinery/magnetic_controller/Initialize() - . = ..() +/obj/machinery/magnetic_controller/New() + ..() if(autolink) for(var/obj/machinery/magnetic_module/M in machines) diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 7e30fc5808..1002e3fa21 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -16,7 +16,7 @@ var/id = 1.0 var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. -/obj/machinery/mass_driver/Initialize() +/obj/machinery/mass_driver/New() . = ..() default_apply_parts() diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index 056ef1727a..1e1fff180e 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -18,8 +18,8 @@ var/global/list/navbeacons = list() // no I don't like putting this in, but it w var/list/codes = list() // assoc. list of transponder codes req_access = list(access_engine) -/obj/machinery/navbeacon/Initialize() - . = ..() +/obj/machinery/navbeacon/New() + ..() set_codes_from_txt(codes_txt) if(freq) warning("[src] at [x],[y],[z] has deprecated var freq=[freq]. Replace it with proper type.") @@ -233,6 +233,6 @@ Transponder Codes: