From ff32f311e2b6c554e4f7b91ad42cee44abdd9c40 Mon Sep 17 00:00:00 2001 From: cflip Date: Wed, 23 Mar 2022 17:58:47 -0600 Subject: Reallocate tilemap on level load This prevents some issues with loading levels that are larger than the current one. --- src/level.cpp | 10 ++++++++-- 1 file 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; -- cgit v1.2.3