|
|
@@ -48,26 +48,28 @@ CScene::CScene (
|
|
|
|
|
|
CScene* CScene::fromFile (const irr::io::path& filename)
|
|
|
{
|
|
|
+ std::string stringContent = WallpaperEngine::FileSystem::loadFullFile (filename);
|
|
|
json content = json::parse (WallpaperEngine::FileSystem::loadFullFile (filename));
|
|
|
|
|
|
auto camera_it = jsonFindRequired (content, "camera", "Scenes must have a defined camera");
|
|
|
auto general_it = jsonFindRequired (content, "general", "Scenes must have a general section");
|
|
|
auto objects_it = jsonFindRequired (content, "objects", "Scenes must have a list of objects to display");
|
|
|
|
|
|
+ // TODO: FIND IF THESE DEFAULTS ARE SENSIBLE OR NOT AND PERFORM PROPER VALIDATION WHEN CAMERA PREVIEW AND CAMERA PARALLAX ARE PRESENT
|
|
|
auto ambientcolor_it = jsonFindRequired (*general_it, "ambientcolor", "General section must have ambient color");
|
|
|
auto bloom_it = jsonFindRequired (*general_it, "bloom", "General section must have bloom flag");
|
|
|
auto bloomstrength_it = jsonFindRequired (*general_it, "bloomstrength", "General section must have bloom strength");
|
|
|
auto bloomthreshold_it = jsonFindRequired (*general_it, "bloomthreshold", "General section must have bloom threshold");
|
|
|
auto camerafade_it = jsonFindRequired (*general_it, "camerafade", "General section must have camera fade");
|
|
|
- auto cameraparallax_it = jsonFindRequired (*general_it, "cameraparallax", "General section must have camera parallax");
|
|
|
- auto cameraparallaxamount_it = jsonFindRequired (*general_it, "cameraparallaxamount", "General section must have camera parallax amount");
|
|
|
- auto cameraparallaxdelay_it = jsonFindRequired (*general_it, "cameraparallaxdelay", "General section must have camera parallax delay");
|
|
|
- auto cameraparallaxmouseinfluence_it = jsonFindRequired (*general_it, "cameraparallaxmouseinfluence", "General section must have camera parallax mouse influence");
|
|
|
- auto camerapreview_it = jsonFindRequired (*general_it, "camerapreview", "General section must have camera preview");
|
|
|
- auto camerashake_it = jsonFindRequired (*general_it, "camerashake", "General section must have camera shake");
|
|
|
- auto camerashakeamplitude_it = jsonFindRequired (*general_it, "camerashakeamplitude", "General section must have camera shake amplitude");
|
|
|
- auto camerashakeroughness_it = jsonFindRequired (*general_it, "camerashakeroughness", "General section must have camera shake roughness");
|
|
|
- auto camerashakespeed_it = jsonFindRequired (*general_it, "camerashakespeed", "General section must have camera shake speed");
|
|
|
+ auto cameraparallax = jsonFindDefault <bool> (*general_it, "cameraparallax", true);
|
|
|
+ auto cameraparallaxamount = jsonFindDefault <irr::f64> (*general_it, "cameraparallaxamount", 1.0f);
|
|
|
+ auto cameraparallaxdelay = jsonFindDefault <irr::f64> (*general_it, "cameraparallaxdelay", 0.0f);
|
|
|
+ auto cameraparallaxmouseinfluence = jsonFindDefault <irr::f64> (*general_it, "cameraparallaxmouseinfluence", 1.0f);
|
|
|
+ auto camerapreview = jsonFindDefault <bool> (*general_it, "camerapreview", false);
|
|
|
+ auto camerashake = jsonFindDefault <bool> (*general_it, "camerashake", false);
|
|
|
+ auto camerashakeamplitude = jsonFindDefault <irr::f64> (*general_it, "camerashakeamplitude", 0.0f);
|
|
|
+ auto camerashakeroughness = jsonFindDefault <irr::f64> (*general_it, "camerashakeroughness", 0.0f);
|
|
|
+ auto camerashakespeed = jsonFindDefault <irr::f64> (*general_it, "camerashakespeed", 0.0f);
|
|
|
auto clearcolor_it = jsonFindRequired (*general_it, "clearcolor", "General section must have clear color");
|
|
|
auto orthogonalprojection_it = jsonFindRequired (*general_it, "orthogonalprojection", "General section must have orthogonal projection info");
|
|
|
auto skylightcolor_it = jsonFindRequired (*general_it, "skylightcolor", "General section must have skylight color");
|
|
|
@@ -79,15 +81,15 @@ CScene* CScene::fromFile (const irr::io::path& filename)
|
|
|
*bloomstrength_it,
|
|
|
*bloomthreshold_it,
|
|
|
*camerafade_it,
|
|
|
- *cameraparallax_it,
|
|
|
- *cameraparallaxamount_it,
|
|
|
- *cameraparallaxdelay_it,
|
|
|
- *cameraparallaxmouseinfluence_it,
|
|
|
- *camerapreview_it,
|
|
|
- *camerashake_it,
|
|
|
- *camerashakeamplitude_it,
|
|
|
- *camerashakeroughness_it,
|
|
|
- *camerashakespeed_it,
|
|
|
+ cameraparallax,
|
|
|
+ cameraparallaxamount,
|
|
|
+ cameraparallaxdelay,
|
|
|
+ cameraparallaxmouseinfluence,
|
|
|
+ camerapreview,
|
|
|
+ camerashake,
|
|
|
+ camerashakeamplitude,
|
|
|
+ camerashakeroughness,
|
|
|
+ camerashakespeed,
|
|
|
WallpaperEngine::Core::atoSColorf (*clearcolor_it),
|
|
|
Scenes::CProjection::fromJSON (*orthogonalprojection_it),
|
|
|
WallpaperEngine::Core::atoSColorf (*skylightcolor_it)
|