//!!!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); }