I was testing around with isometric and the new pixel movement system, seeing as i havent been on Byond in over a year. Everything was going well, until I added a "RotateCameraLeft" verb. Directions, North, East and South were fine, however I discovered this in West:
Screenshot
I saw this, and re-tested it in the other 3 directions, and it was fine. This happened with both of the "bottom" edges.
Numbered Steps to Reproduce Problem:
1. Set client.dir = WEST
2. Set up an isometric world
3. Set step_size for the mob to 8
4. Create an isometric turf and a mob with bounding sizes: x/y:8, height/width:16
5. Run the world and move into position.
Code Snippet (if applicable) to Reproduce Problem:
world
fps = 60 // 25 frames per second
icon_size = 32 // 32x32 icon size by default
view = 3 // show up to 6 tiles outward from center (13x13 view)
map_format = ISOMETRIC_MAP
// Make objects move 8 pixels per tick when walking
mob
step_size = 8
bound_x = 8
bound_y = 8
bound_width = 16
bound_height = 16
verb
RotateCameraLeft()
var/client/C = usr.client
if(C.dir == NORTH)
C.dir = EAST
else if(C.dir == EAST)
C.dir = SOUTH
else if(C.dir == SOUTH)
C.dir = WEST
else if(C.dir == WEST)
C.dir = NORTH
OutputClientDir()
src << src.client.dir
Expected Results:
Mob appears in front of tiles
Actual Results:
Mob appears behind tiles
Does the problem occur:
Every time? Or how often?
Every time when client.dir = WEST
In other games?
Yes
In other user accounts?
Yes
On other computers?
Yes
When does the problem NOT occur?
When client.dir != WEST
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.)
Unsure. Only recently returned to BYOND
Workarounds:
Unknown