Пример #1
0
//!!!need desc cache! (independent from HRD cache)
bool CDataServer::LoadDesc(PParams& Out, const nString& FileName, bool Cache)
{
	PParams Main = LoadPRM(FileName, Cache);

	if (!Main.isvalid()) FAIL;

	nString BaseName;
	if (Main->Get(BaseName, CStrID("_Base_")))
	{
		BaseName = "actors:" + BaseName + ".prm";
		n_assert(BaseName != FileName);
		if (!LoadDesc(Out, BaseName, Cache)) FAIL;
		Out->Merge(*Main, Merge_AddNew | Merge_Replace | Merge_Deep); //!!!can specify merge flags in Desc!
	}
	else Out = n_new(CParams(*Main));

	OK;
}
        //-------------------------------------------------------
        //-------------------------------------------------------
		void WidgetTemplateProvider::CreateResourceFromFile(Core::StorageLocation in_storageLocation, const std::string& in_filepath, const Core::IResourceOptionsBaseCSPtr& in_options, const Core::ResourceSPtr& out_resource)
        {
            LoadDesc(in_storageLocation, in_filepath, nullptr, out_resource);
        }