mirror of
https://github.com/Almamu/linux-wallpaperengine.git
synced 2025-09-14 13:56:48 +08:00
+ added light element type to the detection list, not supported yet
+ added PKGV0004, PKGV0005, PKGV0006 to the list Signed-off-by: Alexis Maiquez <almamu@almamu.com>
This commit is contained in:
parent
a0ed644491
commit
10191202df
@ -27,6 +27,8 @@ CObject::CObject (
|
|||||||
|
|
||||||
CObject* CObject::fromJSON (json data)
|
CObject* CObject::fromJSON (json data)
|
||||||
{
|
{
|
||||||
|
std::string json = data.dump ();
|
||||||
|
|
||||||
auto id_it = jsonFindRequired (data, "id", "Objects must have id");
|
auto id_it = jsonFindRequired (data, "id", "Objects must have id");
|
||||||
auto visible_it = data.find ("visible");
|
auto visible_it = data.find ("visible");
|
||||||
auto origin_it = jsonFindRequired (data, "origin", "Objects must have origin point");
|
auto origin_it = jsonFindRequired (data, "origin", "Objects must have origin point");
|
||||||
@ -57,6 +59,7 @@ CObject* CObject::fromJSON (json data)
|
|||||||
auto sound_it = data.find ("sound");
|
auto sound_it = data.find ("sound");
|
||||||
auto particle_it = data.find ("particle");
|
auto particle_it = data.find ("particle");
|
||||||
auto text_it = data.find ("text");
|
auto text_it = data.find ("text");
|
||||||
|
auto light_it = data.find ("light");
|
||||||
|
|
||||||
CObject* object = nullptr;
|
CObject* object = nullptr;
|
||||||
|
|
||||||
@ -72,7 +75,7 @@ CObject* CObject::fromJSON (json data)
|
|||||||
WallpaperEngine::Core::ato3vf (*angles_it)
|
WallpaperEngine::Core::ato3vf (*angles_it)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else if (sound_it != data.end ())
|
else if (sound_it != data.end () && (*sound_it).is_null () == false)
|
||||||
{
|
{
|
||||||
object = Objects::CSound::fromJSON (
|
object = Objects::CSound::fromJSON (
|
||||||
data,
|
data,
|
||||||
@ -84,7 +87,7 @@ CObject* CObject::fromJSON (json data)
|
|||||||
WallpaperEngine::Core::ato3vf (*angles_it)
|
WallpaperEngine::Core::ato3vf (*angles_it)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else if (particle_it != data.end ())
|
else if (particle_it != data.end () && (*particle_it).is_null () == false)
|
||||||
{
|
{
|
||||||
/// TODO: XXXHACK -- TO REMOVE WHEN PARTICLE SUPPORT IS PROPERLY IMPLEMENTED
|
/// TODO: XXXHACK -- TO REMOVE WHEN PARTICLE SUPPORT IS PROPERLY IMPLEMENTED
|
||||||
try
|
try
|
||||||
@ -102,11 +105,16 @@ CObject* CObject::fromJSON (json data)
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (text_it != data.end ())
|
else if (text_it != data.end () && (*text_it).is_null () == false)
|
||||||
{
|
{
|
||||||
/// TODO: XXXHACK -- TO REMOVE WHEN TEXT SUPPORT IS IMPLEMENTED
|
/// TODO: XXXHACK -- TO REMOVE WHEN TEXT SUPPORT IS IMPLEMENTED
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
else if (light_it != data.end () && (*light_it).is_null () == false)
|
||||||
|
{
|
||||||
|
/// TODO: XXXHACK -- TO REMOVE WHEN LIGHT SUPPORT IS IMPLEMENTED
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw std::runtime_error (std::string ("Unkonwn object type detected ").append (*name_it));
|
throw std::runtime_error (std::string ("Unkonwn object type detected ").append (*name_it));
|
||||||
|
@ -2,6 +2,17 @@
|
|||||||
|
|
||||||
namespace WallpaperEngine::Irrlicht
|
namespace WallpaperEngine::Irrlicht
|
||||||
{
|
{
|
||||||
|
bool isPkgHeaderVersionValid(char* version)
|
||||||
|
{
|
||||||
|
return strcmp ("PKGV0007", version) == 0 ||
|
||||||
|
strcmp ("PKGV0002", version) == 0 ||
|
||||||
|
strcmp ("PKGV0001", version) == 0 ||
|
||||||
|
strcmp ("PKGV0008", version) == 0 ||
|
||||||
|
strcmp ("PKGV0009", version) == 0 ||
|
||||||
|
strcmp ("PKGV0004", version) == 0 ||
|
||||||
|
strcmp ("PKGV0005", version) == 0 ||
|
||||||
|
strcmp ("PKGV0006", version) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
CArchiveLoaderPkg::CArchiveLoaderPkg (CContext* context) :
|
CArchiveLoaderPkg::CArchiveLoaderPkg (CContext* context) :
|
||||||
m_context (context)
|
m_context (context)
|
||||||
@ -59,12 +70,7 @@ namespace WallpaperEngine::Irrlicht
|
|||||||
file->read (pointer, size - 1);
|
file->read (pointer, size - 1);
|
||||||
|
|
||||||
|
|
||||||
if (
|
if (isPkgHeaderVersionValid (pointer) == false)
|
||||||
strcmp ("PKGV0007", pointer) != 0 &&
|
|
||||||
strcmp ("PKGV0002", pointer) != 0 &&
|
|
||||||
strcmp ("PKGV0001", pointer) != 0 &&
|
|
||||||
strcmp ("PKGV0008", pointer) != 0 &&
|
|
||||||
strcmp ("PKGV0009", pointer) != 0)
|
|
||||||
{
|
{
|
||||||
delete [] pointer;
|
delete [] pointer;
|
||||||
return false;
|
return false;
|
||||||
@ -112,12 +118,7 @@ namespace WallpaperEngine::Irrlicht
|
|||||||
{
|
{
|
||||||
char* headerVersion = this->readSizedString ();
|
char* headerVersion = this->readSizedString ();
|
||||||
|
|
||||||
if (
|
if (isPkgHeaderVersionValid (headerVersion) == false)
|
||||||
strcmp ("PKGV0007", headerVersion) != 0 &&
|
|
||||||
strcmp ("PKGV0002", headerVersion) != 0 &&
|
|
||||||
strcmp ("PKGV0001", headerVersion) != 0 &&
|
|
||||||
strcmp ("PKGV0008", headerVersion) != 0 &&
|
|
||||||
strcmp ("PKGV0009", headerVersion) != 0)
|
|
||||||
{
|
{
|
||||||
delete [] headerVersion;
|
delete [] headerVersion;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user