mirror of
https://github.com/vgmstream/vgmstream.git
synced 2025-02-10 16:13:03 +01:00
23 lines
980 B
C
23 lines
980 B
C
#include "layout.h"
|
|
#include "../vgmstream.h"
|
|
|
|
//MxCh blocked layout as used by Lego Island
|
|
void block_update_mxch(off_t block_offset, VGMSTREAM * vgmstream) {
|
|
vgmstream->current_block_offset = block_offset;
|
|
vgmstream->next_block_offset = block_offset +
|
|
read_32bitLE(vgmstream->current_block_offset+4,vgmstream->ch[0].streamfile)+8;
|
|
/* skip pad blocks */
|
|
while (
|
|
read_32bitBE(vgmstream->current_block_offset,
|
|
vgmstream->ch[0].streamfile) == 0x70616420)
|
|
{
|
|
vgmstream->current_block_offset = vgmstream->next_block_offset;
|
|
vgmstream->next_block_offset = vgmstream->current_block_offset +
|
|
read_32bitLE(vgmstream->current_block_offset+4,vgmstream->ch[0].streamfile)+8;
|
|
}
|
|
vgmstream->current_block_size =
|
|
read_32bitLE(vgmstream->current_block_offset+4, vgmstream->ch[0].streamfile)-0xe;
|
|
// only one channel for now
|
|
vgmstream->ch[0].offset = vgmstream->current_block_offset+8+0xe;
|
|
}
|