bool Th105DataArchiveExtractor::write_file(FileData &data, const FileInfo &info, FILE *fp) { if(fp == NULL || info.comp_size == 0 || data.size() != info.comp_size) { return false; } fseek(fp, info.addr, SEEK_SET); if(ftell(fp) != info.addr){ return false; } if(fwrite(&data.data.front(), 1, info.comp_size, fp) != info.comp_size) { return false; } return true; }