mirror of
https://github.com/isledecomp/SIEdit.git
synced 2024-11-27 01:25:45 -05:00
added support for SI 2.1 (pre-alpha)
This commit is contained in:
parent
b10f646de3
commit
aa57a08cc5
2 changed files with 14 additions and 8 deletions
|
@ -99,10 +99,8 @@ Interleaf::Error Interleaf::ReadChunk(Core *parent, FileBase *f, Info *info)
|
||||||
m_BufferSize = f->ReadU32();
|
m_BufferSize = f->ReadU32();
|
||||||
desc << "Buffer Size: 0x" << std::hex << m_BufferSize;
|
desc << "Buffer Size: 0x" << std::hex << m_BufferSize;
|
||||||
|
|
||||||
if (m_Version == 0x00020002) {
|
|
||||||
m_BufferCount = f->ReadU32();
|
m_BufferCount = f->ReadU32();
|
||||||
desc << std::endl << "Buffer Count: " << std::dec << m_BufferCount << std::endl;
|
desc << std::endl << "Buffer Count: " << std::dec << m_BufferCount << std::endl;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RIFF::pad_:
|
case RIFF::pad_:
|
||||||
|
@ -132,6 +130,11 @@ Interleaf::Error Interleaf::ReadChunk(Core *parent, FileBase *f, Info *info)
|
||||||
desc << "Type: " << RIFF::PrintU32AsString(list_type) << std::endl;
|
desc << "Type: " << RIFF::PrintU32AsString(list_type) << std::endl;
|
||||||
uint32_t list_count = 0;
|
uint32_t list_count = 0;
|
||||||
if (list_type == RIFF::MxCh) {
|
if (list_type == RIFF::MxCh) {
|
||||||
|
if (m_Version == Version2_1) {
|
||||||
|
uint32_t unknown_list_entry = f->ReadU32();
|
||||||
|
desc << "Unknown v2.1 list entry: " << unknown_list_entry << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
list_count = f->ReadU32();
|
list_count = f->ReadU32();
|
||||||
if (list_count == LIST::Act_ || list_count == LIST::RAND) {
|
if (list_count == LIST::Act_ || list_count == LIST::RAND) {
|
||||||
desc << "Extension: ";
|
desc << "Extension: ";
|
||||||
|
@ -369,10 +372,7 @@ Interleaf::Error Interleaf::Write(FileBase *f) const
|
||||||
|
|
||||||
f->WriteU32(m_Version);
|
f->WriteU32(m_Version);
|
||||||
f->WriteU32(m_BufferSize);
|
f->WriteU32(m_BufferSize);
|
||||||
|
|
||||||
if (m_Version == 0x00020002) {
|
|
||||||
f->WriteU32(m_BufferCount);
|
f->WriteU32(m_BufferCount);
|
||||||
}
|
|
||||||
|
|
||||||
RIFF::EndChunk(f, mxhd);
|
RIFF::EndChunk(f, mxhd);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,12 @@ public:
|
||||||
ERROR_INVALID_BUFFER_SIZE
|
ERROR_INVALID_BUFFER_SIZE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum Version
|
||||||
|
{
|
||||||
|
Version2_1 = 0x00010002,
|
||||||
|
Version2_2 = 0x00020002
|
||||||
|
};
|
||||||
|
|
||||||
LIBWEAVER_EXPORT Interleaf();
|
LIBWEAVER_EXPORT Interleaf();
|
||||||
|
|
||||||
LIBWEAVER_EXPORT void Clear();
|
LIBWEAVER_EXPORT void Clear();
|
||||||
|
|
Loading…
Reference in a new issue