preserve aud codec state across blocks, so the gain isnt completely bogus
This commit is contained in:
@@ -76,7 +76,7 @@ namespace OpenRA.FileFormats
|
|||||||
return (short)current;
|
return (short)current;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] LoadSound(byte[] raw)
|
public static byte[] LoadSound(byte[] raw, ref int index)
|
||||||
{
|
{
|
||||||
var br = new BinaryReader(new MemoryStream(raw));
|
var br = new BinaryReader(new MemoryStream(raw));
|
||||||
var dataSize = raw.Length;
|
var dataSize = raw.Length;
|
||||||
@@ -84,7 +84,6 @@ namespace OpenRA.FileFormats
|
|||||||
|
|
||||||
var output = new byte[outputSize];
|
var output = new byte[outputSize];
|
||||||
var offset = 0;
|
var offset = 0;
|
||||||
var index = 0;
|
|
||||||
var currentSample = 0;
|
var currentSample = 0;
|
||||||
|
|
||||||
while (dataSize-- > 0)
|
while (dataSize-- > 0)
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ namespace OpenRA.FileFormats
|
|||||||
// Don't parse sound (yet); skip data
|
// Don't parse sound (yet); skip data
|
||||||
{
|
{
|
||||||
var rawAudio = reader.ReadBytes((int)length);
|
var rawAudio = reader.ReadBytes((int)length);
|
||||||
audioData = AudLoader.LoadSound(rawAudio);
|
audioData = AudLoader.LoadSound(rawAudio, ref adpcmIndex);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "VQFR":
|
case "VQFR":
|
||||||
@@ -147,7 +147,9 @@ namespace OpenRA.FileFormats
|
|||||||
}
|
}
|
||||||
if (++currentFrame == Frames)
|
if (++currentFrame == Frames)
|
||||||
currentFrame = cbOffset = cbChunk = 0;
|
currentFrame = cbOffset = cbChunk = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int adpcmIndex = 0;
|
||||||
|
|
||||||
// VQA Frame
|
// VQA Frame
|
||||||
public void DecodeVQFR(BinaryReader reader)
|
public void DecodeVQFR(BinaryReader reader)
|
||||||
|
|||||||
Reference in New Issue
Block a user