Audio updates

This commit is contained in:
Monkeypolice188 2021-12-08 15:15:44 +00:00
parent e812674e69
commit f2819b35f6
4 changed files with 253 additions and 298 deletions

View File

@ -4449,7 +4449,7 @@ namespace CodeWalker.GameFiles
}
[TC(typeof(EXP))] public class Dat54AutomationSound : Dat54Sound
{
public MetaHash AutomationChildSound { get; set; } //??
public MetaHash FallBackSound { get; set; } //fallback sound
public float PlaybackRate { get; set; } //0x4-0x8 //rate at which the midi is played back, 1.0 default
public float PlaybackRateVariance { get; set; } //0x8-0xC //variance of the playback rate
public MetaHash PlaybackRateParameter { get; set; } //0xC-0x10 //parameter override for playback rate
@ -4463,12 +4463,12 @@ namespace CodeWalker.GameFiles
{ }
public Dat54AutomationSound(RelData d, BinaryReader br) : base(d, br)
{
AutomationChildSound = br.ReadUInt32();
FallBackSound = br.ReadUInt32();
PlaybackRate = br.ReadSingle();
PlaybackRateVariance = br.ReadSingle();
PlaybackRateParameter = br.ReadUInt32();
Map = br.ReadUInt32();
AudioTrackHashes = new[] { AutomationChildSound, Map };
AudioTrackHashes = new[] { FallBackSound, Map };
ContainerName = br.ReadUInt32();
FileName = br.ReadUInt32();
UnkDataCount = br.ReadInt32();
@ -4481,7 +4481,7 @@ namespace CodeWalker.GameFiles
public override void ReadXml(XmlNode node)
{
base.ReadXml(node);
AutomationChildSound = XmlRel.GetHash(Xml.GetChildInnerText(node, "AutomationChildSound"));
FallBackSound = XmlRel.GetHash(Xml.GetChildInnerText(node, "FallBackSound"));
PlaybackRate = Xml.GetChildFloatAttribute(node, "PlaybackRate", "value");
PlaybackRateVariance = Xml.GetChildFloatAttribute(node, "PlaybackRateVariance", "value");
PlaybackRateParameter = XmlRel.GetHash(Xml.GetChildInnerText(node, "PlaybackRateParameter"));
@ -4494,7 +4494,7 @@ namespace CodeWalker.GameFiles
public override void WriteXml(StringBuilder sb, int indent)
{
base.WriteXml(sb, indent);
RelXml.StringTag(sb, indent, "AutomationChildSound", RelXml.HashString(AutomationChildSound));
RelXml.StringTag(sb, indent, "FallBackSound", RelXml.HashString(FallBackSound));
RelXml.ValueTag(sb, indent, "PlaybackRate", FloatUtil.ToString(PlaybackRate));
RelXml.ValueTag(sb, indent, "PlaybackRateVariance", FloatUtil.ToString(PlaybackRateVariance));
RelXml.StringTag(sb, indent, "PlaybackRateParameter", RelXml.HashString(PlaybackRateParameter));
@ -4506,7 +4506,7 @@ namespace CodeWalker.GameFiles
public override void Write(BinaryWriter bw)
{
base.Write(bw);
bw.Write(AutomationChildSound);
bw.Write(FallBackSound);
bw.Write(PlaybackRate);
bw.Write(PlaybackRateVariance);
bw.Write(PlaybackRateParameter);
@ -5519,10 +5519,8 @@ namespace CodeWalker.GameFiles
public float Unk01 { get; set; } //1, 5, 100, ...
public float InnerRad { get; set; } //0, 4, ... 100 ... min value?
public float OuterRad { get; set; } //15, 16, 12, 10, 20, 300 ... max value?
public FlagsByte Unk02 { get; set; }
public FlagsByte Unk03 { get; set; } //0,1,2,3,4,5
public FlagsByte Unk04 { get; set; }
public FlagsByte Unk05 { get; set; } //0,1,2,3,4,5
public FlagsUshort StartTime { get; set; }
public FlagsUshort EndTime { get; set; }
public FlagsUshort Unk06 { get; set; } //0..600
public FlagsUshort Unk07 { get; set; } //0..150
public FlagsByte Unk08 { get; set; } //0,1,2
@ -5590,10 +5588,8 @@ namespace CodeWalker.GameFiles
Unk01 = br.ReadSingle(); //1, 5, 100, ...
InnerRad = br.ReadSingle(); //0, 4, ... 100 ... min value?
OuterRad = br.ReadSingle(); //15, 16, 12, 10, 20, 300 ... max value?
Unk02 = br.ReadByte();
Unk03 = br.ReadByte(); //0,1,2,3,4,5
Unk04 = br.ReadByte();
Unk05 = br.ReadByte(); //0,1,2,3,4,5
StartTime = br.ReadUInt16();
EndTime = br.ReadUInt16();
Unk06 = br.ReadUInt16(); //0..600
Unk07 = br.ReadUInt16(); //0..150
Unk08 = br.ReadByte(); //0,1,2
@ -5627,37 +5623,13 @@ namespace CodeWalker.GameFiles
#region testing
switch (Unk02.Value)//no pattern?
switch (StartTime.Value)//ushort in minutes
{
default:
break;
}
switch (Unk03.Value)
switch (EndTime.Value)//ushort in minutes
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
break;
default:
break;
}
switch (Unk04.Value)//no pattern?
{
default:
break;
}
switch (Unk05.Value)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
break;
default:
break;
}
@ -5877,10 +5849,8 @@ namespace CodeWalker.GameFiles
bw.Write(Unk01);
bw.Write(InnerRad);
bw.Write(OuterRad);
bw.Write(Unk02);
bw.Write(Unk03);
bw.Write(Unk04);
bw.Write(Unk05);
bw.Write(StartTime);
bw.Write(EndTime);
bw.Write(Unk06);
bw.Write(Unk07);
bw.Write(Unk08);
@ -5917,10 +5887,8 @@ namespace CodeWalker.GameFiles
RelXml.ValueTag(sb, indent, "Unk01", FloatUtil.ToString(Unk01));
RelXml.ValueTag(sb, indent, "InnerRad", FloatUtil.ToString(InnerRad));
RelXml.ValueTag(sb, indent, "OuterRad", FloatUtil.ToString(OuterRad));
RelXml.ValueTag(sb, indent, "Unk02", Unk02.Value.ToString());
RelXml.ValueTag(sb, indent, "Unk03", Unk03.Value.ToString());
RelXml.ValueTag(sb, indent, "Unk04", Unk04.Value.ToString());
RelXml.ValueTag(sb, indent, "Unk05", Unk05.Value.ToString());
RelXml.ValueTag(sb, indent, "StartTime", StartTime.Value.ToString());
RelXml.ValueTag(sb, indent, "EndTime", EndTime.Value.ToString());
RelXml.ValueTag(sb, indent, "Unk06", Unk06.Value.ToString());
RelXml.ValueTag(sb, indent, "Unk07", Unk07.Value.ToString());
RelXml.ValueTag(sb, indent, "Unk08", Unk08.Value.ToString());
@ -5946,10 +5914,8 @@ namespace CodeWalker.GameFiles
Unk01 = Xml.GetChildFloatAttribute(node, "Unk01", "value");
InnerRad = Xml.GetChildFloatAttribute(node, "InnerRad", "value");
OuterRad = Xml.GetChildFloatAttribute(node, "OuterRad", "value");
Unk02 = (byte)Xml.GetChildUIntAttribute(node, "Unk02", "value");
Unk03 = (byte)Xml.GetChildUIntAttribute(node, "Unk03", "value");
Unk04 = (byte)Xml.GetChildUIntAttribute(node, "Unk04", "value");
Unk05 = (byte)Xml.GetChildUIntAttribute(node, "Unk05", "value");
StartTime = (ushort)Xml.GetChildUIntAttribute(node, "StartTime", "value");
EndTime = (ushort)Xml.GetChildUIntAttribute(node, "EndTime", "value");
Unk06 = (ushort)Xml.GetChildUIntAttribute(node, "Unk06", "value");
Unk07 = (ushort)Xml.GetChildUIntAttribute(node, "Unk07", "value");
Unk08 = (byte)Xml.GetChildUIntAttribute(node, "Unk08", "value");
@ -6693,7 +6659,7 @@ namespace CodeWalker.GameFiles
{
public MetaHash FallBackWeapon { get; set; }
public uint AudioItemCount { get; set; }
public Dat151HashPair[] Weapons { get; set; }
public Dat151WeaponAudioItemItem[] Weapons { get; set; }
public Dat151WeaponAudioItem(RelFile rel) : base(rel)
{
@ -6705,10 +6671,10 @@ namespace CodeWalker.GameFiles
FallBackWeapon = br.ReadUInt32();
AudioItemCount = br.ReadUInt32();
Dat151HashPair[] items = new Dat151HashPair[AudioItemCount];
Dat151WeaponAudioItemItem[] items = new Dat151WeaponAudioItemItem[AudioItemCount];
for (int i = 0; i < AudioItemCount; i++)
{
items[i] = new Dat151HashPair(br);
items[i] = new Dat151WeaponAudioItemItem(br);
}
this.Weapons = items;
@ -6734,7 +6700,7 @@ namespace CodeWalker.GameFiles
public override void ReadXml(XmlNode node)
{
FallBackWeapon = XmlRel.GetHash(Xml.GetChildInnerText(node, "FallBackWeapon"));
Weapons = XmlRel.ReadItemArray<Dat151HashPair>(node, "Weapons");
Weapons = XmlRel.ReadItemArray<Dat151WeaponAudioItemItem>(node, "Weapons");
AudioItemCount = (uint)(Weapons?.Length ?? 0);
}
public override uint[] GetHashTableOffsets()
@ -6748,6 +6714,38 @@ namespace CodeWalker.GameFiles
return offsets.ToArray();
}
}
[TC(typeof(EXP))]
public struct Dat151WeaponAudioItemItem : IMetaXmlItem
{
public MetaHash Category { get; set; }
public MetaHash Weapon { get; set; }
public Dat151WeaponAudioItemItem(BinaryReader br)
{
Category = br.ReadUInt32();
Weapon = br.ReadUInt32();
}
public void Write(BinaryWriter bw)
{
bw.Write(Category);
bw.Write(Weapon);
}
public void WriteXml(StringBuilder sb, int indent)
{
RelXml.StringTag(sb, indent, "Category", RelXml.HashString(Category));
RelXml.StringTag(sb, indent, "Weapon", RelXml.HashString(Weapon));
}
public void ReadXml(XmlNode node)
{
Category = XmlRel.GetHash(Xml.GetChildInnerText(node, "Category"));
Weapon = XmlRel.GetHash(Xml.GetChildInnerText(node, "Weapon"));
}
public override string ToString()
{
return Category.ToString() + ": " + Weapon.ToString();
}
}
[TC(typeof(EXP))] public class Dat151StartTrackAction : Dat151RelData
{
public FlagsUint Unk0 { get; set; }
@ -6756,15 +6754,15 @@ namespace CodeWalker.GameFiles
public MetaHash AudioTrack0 { get; set; }
public MetaHash AudioTrack1 { get; set; }
public float Unk3 { get; set; }
public MetaHash Unk4 { get; set; }
public MetaHash AudioTrack2 { get; set; }
public MetaHash Track { get; set; }
public MetaHash Mood { get; set; }
public float Unk5 { get; set; }
public int Unk6 { get; set; }
public int Unk7 { get; set; }
public float Unk8 { get; set; }
public int Unk9 { get; set; }
public uint ItemCount { get; set; }
public Dat151HashPair[] Items { get; set; }
public uint TracksCount { get; set; }
public Dat151StartTrackActionItem[] Tracks { get; set; }
public Dat151StartTrackAction(RelFile rel) : base(rel)
@ -6780,21 +6778,21 @@ namespace CodeWalker.GameFiles
AudioTrack0 = br.ReadUInt32();
AudioTrack1 = br.ReadUInt32();
Unk3 = br.ReadSingle();
Unk4 = br.ReadUInt32();
AudioTrack2 = br.ReadUInt32();
Track = br.ReadUInt32();
Mood = br.ReadUInt32();
Unk5 = br.ReadSingle();
Unk6 = br.ReadInt32();
Unk7 = br.ReadInt32();
Unk8 = br.ReadSingle();
Unk9 = br.ReadInt32();
ItemCount = br.ReadUInt32();
TracksCount = br.ReadUInt32();
Dat151HashPair[] items = new Dat151HashPair[ItemCount];
for (int i = 0; i < ItemCount; i++)
Dat151StartTrackActionItem[] items = new Dat151StartTrackActionItem[TracksCount];
for (int i = 0; i < TracksCount; i++)
{
items[i] = new Dat151HashPair(br);
items[i] = new Dat151StartTrackActionItem(br);
}
this.Items = items;
this.Tracks = items;
if (Unk1 != 0)
{ }
@ -6813,18 +6811,18 @@ namespace CodeWalker.GameFiles
bw.Write(AudioTrack0);
bw.Write(AudioTrack1);
bw.Write(Unk3);
bw.Write(Unk4);
bw.Write(AudioTrack2);
bw.Write(Track);
bw.Write(Mood);
bw.Write(Unk5);
bw.Write(Unk6);
bw.Write(Unk7);
bw.Write(Unk8);
bw.Write(Unk9);
bw.Write(ItemCount);
bw.Write(TracksCount);
for (int i = 0; i < ItemCount; i++)
for (int i = 0; i < TracksCount; i++)
{
Items[i].Write(bw);
Tracks[i].Write(bw);
}
}
@ -6836,14 +6834,14 @@ namespace CodeWalker.GameFiles
RelXml.StringTag(sb, indent, "AudioTrack0", RelXml.HashString(AudioTrack0));
RelXml.StringTag(sb, indent, "AudioTrack1", RelXml.HashString(AudioTrack1));
RelXml.ValueTag(sb, indent, "Unk3", FloatUtil.ToString(Unk3));
RelXml.StringTag(sb, indent, "Unk4", RelXml.HashString(Unk4));
RelXml.StringTag(sb, indent, "AudioTrack2", RelXml.HashString(AudioTrack2));
RelXml.StringTag(sb, indent, "Track", RelXml.HashString(Track));
RelXml.StringTag(sb, indent, "Mood", RelXml.HashString(Mood));
RelXml.ValueTag(sb, indent, "Unk5", FloatUtil.ToString(Unk5));
RelXml.ValueTag(sb, indent, "Unk6", Unk6.ToString());
RelXml.ValueTag(sb, indent, "Unk7", Unk7.ToString());
RelXml.ValueTag(sb, indent, "Unk8", FloatUtil.ToString(Unk8));
RelXml.ValueTag(sb, indent, "Unk9", Unk9.ToString());
RelXml.WriteItemArray(sb, Items, indent, "Items");
RelXml.WriteItemArray(sb, Tracks, indent, "Tracks");
}
public override void ReadXml(XmlNode node)
{
@ -6853,21 +6851,54 @@ namespace CodeWalker.GameFiles
AudioTrack0 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack0"));
AudioTrack1 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack1"));
Unk3 = Xml.GetChildFloatAttribute(node, "Unk3", "value");
Unk4 = XmlRel.GetHash(Xml.GetChildInnerText(node, "Unk4"));
AudioTrack2 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack2"));
Track = XmlRel.GetHash(Xml.GetChildInnerText(node, "Track"));
Mood = XmlRel.GetHash(Xml.GetChildInnerText(node, "Mood"));
Unk5 = Xml.GetChildFloatAttribute(node, "Unk5", "value");
Unk6 = Xml.GetChildIntAttribute(node, "Unk6", "value");
Unk7 = Xml.GetChildIntAttribute(node, "Unk7", "value");
Unk8 = Xml.GetChildFloatAttribute(node, "Unk8", "value");
Unk9 = Xml.GetChildIntAttribute(node, "Unk9", "value");
Items = XmlRel.ReadItemArray<Dat151HashPair>(node, "Items");
ItemCount = (uint)(Items?.Length ?? 0);
Tracks = XmlRel.ReadItemArray<Dat151StartTrackActionItem>(node, "Tracks");
TracksCount = (uint)(Tracks?.Length ?? 0);
}
public override uint[] GetHashTableOffsets()
{
return new uint[] { 12, 16, 28 };
}
}
[TC(typeof(EXP))]
public struct Dat151StartTrackActionItem : IMetaXmlItem
{
public MetaHash Track { get; set; }
public FlagsUint Flags { get; set; }
public Dat151StartTrackActionItem(BinaryReader br)
{
Track = br.ReadUInt32();
Flags = br.ReadUInt32();
}
public void Write(BinaryWriter bw)
{
bw.Write(Track);
bw.Write(Flags);
}
public void WriteXml(StringBuilder sb, int indent)
{
RelXml.StringTag(sb, indent, "Track", RelXml.HashString(Track));
RelXml.ValueTag(sb, indent, "Flags", "0x" + Flags.Hex);
}
public void ReadXml(XmlNode node)
{
Track = XmlRel.GetHash(Xml.GetChildInnerText(node, "Track"));
Flags = Xml.GetChildUIntAttribute(node, "Flags", "value");
}
public override string ToString()
{
return Track.ToString() + ": " + Flags.ToString();
}
}
[TC(typeof(EXP))] public class Dat151StopTrackAction : Dat151RelData
{
public FlagsUint Unk0 { get; set; }
@ -6940,7 +6971,7 @@ namespace CodeWalker.GameFiles
}
[TC(typeof(EXP))] public class Dat151MoodItem : IMetaXmlItem
{
public MetaHash AudioTrack0 { get; set; }
public MetaHash StemMix { get; set; }
public MetaHash AudioTrack1 { get; set; }
public float Unk1 { get; set; }
public float Unk2 { get; set; }
@ -6951,7 +6982,7 @@ namespace CodeWalker.GameFiles
public override string ToString()
{
return AudioTrack0.ToString();
return StemMix.ToString();
}
public Dat151MoodItem()
@ -6959,7 +6990,7 @@ namespace CodeWalker.GameFiles
}
public Dat151MoodItem(BinaryReader br)
{
AudioTrack0 = br.ReadUInt32();
StemMix = br.ReadUInt32();
AudioTrack1 = br.ReadUInt32();
Unk1 = br.ReadSingle();
Unk2 = br.ReadSingle();
@ -6970,7 +7001,7 @@ namespace CodeWalker.GameFiles
}
public void Write(BinaryWriter bw)
{
bw.Write(AudioTrack0);
bw.Write(StemMix);
bw.Write(AudioTrack1);
bw.Write(Unk1);
bw.Write(Unk2);
@ -6981,7 +7012,7 @@ namespace CodeWalker.GameFiles
}
public void WriteXml(StringBuilder sb, int indent)
{
RelXml.StringTag(sb, indent, "AudioTrack0", RelXml.HashString(AudioTrack0));
RelXml.StringTag(sb, indent, "StemMix", RelXml.HashString(StemMix));
RelXml.StringTag(sb, indent, "AudioTrack1", RelXml.HashString(AudioTrack1));
RelXml.ValueTag(sb, indent, "Unk1", FloatUtil.ToString(Unk1));
RelXml.ValueTag(sb, indent, "Unk2", FloatUtil.ToString(Unk2));
@ -6992,7 +7023,7 @@ namespace CodeWalker.GameFiles
}
public void ReadXml(XmlNode node)
{
AudioTrack0 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack0"));
StemMix = XmlRel.GetHash(Xml.GetChildInnerText(node, "StemMix"));
AudioTrack1 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack1"));
Unk1 = Xml.GetChildFloatAttribute(node, "Unk1", "value");
Unk2 = Xml.GetChildFloatAttribute(node, "Unk2", "value");
@ -7083,7 +7114,7 @@ namespace CodeWalker.GameFiles
public MetaHash AudioTrack0 { get; set; }
public MetaHash AudioTrack1 { get; set; }
public float Unk3 { get; set; }
public MetaHash AudioTrack2 { get; set; }
public MetaHash Mood { get; set; }
public float Unk4 { get; set; }
public int Unk5 { get; set; }
public int Unk6 { get; set; }
@ -7101,7 +7132,7 @@ namespace CodeWalker.GameFiles
AudioTrack0 = br.ReadUInt32();
AudioTrack1 = br.ReadUInt32();
Unk3 = br.ReadSingle();
AudioTrack2 = br.ReadUInt32();
Mood = br.ReadUInt32();
Unk4 = br.ReadSingle();
Unk5 = br.ReadInt32();
Unk6 = br.ReadInt32();
@ -7123,7 +7154,7 @@ namespace CodeWalker.GameFiles
bw.Write(AudioTrack0);
bw.Write(AudioTrack1);
bw.Write(Unk3);
bw.Write(AudioTrack2);
bw.Write(Mood);
bw.Write(Unk4);
bw.Write(Unk5);
bw.Write(Unk6);
@ -7136,7 +7167,7 @@ namespace CodeWalker.GameFiles
RelXml.StringTag(sb, indent, "AudioTrack0", RelXml.HashString(AudioTrack0));
RelXml.StringTag(sb, indent, "AudioTrack1", RelXml.HashString(AudioTrack1));
RelXml.ValueTag(sb, indent, "Unk3", FloatUtil.ToString(Unk3));
RelXml.StringTag(sb, indent, "AudioTrack2", RelXml.HashString(AudioTrack2));
RelXml.StringTag(sb, indent, "Mood", RelXml.HashString(Mood));
RelXml.ValueTag(sb, indent, "Unk4", FloatUtil.ToString(Unk4));
RelXml.ValueTag(sb, indent, "Unk5", Unk5.ToString());
RelXml.ValueTag(sb, indent, "Unk6", Unk6.ToString());
@ -7149,7 +7180,7 @@ namespace CodeWalker.GameFiles
AudioTrack0 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack0"));
AudioTrack1 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack1"));
Unk3 = Xml.GetChildFloatAttribute(node, "Unk3", "value");
AudioTrack2 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack2"));
Mood = XmlRel.GetHash(Xml.GetChildInnerText(node, "Mood"));
Unk4 = Xml.GetChildFloatAttribute(node, "Unk4", "value");
Unk5 = Xml.GetChildIntAttribute(node, "Unk5", "value");
Unk6 = Xml.GetChildIntAttribute(node, "Unk6", "value");
@ -11664,12 +11695,12 @@ namespace CodeWalker.GameFiles
public byte Unk01 { get; set; } = 94;
public byte Unk02 { get; set; } = 57;
public byte Unk03 { get; set; } = 245;
public byte ItemCount1 { get; set; }
public Dat151PedVoiceGroupItem[] Items1 { get; set; }
public byte ItemCount2 { get; set; }
public Dat151PedVoiceGroupItem[] Items2 { get; set; }
public byte ItemCount3 { get; set; }
public Dat151PedVoiceGroupItem[] Items3 { get; set; }
public byte FullCount { get; set; }
public Dat151PedVoiceGroupItem[] Full { get; set; }
public byte MiniCount { get; set; }
public Dat151PedVoiceGroupItem[] Mini { get; set; }
public byte UnkItemsCount { get; set; }
public Dat151PedVoiceGroupItem[] UnkItems { get; set; }
public byte Unk07 { get; set; } //item count4? (=0)
@ -11686,25 +11717,25 @@ namespace CodeWalker.GameFiles
Unk02 = br.ReadByte();//57
Unk03 = br.ReadByte();//245
ItemCount1 = br.ReadByte();
Items1 = new Dat151PedVoiceGroupItem[ItemCount1];
for (int i = 0; i < ItemCount1; i++)
FullCount = br.ReadByte();
Full = new Dat151PedVoiceGroupItem[FullCount];
for (int i = 0; i < FullCount; i++)
{
Items1[i] = new Dat151PedVoiceGroupItem(br);
Full[i] = new Dat151PedVoiceGroupItem(br);
}
ItemCount2 = br.ReadByte();
Items2 = new Dat151PedVoiceGroupItem[ItemCount2];
for (int i = 0; i < ItemCount2; i++)
MiniCount = br.ReadByte();
Mini = new Dat151PedVoiceGroupItem[MiniCount];
for (int i = 0; i < MiniCount; i++)
{
Items2[i] = new Dat151PedVoiceGroupItem(br);
Mini[i] = new Dat151PedVoiceGroupItem(br);
}
ItemCount3 = br.ReadByte();
Items3 = new Dat151PedVoiceGroupItem[ItemCount3];
for (int i = 0; i < ItemCount3; i++)
UnkItemsCount = br.ReadByte();
UnkItems = new Dat151PedVoiceGroupItem[UnkItemsCount];
for (int i = 0; i < UnkItemsCount; i++)
{
Items3[i] = new Dat151PedVoiceGroupItem(br);
UnkItems[i] = new Dat151PedVoiceGroupItem(br);
}
Unk07 = br.ReadByte();
@ -11733,20 +11764,20 @@ namespace CodeWalker.GameFiles
bw.Write(Unk01);//94
bw.Write(Unk02);//57
bw.Write(Unk03);//245
bw.Write(ItemCount1);
for (int i = 0; i < ItemCount1; i++)
bw.Write(FullCount);
for (int i = 0; i < FullCount; i++)
{
Items1[i].Write(bw);
Full[i].Write(bw);
}
bw.Write(ItemCount2);
for (int i = 0; i < ItemCount2; i++)
bw.Write(MiniCount);
for (int i = 0; i < MiniCount; i++)
{
Items2[i].Write(bw);
Mini[i].Write(bw);
}
bw.Write(ItemCount3);
for (int i = 0; i < ItemCount3; i++)
bw.Write(UnkItemsCount);
for (int i = 0; i < UnkItemsCount; i++)
{
Items3[i].Write(bw);
UnkItems[i].Write(bw);
}
bw.Write(Unk07);
}
@ -11756,9 +11787,9 @@ namespace CodeWalker.GameFiles
RelXml.ValueTag(sb, indent, "Unk01", Unk01.ToString());
RelXml.ValueTag(sb, indent, "Unk02", Unk02.ToString());
RelXml.ValueTag(sb, indent, "Unk03", Unk03.ToString());
RelXml.WriteItemArray(sb, Items1, indent, "Items1");
RelXml.WriteItemArray(sb, Items2, indent, "Items2");
RelXml.WriteItemArray(sb, Items3, indent, "Items3");
RelXml.WriteItemArray(sb, Full, indent, "Full");
RelXml.WriteItemArray(sb, Mini, indent, "Mini");
RelXml.WriteItemArray(sb, UnkItems, indent, "UnkItems");
RelXml.ValueTag(sb, indent, "Unk07", Unk07.ToString());
}
public override void ReadXml(XmlNode node)
@ -11767,12 +11798,12 @@ namespace CodeWalker.GameFiles
Unk01 = (byte)Xml.GetChildUIntAttribute(node, "Unk01", "value");
Unk02 = (byte)Xml.GetChildUIntAttribute(node, "Unk02", "value");
Unk03 = (byte)Xml.GetChildUIntAttribute(node, "Unk03", "value");
Items1 = XmlRel.ReadItemArray<Dat151PedVoiceGroupItem>(node, "Items1");
ItemCount1 = (byte)(Items1?.Length ?? 0);
Items2 = XmlRel.ReadItemArray<Dat151PedVoiceGroupItem>(node, "Items2");
ItemCount2 = (byte)(Items2?.Length ?? 0);
Items3 = XmlRel.ReadItemArray<Dat151PedVoiceGroupItem>(node, "Items3");
ItemCount3 = (byte)(Items3?.Length ?? 0);
Full = XmlRel.ReadItemArray<Dat151PedVoiceGroupItem>(node, "Full");
FullCount = (byte)(Full?.Length ?? 0);
Mini = XmlRel.ReadItemArray<Dat151PedVoiceGroupItem>(node, "Mini");
MiniCount = (byte)(Mini?.Length ?? 0);
UnkItems = XmlRel.ReadItemArray<Dat151PedVoiceGroupItem>(node, "UnkItems");
UnkItemsCount = (byte)(UnkItems?.Length ?? 0);
Unk07 = (byte)Xml.GetChildUIntAttribute(node, "Unk07", "value");
}
}
@ -15860,14 +15891,14 @@ namespace CodeWalker.GameFiles
}
[TC(typeof(EXP))] public class Dat151StemMix : Dat151RelData
{
public short Unk01 { get; set; }
public short Unk02 { get; set; }
public short Unk03 { get; set; }
public short Unk04 { get; set; }
public short Unk05 { get; set; }
public short Unk06 { get; set; }
public short Unk07 { get; set; }
public short Unk08 { get; set; }
public short Stem1Volume { get; set; }
public short Stem2Volume { get; set; }
public short Stem3Volume { get; set; }
public short Stem4Volume { get; set; }
public short Stem5Volume { get; set; }
public short Stem6Volume { get; set; }
public short Stem7Volume { get; set; }
public short Stem8Volume { get; set; }
public Dat151StemMix(RelFile rel) : base(rel)
{
@ -15876,14 +15907,14 @@ namespace CodeWalker.GameFiles
}
public Dat151StemMix(RelData d, BinaryReader br) : base(d, br)
{
Unk01 = br.ReadInt16();
Unk02 = br.ReadInt16();
Unk03 = br.ReadInt16();
Unk04 = br.ReadInt16();
Unk05 = br.ReadInt16();
Unk06 = br.ReadInt16();
Unk07 = br.ReadInt16();
Unk08 = br.ReadInt16();
Stem1Volume = br.ReadInt16();
Stem2Volume = br.ReadInt16();
Stem3Volume = br.ReadInt16();
Stem4Volume = br.ReadInt16();
Stem5Volume = br.ReadInt16();
Stem6Volume = br.ReadInt16();
Stem7Volume = br.ReadInt16();
Stem8Volume = br.ReadInt16();
var bytesleft = br.BaseStream.Length - br.BaseStream.Position;
if (bytesleft != 0)
@ -15893,36 +15924,36 @@ namespace CodeWalker.GameFiles
{
WriteTypeAndOffset(bw);
bw.Write(Unk01);
bw.Write(Unk02);
bw.Write(Unk03);
bw.Write(Unk04);
bw.Write(Unk05);
bw.Write(Unk06);
bw.Write(Unk07);
bw.Write(Unk08);
bw.Write(Stem1Volume);
bw.Write(Stem2Volume);
bw.Write(Stem3Volume);
bw.Write(Stem4Volume);
bw.Write(Stem5Volume);
bw.Write(Stem6Volume);
bw.Write(Stem7Volume);
bw.Write(Stem8Volume);
}
public override void WriteXml(StringBuilder sb, int indent)
{
RelXml.ValueTag(sb, indent, "Unk01", Unk01.ToString());
RelXml.ValueTag(sb, indent, "Unk02", Unk02.ToString());
RelXml.ValueTag(sb, indent, "Unk03", Unk03.ToString());
RelXml.ValueTag(sb, indent, "Unk04", Unk04.ToString());
RelXml.ValueTag(sb, indent, "Unk05", Unk05.ToString());
RelXml.ValueTag(sb, indent, "Unk06", Unk06.ToString());
RelXml.ValueTag(sb, indent, "Unk07", Unk07.ToString());
RelXml.ValueTag(sb, indent, "Unk08", Unk08.ToString());
RelXml.ValueTag(sb, indent, "Stem1Volume", Stem1Volume.ToString());
RelXml.ValueTag(sb, indent, "Stem2Volume", Stem2Volume.ToString());
RelXml.ValueTag(sb, indent, "Stem3Volume", Stem3Volume.ToString());
RelXml.ValueTag(sb, indent, "Stem4Volume", Stem4Volume.ToString());
RelXml.ValueTag(sb, indent, "Stem5Volume", Stem5Volume.ToString());
RelXml.ValueTag(sb, indent, "Stem6Volume", Stem6Volume.ToString());
RelXml.ValueTag(sb, indent, "Stem7Volume", Stem7Volume.ToString());
RelXml.ValueTag(sb, indent, "Stem8Volume", Stem8Volume.ToString());
}
public override void ReadXml(XmlNode node)
{
Unk01 = (short)Xml.GetChildIntAttribute(node, "Unk01", "value");
Unk02 = (short)Xml.GetChildIntAttribute(node, "Unk02", "value");
Unk03 = (short)Xml.GetChildIntAttribute(node, "Unk03", "value");
Unk04 = (short)Xml.GetChildIntAttribute(node, "Unk04", "value");
Unk05 = (short)Xml.GetChildIntAttribute(node, "Unk05", "value");
Unk06 = (short)Xml.GetChildIntAttribute(node, "Unk06", "value");
Unk07 = (short)Xml.GetChildIntAttribute(node, "Unk07", "value");
Unk08 = (short)Xml.GetChildIntAttribute(node, "Unk08", "value");
Stem1Volume = (short)Xml.GetChildIntAttribute(node, "Stem1Volume", "value");
Stem2Volume = (short)Xml.GetChildIntAttribute(node, "Stem2Volume", "value");
Stem3Volume = (short)Xml.GetChildIntAttribute(node, "Stem3Volume", "value");
Stem4Volume = (short)Xml.GetChildIntAttribute(node, "Stem4Volume", "value");
Stem5Volume = (short)Xml.GetChildIntAttribute(node, "Stem5Volume", "value");
Stem6Volume = (short)Xml.GetChildIntAttribute(node, "Stem6Volume", "value");
Stem7Volume = (short)Xml.GetChildIntAttribute(node, "Stem7Volume", "value");
Stem8Volume = (short)Xml.GetChildIntAttribute(node, "Stem8Volume", "value");
}
}
[TC(typeof(EXP))] public class Dat151Unk69 : Dat151RelData
@ -21911,11 +21942,10 @@ namespace CodeWalker.GameFiles
[TC(typeof(EXP))] public class Dat15PatchItem : IMetaXmlItem
{
public MetaHash Unk01 { get; set; }
public short Unk02 { get; set; }
public MetaHash Category { get; set; }
public short Volume { get; set; }
public byte Unk03 { get; set; }
public byte Unk04 { get; set; }
public byte Unk05 { get; set; }
public short LPFCutoff { get; set; }
public byte Unk06 { get; set; }
public short Unk07 { get; set; }
public byte Unk08 { get; set; }
@ -21927,11 +21957,10 @@ namespace CodeWalker.GameFiles
{ }
public Dat15PatchItem(BinaryReader br)
{
Unk01 = br.ReadUInt32();
Unk02 = br.ReadInt16();
Category = br.ReadUInt32();
Volume = br.ReadInt16();
Unk03 = br.ReadByte();
Unk04 = br.ReadByte();
Unk05 = br.ReadByte();
LPFCutoff = br.ReadInt16();
Unk06 = br.ReadByte();
Unk07 = br.ReadInt16();
Unk08 = br.ReadByte();
@ -21941,11 +21970,10 @@ namespace CodeWalker.GameFiles
}
public void Write(BinaryWriter bw)
{
bw.Write(Unk01);
bw.Write(Unk02);
bw.Write(Category);
bw.Write(Volume);
bw.Write(Unk03);
bw.Write(Unk04);
bw.Write(Unk05);
bw.Write(LPFCutoff);
bw.Write(Unk06);
bw.Write(Unk07);
bw.Write(Unk08);
@ -21955,11 +21983,10 @@ namespace CodeWalker.GameFiles
}
public void WriteXml(StringBuilder sb, int indent)
{
RelXml.StringTag(sb, indent, "Unk01", RelXml.HashString(Unk01));
RelXml.ValueTag(sb, indent, "Unk02", Unk02.ToString());
RelXml.StringTag(sb, indent, "Category", RelXml.HashString(Category));
RelXml.ValueTag(sb, indent, "Volume", Volume.ToString());
RelXml.ValueTag(sb, indent, "Unk03", Unk03.ToString());
RelXml.ValueTag(sb, indent, "Unk04", Unk04.ToString());
RelXml.ValueTag(sb, indent, "Unk05", Unk05.ToString());
RelXml.ValueTag(sb, indent, "LPFCutoff", LPFCutoff.ToString());
RelXml.ValueTag(sb, indent, "Unk06", Unk06.ToString());
RelXml.ValueTag(sb, indent, "Unk07", Unk07.ToString());
RelXml.ValueTag(sb, indent, "Unk08", Unk08.ToString());
@ -21969,11 +21996,10 @@ namespace CodeWalker.GameFiles
}
public void ReadXml(XmlNode node)
{
Unk01 = XmlRel.GetHash(Xml.GetChildInnerText(node, "Unk01"));
Unk02 = (short)Xml.GetChildIntAttribute(node, "Unk02", "value");
Category = XmlRel.GetHash(Xml.GetChildInnerText(node, "Category"));
Volume = (short)Xml.GetChildIntAttribute(node, "Volume", "value");
Unk03 = (byte)Xml.GetChildUIntAttribute(node, "Unk03", "value");
Unk04 = (byte)Xml.GetChildUIntAttribute(node, "Unk04", "value");
Unk05 = (byte)Xml.GetChildUIntAttribute(node, "Unk05", "value");
LPFCutoff = (short)Xml.GetChildUIntAttribute(node, "LPFCutoff", "value");
Unk06 = (byte)Xml.GetChildUIntAttribute(node, "Unk06", "value");
Unk07 = (short)Xml.GetChildIntAttribute(node, "Unk07", "value");
Unk08 = (byte)Xml.GetChildUIntAttribute(node, "Unk08", "value");
@ -21983,11 +22009,10 @@ namespace CodeWalker.GameFiles
}
public override string ToString()
{
return Unk01.ToString() + ": " +
Unk02.ToString() + ", " +
return Category.ToString() + ": " +
Volume.ToString() + ", " +
Unk03.ToString() + ", " +
Unk04.ToString() + ", " +
Unk05.ToString() + ", " +
LPFCutoff.ToString() + ", " +
Unk06.ToString() + ", " +
Unk07.ToString() + ", " +
Unk08.ToString() + ", " +

View File

@ -67,10 +67,8 @@
this.Flags4TextBox = new System.Windows.Forms.TextBox();
this.label23 = new System.Windows.Forms.Label();
this.Flags5TextBox = new System.Windows.Forms.TextBox();
this.Unk02UpDown = new System.Windows.Forms.NumericUpDown();
this.Unk03UpDown = new System.Windows.Forms.NumericUpDown();
this.Unk04UpDown = new System.Windows.Forms.NumericUpDown();
this.Unk05UpDown = new System.Windows.Forms.NumericUpDown();
this.StartTimeUpDown = new System.Windows.Forms.NumericUpDown();
this.EndTimeUpDown = new System.Windows.Forms.NumericUpDown();
this.Unk06UpDown = new System.Windows.Forms.NumericUpDown();
this.Unk08UpDown = new System.Windows.Forms.NumericUpDown();
this.Unk07UpDown = new System.Windows.Forms.NumericUpDown();
@ -81,10 +79,8 @@
this.Unk13UpDown = new System.Windows.Forms.NumericUpDown();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.Unk02UpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.Unk03UpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.Unk04UpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.Unk05UpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.StartTimeUpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.EndTimeUpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.Unk06UpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.Unk08UpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.Unk07UpDown)).BeginInit();
@ -128,10 +124,8 @@
this.tabPage1.Controls.Add(this.Unk07UpDown);
this.tabPage1.Controls.Add(this.Unk08UpDown);
this.tabPage1.Controls.Add(this.Unk06UpDown);
this.tabPage1.Controls.Add(this.Unk05UpDown);
this.tabPage1.Controls.Add(this.Unk04UpDown);
this.tabPage1.Controls.Add(this.Unk03UpDown);
this.tabPage1.Controls.Add(this.Unk02UpDown);
this.tabPage1.Controls.Add(this.EndTimeUpDown);
this.tabPage1.Controls.Add(this.StartTimeUpDown);
this.tabPage1.Controls.Add(this.label23);
this.tabPage1.Controls.Add(this.Flags5TextBox);
this.tabPage1.Controls.Add(this.label22);
@ -511,57 +505,31 @@
this.Flags5TextBox.TabIndex = 71;
this.Flags5TextBox.TextChanged += new System.EventHandler(this.Flags5TextBox_TextChanged);
//
// Unk02UpDown
// StartTimeUpDown
//
this.Unk02UpDown.Location = new System.Drawing.Point(84, 175);
this.Unk02UpDown.Maximum = new decimal(new int[] {
this.StartTimeUpDown.Location = new System.Drawing.Point(84, 175);
this.StartTimeUpDown.Maximum = new decimal(new int[] {
255,
0,
0,
0});
this.Unk02UpDown.Name = "Unk02UpDown";
this.Unk02UpDown.Size = new System.Drawing.Size(48, 20);
this.Unk02UpDown.TabIndex = 44;
this.Unk02UpDown.ValueChanged += new System.EventHandler(this.Unk02UpDown_ValueChanged);
this.StartTimeUpDown.Name = "StartTimeUpDown";
this.StartTimeUpDown.Size = new System.Drawing.Size(48, 20);
this.StartTimeUpDown.TabIndex = 44;
this.StartTimeUpDown.ValueChanged += new System.EventHandler(this.StartTimeUpDown_ValueChanged);
//
// Unk03UpDown
// EndTimeUpDown
//
this.Unk03UpDown.Location = new System.Drawing.Point(138, 175);
this.Unk03UpDown.Maximum = new decimal(new int[] {
this.EndTimeUpDown.Location = new System.Drawing.Point(192, 175);
this.EndTimeUpDown.Maximum = new decimal(new int[] {
255,
0,
0,
0});
this.Unk03UpDown.Name = "Unk03UpDown";
this.Unk03UpDown.Size = new System.Drawing.Size(48, 20);
this.Unk03UpDown.TabIndex = 45;
this.Unk03UpDown.ValueChanged += new System.EventHandler(this.Unk03UpDown_ValueChanged);
//
// Unk04UpDown
//
this.Unk04UpDown.Location = new System.Drawing.Point(192, 175);
this.Unk04UpDown.Maximum = new decimal(new int[] {
255,
0,
0,
0});
this.Unk04UpDown.Name = "Unk04UpDown";
this.Unk04UpDown.Size = new System.Drawing.Size(48, 20);
this.Unk04UpDown.TabIndex = 46;
this.Unk04UpDown.ValueChanged += new System.EventHandler(this.Unk04UpDown_ValueChanged);
//
// Unk05UpDown
//
this.Unk05UpDown.Location = new System.Drawing.Point(246, 175);
this.Unk05UpDown.Maximum = new decimal(new int[] {
255,
0,
0,
0});
this.Unk05UpDown.Name = "Unk05UpDown";
this.Unk05UpDown.Size = new System.Drawing.Size(48, 20);
this.Unk05UpDown.TabIndex = 47;
this.Unk05UpDown.ValueChanged += new System.EventHandler(this.Unk05UpDown_ValueChanged);
this.EndTimeUpDown.Name = "EndTimeUpDown";
this.EndTimeUpDown.Size = new System.Drawing.Size(48, 20);
this.EndTimeUpDown.TabIndex = 46;
this.EndTimeUpDown.ValueChanged += new System.EventHandler(this.EndTimeUpDown_ValueChanged);
//
// Unk06UpDown
//
@ -680,10 +648,8 @@
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.Unk02UpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Unk03UpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Unk04UpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Unk05UpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.StartTimeUpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.EndTimeUpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Unk06UpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Unk08UpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Unk07UpDown)).EndInit();
@ -737,10 +703,8 @@
private System.Windows.Forms.Label label19;
private System.Windows.Forms.TextBox Flags3TextBox;
private System.Windows.Forms.NumericUpDown Unk06UpDown;
private System.Windows.Forms.NumericUpDown Unk05UpDown;
private System.Windows.Forms.NumericUpDown Unk04UpDown;
private System.Windows.Forms.NumericUpDown Unk03UpDown;
private System.Windows.Forms.NumericUpDown Unk02UpDown;
private System.Windows.Forms.NumericUpDown EndTimeUpDown;
private System.Windows.Forms.NumericUpDown StartTimeUpDown;
private System.Windows.Forms.NumericUpDown Unk07UpDown;
private System.Windows.Forms.NumericUpDown Unk08UpDown;
private System.Windows.Forms.NumericUpDown Unk13UpDown;

View File

@ -56,10 +56,8 @@ namespace CodeWalker.Project.Panels
Hash1TextBox.Text = string.Empty;
Hash2TextBox.Text = string.Empty;
Unk01TextBox.Text = string.Empty;
Unk02UpDown.Value = 0;
Unk03UpDown.Value = 0;
Unk04UpDown.Value = 0;
Unk05UpDown.Value = 0;
StartTimeUpDown.Value = 0;
EndTimeUpDown.Value = 0;
Unk06UpDown.Value = 0;
Unk07UpDown.Value = 0;
Unk08UpDown.Value = 0;
@ -91,10 +89,8 @@ namespace CodeWalker.Project.Panels
Hash1TextBox.Text = e.Hash1.ToString();
Hash2TextBox.Text = e.Hash2.ToString();
Unk01TextBox.Text = FloatUtil.ToString(e.Unk01);
Unk02UpDown.Value = e.Unk02.Value;
Unk03UpDown.Value = e.Unk03.Value;
Unk04UpDown.Value = e.Unk04.Value;
Unk05UpDown.Value = e.Unk05.Value;
StartTimeUpDown.Value = e.StartTime.Value;
EndTimeUpDown.Value = e.EndTime.Value;
Unk06UpDown.Value = e.Unk06.Value;
Unk07UpDown.Value = e.Unk07.Value;
Unk08UpDown.Value = e.Unk08.Value;
@ -279,57 +275,29 @@ namespace CodeWalker.Project.Panels
}
}
private void Unk02UpDown_ValueChanged(object sender, EventArgs e)
private void StartTimeUpDown_ValueChanged(object sender, EventArgs e)
{
if (populatingui) return;
if (CurrentEmitter?.AudioEmitter == null) return;
byte unk = (byte)Unk02UpDown.Value;
if (CurrentEmitter.AudioEmitter.Unk02.Value != unk)
ushort unk = (ushort)StartTimeUpDown.Value;
if (CurrentEmitter.AudioEmitter.StartTime.Value != unk)
{
CurrentEmitter.AudioEmitter.Unk02 = unk;
CurrentEmitter.AudioEmitter.StartTime = unk;
ProjectItemChanged();
}
}
private void Unk03UpDown_ValueChanged(object sender, EventArgs e)
private void EndTimeUpDown_ValueChanged(object sender, EventArgs e)
{
if (populatingui) return;
if (CurrentEmitter?.AudioEmitter == null) return;
byte unk = (byte)Unk03UpDown.Value;
if (CurrentEmitter.AudioEmitter.Unk03.Value != unk)
ushort unk = (ushort)EndTimeUpDown.Value;
if (CurrentEmitter.AudioEmitter.EndTime.Value != unk)
{
CurrentEmitter.AudioEmitter.Unk03 = unk;
ProjectItemChanged();
}
}
private void Unk04UpDown_ValueChanged(object sender, EventArgs e)
{
if (populatingui) return;
if (CurrentEmitter?.AudioEmitter == null) return;
byte unk = (byte)Unk04UpDown.Value;
if (CurrentEmitter.AudioEmitter.Unk04.Value != unk)
{
CurrentEmitter.AudioEmitter.Unk04 = unk;
ProjectItemChanged();
}
}
private void Unk05UpDown_ValueChanged(object sender, EventArgs e)
{
if (populatingui) return;
if (CurrentEmitter?.AudioEmitter == null) return;
byte unk = (byte)Unk05UpDown.Value;
if (CurrentEmitter.AudioEmitter.Unk05.Value != unk)
{
CurrentEmitter.AudioEmitter.Unk05 = unk;
CurrentEmitter.AudioEmitter.EndTime = unk;
ProjectItemChanged();
}

View File

@ -6553,10 +6553,8 @@ namespace CodeWalker.Project
emitter.InnerRad = cp ? copy.AudioEmitter.InnerRad : 0.0f;
emitter.OuterRad = cp ? copy.AudioEmitter.OuterRad : 20.0f;
emitter.Unk01 = cp ? copy.AudioEmitter.Unk01 : 1.0f;
emitter.Unk02 = cp ? copy.AudioEmitter.Unk02.Value : (byte)0;
emitter.Unk03 = cp ? copy.AudioEmitter.Unk03.Value : (byte)0;
emitter.Unk04 = cp ? copy.AudioEmitter.Unk04.Value : (byte)160;
emitter.Unk05 = cp ? copy.AudioEmitter.Unk05.Value : (byte)5;
emitter.StartTime = cp ? copy.AudioEmitter.StartTime.Value : (ushort)0;
emitter.EndTime = cp ? copy.AudioEmitter.EndTime.Value : (ushort)1440;
emitter.Unk06 = cp ? copy.AudioEmitter.Unk06.Value : (ushort)0;
emitter.Unk07 = cp ? copy.AudioEmitter.Unk07.Value : (ushort)0;
emitter.Unk08 = cp ? copy.AudioEmitter.Unk08.Value : (byte)0;