-const Tile &Map::TileAt(const Vector<int> &offset) const {
- const Area &area(AreaAt(offset));
- Vector<int> tileOffset(TileCoordinates(offset) % area.Size());
- return area.TileAt(tileOffset);
+const Tile *Map::TileAt(const Vector<int> &offset) const {
+ const Area *area(AreaAt(offset));
+ if (area) {
+ Vector<int> tileOffset(TileCoordinates(offset) % area->Size());
+ return area->TileAt(tileOffset);
+ } else {
+ return 0;
+ }