bound_width and bound_height are not kept account of properly when the atom is either moved , has its loc set , or when the map_x and map_Y bounds are increased
Numbered Steps to Reproduce Problem:
1)Make an atom , change its bound width to 2x world.icon_size
2)Either increase world.maxx and try to check if the turfs to the right contain it(which they won't) , or move the object to another location (either with move or .loc = ) which also won't update its bounds
Code Snippet (if applicable) to Reproduce Problem:
world.maxx = world.maxy = world.maxz = 1
var/obj/o = new/obj()
o.bound_height = o.bound_width = 64
o.loc = locate(1,1,1)
world.maxx = world.maxy = 2
world.log << "Unmoved:"
for(var/turf/t in world)
world.log << "([t.x],[t.y],[t.z]) [(o in t) ? "good" : "bugged"]"
world.log << "Moved:"
o.loc = null
sleep(world.tick_lag)
o.loc = locate(1,1,1)
for(var/turf/t in world)
world.log << "([t.x],[t.y],[t.z]) [(o in t) ? "good" : "bugged"]"
Expected Results:
The newly created turfs or the ones near the new location containing the atom in their contents list as expected
Actual Results:
The new turfs or the ones near the new location do not contain the atom , only the one to which it is moved
Does the problem occur:
Every time on any BYOND version.
When does the problem NOT occur?
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
Workarounds:
Reset atom bounds and set them back to the increased values to force a update.