void MessageTable::ReadRC(RCFile &rcFile) { resInfo.SetFlags(resInfo.GetFlags() | ResourceInfo::Pure); resInfo.ReadRC(rcFile, false); ResourceData *rd = new ResourceData; rd->ReadRC(rcFile); data = rd; rcFile.NeedEol(); }
void Font::ReadRC(RCFile &rcFile) { resInfo.SetFlags(resInfo.GetFlags() | ResourceInfo::Pure); resInfo.ReadRC(rcFile, false); ResourceData *rd = new ResourceData; rd->ReadRC(rcFile); rcFile.NeedEol(); int n = rd->GetWord(); int s = rd->GetWord(); // check version and size /* if *n != 0x200 && n != 0x300 || s != rd->GetLen() || s < 0x180) { delete rd; throw new std::runtime_error("Invalid font file"); } */ data = rd; }
void GroupCursor::ReadRC(RCFile &rcFile) { resInfo.ReadRC(rcFile, false); ResourceData *rd = new ResourceData; rd->ReadRC(rcFile); rcFile.NeedEol(); rd->GetWord(); if (rd->GetWord() != 2) { throw new std::runtime_error("file does not contain cursor data"); } int count = rd->GetWord(); for (int i=0; i < count; i++) { Cursor *c = new Cursor(resInfo); rcFile.GetResFile().Add(c); cursors.push_back(c); c->ReadBin(rd); } resInfo.SetFlags(resInfo.GetFlags() | ResourceInfo::Pure); delete rd; }