summaryrefslogtreecommitdiffhomepage
path: root/src/scenery.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/scenery.cpp')
-rw-r--r--src/scenery.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/scenery.cpp b/src/scenery.cpp
index 1696f248..778c274b 100644
--- a/src/scenery.cpp
+++ b/src/scenery.cpp
@@ -88,21 +88,23 @@ Vector2 scenery::ordinal_offset(Vector2b offset) const
return Vector2(offset);
}
-Vector2 scenery::depth_offset() const
+float scenery::depth_offset() const
{
constexpr auto inv_tile_size = 1.f/TILE_SIZE2;
- Vector2 ret;
- ret += Vector2(atlas->group(r).depth_offset) * inv_tile_size;
+ Vector2 offset;
+ offset += Vector2(atlas->group(r).depth_offset) * inv_tile_size;
if (sc_type == scenery_type::door)
{
const bool is_open = frame != atlas->info().nframes-1;
constexpr auto off_opened = Vector2(-1, 0);
constexpr auto off_closed = Vector2(-1, 0);
const auto vec = is_open ? off_opened : off_closed;
- const auto offset = rotate_point(vec, rotation::N, r);
- ret += offset;
+ const auto pt = rotate_point(vec, rotation::N, r);
+ offset += pt;
}
- ret += Vector2(tile_shader::scenery_depth_offset, 0);
+ float ret = 0;
+ ret += offset[1]*TILE_MAX_DIM + offset[0];
+ ret += tile_shader::scenery_depth_offset;
return ret;
}