summaryrefslogtreecommitdiffhomepage
path: root/src/wall-atlas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wall-atlas.cpp')
-rw-r--r--src/wall-atlas.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/wall-atlas.cpp b/src/wall-atlas.cpp
index 1d043db0..49b00311 100644
--- a/src/wall-atlas.cpp
+++ b/src/wall-atlas.cpp
@@ -214,19 +214,16 @@ auto wall_atlas::calc_direction(Direction_ dir) const -> const Direction&
if (auto dai = _direction_map[(size_t)dir]) [[likely]]
return _dir_array[dai.val];
CORRADE_ASSUME(dir < Direction_::COUNT);
+ Direction_ other;
switch (dir)
{
- case Direction_::N:
- if (auto dai = _direction_map[(size_t)Direction_::W])
- return _dir_array[dai.val];
- break;
- case Direction_::W:
+ case Direction_::N: other = Direction_::W; break;
+ case Direction_::W: other = Direction_::N; break;
+ default: other = Direction_::COUNT;
+ }
+ if (other != Direction_::COUNT)
if (auto dai = _direction_map[(size_t)Direction_::N])
return _dir_array[dai.val];
- break;
- case Direction_::COUNT:
- std::unreachable();
- }
fm_abort("wall_atlas: can't find direction '%d'", (int)dir);
}