Fix crash if region map tileset file is too small
This commit is contained in:
parent
1c2be70ff0
commit
79955715dd
1 changed files with 7 additions and 2 deletions
|
@ -79,12 +79,17 @@ bool RegionMap::loadTilemap(poryjson::Json tilemapJson) {
|
|||
this->palette_path = tilemapObject["palette"].string_value();
|
||||
}
|
||||
|
||||
QFileInfo tilesetFileInfo(fullPath(this->tileset_path));
|
||||
if (!tilesetFileInfo.exists() || !tilesetFileInfo.isFile()) {
|
||||
QImage tilesetFile(fullPath(this->tileset_path));
|
||||
if (tilesetFile.isNull()) {
|
||||
logError(QString("Failed to open region map tileset file '%1'.").arg(tileset_path));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (tilesetFile.width() < 8 || tilesetFile.height() < 8) {
|
||||
logError(QString("Region map tileset file '%1' must be at least 8x8.").arg(tileset_path));
|
||||
return false;
|
||||
}
|
||||
|
||||
QFile tilemapFile(fullPath(this->tilemap_path));
|
||||
if (!tilemapFile.open(QIODevice::ReadOnly)) {
|
||||
logError(QString("Failed to open region map tilemap file '%1'.").arg(tilemap_path));
|
||||
|
|
Loading…
Reference in a new issue