| 61 | } |
| 62 | |
| 63 | bool GobArchive::open(const char *archivePath) |
| 64 | { |
| 65 | m_archiveOpen = m_file.open(archivePath, Stream::MODE_READ); |
| 66 | m_curFile = -1; |
| 67 | if (!m_archiveOpen) { return false; } |
| 68 | |
| 69 | // Read the directory. |
| 70 | m_file.readBuffer(&m_header, sizeof(GOB_Header_t)); |
| 71 | m_file.seek(m_header.MASTERX); |
| 72 | |
| 73 | m_file.readBuffer(&m_fileList.MASTERN, sizeof(u32)); |
| 74 | m_fileList.entries = new GOB_Entry_t[m_fileList.MASTERN]; |
| 75 | m_file.readBuffer(m_fileList.entries, sizeof(GOB_Entry_t), m_fileList.MASTERN); |
| 76 | |
| 77 | strcpy(m_archivePath, archivePath); |
| 78 | m_file.close(); |
| 79 | |
| 80 | return true; |
| 81 | } |
| 82 | |
| 83 | void GobArchive::close() |
| 84 | { |