ID:2016671
 
Resolved
Using locate() or looping through area contents missed any movable atoms that overhung the area (i.e., big atoms or atoms with pixel offsets) but whose "true" home turf did not belong to the area.
BYOND Version:509.1319
Operating System:Windows 7 Home Premium 64-bit
Web Browser:Chrome 47.0.2526.106
Applies to:Dream Daemon
Status: Resolved (510.1320)

This issue has been resolved.
Descriptive Problem Summary:
Coming off of this bug, attempting to use locate() to find an object larger than world.icon_size will fail if the source tile of the object is not within an area. The overlapping parts are no longer considered to be "in" the area it seems.

Numbered Steps to Reproduce Problem:
I have put together a demo.

Expected Results:
The object is detected as being within the area.

Actual Results:
The object is not considered to be in the area.

Does the problem occur:
Every time? Or how often? Every time.
In other games? Yes.
In other user accounts? Yes.
On other computers? Yes.

When does the problem NOT occur?
In older versions, or when the workaround is used (see below).

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked?
This worked perfectly fine in 509.1305. As of 509.1319 it no longer detects overlapping parts of a big object.

Workarounds:
Put the source tile of the big object in the area.
Ah, I know the cause of this. It's the alterations made to loops through area contents. Overhangers are not checked as part of the loop, hence why they're getting skipped.

I should be able to add overhangers to this.
This will be fixed in 510.
Lummox JR resolved issue with message:
Using locate() or looping through area contents missed any movable atoms that overhung the area (i.e., big atoms or atoms with pixel offsets) but whose "true" home turf did not belong to the area.