@@ -27,6 +27,19 @@ Level::Level(const nlohmann::json& j, World* w)
2727 m_layers.emplace_back (level, w, this );
2828 }
2929
30+ m_neighbours_by_dir.insert ({Dir::None, {}});
31+ m_neighbours_by_dir.insert ({Dir::North, {}});
32+ m_neighbours_by_dir.insert ({Dir::NorthEast, {}});
33+ m_neighbours_by_dir.insert ({Dir::East, {}});
34+ m_neighbours_by_dir.insert ({Dir::SouthEast, {}});
35+ m_neighbours_by_dir.insert ({Dir::South, {}});
36+ m_neighbours_by_dir.insert ({Dir::SouthWest, {}});
37+ m_neighbours_by_dir.insert ({Dir::West, {}});
38+ m_neighbours_by_dir.insert ({Dir::NorthWest, {}});
39+ m_neighbours_by_dir.insert ({Dir::Over, {}});
40+ m_neighbours_by_dir.insert ({Dir::Under, {}});
41+ m_neighbours_by_dir.insert ({Dir::Overlap, {}});
42+
3043 m_neighbours_iid_by_dir.emplace (Dir::None, 0 );
3144 m_neighbours_iid_by_dir.emplace (Dir::North, 0 );
3245 m_neighbours_iid_by_dir.emplace (Dir::NorthEast, 0 );
@@ -105,6 +118,8 @@ auto Level::allNeighbours() const -> const std::vector<ref_wrapper<const Level>>
105118
106119auto Level::getNeighbours (const Dir& direction) const -> const std::vector<ref_wrapper<const Level>>&
107120{
121+ if (direction == Dir::None)
122+ return {};
108123 return m_neighbours_by_dir.at (direction);
109124}
110125
0 commit comments