public MetaDataBlock GetMetaDataBlock() { if (TotalSize <= 0) { return(null); } byte[] data = new byte[TotalSize]; int offset = 0; for (int j = 0; j < Items.Count; j++) { var bdata = Items[j]; Buffer.BlockCopy(bdata, 0, data, offset, bdata.Length); offset += bdata.Length; } MetaDataBlock db = new MetaDataBlock(); db.StructureNameHash = StructureNameHash; db.DataLength = TotalSize; db.Data = data; return(db); }
public MetaDataBlock GetBlock(int id) { MetaDataBlock block = null; var ind = id - 1; if ((ind >= 0) && (ind < DataBlocks.Count) && (DataBlocks.Data != null)) { block = DataBlocks[ind]; } return(block); }
public MetaDataBlock GetRootBlock() { MetaDataBlock block = null; var rootind = RootBlockIndex - 1; if ((rootind >= 0) && (rootind < DataBlocks.Count) && (DataBlocks.Data != null)) { block = DataBlocks[rootind]; } return(block); }
private void LoadScenarioPointRegion(Meta meta, MetaDataBlock rootblock) { FileFormat = YmtFileFormat.RSC; ContentType = YmtFileContentType.ScenarioPointRegion; var cdata = MetaTypes.ConvertData <CScenarioPointRegion>(rootblock.Data); CScenarioPointRegion = new MCScenarioPointRegion(); CScenarioPointRegion.Ymt = this; CScenarioPointRegion.Load(meta, cdata); ScenarioRegion = new ScenarioRegion(); ScenarioRegion.Load(this); //string stypes = MetaTypes.GetTypesInitString(meta); //if (!string.IsNullOrEmpty(stypes)) //{ } }