From 2be604d6fa0f378693df9e166859be0d4427ee67 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 17 May 2025 13:10:46 -0400 Subject: [PATCH] Add more error handling when loading maps, update libphysis --- apps/mapeditor/src/mapview.cpp | 23 ++++++++++++++++------- extern/libphysis | 2 +- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/apps/mapeditor/src/mapview.cpp b/apps/mapeditor/src/mapview.cpp index 8e6d87e..3c0a262 100644 --- a/apps/mapeditor/src/mapview.cpp +++ b/apps/mapeditor/src/mapview.cpp @@ -49,8 +49,11 @@ void MapView::addTerrain(QString basePath, physis_Terrain terrain) for (uint32_t j = 0; j < plateMdl.num_material_names; j++) { const char *material_name = plateMdl.material_names[j]; - auto mat = physis_material_parse(m_cache.lookupFile(QLatin1String(material_name))); - materials.push_back(mat); + const auto matFile = m_cache.lookupFile(QLatin1String(material_name)); + if (matFile.size > 0) { + auto mat = physis_material_parse(matFile); + materials.push_back(mat); + } } mdlPart->addModel(plateMdl, @@ -78,9 +81,12 @@ void MapView::reloadMap() std::string bgPathStd = bgPath.toStdString() + "terrain.tera"; auto tera_buffer = physis_gamedata_extract_file(m_data, bgPathStd.c_str()); - - auto tera = physis_parse_tera(tera_buffer); - addTerrain(bgPath, tera); + if (tera_buffer.size > 0) { + auto tera = physis_parse_tera(tera_buffer); + addTerrain(bgPath, tera); + } else { + qWarning() << "Failed to load" << bgPathStd; + } // add bg models for (const auto &[name, lgb] : m_appState->lgbFiles) { @@ -111,8 +117,11 @@ void MapView::reloadMap() for (uint32_t j = 0; j < plateMdl.num_material_names; j++) { const char *material_name = plateMdl.material_names[j]; - auto mat = physis_material_parse(m_cache.lookupFile(QLatin1String(material_name))); - materials.push_back(mat); + const auto matFile = m_cache.lookupFile(QLatin1String(material_name)); + if (matFile.size > 0) { + auto mat = physis_material_parse(matFile); + materials.push_back(mat); + } } mdlPart->addModel( diff --git a/extern/libphysis b/extern/libphysis index 92a9a21..a003502 160000 --- a/extern/libphysis +++ b/extern/libphysis @@ -1 +1 @@ -Subproject commit 92a9a217616b8a229871b41cc7ca3e65704dc059 +Subproject commit a003502171ceed7a15d4dad705c68e4447a485e3