diff options
author | cflip <cflip@cflip.net> | 2022-03-23 17:58:47 -0600 |
---|---|---|
committer | cflip <cflip@cflip.net> | 2022-03-23 17:58:47 -0600 |
commit | ff32f311e2b6c554e4f7b91ad42cee44abdd9c40 (patch) | |
tree | a876b1eb3b83294363b24fd445b651cb793bf0ae | |
parent | e088328b1c9679359458a1065c30e0dcfb085021 (diff) |
Reallocate tilemap on level load
This prevents some issues with loading levels that are larger than the
current one.
-rw-r--r-- | src/level.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/level.cpp b/src/level.cpp index bfbf6ae..5fa4619 100644 --- a/src/level.cpp +++ b/src/level.cpp @@ -150,8 +150,14 @@ void Level::load() inputStream.read((char*)&width, 1); inputStream.read((char*)&height, 1); - int size = width * height; - inputStream.read((char*)m_tiles, size); + int oldSize = m_width * m_height; + int newSize = width * height; + if (oldSize != newSize) { + delete[] m_tiles; + m_tiles = new uint8_t[newSize]; + } + + inputStream.read((char*)m_tiles, newSize); inputStream.close(); m_width = width; |