ObjLoading: Add basis for IPakEntryReadStream to read ipak entries

This commit is contained in:
Jan
2020-02-08 15:55:10 +01:00
parent 5bda400acb
commit 00d7997d0a
8 changed files with 275 additions and 27 deletions

View File

@ -7,18 +7,35 @@ IwiLoader::IwiLoader(MemoryManager* memoryManager)
Texture* IwiLoader::LoadIwi(FileAPI::IFile* file)
{
struct
struct IWIHeaderMeta
{
char tag[3];
char version;
} iwiHeaderMeta{};
if (file->Read(&iwiHeaderMeta, sizeof iwiHeaderMeta, 1) != 1)
return nullptr;
file->GotoEnd();
auto iwiSize = static_cast<size_t>(file->Pos());
file->Goto(0);
printf("Read IWI with version %i\n", iwiHeaderMeta.version);
auto* buffer = new uint8_t[iwiSize];
if(file->Read(buffer, 1, iwiSize) != iwiSize)
{
delete[] buffer;
return nullptr;
}
auto* meta = reinterpret_cast<IWIHeaderMeta*>(buffer);
printf("Read IWI with version %i\n", meta->version);
// TODO: Read iwi based on version
return nullptr;
// if (file->Read(&iwiHeaderMeta, sizeof iwiHeaderMeta, 1) != 1)
// return nullptr;
//
// printf("Read IWI with version %i\n", iwiHeaderMeta.version);
//
// return nullptr;
}