1- using System ;
2- using System . Collections . Generic ;
1+ using System . Collections . Generic ;
32using System . IO ;
43using Fmod5Sharp . FmodTypes ;
54using Fmod5Sharp . Util ;
@@ -25,6 +24,7 @@ public static class FsbLoader
2524
2625 private static FmodSoundBank ? LoadInternal ( Stream stream , bool throwIfError )
2726 {
27+ var savedPos = stream . Position ;
2828 using BinaryReader reader = new ( stream ) ;
2929
3030 FmodAudioHeader header = new ( reader ) ;
@@ -37,7 +37,7 @@ public static class FsbLoader
3737 return null ;
3838 }
3939
40- long dataStartOffset = header . SizeOfThisHeader + header . SizeOfNameTable + header . SizeOfSampleHeaders ;
40+ long dataStartOffset = header . SizeOfThisHeader + header . SizeOfNameTable + header . SizeOfSampleHeaders + savedPos ;
4141
4242 List < FmodSample > samples = new ( header . Samples . Count ) ;
4343 for ( var i = 0 ; i < header . Samples . Count ; i ++ )
@@ -61,10 +61,10 @@ public static class FsbLoader
6161 if ( header . SizeOfNameTable > 0 )
6262 {
6363 var nameOffsetOffset = header . SizeOfThisHeader + header . SizeOfSampleHeaders + 4 * i ;
64- reader . BaseStream . Position = nameOffsetOffset ;
65- var nameOffset = reader . ReadUInt32 ( ) ;
64+ reader . BaseStream . Position = nameOffsetOffset + savedPos ;
65+ var nameOffset = ( long ) reader . ReadUInt32 ( ) ;
6666
67- nameOffset += header . SizeOfThisHeader + header . SizeOfSampleHeaders ;
67+ nameOffset += header . SizeOfThisHeader + header . SizeOfSampleHeaders + savedPos ;
6868
6969 stream . Position = nameOffset ;
7070 sample . Name = stream . ReadNullTerminatedString ( ) ;
0 commit comments