diff --git a/code/LINDA/LINDA_fire.dm b/code/LINDA/LINDA_fire.dm index 5e44dcf20cc..00fddd5b1f0 100644 --- a/code/LINDA/LINDA_fire.dm +++ b/code/LINDA/LINDA_fire.dm @@ -189,7 +189,7 @@ T.to_be_destroyed = 0 T.max_fire_temperature_sustained = 0 -/obj/effect/hotspot/Crossed(mob/living/L) +/obj/effect/hotspot/Crossed(mob/living/L, oldloc) ..() if(isliving(L)) L.fire_act() diff --git a/code/datums/beam.dm b/code/datums/beam.dm index e3a3ca6033a..befe5c0765a 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -119,7 +119,7 @@ owner = null return ..() -/obj/effect/ebeam/deadly/Crossed(atom/A) +/obj/effect/ebeam/deadly/Crossed(atom/A, oldloc) ..() A.ex_act(1) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 486b553bb8e..1a23dc71070 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -219,7 +219,7 @@ // Previously known as HasEntered() // This is automatically called when something enters your square -/atom/movable/Crossed(atom/movable/AM) +/atom/movable/Crossed(atom/movable/AM, oldloc) SEND_SIGNAL(src, COMSIG_MOVABLE_CROSSED, AM) /atom/movable/Bump(atom/A, yes) //the "yes" arg is to differentiate our Bump proc from byond's, without it every Bump() call would become a double Bump(). @@ -245,7 +245,9 @@ if(destination) destination.Entered(src) for(var/atom/movable/AM in destination) - AM.Crossed(src) + if(AM == src) + continue + AM.Crossed(src, old_loc) var/turf/oldturf = get_turf(old_loc) var/turf/destturf = get_turf(destination) var/old_z = (oldturf ? oldturf.z : null) diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index bf56d1687c5..ed06ec4086d 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -142,7 +142,7 @@ take_damage(Proj.damage, Proj.damage_type) return 0 -/obj/structure/blob/Crossed(var/mob/living/L) +/obj/structure/blob/Crossed(var/mob/living/L, oldloc) ..() L.blob_act(src) diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index c2dd811d640..c6a6a3b7490 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -271,7 +271,7 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( return return -/obj/effect/gateway/Crossed(AM as mob|obj) +/obj/effect/gateway/Crossed(AM as mob|obj, oldloc) spawn(0) return return diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index e73474bad7d..fb3c10e25ec 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -545,7 +545,7 @@ light_color = LIGHT_COLOR_CYAN health = 10 -/obj/structure/swarmer/trap/Crossed(var/atom/movable/AM) +/obj/structure/swarmer/trap/Crossed(var/atom/movable/AM, oldloc) if(isliving(AM)) var/mob/living/L = AM if(!istype(L, /mob/living/simple_animal/hostile/swarmer)) diff --git a/code/game/gamemodes/miniantags/guardian/types/fire.dm b/code/game/gamemodes/miniantags/guardian/types/fire.dm index 58f4873e800..0c5052f48bd 100644 --- a/code/game/gamemodes/miniantags/guardian/types/fire.dm +++ b/code/game/gamemodes/miniantags/guardian/types/fire.dm @@ -42,7 +42,7 @@ do_teleport(M, M, 10) new /obj/effect/temp_visual/guardian/phase/out(get_turf(M)) -/mob/living/simple_animal/hostile/guardian/fire/Crossed(AM as mob|obj) +/mob/living/simple_animal/hostile/guardian/fire/Crossed(AM as mob|obj, oldloc) ..() collision_ignite(AM) diff --git a/code/game/gamemodes/miniantags/guardian/types/ranged.dm b/code/game/gamemodes/miniantags/guardian/types/ranged.dm index 3e57a059d10..fe8a566ad52 100644 --- a/code/game/gamemodes/miniantags/guardian/types/ranged.dm +++ b/code/game/gamemodes/miniantags/guardian/types/ranged.dm @@ -103,7 +103,7 @@ invisibility = 1 -/obj/item/effect/snare/Crossed(AM as mob|obj) +/obj/item/effect/snare/Crossed(AM as mob|obj, oldloc) if(isliving(AM)) var/turf/snare_loc = get_turf(loc) if(spawner) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 2ee1e93683d..af73a13f27c 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -99,7 +99,7 @@ icon_state = "table2-idle" return 0 -/obj/machinery/optable/Crossed(atom/movable/AM) +/obj/machinery/optable/Crossed(atom/movable/AM, oldloc) . = ..() if(iscarbon(AM) && LAZYLEN(injected_reagents)) to_chat(AM, "You feel a series of tiny pricks!") diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 3c5fea2a967..c410a9130a0 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -88,7 +88,7 @@ var/global/list/image/splatter_cache = list() return TRUE //Add "bloodiness" of this blood's type, to the human's shoes -/obj/effect/decal/cleanable/blood/Crossed(atom/movable/O) +/obj/effect/decal/cleanable/blood/Crossed(atom/movable/O, oldloc) if(!off_floor && ishuman(O)) var/mob/living/carbon/human/H = O var/obj/item/organ/external/l_foot = H.get_organ("l_foot") diff --git a/code/game/objects/effects/decals/Cleanable/tracks.dm b/code/game/objects/effects/decals/Cleanable/tracks.dm index 8598381aaf1..1e45c2aa4cf 100644 --- a/code/game/objects/effects/decals/Cleanable/tracks.dm +++ b/code/game/objects/effects/decals/Cleanable/tracks.dm @@ -29,7 +29,7 @@ var/global/list/image/fluidtrack_cache = list() blood_state = BLOOD_STATE_HUMAN //the icon state to load images from -/obj/effect/decal/cleanable/blood/footprints/Crossed(atom/movable/O) +/obj/effect/decal/cleanable/blood/footprints/Crossed(atom/movable/O, oldloc) if(ishuman(O)) var/mob/living/carbon/human/H = O var/obj/item/clothing/shoes/S = H.shoes diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index d061aca8d95..8bb117b832c 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -345,7 +345,7 @@ steam.start() -- spawns the effect return 1 -/obj/effect/effect/bad_smoke/Crossed(mob/living/carbon/M as mob ) +/obj/effect/effect/bad_smoke/Crossed(mob/living/carbon/M as mob, oldloc) ..() if(istype(M, /mob/living/carbon)) if(M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT)) @@ -569,7 +569,7 @@ steam.start() -- spawns the effect M.coughedtime = 0 return -/obj/effect/effect/sleep_smoke/Crossed(mob/living/carbon/M as mob ) +/obj/effect/effect/sleep_smoke/Crossed(mob/living/carbon/M as mob, oldloc) ..() if(istype(M, /mob/living/carbon)) if(M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT)) @@ -672,7 +672,7 @@ steam.start() -- spawns the effect R.updatehealth() return -/obj/effect/effect/mustard_gas/Crossed(mob/living/carbon/human/R as mob ) +/obj/effect/effect/mustard_gas/Crossed(mob/living/carbon/human/R as mob, oldloc) ..() if(istype(R, /mob/living/carbon/human)) if(R.internal != null && usr.wear_mask && (R.wear_mask.flags & AIRTIGHT) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/storage/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor))) @@ -984,7 +984,7 @@ steam.start() -- spawns the effect qdel(src) -/obj/structure/foam/Crossed(var/atom/movable/AM) +/obj/structure/foam/Crossed(var/atom/movable/AM, oldloc) if(metal) return diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index b44c4e3dd1b..f134bd44b10 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -94,7 +94,7 @@ spawn(5) qdel(src) -/obj/effect/particle_effect/foam/Crossed(atom/movable/AM) +/obj/effect/particle_effect/foam/Crossed(atom/movable/AM, oldloc) if(metal) return diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 0eed8fcba00..93ab0c8e51b 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -52,7 +52,7 @@ steps-- return 1 -/obj/effect/particle_effect/smoke/Crossed(mob/living/M) +/obj/effect/particle_effect/smoke/Crossed(mob/living/M, oldloc) if(!istype(M)) return smoke_mob(M) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 547df1b96ef..76e28f013a1 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -11,7 +11,7 @@ /obj/effect/mine/proc/mineEffect(mob/living/victim) to_chat(victim, "*click*") -/obj/effect/mine/Crossed(AM as mob|obj) +/obj/effect/mine/Crossed(AM as mob|obj, oldloc) if(!isliving(AM)) return var/mob/living/M = AM diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 691ed994875..f36902664f8 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -3,7 +3,6 @@ desc = "Looks unstable. Best to test it with the clown." icon = 'icons/obj/stationobjs.dmi' icon_state = "portal" - density = TRUE unacidable = TRUE anchored = TRUE @@ -17,9 +16,6 @@ var/can_multitool_to_remove = FALSE var/ignore_tele_proof_area_setting = FALSE -/obj/effect/portal/Bumped(mob/M as mob|obj) - teleport(M) - /obj/effect/portal/New(loc, turf/target, creator = null, lifespan = 300) ..() @@ -49,10 +45,13 @@ /obj/effect/portal/singularity_act() return -/obj/effect/portal/Crossed(atom/movable/AM) +/obj/effect/portal/Crossed(atom/movable/AM, oldloc) if(isobserver(AM)) return ..() + if(target && (get_turf(oldloc) == get_turf(target))) + return ..() + if(!teleport(AM)) return ..() diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index a9721dd43d0..c1231e698fc 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -10,7 +10,7 @@ /obj/effect/step_trigger/proc/Trigger(var/atom/movable/A) return FALSE -/obj/effect/step_trigger/Crossed(var/H) +/obj/effect/step_trigger/Crossed(var/H, oldloc) . = ..() if(!H) return diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 073cd0df669..9dbb02553ca 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -578,7 +578,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d /obj/item/proc/is_equivalent(obj/item/I) return I == src -/obj/item/Crossed(atom/movable/AM) +/obj/item/Crossed(atom/movable/AM, oldloc) . = ..() if(prob(trip_chance) && ishuman(AM)) var/mob/living/carbon/human/H = AM diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 75decb95413..f0830f34c40 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -31,7 +31,7 @@ if(S.merge_type == merge_type) merge(S) -/obj/item/stack/Crossed(obj/O) +/obj/item/stack/Crossed(obj/O, oldloc) if(amount >= max_amount || ismob(loc)) // Prevents unnecessary call. Also prevents merging stack automatically in a mob's inventory return if(istype(O, merge_type) && !O.throwing) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 8a40233bbdd..a8ddcf6d315 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -284,7 +284,7 @@ ..() pop_burst() -/obj/item/toy/snappop/Crossed(H as mob|obj) +/obj/item/toy/snappop/Crossed(H as mob|obj, oldloc) if(ishuman(H) || issilicon(H)) //i guess carp and shit shouldn't set them off var/mob/living/carbon/M = H if(issilicon(H) || M.m_intent == MOVE_INTENT_RUN) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index d17287b01a6..c35eed4fae5 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -48,9 +48,9 @@ /obj/item/grenade/plastic/receive_signal() prime() -/obj/item/grenade/plastic/Crossed(atom/movable/AM) +/obj/item/grenade/plastic/Crossed(atom/movable/AM, oldloc) if(nadeassembly) - nadeassembly.Crossed(AM) + nadeassembly.Crossed(AM, oldloc) /obj/item/grenade/plastic/on_found(mob/finder) if(nadeassembly) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 31bc6bcf556..2b027bfeee0 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -239,9 +239,9 @@ if(nadeassembly) nadeassembly.process_movement() -/obj/item/grenade/chem_grenade/Crossed(atom/movable/AM) +/obj/item/grenade/chem_grenade/Crossed(atom/movable/AM, oldloc) if(nadeassembly) - nadeassembly.Crossed(AM) + nadeassembly.Crossed(AM, oldloc) /obj/item/grenade/chem_grenade/on_found(mob/finder) if(nadeassembly) diff --git a/code/game/objects/items/weapons/legcuffs.dm b/code/game/objects/items/weapons/legcuffs.dm index 66e0ba6b110..77ae8fc73bb 100644 --- a/code/game/objects/items/weapons/legcuffs.dm +++ b/code/game/objects/items/weapons/legcuffs.dm @@ -87,7 +87,7 @@ return ..() -/obj/item/restraints/legcuffs/beartrap/Crossed(AM as mob|obj) +/obj/item/restraints/legcuffs/beartrap/Crossed(AM as mob|obj, oldloc) if(armed && isturf(src.loc)) if( (iscarbon(AM) || isanimal(AM)) && !istype(AM, /mob/living/simple_animal/parrot) && !istype(AM, /mob/living/simple_animal/hostile/construct) && !istype(AM, /mob/living/simple_animal/shade) && !istype(AM, /mob/living/simple_animal/hostile/viscerator)) var/mob/living/L = AM @@ -193,6 +193,6 @@ /obj/item/restraints/legcuffs/bola/energy/throw_impact(atom/hit_atom) if(iscarbon(hit_atom)) var/obj/item/restraints/legcuffs/beartrap/B = new /obj/item/restraints/legcuffs/beartrap/energy/cyborg(get_turf(hit_atom)) - B.Crossed(hit_atom) + B.Crossed(hit_atom, null) qdel(src) ..() diff --git a/code/game/objects/items/weapons/shards.dm b/code/game/objects/items/weapons/shards.dm index 428bfcd8fab..4c8697da247 100644 --- a/code/game/objects/items/weapons/shards.dm +++ b/code/game/objects/items/weapons/shards.dm @@ -67,7 +67,7 @@ else return ..() -/obj/item/shard/Crossed(AM as mob|obj) +/obj/item/shard/Crossed(AM as mob|obj, oldloc) if(isliving(AM)) var/mob/living/M = AM if(M.incorporeal_move || M.flying || M.throwing)//you are incorporal or flying or being thrown ..no shard stepping! diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 03b0172c959..2037293d734 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -452,7 +452,7 @@ icon_closed = transparent ? "bluespacetrans" : "bluespace" icon_state = opened ? icon_opened : icon_closed -/obj/structure/closet/bluespace/Crossed(atom/movable/AM) +/obj/structure/closet/bluespace/Crossed(atom/movable/AM, oldloc) if(AM.density) icon_state = opened ? "bluespaceopentrans" : "bluespacetrans" diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 999e90cd89f..ac013ebcf93 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -377,7 +377,7 @@ qdel(i) . = ..() -/obj/structure/table/glass/Crossed(atom/movable/AM) +/obj/structure/table/glass/Crossed(atom/movable/AM, oldloc) . = ..() if(!can_deconstruct) return diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 726d9a88a7f..ada70921c99 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -363,7 +363,7 @@ qdel(mymist) ismist = 0 -/obj/machinery/shower/Crossed(atom/movable/O) +/obj/machinery/shower/Crossed(atom/movable/O, oldloc) ..() wash(O) if(ismob(O)) diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 2c5a2d28883..058dd4cd0f2 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -77,9 +77,9 @@ if(bombassembly) bombassembly.HasProximity(AM) -/obj/item/onetankbomb/Crossed(atom/movable/AM) //for mousetraps +/obj/item/onetankbomb/Crossed(atom/movable/AM, oldloc) //for mousetraps if(bombassembly) - bombassembly.Crossed(AM) + bombassembly.Crossed(AM, oldloc) /obj/item/onetankbomb/on_found(mob/finder) //for mousetraps if(bombassembly) diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index f2fde8df758..d19682d1eb9 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -85,11 +85,11 @@ a_right.HasProximity(AM) -/obj/item/assembly_holder/Crossed(atom/movable/AM) +/obj/item/assembly_holder/Crossed(atom/movable/AM, oldloc) if(a_left) - a_left.Crossed(AM) + a_left.Crossed(AM, oldloc) if(a_right) - a_right.Crossed(AM) + a_right.Crossed(AM, oldloc) /obj/item/assembly_holder/on_found(mob/finder) if(a_left) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 98e59a7cbb5..37f5916d535 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -269,7 +269,7 @@ /obj/effect/beam/i_beam/Bumped() hit() -/obj/effect/beam/i_beam/Crossed(atom/movable/AM) +/obj/effect/beam/i_beam/Crossed(atom/movable/AM, oldloc) if(!isobj(AM) && !isliving(AM)) return if(istype(AM, /obj/effect)) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 09e049b3921..258212f0ab6 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -93,7 +93,7 @@ return ..() -/obj/item/assembly/mousetrap/Crossed(atom/movable/AM) +/obj/item/assembly/mousetrap/Crossed(atom/movable/AM, oldloc) if(armed) if(ishuman(AM)) var/mob/living/carbon/H = AM diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index ef576760ada..ca79a1ea2a6 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -140,7 +140,7 @@ /obj/effect/meatgrinder/New() icon_state = "blobpod" -/obj/effect/meatgrinder/Crossed(AM as mob|obj) +/obj/effect/meatgrinder/Crossed(AM as mob|obj, oldloc) Bumped(AM) /obj/effect/meatgrinder/Bumped(mob/M as mob|obj) diff --git a/code/modules/awaymissions/zvis.dm b/code/modules/awaymissions/zvis.dm index de60531e590..102554f2e6e 100644 --- a/code/modules/awaymissions/zvis.dm +++ b/code/modules/awaymissions/zvis.dm @@ -65,7 +65,7 @@ STOP_PROCESSING(SSobj, src) return ..() -/obj/effect/portal_sensor/Crossed(A) +/obj/effect/portal_sensor/Crossed(A, oldloc) trigger() /obj/effect/portal_sensor/Uncrossed(A) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index ced084f05a3..9199d8ca3bd 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -514,7 +514,7 @@ /obj/structure/spacevine/obj_destruction() wither() -/obj/structure/spacevine/Crossed(mob/crosser) +/obj/structure/spacevine/Crossed(mob/crosser, oldloc) if(isliving(crosser)) for(var/datum/spacevine_mutation/SM in mutations) SM.on_cross(src, crosser) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 6be1d3bcf70..af366683570 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -589,7 +589,7 @@ Gunshots/explosions/opening doors/less rare audio (done) health -= P.force return -/obj/effect/fake_attacker/Crossed(mob/M, somenumber) +/obj/effect/fake_attacker/Crossed(mob/M, oldloc) if(M == my_target) step_away(src,my_target,2) if(prob(30)) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 7b84956a804..361c305bb8d 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -151,7 +151,7 @@ T.on_consume(src, usr) ..() -/obj/item/reagent_containers/food/snacks/grown/Crossed(atom/movable/AM) +/obj/item/reagent_containers/food/snacks/grown/Crossed(atom/movable/AM, oldloc) if(seed) for(var/datum/plant_gene/trait/T in seed.genes) T.on_cross(src, AM) diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 461781503e2..33ef72db471 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -160,7 +160,7 @@ ..() StartBurning() -/obj/structure/bonfire/Crossed(atom/movable/AM) +/obj/structure/bonfire/Crossed(atom/movable/AM, oldloc) if(burning) Burn() diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index d8938683d75..b665f171285 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -51,7 +51,7 @@ return 0 -/obj/item/grown/Crossed(atom/movable/AM) +/obj/item/grown/Crossed(atom/movable/AM, oldloc) if(seed) for(var/datum/plant_gene/trait/T in seed.genes) T.on_cross(src, AM) diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index c8f4739d13a..d9747a3a1f4 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -148,7 +148,7 @@ regrowth_time_low = 4800 regrowth_time_high = 7200 -/obj/structure/flora/ash/cacti/Crossed(mob/AM) +/obj/structure/flora/ash/cacti/Crossed(mob/AM, oldloc) if(ishuman(AM) && has_gravity(loc) && prob(70)) var/mob/living/carbon/human/H = AM if(!H.shoes && !H.lying) //ouch, my feet. diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index c1f474ccd64..ecf394a8734 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -31,7 +31,7 @@ else if(W.isOn()) to_chat(user, "Not enough fuel to smelt [src].") -/obj/item/stack/ore/Crossed(atom/movable/AM) +/obj/item/stack/ore/Crossed(atom/movable/AM, oldloc) var/obj/item/storage/bag/ore/OB var/turf/simulated/floor/F = get_turf(src) if(loc != F) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 04dcb0c60ef..78bc0004b15 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -72,7 +72,7 @@ var/const/MAX_ACTIVE_TIME = 400 /obj/item/clothing/mask/facehugger/equipped(mob/M) Attach(M) -/obj/item/clothing/mask/facehugger/Crossed(atom/target) +/obj/item/clothing/mask/facehugger/Crossed(atom/target, oldloc) HasProximity(target) return diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6481f6bc04a..643319dc8dd 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -453,7 +453,7 @@ popup.open() -/mob/living/carbon/human/Crossed(atom/movable/AM) +/mob/living/carbon/human/Crossed(atom/movable/AM, oldloc) var/mob/living/simple_animal/bot/mulebot/MB = AM if(istype(MB)) MB.RunOver(src) diff --git a/code/modules/mob/living/simple_animal/bot/griefsky.dm b/code/modules/mob/living/simple_animal/bot/griefsky.dm index 67c3780fac0..4dc50fca8f8 100644 --- a/code/modules/mob/living/simple_animal/bot/griefsky.dm +++ b/code/modules/mob/living/simple_animal/bot/griefsky.dm @@ -48,7 +48,7 @@ ..() light_color = LIGHT_COLOR_PURE_RED //if you see a red one. RUN!! -/mob/living/simple_animal/bot/secbot/griefsky/Crossed(atom/movable/AM) +/mob/living/simple_animal/bot/secbot/griefsky/Crossed(atom/movable/AM, oldloc) ..() if(ismob(AM) && AM == target) var/mob/living/carbon/C = AM diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index 45b10950669..3499ae06649 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -298,7 +298,7 @@ target = user mode = BOT_HUNT -/mob/living/simple_animal/bot/honkbot/Crossed(atom/movable/AM) +/mob/living/simple_animal/bot/honkbot/Crossed(atom/movable/AM, oldloc) if(ismob(AM) && on) //only if its online if(prob(30)) //you're far more likely to trip on a honkbot var/mob/living/carbon/C = AM diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 14a72c43fac..ea559fdc597 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -439,7 +439,7 @@ Auto Patrol: []"}, target = user mode = BOT_HUNT -/mob/living/simple_animal/bot/secbot/Crossed(atom/movable/AM) +/mob/living/simple_animal/bot/secbot/Crossed(atom/movable/AM, oldloc) if(ismob(AM) && target) var/mob/living/carbon/C = AM if(!istype(C) || !C || in_range(src, target)) diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index 5be21c8646e..b52140922f1 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -24,7 +24,7 @@ /mob/living/simple_animal/cockroach/can_die() return ..() && !SSticker.cinematic //If the nuke is going off, then cockroaches are invincible. Keeps the nuke from killing them, cause cockroaches are immune to nukes. -/mob/living/simple_animal/cockroach/Crossed(var/atom/movable/AM) +/mob/living/simple_animal/cockroach/Crossed(var/atom/movable/AM, oldloc) if(isliving(AM)) var/mob/living/A = AM if(A.mob_size > MOB_SIZE_SMALL) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 4faa821701c..cbc125beeab 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -91,7 +91,7 @@ to_chat(src, "You are too small to pull anything.") return -/mob/living/simple_animal/mouse/Crossed(AM as mob|obj) +/mob/living/simple_animal/mouse/Crossed(AM as mob|obj, oldloc) if(ishuman(AM)) if(!stat) var/mob/M = AM diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 6af11b10b14..6caee40ba80 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -526,7 +526,7 @@ Difficulty: Hard sleep(1.3) //slightly forgiving; the burst animation is 1.5 deciseconds bursting = FALSE //we no longer damage crossers -/obj/effect/temp_visual/hierophant/blast/Crossed(atom/movable/AM) +/obj/effect/temp_visual/hierophant/blast/Crossed(atom/movable/AM, oldloc) ..() if(bursting) do_damage(get_turf(src)) diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index e2c9194abc5..52ec406fcbd 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -36,7 +36,7 @@ desc = "A thick vine, painful to the touch." -/obj/effect/ebeam/vine/Crossed(atom/movable/AM) +/obj/effect/ebeam/vine/Crossed(atom/movable/AM, oldloc) if(isliving(AM)) var/mob/living/L = AM if(!("vines" in L.faction)) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 6c8eba8fb62..89e37b88c5c 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -33,11 +33,10 @@ return 0 -/obj/machinery/field/containment/Crossed(mob/mover) +/obj/machinery/field/containment/Crossed(mob/mover, oldloc) if(isliving(mover)) shock_field(mover) -/obj/machinery/field/containment/Crossed(obj/mover) if(istype(mover, /obj/machinery) || istype(mover, /obj/structure) || istype(mover, /obj/mecha)) bump_field(mover) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 420a112c352..b2f172deb72 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -287,7 +287,7 @@ field_generator power level display fields += CF G.fields += CF for(var/mob/living/L in T) - CF.Crossed(L) + CF.Crossed(L, null) connected_gens |= G G.connected_gens |= src diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index 2b6695b9e85..befb2a4931a 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -39,7 +39,7 @@ var/obj/singularity/S = A S.energy += energy -/obj/effect/accelerated_particle/Crossed(atom/A) +/obj/effect/accelerated_particle/Crossed(atom/A, oldloc) if(isliving(A)) toxmob(A) diff --git a/code/modules/power/supermatter/sm_shard.dm b/code/modules/power/supermatter/sm_shard.dm index 1d946fee0c8..c5d7549e0a7 100644 --- a/code/modules/power/supermatter/sm_shard.dm +++ b/code/modules/power/supermatter/sm_shard.dm @@ -41,7 +41,7 @@ playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) return ..() -/obj/item/shard/supermatter/Crossed(AM as mob|obj) +/obj/item/shard/supermatter/Crossed(AM as mob|obj, oldloc) if(ismob(AM)) var/mob/M = AM to_chat(M, "You step on \the [src]!") diff --git a/code/modules/power/treadmill.dm b/code/modules/power/treadmill.dm index 1548738f3f5..36f3ac15df4 100644 --- a/code/modules/power/treadmill.dm +++ b/code/modules/power/treadmill.dm @@ -25,7 +25,7 @@ /obj/machinery/power/treadmill/update_icon() icon_state = speed ? "conveyor-1" : "conveyor0" -/obj/machinery/power/treadmill/Crossed(mob/living/M) +/obj/machinery/power/treadmill/Crossed(mob/living/M, oldloc) if(anchored && !M.anchored) if(!istype(M) || M.dir != dir) throw_off(M) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 949983d45ba..a8d368d6aef 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -281,7 +281,7 @@ Range() sleep(1) -obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. +obj/item/projectile/Crossed(atom/movable/AM, oldloc) //A mob moving on a tile with a projectile is hit by it. ..() if(isliving(AM) && AM.density && !checkpass(PASSMOB)) Bump(AM, 1) diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm index 1d6f46bf46c..d408db7f2f0 100644 --- a/code/modules/reagents/reagent_containers/glass_containers.dm +++ b/code/modules/reagents/reagent_containers/glass_containers.dm @@ -247,9 +247,9 @@ if(assembly) assembly.HasProximity(AM) -/obj/item/reagent_containers/glass/beaker/Crossed(atom/movable/AM) +/obj/item/reagent_containers/glass/beaker/Crossed(atom/movable/AM, oldloc) if(assembly) - assembly.Crossed(AM) + assembly.Crossed(AM, oldloc) /obj/item/reagent_containers/glass/beaker/on_found(mob/finder) //for mousetraps if(assembly) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index e06a0dcb3fb..fc9d5d56134 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -187,9 +187,9 @@ if(rig) rig.HasProximity(AM) -/obj/structure/reagent_dispensers/fueltank/Crossed(atom/movable/AM) +/obj/structure/reagent_dispensers/fueltank/Crossed(atom/movable/AM, oldloc) if(rig) - rig.Crossed(AM) + rig.Crossed(AM, oldloc) /obj/structure/reagent_dispensers/fueltank/hear_talk(mob/living/M, list/message_pieces) if(rig) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 5d3a3536d62..933f223d120 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(conveyor_switches, list()) else if(still_stuff_to_move && !speed_process) makeSpeedProcess() -/obj/machinery/conveyor/Crossed(atom/movable/AM) +/obj/machinery/conveyor/Crossed(atom/movable/AM, oldloc) if(!speed_process && !AM.anchored) makeSpeedProcess() ..() diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index a725d3d5d5f..3c9f093921e 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -266,7 +266,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) /obj/structure/stone_tile/singularity_pull() return -/obj/structure/stone_tile/Crossed(atom/movable/AM) +/obj/structure/stone_tile/Crossed(atom/movable/AM, oldloc) if(falling || fallen) return var/turf/T = get_turf(src) @@ -310,7 +310,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) falling = FALSE fallen = FALSE -/obj/structure/stone_tile/proc/crossed_effect(atom/movable/AM) +/obj/structure/stone_tile/proc/crossed_effect(atom/movable/AM, oldloc) return /obj/structure/stone_tile/block