From d5ee71540d9225d85b48a8fde35ba4d7e7cf97a5 Mon Sep 17 00:00:00 2001 From: Alexis Maiquez Date: Mon, 24 Aug 2020 17:51:24 +0200 Subject: [PATCH] ~ ignore particle loading errors as the required data is not yet 100% clear + added support for PKGV0009 packages (should fix #24 for @UltraBlackLinux) Signed-off-by: Alexis Maiquez --- src/WallpaperEngine/Core/CObject.cpp | 22 ++++++++++++++------- src/WallpaperEngine/Core/CScene.cpp | 4 +++- src/WallpaperEngine/Irrlicht/CPkgReader.cpp | 6 ++++-- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/WallpaperEngine/Core/CObject.cpp b/src/WallpaperEngine/Core/CObject.cpp index 771acac..e8d9f74 100644 --- a/src/WallpaperEngine/Core/CObject.cpp +++ b/src/WallpaperEngine/Core/CObject.cpp @@ -85,13 +85,21 @@ CObject* CObject::fromJSON (json data) } else if (particle_it != data.end ()) { - object = Objects::CParticle::fromFile ( - (*particle_it).get ().c_str (), - *id_it, - *name_it, - WallpaperEngine::Core::ato3vf (*origin_it), - WallpaperEngine::Core::ato3vf (*scale_it) - ); + /// TODO: XXXHACK -- TO REMOVE WHEN PARTICLE SUPPORT IS PROPERLY IMPLEMENTED + try + { + object = Objects::CParticle::fromFile ( + (*particle_it).get ().c_str (), + *id_it, + *name_it, + WallpaperEngine::Core::ato3vf (*origin_it), + WallpaperEngine::Core::ato3vf (*scale_it) + ); + } + catch (std::runtime_error ex) + { + return nullptr; + } } else { diff --git a/src/WallpaperEngine/Core/CScene.cpp b/src/WallpaperEngine/Core/CScene.cpp index a0d93b0..f47d792 100644 --- a/src/WallpaperEngine/Core/CScene.cpp +++ b/src/WallpaperEngine/Core/CScene.cpp @@ -113,7 +113,9 @@ const std::vector& CScene::getObjects () const void CScene::insertObject (CObject* object) { - this->m_objects.push_back (object); + /// TODO: XXXHACK -- TO REMOVE WHEN PARTICLE SUPPORT IS PROPERLY IMPLEMENTED + if (object != nullptr) + this->m_objects.push_back (object); } const Scenes::CCamera* CScene::getCamera () const diff --git a/src/WallpaperEngine/Irrlicht/CPkgReader.cpp b/src/WallpaperEngine/Irrlicht/CPkgReader.cpp index 2c565b7..9b01d6b 100644 --- a/src/WallpaperEngine/Irrlicht/CPkgReader.cpp +++ b/src/WallpaperEngine/Irrlicht/CPkgReader.cpp @@ -63,7 +63,8 @@ namespace WallpaperEngine::Irrlicht strcmp ("PKGV0007", pointer) != 0 && strcmp ("PKGV0002", pointer) != 0 && strcmp ("PKGV0001", pointer) != 0 && - strcmp ("PKGV0008", pointer) != 0) + strcmp ("PKGV0008", pointer) != 0 && + strcmp ("PKGV0009", pointer) != 0) { delete [] pointer; return false; @@ -115,7 +116,8 @@ namespace WallpaperEngine::Irrlicht strcmp ("PKGV0007", headerVersion) != 0 && strcmp ("PKGV0002", headerVersion) != 0 && strcmp ("PKGV0001", headerVersion) != 0 && - strcmp ("PKGV0008", headerVersion) != 0) + strcmp ("PKGV0008", headerVersion) != 0 && + strcmp ("PKGV0009", headerVersion) != 0) { delete [] headerVersion;