diff --git a/code/LINDA/LINDA_fire.dm b/code/LINDA/LINDA_fire.dm
index 3198264cd64..52d6a5c310b 100644
--- a/code/LINDA/LINDA_fire.dm
+++ b/code/LINDA/LINDA_fire.dm
@@ -175,7 +175,7 @@
air_update_turf()
return
-/obj/effect/hotspot/HasEntered(mob/living/L)
+/obj/effect/hotspot/Crossed(mob/living/L)
..()
if(isliving(L))
L.fire_act()
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index c312f18125e..257b52e098e 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -207,7 +207,7 @@
icon_state = "beartrap[armed]"
user << "[src] is now [armed ? "armed" : "disarmed"]"
-/obj/item/weapon/legcuffs/beartrap/HasEntered(AM as mob|obj)
+/obj/item/weapon/legcuffs/beartrap/Crossed(AM as mob|obj)
if(armed)
if(ishuman(AM))
if(isturf(src.loc))
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 950a4879299..b46ca1656b1 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -91,9 +91,6 @@
/atom/proc/CheckExit()
return 1
-/atom/proc/HasEntered(atom/movable/AM as mob|obj)
- return
-
/atom/proc/HasProximity(atom/movable/AM as mob|obj)
return
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index ddf101acff1..7d60cc494f6 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -23,6 +23,11 @@
src.last_move = get_dir(A, src.loc)
return
+// Previously known as HasEntered()
+// This is automatically called when something enters your square
+/atom/movable/Crossed(atom/movable/AM)
+ return
+
/atom/movable/Bump(var/atom/A as mob|obj|turf|area, yes)
if(src.throwing)
src.throw_impact(A)
@@ -41,6 +46,8 @@
loc.Exited(src)
loc = destination
loc.Entered(src)
+ for(var/atom/movable/AM in loc)
+ AM.Crossed(src)
return 1
return 0
diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm
index e3c3b9fa372..131e1640714 100644
--- a/code/game/gamemodes/cult/cult_structures.dm
+++ b/code/game/gamemodes/cult/cult_structures.dm
@@ -50,7 +50,7 @@
return
return
-/obj/effect/gateway/HasEntered(AM as mob|obj)
+/obj/effect/gateway/Crossed(AM as mob|obj)
spawn(0)
return
return
\ No newline at end of file
diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm
index 8aa91815892..39724935e36 100644
--- a/code/game/machinery/bots/mulebot.dm
+++ b/code/game/machinery/bots/mulebot.dm
@@ -730,7 +730,7 @@ var/global/mulebot_count = 0
return get_turf(src)
-// called from mob/living/carbon/human/HasEntered()
+// called from mob/living/carbon/human/Crossed()
// when mulebot is in the same loc
/obj/machinery/bot/mulebot/proc/RunOver(var/mob/living/carbon/human/H)
src.visible_message("\red [src] drives over [H]!")
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index d5da74c5696..3fefc66c150 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -116,7 +116,7 @@
/*
//Allow you to push disposal pipes into it (for those with density 1)
-/obj/machinery/pipedispenser/disposal/HasEntered(var/obj/structure/disposalconstruct/pipe as obj)
+/obj/machinery/pipedispenser/disposal/Crossed(var/obj/structure/disposalconstruct/pipe as obj)
if(istype(pipe) && !pipe.anchored)
del(pipe)
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index d18d6d90946..997f795b69f 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -49,7 +49,7 @@ var/const/SAFETY_COOLDOWN = 100
/obj/machinery/recycler/Bumped(var/atom/movable/AM)
- // HasEntered didn't like people lying down.
+ // Crossed didn't like people lying down.
if(stat & (BROKEN|NOPOWER))
return
if(safety_mode)
diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm
index b8f02a51015..b0b6f200316 100644
--- a/code/game/machinery/transformer.dm
+++ b/code/game/machinery/transformer.dm
@@ -33,7 +33,7 @@
if(cooldown == 1)
return
- // HasEntered didn't like people lying down.
+ // Crossed didn't like people lying down.
if(ishuman(AM))
// Only humans can enter from the west side, while lying down.
var/move_dir = get_dir(loc, AM.loc)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index f135584b4ca..28a5c1c8c77 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -330,7 +330,7 @@
var/obj/O = obstacle
if(istype(O, /obj/effect/portal)) //derpfix
src.anchored = 0
- O.HasEntered(src)
+ O.Crossed(src)
spawn(0)//countering portal teleport spawn(0), hurr
src.anchored = 1
else if(!O.anchored)
diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm
index 891362acf88..52caa19ef80 100644
--- a/code/game/objects/effects/effect_system.dm
+++ b/code/game/objects/effects/effect_system.dm
@@ -375,7 +375,7 @@ steam.start() -- spawns the effect
return 1
-/obj/effect/effect/bad_smoke/HasEntered(mob/living/carbon/M as mob )
+/obj/effect/effect/bad_smoke/Crossed(mob/living/carbon/M as mob )
..()
if(istype(M, /mob/living/carbon))
if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS))
@@ -465,7 +465,7 @@ steam.start() -- spawns the effect
return
-/obj/effect/effect/chem_smoke/HasEntered(mob/living/carbon/M as mob )
+/obj/effect/effect/chem_smoke/Crossed(mob/living/carbon/M as mob )
..()
reagents.reaction(M)
@@ -598,7 +598,7 @@ steam.start() -- spawns the effect
M.coughedtime = 0
return
-/obj/effect/effect/sleep_smoke/HasEntered(mob/living/carbon/M as mob )
+/obj/effect/effect/sleep_smoke/Crossed(mob/living/carbon/M as mob )
..()
if(istype(M, /mob/living/carbon))
if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS))
@@ -840,7 +840,7 @@ steam.start() -- spawns the effect
delete()
-/obj/effect/effect/foam/HasEntered(var/atom/movable/AM)
+/obj/effect/effect/foam/Crossed(var/atom/movable/AM)
if(metal)
return
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index 3b507a5fb1f..b658407247c 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -12,7 +12,7 @@
/obj/effect/mine/New()
icon_state = "uglyminearmed"
-/obj/effect/mine/HasEntered(AM as mob|obj)
+/obj/effect/mine/Crossed(AM as mob|obj)
Bumped(AM)
/obj/effect/mine/Bumped(mob/M as mob|obj)
diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm
index 3439283e481..5700563ee2a 100644
--- a/code/game/objects/effects/portals.dm
+++ b/code/game/objects/effects/portals.dm
@@ -16,7 +16,7 @@
return
return
-/obj/effect/portal/HasEntered(AM as mob|obj)
+/obj/effect/portal/Crossed(AM as mob|obj)
spawn(0)
src.teleport(AM)
return
diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm
index 632fea9bd4e..cd9142bdc0b 100644
--- a/code/game/objects/effects/step_triggers.dm
+++ b/code/game/objects/effects/step_triggers.dm
@@ -9,7 +9,7 @@
/obj/effect/step_trigger/proc/Trigger(var/atom/movable/A)
return 0
-/obj/effect/step_trigger/HasEntered(H as mob|obj)
+/obj/effect/step_trigger/Crossed(H as mob|obj)
..()
if(!H)
return
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index de638acafd4..ce29a452d80 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -967,7 +967,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
src.id.loc = get_turf(src.loc)
..()
-/obj/item/device/pda/clown/HasEntered(AM as mob|obj) //Clown PDA is slippery.
+/obj/item/device/pda/clown/Crossed(AM as mob|obj) //Clown PDA is slippery.
if (istype(AM, /mob/living/carbon))
var/mob/M = AM
if ((istype(M, /mob/living/carbon/human) && (istype(M:shoes, /obj/item/clothing/shoes) && M:shoes.flags&NOSLIP)) || M.m_intent == "walk")
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index ef821073ee0..9b752a8c62a 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -304,7 +304,7 @@
del(src)
..()
-/obj/item/weapon/shard/HasEntered(var/mob/AM)
+/obj/item/weapon/shard/Crossed(var/mob/AM)
if(istype(AM))
playsound(loc, 'sound/effects/glass_step.ogg', 50, 1)
if(ishuman(AM))
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 2b3561e95a4..ade5c540ab1 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -443,7 +443,7 @@
playsound(src, 'sound/effects/snap.ogg', 50, 1)
del(src)
-/obj/item/toy/snappop/HasEntered(H as mob|obj)
+/obj/item/toy/snappop/Crossed(H as mob|obj)
if((ishuman(H))) //i guess carp and shit shouldn't set them off
var/mob/living/carbon/M = H
if(M.m_intent == "run")
diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm
index 49f0b2e45f5..47d1846e6ad 100644
--- a/code/game/objects/items/weapons/clown_items.dm
+++ b/code/game/objects/items/weapons/clown_items.dm
@@ -8,7 +8,7 @@
/*
* Banana Peals
*/
-/obj/item/weapon/bananapeel/HasEntered(AM as mob|obj)
+/obj/item/weapon/bananapeel/Crossed(AM as mob|obj)
if (istype(AM, /mob/living/carbon))
var/mob/M = AM
if (istype(M, /mob/living/carbon/human) && (isobj(M:shoes) && M:shoes.flags&NOSLIP))
@@ -23,7 +23,7 @@
/*
* Soap
*/
-/obj/item/weapon/soap/HasEntered(AM as mob|obj) //EXACTLY the same as bananapeel for now, so it makes sense to put it in the same dm -- Urist
+/obj/item/weapon/soap/Crossed(AM as mob|obj) //EXACTLY the same as bananapeel for now, so it makes sense to put it in the same dm -- Urist
if (istype(AM, /mob/living/carbon))
var/mob/M = AM
if (istype(M, /mob/living/carbon/human) && (isobj(M:shoes) && M:shoes.flags&NOSLIP))
diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm
index b74369c249a..697234a6ec3 100644
--- a/code/game/objects/items/weapons/dice.dm
+++ b/code/game/objects/items/weapons/dice.dm
@@ -75,7 +75,7 @@
else if(src.throwing == 0) //Dice was thrown and is coming to rest
src.loc.visible_message("[src] rolls to a stop, landing on [result]. [comment]")
-/obj/item/weapon/dice/d4/HasEntered(var/mob/living/carbon/human/H)
+/obj/item/weapon/dice/d4/Crossed(var/mob/living/carbon/human/H)
if(istype(H) && !H.shoes)
H << "You step on the D4!"
H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg")))
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 516aeb52008..cd5e571e02f 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -128,9 +128,9 @@
if(nadeassembly)
nadeassembly.HasProximity(AM)
-/obj/item/weapon/grenade/chem_grenade/HasEntered(atom/movable/AM)
+/obj/item/weapon/grenade/chem_grenade/Crossed(atom/movable/AM)
if(nadeassembly)
- nadeassembly.HasEntered(AM)
+ nadeassembly.Crossed(AM)
/obj/item/weapon/grenade/chem_grenade/on_found(mob/finder)
if(nadeassembly)
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index cf85e1bead2..303d1ad81f4 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -201,7 +201,7 @@
ismist = 0
-/obj/machinery/shower/HasEntered(atom/movable/O)
+/obj/machinery/shower/Crossed(atom/movable/O)
..()
wash(O)
if(ismob(O))
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 6f660eda079..40e4d1b5e01 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -128,14 +128,6 @@
M:inertia_dir = 0
..()
var/objects = 0
- for(var/atom/A as mob|obj|turf|area in src)
- if(objects > loopsanity) break
- objects++
- spawn( 0 )
- if ((A && M))
- A.HasEntered(M, 1)
- return
- objects = 0
for(var/atom/A as mob|obj|turf|area in range(1))
if(objects > loopsanity) break
objects++
diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm
index 5872c10d28c..678ecce2aa0 100644
--- a/code/modules/assembly/bomb.dm
+++ b/code/modules/assembly/bomb.dm
@@ -73,9 +73,9 @@
if(bombassembly)
bombassembly.HasProximity(AM)
-/obj/item/device/onetankbomb/HasEntered(atom/movable/AM as mob|obj) //for mousetraps
+/obj/item/device/onetankbomb/Crossed(atom/movable/AM as mob|obj) //for mousetraps
if(bombassembly)
- bombassembly.HasEntered(AM)
+ bombassembly.Crossed(AM)
/obj/item/device/onetankbomb/on_found(mob/finder as mob) //for mousetraps
if(bombassembly)
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index e51c77fdc91..6fdc7f2af8a 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -75,11 +75,11 @@
a_right.HasProximity(AM)
- HasEntered(atom/movable/AM as mob|obj)
+ Crossed(atom/movable/AM as mob|obj)
if(a_left)
- a_left.HasEntered(AM)
+ a_left.Crossed(AM)
if(a_right)
- a_right.HasEntered(AM)
+ a_right.Crossed(AM)
on_found(mob/finder as mob)
if(a_left)
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index d8ccc0d9ce5..9bedd1cb957 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -261,7 +261,7 @@
hit()
return
-/obj/effect/beam/i_beam/HasEntered(atom/movable/AM as mob|obj)
+/obj/effect/beam/i_beam/Crossed(atom/movable/AM as mob|obj)
if(istype(AM, /obj/effect/beam))
return
spawn(0)
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 702b33e00d5..61cce72718b 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -96,7 +96,7 @@
..()
- HasEntered(var/atom/movable/AM as mob|obj)
+ Crossed(var/atom/movable/AM as mob|obj)
if(armed)
if(ishuman(AM))
var/mob/living/carbon/H = AM
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index 5a3205749e1..fa52672e885 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -250,7 +250,7 @@ proc/check_panel(mob/M)
return
- HasEntered(var/mob/M, somenumber)
+ Crossed(var/mob/M, somenumber)
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 14f607285c1..d55a809bd3c 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -677,7 +677,7 @@
del(src)
return
-/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato/HasEntered(AM as mob|obj)
+/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato/Crossed(AM as mob|obj)
if (istype(AM, /mob/living/carbon))
var/mob/M = AM
if (istype(M, /mob/living/carbon/human) && (isobj(M:shoes) && M:shoes.flags&NOSLIP))
@@ -968,4 +968,4 @@
spawn(5) //So potency can be set in the proc that creates these crops
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
reagents.add_reagent("singulo", 1+round((potency / 5), 1))
- bitesize = 1+round(reagents.total_volume / 2, 1)
+ bitesize = 1+round(reagents.total_volume / 2, 1)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 6052046534f..c3d966405f0 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -87,7 +87,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(NewLoc)
loc = NewLoc
for(var/obj/effect/step_trigger/S in NewLoc)
- S.HasEntered(src)
+ S.Crossed(src)
return
loc = get_turf(src) //Get out of closets and such as a ghost
@@ -101,7 +101,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
x--
for(var/obj/effect/step_trigger/S in locate(x, y, z)) //<-- this is dumb
- S.HasEntered(src)
+ S.Crossed(src)
/mob/dead/observer/examine()
if(usr)
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index 09123ac0670..a37b3483a60 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -70,7 +70,7 @@ var/const/MAX_ACTIVE_TIME = 400
/obj/item/clothing/mask/facehugger/equipped(mob/M)
Attach(M)
-/obj/item/clothing/mask/facehugger/HasEntered(atom/target)
+/obj/item/clothing/mask/facehugger/Crossed(atom/target)
HasProximity(target)
return
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 372e6893efc..e10c86e18b1 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -363,7 +363,7 @@
// called when something steps onto a human
// this could be made more general, but for now just handle mulebot
-/mob/living/carbon/human/HasEntered(var/atom/movable/AM)
+/mob/living/carbon/human/Crossed(var/atom/movable/AM)
var/obj/machinery/bot/mulebot/MB = AM
if(istype(MB))
MB.RunOver(src)
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 0d1c2700ef8..b55d2fe889a 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -40,7 +40,7 @@
M.icon_state = src.icon_dead
del (src)
-/mob/living/simple_animal/mouse/HasEntered(AM as mob|obj)
+/mob/living/simple_animal/mouse/Crossed(AM as mob|obj)
if( ishuman(AM) )
if(!stat)
var/mob/M = AM
diff --git a/maps/RandomZLevels/wildwest.dm b/maps/RandomZLevels/wildwest.dm
index ccce8e055ab..dd9015d1714 100644
--- a/maps/RandomZLevels/wildwest.dm
+++ b/maps/RandomZLevels/wildwest.dm
@@ -144,7 +144,7 @@
/obj/effect/meatgrinder/New()
icon_state = "blobpod"
-/obj/effect/meatgrinder/HasEntered(AM as mob|obj)
+/obj/effect/meatgrinder/Crossed(AM as mob|obj)
Bumped(AM)
/obj/effect/meatgrinder/Bumped(mob/M as mob|obj)