diff options
Diffstat (limited to 'src/scenery.cpp')
-rw-r--r-- | src/scenery.cpp | 14 |
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; } |