ReaderItem(StorageItem *Item) { Len = 0; Data = 0; Store = Item; Store->Object = this; GFile *f = Store->GotoObject(__FILE__, __LINE__); if (f) { Len = ((Storage1::StorageItemImpl*)Store)->StoreSize; if (Len <= 0) { Len = ((Storage1::StorageItemImpl*)Store)->StoreAllocatedSize; } LgiAssert(Len > 0); Data = new uchar[Len]; if (Data) { f->Read(Data, Len); } DeleteObj(f); } }
/* ==================== GLoad ==================== */ const GData* GLoad(const CHAR* path) { GFile file; file.Open(path); U32 pos = file.Seek(0,FS_CUR); U32 size = file.Seek(0,FS_END); file.Seek(pos,FS_SET); GData* data = GNEW(GData(size+1,0)); CHECK(data); CHECK(file.Read(data->Ptr(),data->Size())==size); file.Close(); return data; }