ID:2927664
 
Not a bug
BYOND Version:515
Operating System:Windows 11 Pro
Web Browser:Chrome 125.0.0.0
Applies to:Dream Seeker
Status: Not a bug

This is not a bug. It may be an incorrect use of syntax or a limitation in the software. For further discussion on the matter, please consult the BYOND forums.
Descriptive Problem Summary:
When there are multiple atoms in the same loc that are all dense, it will ignore Cross even if it is returning 1.

Numbered Steps to Reproduce Problem:
Have a dense /turf or /obj and then place a dense /mob on top of it. Make sure the turf or obj has Cross defined to always pass. Then attempt to bump into the turf/obj and mob.

Code Snippet (if applicable) to Reproduce Problem:
obj
icon = 'stick.dmi'
layer = 1
density = 1

var/CanPassDespiteDense = 1

New()
..()
new /mob(loc)

Cross(atom/movable/A)
if(CanPassDespiteDense)
return 1

mob
icon = 'player.dmi'
layer = 1
alpha = 120
density = 1
Bump(atom/movable/A)
world << "Bumped into [A.type]."


Expected Results:
It should bump into the mob instead of the obj as they are both on the same tile and the Cross makes the obj passable.

Actual Results:
It bumps into the obj.
If you're using legacy movement mode and the objects cover an entire tile, this is expected behavior.

To change this behavior, use world/movement_mode = PIXEL_MOVEMENT_MODE.
Lummox JR resolved issue (Not a bug)