summaryrefslogtreecommitdiff
path: root/src/map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/map.cpp')
-rw-r--r--src/map.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/map.cpp b/src/map.cpp
index 4ae44930a..00655a42e 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -22,7 +22,8 @@ uint _map_size_y;
uint _map_tile_mask;
uint _map_size;
-Tile* _m = NULL;
+Tile *_m = NULL;
+TileExtended *_me = NULL;
void AllocateMap(uint size_x, uint size_y)
@@ -44,10 +45,16 @@ void AllocateMap(uint size_x, uint size_y)
_map_tile_mask = _map_size - 1;
free(_m);
+ free(_me);
+
_m = CallocT<Tile>(_map_size);
+ _me = CallocT<TileExtended>(_map_size);
- /* XXX TODO handle memory shortage more gracefully */
- if (_m == NULL) error("Failed to allocate memory for the map");
+ /* XXX @todo handle memory shortage more gracefully
+ * Maybe some attemps could be made to try with smaller maps down to 64x64
+ * Maybe check for available memory before doing the calls, after all, we know how big
+ * the map is */
+ if ((_m == NULL) || (_me == NULL)) error("Failed to allocate memory for the map");
}