mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-11-22 23:12:59 +08:00
R28_dev1 - Turkish weather bug fix, .rel progress
This commit is contained in:
parent
d3fa4d7a3e
commit
470f71d6ca
@ -789,7 +789,7 @@ namespace CodeWalker
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string find = FindTextBox.Text.ToLower();
|
string find = FindTextBox.Text.ToLowerInvariant();
|
||||||
Cursor = Cursors.WaitCursor;
|
Cursor = Cursors.WaitCursor;
|
||||||
if (string.IsNullOrEmpty(find))
|
if (string.IsNullOrEmpty(find))
|
||||||
{
|
{
|
||||||
@ -806,7 +806,7 @@ namespace CodeWalker
|
|||||||
int max = 500;
|
int max = 500;
|
||||||
foreach (RpfFile file in ScannedFiles)
|
foreach (RpfFile file in ScannedFiles)
|
||||||
{
|
{
|
||||||
if (file.Name.ToLower().Contains(find))
|
if (file.Name.ToLowerInvariant().Contains(find))
|
||||||
{
|
{
|
||||||
AddFileNode(file, null);
|
AddFileNode(file, null);
|
||||||
count++;
|
count++;
|
||||||
@ -999,7 +999,7 @@ namespace CodeWalker
|
|||||||
byte[] searchbytes2;
|
byte[] searchbytes2;
|
||||||
int bytelen;
|
int bytelen;
|
||||||
|
|
||||||
if (!casesen) searchtxt = searchtxt.ToLower(); //case sensitive search in lower case.
|
if (!casesen) searchtxt = searchtxt.ToLowerInvariant(); //case sensitive search in lower case.
|
||||||
|
|
||||||
if (SearchIgnoreCheckBox.Checked)
|
if (SearchIgnoreCheckBox.Checked)
|
||||||
{
|
{
|
||||||
|
@ -928,7 +928,7 @@ namespace CodeWalker.Forms
|
|||||||
for (int i = 0; i < frag.Layers.Length; i++)
|
for (int i = 0; i < frag.Layers.Length; i++)
|
||||||
{
|
{
|
||||||
CloudHatFragLayer layer = frag.Layers[i];
|
CloudHatFragLayer layer = frag.Layers[i];
|
||||||
uint dhash = JenkHash.GenHash(layer.Filename.ToLower());
|
uint dhash = JenkHash.GenHash(layer.Filename.ToLowerInvariant());
|
||||||
Archetype arch = gameFileCache.GetArchetype(dhash);
|
Archetype arch = gameFileCache.GetArchetype(dhash);
|
||||||
if (arch == null)
|
if (arch == null)
|
||||||
{ continue; }
|
{ continue; }
|
||||||
|
@ -82,7 +82,7 @@ namespace CodeWalker.GameFiles
|
|||||||
|
|
||||||
foreach (var datafile in dataFiles)
|
foreach (var datafile in dataFiles)
|
||||||
{
|
{
|
||||||
string dfn = GameFileCache.GetDlcPlatformPath(datafile.filename).ToLower();
|
string dfn = GameFileCache.GetDlcPlatformPath(datafile.filename).ToLowerInvariant();
|
||||||
if (datafile.fileType == "EXTRA_FOLDER_MOUNT_DATA")
|
if (datafile.fileType == "EXTRA_FOLDER_MOUNT_DATA")
|
||||||
{
|
{
|
||||||
string efmdxmlpath = datafile.filename.Replace(setupfile.deviceName + ":", DlcFile.Path).Replace('/', '\\');
|
string efmdxmlpath = datafile.filename.Replace(setupfile.deviceName + ":", DlcFile.Path).Replace('/', '\\');
|
||||||
|
@ -184,39 +184,39 @@ namespace CodeWalker.GameFiles
|
|||||||
BinaryReader br = new BinaryReader(ms);
|
BinaryReader br = new BinaryReader(ms);
|
||||||
|
|
||||||
DataUnkVal = br.ReadUInt32(); //3 bytes used... for? ..version? flags?
|
DataUnkVal = br.ReadUInt32(); //3 bytes used... for? ..version? flags?
|
||||||
switch (DataUnkVal)
|
//switch (DataUnkVal)
|
||||||
{
|
//{
|
||||||
case 5252715: //dlcbusiness_amp.dat10.rel
|
// case 5252715: //dlcbusiness_amp.dat10.rel
|
||||||
case 5301323: //dlcbeach_game.dat149.rel
|
// case 5301323: //dlcbeach_game.dat149.rel
|
||||||
case 5378673: //dlcmpheist_game.dat150.rel
|
// case 5378673: //dlcmpheist_game.dat150.rel
|
||||||
case 5750395: //dlcbeach_game.dat150.rel
|
// case 5750395: //dlcbeach_game.dat150.rel
|
||||||
case 6353778: //dlcbeach_game.dat151.rel
|
// case 6353778: //dlcbeach_game.dat151.rel
|
||||||
case 6894089: //dlcpilotschool_game.dat151.rel
|
// case 6894089: //dlcpilotschool_game.dat151.rel
|
||||||
case 6978435: //dlcxmas2_amp.dat10.rel
|
// case 6978435: //dlcxmas2_amp.dat10.rel
|
||||||
case 7126027: //audioconfig.dat4.rel
|
// case 7126027: //audioconfig.dat4.rel
|
||||||
case 7314721: //dlcmpheist_amp.dat10.rel
|
// case 7314721: //dlcmpheist_amp.dat10.rel
|
||||||
case 7516460: //dlcpd03_game.dat151.rel
|
// case 7516460: //dlcpd03_game.dat151.rel
|
||||||
case 7917027: //dlcluxe_amp.dat10.rel
|
// case 7917027: //dlcluxe_amp.dat10.rel
|
||||||
case 7921508: //dlcluxe_game.dat151.rel
|
// case 7921508: //dlcluxe_game.dat151.rel
|
||||||
case 8149475: //dlcluxe2_amp.dat10.rel
|
// case 8149475: //dlcluxe2_amp.dat10.rel
|
||||||
case 8751734: //dlcsfx1_game.dat151.rel
|
// case 8751734: //dlcsfx1_game.dat151.rel
|
||||||
case 9028036: //dlchalloween_amp.dat10.rel
|
// case 9028036: //dlchalloween_amp.dat10.rel
|
||||||
case 9037528: //dlclowrider_amp.dat10.rel
|
// case 9037528: //dlclowrider_amp.dat10.rel
|
||||||
case 9458585: //dlcapartment_amp.dat10.rel
|
// case 9458585: //dlcapartment_amp.dat10.rel
|
||||||
case 9486222: //dlcapartment_mix.dat15.rel
|
// case 9486222: //dlcapartment_mix.dat15.rel
|
||||||
case 9806108: //mpvalentines2_amp.dat10.rel
|
// case 9806108: //mpvalentines2_amp.dat10.rel
|
||||||
case 9813679: //dlcjanuary2016_amp.dat10.rel
|
// case 9813679: //dlcjanuary2016_amp.dat10.rel
|
||||||
case 10269543://dlclow2_amp.dat10.rel
|
// case 10269543://dlclow2_amp.dat10.rel
|
||||||
case 10891463://dlcexec1_amp.dat10.rel
|
// case 10891463://dlcexec1_amp.dat10.rel
|
||||||
case 11171338://dlcstunt_amp.dat10.rel
|
// case 11171338://dlcstunt_amp.dat10.rel
|
||||||
case 11918985://dlcbiker_amp.dat10.rel
|
// case 11918985://dlcbiker_amp.dat10.rel
|
||||||
case 12470522://dlcimportexport_amp.dat10.rel
|
// case 12470522://dlcimportexport_amp.dat10.rel
|
||||||
case 12974726://audioconfig.dat4.rel
|
// case 12974726://audioconfig.dat4.rel
|
||||||
case 13117164://dlcspecialraces_amp.dat10.rel
|
// case 13117164://dlcspecialraces_amp.dat10.rel
|
||||||
break;
|
// break;
|
||||||
default:
|
// default:
|
||||||
break;
|
// break;
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
|
||||||
List<RelData> reldatas = new List<RelData>();
|
List<RelData> reldatas = new List<RelData>();
|
||||||
@ -367,8 +367,9 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
private RelData ReadData22(RelData d, BinaryReader br)
|
private RelData ReadData22(RelData d, BinaryReader br)
|
||||||
{
|
{
|
||||||
RelSound s = new RelSound(d, br);
|
//RelSound s = new RelSound(d, br);
|
||||||
return s;
|
//return s;
|
||||||
|
return d;
|
||||||
}
|
}
|
||||||
private RelData ReadData54(RelData d, BinaryReader br)
|
private RelData ReadData54(RelData d, BinaryReader br)
|
||||||
{
|
{
|
||||||
@ -415,8 +416,9 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
private RelData ReadData149(RelData d, BinaryReader br)
|
private RelData ReadData149(RelData d, BinaryReader br)
|
||||||
{
|
{
|
||||||
RelSound s = new RelSound(d, br);
|
//RelSound s = new RelSound(d, br);
|
||||||
return s;
|
//return s;
|
||||||
|
return d;
|
||||||
}
|
}
|
||||||
private RelData ReadData150(RelData d, BinaryReader br)
|
private RelData ReadData150(RelData d, BinaryReader br)
|
||||||
{
|
{
|
||||||
@ -426,8 +428,10 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
switch ((Dat151RelType)d.TypeID)
|
switch ((Dat151RelType)d.TypeID)
|
||||||
{
|
{
|
||||||
case Dat151RelType.ShoreLineList:
|
case Dat151RelType.Unk37: return new Dat151Unk37(d, br);
|
||||||
default: return new Dat151RelData(d, br);
|
case Dat151RelType.Unk38: return new Dat151Unk38(d, br);
|
||||||
|
default:
|
||||||
|
return new Dat151RelData(d, br);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -957,11 +961,20 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
return GetBaseString() + ": " + TypeID.ToString();
|
return GetBaseString() + ": " + TypeID.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool Bit(uint f, int b)
|
||||||
|
{
|
||||||
|
return ((f & (1u << b)) != 0); //just for handyness... maybe move this?
|
||||||
|
}
|
||||||
|
public static bool BadF(float f)
|
||||||
|
{
|
||||||
|
return ((f < -15000) || (f > 15000));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[TC(typeof(EXP))] public class RelSoundHeader
|
[TC(typeof(EXP))] public class RelSoundHeader
|
||||||
{
|
{
|
||||||
public uint Flags { get; set; }
|
public FlagsUint Flags { get; set; }
|
||||||
|
|
||||||
public FlagsUint UnkFlags { get; set; }
|
public FlagsUint UnkFlags { get; set; }
|
||||||
public ushort Unk01 { get; set; }
|
public ushort Unk01 { get; set; }
|
||||||
@ -994,14 +1007,17 @@ namespace CodeWalker.GameFiles
|
|||||||
public ushort Unk23 { get; set; } //0x48-0x4A
|
public ushort Unk23 { get; set; } //0x48-0x4A
|
||||||
public ushort Unk24 { get; set; } //0x4A-0x4C
|
public ushort Unk24 { get; set; } //0x4A-0x4C
|
||||||
|
|
||||||
|
public ushort Unk25 { get; set; } //0x4A-0x4C
|
||||||
|
public ushort Unk26 { get; set; } //0x4A-0x4C
|
||||||
|
|
||||||
|
|
||||||
public void Read(BinaryReader br)
|
public RelSoundHeader(BinaryReader br)
|
||||||
{
|
{
|
||||||
Flags = br.ReadUInt32();
|
Flags = br.ReadUInt32();
|
||||||
|
|
||||||
|
|
||||||
if (Flags != 0xAAAAAAAA)
|
//if (Flags.Value != 0xAAAAAAAA)
|
||||||
|
if ((Flags.Value & 0xFF) != 0xAA)
|
||||||
{
|
{
|
||||||
if (Bit(0)) UnkFlags = br.ReadUInt32();
|
if (Bit(0)) UnkFlags = br.ReadUInt32();
|
||||||
if (Bit(1)) Unk01 = br.ReadUInt16();
|
if (Bit(1)) Unk01 = br.ReadUInt16();
|
||||||
@ -1011,6 +1027,9 @@ namespace CodeWalker.GameFiles
|
|||||||
if (Bit(5)) Unk05 = br.ReadUInt16();
|
if (Bit(5)) Unk05 = br.ReadUInt16();
|
||||||
if (Bit(6)) Unk06 = br.ReadUInt16();
|
if (Bit(6)) Unk06 = br.ReadUInt16();
|
||||||
if (Bit(7)) Unk07 = br.ReadUInt16();
|
if (Bit(7)) Unk07 = br.ReadUInt16();
|
||||||
|
}
|
||||||
|
if ((Flags.Value & 0xFF00) != 0xAA00)
|
||||||
|
{
|
||||||
if (Bit(8)) Unk08 = br.ReadUInt16();
|
if (Bit(8)) Unk08 = br.ReadUInt16();
|
||||||
if (Bit(9)) Unk09 = br.ReadUInt16();
|
if (Bit(9)) Unk09 = br.ReadUInt16();
|
||||||
if (Bit(10)) UnkHash1 = br.ReadUInt32();
|
if (Bit(10)) UnkHash1 = br.ReadUInt32();
|
||||||
@ -1019,6 +1038,9 @@ namespace CodeWalker.GameFiles
|
|||||||
if (Bit(13)) Unk11 = br.ReadUInt16();
|
if (Bit(13)) Unk11 = br.ReadUInt16();
|
||||||
if (Bit(14)) Unk12 = br.ReadUInt16();
|
if (Bit(14)) Unk12 = br.ReadUInt16();
|
||||||
if (Bit(15)) CategoryHash = br.ReadUInt32();
|
if (Bit(15)) CategoryHash = br.ReadUInt32();
|
||||||
|
}
|
||||||
|
if ((Flags.Value & 0xFF0000) != 0xAA0000)
|
||||||
|
{
|
||||||
if (Bit(16)) Unk14 = br.ReadUInt16();
|
if (Bit(16)) Unk14 = br.ReadUInt16();
|
||||||
if (Bit(17)) Unk15 = br.ReadUInt16();
|
if (Bit(17)) Unk15 = br.ReadUInt16();
|
||||||
if (Bit(18)) Unk16 = br.ReadUInt16();
|
if (Bit(18)) Unk16 = br.ReadUInt16();
|
||||||
@ -1027,23 +1049,28 @@ namespace CodeWalker.GameFiles
|
|||||||
if (Bit(21)) Unk18 = br.ReadUInt16();
|
if (Bit(21)) Unk18 = br.ReadUInt16();
|
||||||
if (Bit(22)) Unk19 = br.ReadByte();
|
if (Bit(22)) Unk19 = br.ReadByte();
|
||||||
if (Bit(23)) Unk20 = br.ReadByte();
|
if (Bit(23)) Unk20 = br.ReadByte();
|
||||||
|
}
|
||||||
|
if ((Flags.Value & 0xFF000000) != 0xAA000000)
|
||||||
|
{
|
||||||
if (Bit(24)) Unk21 = br.ReadByte();
|
if (Bit(24)) Unk21 = br.ReadByte();
|
||||||
if (Bit(25)) UnkHash4 = br.ReadUInt32();
|
if (Bit(25)) UnkHash4 = br.ReadUInt32();
|
||||||
if (Bit(26)) UnkHash5 = br.ReadUInt32();
|
if (Bit(26)) UnkHash5 = br.ReadUInt32();
|
||||||
if (Bit(27)) Unk22 = br.ReadUInt16();
|
if (Bit(27)) Unk22 = br.ReadUInt16();
|
||||||
if (Bit(28)) Unk23 = br.ReadUInt16();
|
if (Bit(28)) Unk23 = br.ReadUInt16();
|
||||||
if (Bit(29)) Unk24 = br.ReadUInt16();
|
if (Bit(29)) Unk24 = br.ReadUInt16();
|
||||||
|
if (Bit(30)) Unk25 = br.ReadUInt16(); //maybe not
|
||||||
|
if (Bit(31)) Unk26 = br.ReadUInt16(); //maybe not
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool Bit(int b)
|
private bool Bit(int b)
|
||||||
{
|
{
|
||||||
return ((Flags & (1u << b)) != 0);
|
return ((Flags.Value & (1u << b)) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return string.Format("{0}: {1}, {2}, {3}, {4}, {5}, {6}, {7}", Flags, UnkFlags.Hex, CategoryHash, UnkHash1, UnkHash2, UnkHash3, UnkHash4, UnkHash5);
|
return string.Format("{0}: {1}, {2}, {3}, {4}, {5}, {6}, {7}", Flags.Hex, UnkFlags.Hex, CategoryHash, UnkHash1, UnkHash2, UnkHash3, UnkHash4, UnkHash5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1052,13 +1079,11 @@ namespace CodeWalker.GameFiles
|
|||||||
public RelSoundHeader Header { get; set; }
|
public RelSoundHeader Header { get; set; }
|
||||||
public byte AudioTracksCount { get; set; }
|
public byte AudioTracksCount { get; set; }
|
||||||
public MetaHash[] AudioTracks { get; set; }
|
public MetaHash[] AudioTracks { get; set; }
|
||||||
public MetaHash[] AudioContainers { get; set; }
|
public MetaHash[] AudioContainers { get; set; } //Relative path to parent wave container (i.e. "RESIDENT/animals")
|
||||||
|
|
||||||
public RelSound(RelData d, BinaryReader br) : base(d)
|
public RelSound(RelData d, BinaryReader br) : base(d)
|
||||||
{
|
{
|
||||||
RelSoundHeader h = new RelSoundHeader();
|
Header = new RelSoundHeader(br);
|
||||||
h.Read(br);
|
|
||||||
Header = h;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ReadAudioTracks(BinaryReader br)
|
public void ReadAudioTracks(BinaryReader br)
|
||||||
@ -1197,7 +1222,6 @@ namespace CodeWalker.GameFiles
|
|||||||
ParameterHash5 = br.ReadUInt32(); //0x40-0x44
|
ParameterHash5 = br.ReadUInt32(); //0x40-0x44
|
||||||
UnkFloat0 = br.ReadSingle(); //0x44-0x48
|
UnkFloat0 = br.ReadSingle(); //0x44-0x48
|
||||||
UnkFloat1 = br.ReadSingle(); //0x48-0x4C
|
UnkFloat1 = br.ReadSingle(); //0x48-0x4C
|
||||||
|
|
||||||
AudioTracks = new[] { AudioHash };
|
AudioTracks = new[] { AudioHash };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1379,6 +1403,7 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
AudioHash0 = br.ReadUInt32();
|
AudioHash0 = br.ReadUInt32();
|
||||||
AudioHash1 = br.ReadUInt32();
|
AudioHash1 = br.ReadUInt32();
|
||||||
|
AudioTracks = new[] { AudioHash0, AudioHash1 };
|
||||||
UnkFloat0 = br.ReadSingle(); //0x8
|
UnkFloat0 = br.ReadSingle(); //0x8
|
||||||
UnkFloat1 = br.ReadSingle(); //0xC
|
UnkFloat1 = br.ReadSingle(); //0xC
|
||||||
ParameterHash0 = br.ReadUInt32(); //0x10
|
ParameterHash0 = br.ReadUInt32(); //0x10
|
||||||
@ -1389,23 +1414,20 @@ namespace CodeWalker.GameFiles
|
|||||||
UnkInt = br.ReadInt32(); //0x24-0x28
|
UnkInt = br.ReadInt32(); //0x24-0x28
|
||||||
ParameterHash5 = br.ReadUInt32(); //0x28-0x2C
|
ParameterHash5 = br.ReadUInt32(); //0x28-0x2C
|
||||||
UnkByte = br.ReadByte(); //0x2C-0x2D
|
UnkByte = br.ReadByte(); //0x2C-0x2D
|
||||||
|
|
||||||
AudioTracks = new[] { AudioHash0, AudioHash1 };
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TC(typeof(EXP))] public class Dat54SimpleSound : Dat54Sound
|
[TC(typeof(EXP))] public class Dat54SimpleSound : Dat54Sound
|
||||||
{
|
{
|
||||||
|
public MetaHash ContainerName { get; set; } //Relative path to parent wave container (i.e. "RESIDENT/animals")
|
||||||
public MetaHash FileName { get; set; } //Name of the .wav file
|
public MetaHash FileName { get; set; } //Name of the .wav file
|
||||||
public MetaHash ContainerName { get; set; } //Relative path to parent wave container (i.e. \"RESIDENT/animals\")
|
|
||||||
public byte WaveSlotNum { get; set; } //Internal index of wave (.awc) container
|
public byte WaveSlotNum { get; set; } //Internal index of wave (.awc) container
|
||||||
|
|
||||||
public Dat54SimpleSound(RelData d, BinaryReader br) : base(d, br)
|
public Dat54SimpleSound(RelData d, BinaryReader br) : base(d, br)
|
||||||
{
|
{
|
||||||
ContainerName = br.ReadUInt32();
|
ContainerName = br.ReadUInt32();
|
||||||
|
AudioContainers = new[] { ContainerName };
|
||||||
FileName = br.ReadUInt32();
|
FileName = br.ReadUInt32();
|
||||||
WaveSlotNum = br.ReadByte();
|
WaveSlotNum = br.ReadByte();
|
||||||
|
|
||||||
AudioContainers = new[] { ContainerName };
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TC(typeof(EXP))] public class Dat54MultitrackSound : Dat54Sound
|
[TC(typeof(EXP))] public class Dat54MultitrackSound : Dat54Sound
|
||||||
@ -1440,8 +1462,11 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
[TC(typeof(EXP))] public class Dat54EnvironmentSound : Dat54Sound
|
[TC(typeof(EXP))] public class Dat54EnvironmentSound : Dat54Sound
|
||||||
{
|
{
|
||||||
|
public byte UnkByte { get; set; }
|
||||||
|
|
||||||
public Dat54EnvironmentSound(RelData d, BinaryReader br) : base(d, br)
|
public Dat54EnvironmentSound(RelData d, BinaryReader br) : base(d, br)
|
||||||
{
|
{
|
||||||
|
UnkByte = br.ReadByte();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TC(typeof(EXP))] public class Dat54DynamicEntitySound : Dat54Sound
|
[TC(typeof(EXP))] public class Dat54DynamicEntitySound : Dat54Sound
|
||||||
@ -1997,6 +2022,11 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
ReadAudioTracks(br);
|
ReadAudioTracks(br);
|
||||||
|
|
||||||
|
//FlagsUint u1 = br.ReadUInt32();
|
||||||
|
//FlagsUint u2 = br.ReadUInt32();
|
||||||
|
//FlagsUint u3 = br.ReadUInt32();
|
||||||
|
//FlagsUint u4 = br.ReadUInt32();
|
||||||
|
|
||||||
//TODO: could be more to read!
|
//TODO: could be more to read!
|
||||||
if (br.BaseStream.Position != br.BaseStream.Length)
|
if (br.BaseStream.Position != br.BaseStream.Length)
|
||||||
{ } //hits here!
|
{ } //hits here!
|
||||||
@ -2112,6 +2142,10 @@ namespace CodeWalker.GameFiles
|
|||||||
public enum Dat151RelType : byte //not sure how correct these are?
|
public enum Dat151RelType : byte //not sure how correct these are?
|
||||||
{
|
{
|
||||||
SpeechParams = 14,
|
SpeechParams = 14,
|
||||||
|
|
||||||
|
Unk37 = 37, //eg parent for sos/altruist - contains coords - toggle sound?
|
||||||
|
Unk38 = 38, //eg sos, altruist morse - contains coords
|
||||||
|
|
||||||
StartTrackAction = 63,
|
StartTrackAction = 63,
|
||||||
StopTrackAction = 64,
|
StopTrackAction = 64,
|
||||||
SetMoodAction = 65,
|
SetMoodAction = 65,
|
||||||
@ -2133,6 +2167,20 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
public Dat151RelType Type { get; set; }
|
public Dat151RelType Type { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public static int TotCount = 0; //###############DEBUGG
|
||||||
|
public static List<string> FoundCoords = new List<string>(); //###############DEBUGG
|
||||||
|
public void RecVec(Vector3 v)
|
||||||
|
{
|
||||||
|
float tol = 20.0f;
|
||||||
|
if ((Math.Abs(v.X)>tol) || (Math.Abs(v.Y)>tol) || (Math.Abs(v.Z)>tol))
|
||||||
|
{
|
||||||
|
FoundCoords.Add(FloatUtil.GetVector3String(v) + ", " + GetNameString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Dat151RelData() { }
|
public Dat151RelData() { }
|
||||||
public Dat151RelData(RelData d, BinaryReader br) : base(d)
|
public Dat151RelData(RelData d, BinaryReader br) : base(d)
|
||||||
{
|
{
|
||||||
@ -2144,7 +2192,470 @@ namespace CodeWalker.GameFiles
|
|||||||
return GetBaseString() + ": " + Type.ToString();
|
return GetBaseString() + ": " + Type.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
[TC(typeof(EXP))] public class Dat151Sound : RelSound
|
||||||
|
{
|
||||||
|
public Dat151RelType Type { get; set; }
|
||||||
|
|
||||||
|
public Dat151Sound(RelData d, BinaryReader br) : base(d, br)
|
||||||
|
{
|
||||||
|
Type = (Dat151RelType)TypeID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return GetBaseString() + ": " + Type.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[TC(typeof(EXP))] public class Dat151Unk37 : Dat151RelData //toggle sound?
|
||||||
|
{
|
||||||
|
public uint UnkOffset0 { get; set; }
|
||||||
|
public FlagsUint Flags00 { get; set; }
|
||||||
|
public FlagsUint Flags01 { get; set; }
|
||||||
|
public FlagsUint Flags02 { get; set; }
|
||||||
|
public Vector3 Vec01 { get; set; }
|
||||||
|
public float Unk01 { get; set; }
|
||||||
|
public Vector3 Vec02 { get; set; }
|
||||||
|
public float Unk02 { get; set; }
|
||||||
|
public Vector3 Vec03 { get; set; }
|
||||||
|
public float Unk03 { get; set; }
|
||||||
|
public Vector3 Vec04 { get; set; }
|
||||||
|
public float Unk04 { get; set; }
|
||||||
|
public FlagsUint Flags03 { get; set; }
|
||||||
|
public Vector3 Vec05 { get; set; }
|
||||||
|
public Vector3 Vec06 { get; set; }
|
||||||
|
public float Unk06 { get; set; }
|
||||||
|
public Vector3 Vec07 { get; set; }
|
||||||
|
public float Unk07 { get; set; }
|
||||||
|
public Vector3 Vec08 { get; set; }
|
||||||
|
public float Unk08 { get; set; }
|
||||||
|
public Vector3 Vec09 { get; set; }
|
||||||
|
public float Unk09 { get; set; }
|
||||||
|
public FlagsUint Flags04 { get; set; }
|
||||||
|
public Vector3 Vec10 { get; set; }
|
||||||
|
public Vector3 Vec11 { get; set; }
|
||||||
|
public float Unk11 { get; set; }
|
||||||
|
public Vector3 Vec12 { get; set; }
|
||||||
|
public float Unk12 { get; set; }
|
||||||
|
public Vector3 Vec13 { get; set; }
|
||||||
|
public float Unk13 { get; set; }
|
||||||
|
|
||||||
|
public Dat151Unk37(RelData d, BinaryReader br) : base(d, br)
|
||||||
|
{
|
||||||
|
var data = this.Data;
|
||||||
|
|
||||||
|
br.BaseStream.Position = 0; //1 byte was read already (TypeID)
|
||||||
|
|
||||||
|
UnkOffset0 = ((br.ReadUInt32() >> 8) & 0xFFFFFF);
|
||||||
|
Flags00 = br.ReadUInt32();
|
||||||
|
Flags01 = br.ReadUInt32();
|
||||||
|
Flags02 = br.ReadUInt32();
|
||||||
|
Vec01 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk01 = br.ReadSingle();
|
||||||
|
Vec02 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk02 = br.ReadSingle();
|
||||||
|
Vec03 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk03 = br.ReadSingle();
|
||||||
|
Vec04 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk04 = br.ReadSingle();
|
||||||
|
Flags03 = br.ReadUInt32();//###
|
||||||
|
Vec05 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Vec06 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk06 = br.ReadSingle();
|
||||||
|
Vec07 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk07 = br.ReadSingle();
|
||||||
|
Vec08 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk08 = br.ReadSingle();
|
||||||
|
Vec09 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk09 = br.ReadSingle();
|
||||||
|
Flags04 = br.ReadUInt32();//###
|
||||||
|
Vec10 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Vec11 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk11 = br.ReadSingle();
|
||||||
|
Vec12 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk12 = br.ReadSingle();
|
||||||
|
Vec13 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk13 = br.ReadSingle();
|
||||||
|
|
||||||
|
FlagsUint t1 = br.ReadUInt32();
|
||||||
|
byte t2 = br.ReadByte();
|
||||||
|
byte t3 = br.ReadByte();
|
||||||
|
ushort t4 = br.ReadByte();
|
||||||
|
byte t5 = br.ReadByte();
|
||||||
|
MetaHash[] hashes = new MetaHash[t4];
|
||||||
|
for (int i = 0; i < t4; i++)
|
||||||
|
{
|
||||||
|
hashes[i] = br.ReadUInt32();
|
||||||
|
}
|
||||||
|
|
||||||
|
uint bleft = (uint)(br.BaseStream.Length - br.BaseStream.Position);
|
||||||
|
if (bleft != (t2 * 4))
|
||||||
|
{ }
|
||||||
|
|
||||||
|
//FlagsUint[] flags = new FlagsUint[t4];
|
||||||
|
//for (int i = 0; i < t4; i++)
|
||||||
|
//{
|
||||||
|
// flags[i] = br.ReadUInt32();
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
//var t2 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
//var t3 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
|
||||||
|
//var t4 = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
|
||||||
|
long bytesleft = br.BaseStream.Length - br.BaseStream.Position;
|
||||||
|
if (bytesleft != 0)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RecVec(Vec01);
|
||||||
|
RecVec(Vec02);
|
||||||
|
RecVec(Vec03);
|
||||||
|
RecVec(Vec04);
|
||||||
|
RecVec(Vec05);
|
||||||
|
RecVec(Vec06);
|
||||||
|
RecVec(Vec07);
|
||||||
|
RecVec(Vec08);
|
||||||
|
RecVec(Vec09);
|
||||||
|
RecVec(Vec10);
|
||||||
|
RecVec(Vec11);
|
||||||
|
RecVec(Vec12);
|
||||||
|
RecVec(Vec13);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
[TC(typeof(EXP))] public class Dat151Unk38 : Dat151RelData
|
||||||
|
{
|
||||||
|
public uint UnkOffset0 { get; set; }
|
||||||
|
public FlagsUint Unk00 { get; set; }
|
||||||
|
public FlagsUint Unk01 { get; set; }
|
||||||
|
public FlagsUint Unk02 { get; set; }
|
||||||
|
public Vector3 Position { get; set; }
|
||||||
|
public FlagsUint Unk03 { get; set; } //0
|
||||||
|
public MetaHash Unk04 { get; set; }
|
||||||
|
public MetaHash Unk05 { get; set; }
|
||||||
|
public FlagsUint Unk06 { get; set; } //0
|
||||||
|
public FlagsUint Unk07 { get; set; } //0xFFFFFFFF
|
||||||
|
public FlagsUint Unk08 { get; set; } //0
|
||||||
|
public float Unk09 { get; set; } //1, 5, 100, ...
|
||||||
|
public float Unk10 { get; set; } //0, 4, ... 100 ... min value?
|
||||||
|
public float Unk11 { get; set; } //15, 16, 12, 10, 20, 300 ... max value?
|
||||||
|
public FlagsByte Unk12 { get; set; }
|
||||||
|
public FlagsByte Unk13 { get; set; } //0,1,2,3,4,5
|
||||||
|
public FlagsByte Unk14 { get; set; }
|
||||||
|
public FlagsByte Unk15 { get; set; } //0,1,2,3,4,5
|
||||||
|
public FlagsUshort Unk16 { get; set; } //0..600
|
||||||
|
public FlagsUshort Unk17 { get; set; } //0..150
|
||||||
|
public FlagsByte Unk18 { get; set; } //0,1,2
|
||||||
|
public FlagsByte Unk19 { get; set; } //0,1,2
|
||||||
|
public FlagsByte Unk20 { get; set; } //1,2,3,4,8,255
|
||||||
|
public FlagsByte Unk21 { get; set; } //1,2,3,4,5,6,8,10,255
|
||||||
|
public FlagsByte Unk22 { get; set; } //0, 50, 80, 100
|
||||||
|
public FlagsByte Unk23 { get; set; } //1,2,3,5
|
||||||
|
public ushort ExtParamCount { get; set; } //0,1,2,4
|
||||||
|
public ExtParam[] ExtParams { get; set; }
|
||||||
|
|
||||||
|
public struct ExtParam
|
||||||
|
{
|
||||||
|
public MetaHash Hash;
|
||||||
|
public float Value;
|
||||||
|
public uint Flags;
|
||||||
|
public ExtParam(BinaryReader br)
|
||||||
|
{
|
||||||
|
Hash = br.ReadUInt32();
|
||||||
|
Value = br.ReadSingle();
|
||||||
|
Flags = br.ReadUInt32();
|
||||||
|
}
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return Hash.ToString() + ": " + FloatUtil.ToString(Value) + ": " + Flags.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Dat151Unk38(RelData d, BinaryReader br) : base(d, br)
|
||||||
|
{
|
||||||
|
br.BaseStream.Position = 0; //1 byte was read already (TypeID)
|
||||||
|
|
||||||
|
UnkOffset0 = ((br.ReadUInt32() >> 8) & 0xFFFFFF);
|
||||||
|
Unk00 = br.ReadUInt32();
|
||||||
|
Unk01 = br.ReadUInt32();
|
||||||
|
Unk02 = br.ReadUInt32();
|
||||||
|
Position = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
|
||||||
|
Unk03 = br.ReadUInt32(); //0
|
||||||
|
Unk04 = br.ReadUInt32();
|
||||||
|
Unk05 = br.ReadUInt32();
|
||||||
|
Unk06 = br.ReadUInt32(); //0
|
||||||
|
Unk07 = br.ReadUInt32(); //0xFFFFFFFF
|
||||||
|
Unk08 = br.ReadUInt32(); //0
|
||||||
|
Unk09 = br.ReadSingle(); //1, 5, 100, ...
|
||||||
|
Unk10 = br.ReadSingle(); //0, 4, ... 100 ... min value?
|
||||||
|
Unk11 = br.ReadSingle(); //15, 16, 12, 10, 20, 300 ... max value?
|
||||||
|
Unk12 = br.ReadByte();
|
||||||
|
Unk13 = br.ReadByte(); //0,1,2,3,4,5
|
||||||
|
Unk14 = br.ReadByte();
|
||||||
|
Unk15 = br.ReadByte(); //0,1,2,3,4,5
|
||||||
|
Unk16 = br.ReadUInt16(); //0..600
|
||||||
|
Unk17 = br.ReadUInt16(); //0..150
|
||||||
|
Unk18 = br.ReadByte(); //0,1,2
|
||||||
|
Unk19 = br.ReadByte(); //0,1,2
|
||||||
|
Unk20 = br.ReadByte(); //1,2,3,4,8,255
|
||||||
|
Unk21 = br.ReadByte(); //1,2,3,4,5,6,8,10,255
|
||||||
|
Unk22 = br.ReadByte(); //0, 50, 80, 100
|
||||||
|
Unk23 = br.ReadByte(); //1,2,3,5
|
||||||
|
ExtParamCount = br.ReadUInt16(); //0,1,2,4
|
||||||
|
|
||||||
|
if (ExtParamCount > 0)
|
||||||
|
{
|
||||||
|
ExtParams = new ExtParam[ExtParamCount];
|
||||||
|
for (int i = 0; i < ExtParamCount; i++)
|
||||||
|
{
|
||||||
|
ExtParams[i] = new ExtParam(br);
|
||||||
|
}
|
||||||
|
//array seems to be padded to multiples of 16 bytes. (read the rest here)
|
||||||
|
int brem = (16 - ((ExtParamCount * 12) % 16)) % 16;
|
||||||
|
if (brem > 0)
|
||||||
|
{
|
||||||
|
byte[] brema = br.ReadBytes(brem);
|
||||||
|
//for (int i = 0; i < brem; i++)
|
||||||
|
//{
|
||||||
|
// if (brema[i] != 0)
|
||||||
|
// { } //check all remaining bytes are 0 - never hit here
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
switch (Unk12.Value)//no pattern?
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk13.Value)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk14.Value)//no pattern?
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk15.Value)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk16.Value)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
case 6:
|
||||||
|
case 7:
|
||||||
|
case 8:
|
||||||
|
case 9:
|
||||||
|
case 10:
|
||||||
|
case 11:
|
||||||
|
case 12:
|
||||||
|
case 13:
|
||||||
|
case 14:
|
||||||
|
case 15:
|
||||||
|
case 16:
|
||||||
|
case 18:
|
||||||
|
case 20:
|
||||||
|
case 22:
|
||||||
|
case 24:
|
||||||
|
case 25:
|
||||||
|
case 26:
|
||||||
|
case 30:
|
||||||
|
case 32:
|
||||||
|
case 35:
|
||||||
|
case 40:
|
||||||
|
case 45:
|
||||||
|
case 48:
|
||||||
|
case 50:
|
||||||
|
case 51:
|
||||||
|
case 54:
|
||||||
|
case 55:
|
||||||
|
case 57:
|
||||||
|
case 60:
|
||||||
|
case 64:
|
||||||
|
case 65:
|
||||||
|
case 70:
|
||||||
|
case 75:
|
||||||
|
case 80:
|
||||||
|
case 90:
|
||||||
|
case 95:
|
||||||
|
case 97:
|
||||||
|
case 100:
|
||||||
|
case 120:
|
||||||
|
case 125:
|
||||||
|
case 130:
|
||||||
|
case 135:
|
||||||
|
case 140:
|
||||||
|
case 145:
|
||||||
|
case 150:
|
||||||
|
case 160:
|
||||||
|
case 170:
|
||||||
|
case 178:
|
||||||
|
case 180:
|
||||||
|
case 190:
|
||||||
|
case 200:
|
||||||
|
case 220:
|
||||||
|
case 225:
|
||||||
|
case 240:
|
||||||
|
case 245:
|
||||||
|
case 250:
|
||||||
|
case 300:
|
||||||
|
case 350:
|
||||||
|
case 500:
|
||||||
|
case 600:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk17.Value)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
case 6:
|
||||||
|
case 7:
|
||||||
|
case 8:
|
||||||
|
case 9:
|
||||||
|
case 10:
|
||||||
|
case 12:
|
||||||
|
case 15:
|
||||||
|
case 17:
|
||||||
|
case 20:
|
||||||
|
case 21:
|
||||||
|
case 22:
|
||||||
|
case 25:
|
||||||
|
case 27:
|
||||||
|
case 30:
|
||||||
|
case 32:
|
||||||
|
case 35:
|
||||||
|
case 40:
|
||||||
|
case 50:
|
||||||
|
case 60:
|
||||||
|
case 100:
|
||||||
|
case 150:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk18.Value)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk19.Value)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk20.Value)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
case 8:
|
||||||
|
case 255:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk21.Value)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
case 6:
|
||||||
|
case 8:
|
||||||
|
case 10:
|
||||||
|
case 255:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk22.Value)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 50:
|
||||||
|
case 80:
|
||||||
|
case 100:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (Unk23.Value)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 5:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (ExtParamCount)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 4:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//if ((Position.X != 0) || (Position.Y != 0) || (Position.Z != 0))
|
||||||
|
//{
|
||||||
|
// FoundCoords.Add(FloatUtil.GetVector3String(Position) + ", " + GetNameString());
|
||||||
|
//}
|
||||||
|
|
||||||
|
long bytesleft = br.BaseStream.Length - br.BaseStream.Position;
|
||||||
|
if (bytesleft != 0)
|
||||||
|
{ }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -173,7 +173,7 @@ namespace CodeWalker.GameFiles
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
string areaidstr = Name.ToLower().Replace("nodes", "").Replace(".ynd", "");
|
string areaidstr = Name.ToLowerInvariant().Replace("nodes", "").Replace(".ynd", "");
|
||||||
int areaid = 0;
|
int areaid = 0;
|
||||||
int.TryParse(areaidstr, out areaid);
|
int.TryParse(areaidstr, out areaid);
|
||||||
AreaID = areaid;
|
AreaID = areaid;
|
||||||
|
@ -236,7 +236,7 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
foreach (XmlNode itemnode in pathsnode.ChildNodes)
|
foreach (XmlNode itemnode in pathsnode.ChildNodes)
|
||||||
{
|
{
|
||||||
DlcPaths.Add(itemnode.InnerText.ToLower().Replace('\\', '/').Replace("platform:", "x64"));
|
DlcPaths.Add(itemnode.InnerText.ToLowerInvariant().Replace('\\', '/').Replace("platform:", "x64"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -286,7 +286,7 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
foreach (var tumount in updcontentfile.ExtraTitleUpdates.Mounts)
|
foreach (var tumount in updcontentfile.ExtraTitleUpdates.Mounts)
|
||||||
{
|
{
|
||||||
var lpath = tumount.path.ToLower();
|
var lpath = tumount.path.ToLowerInvariant();
|
||||||
var relpath = lpath.Replace('/', '\\').Replace("update:\\", "");
|
var relpath = lpath.Replace('/', '\\').Replace("update:\\", "");
|
||||||
var dlcname = GetDlcNameFromPath(relpath);
|
var dlcname = GetDlcNameFromPath(relpath);
|
||||||
RpfFile dlcfile;
|
RpfFile dlcfile;
|
||||||
@ -481,7 +481,7 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
if (changeset.useCacheLoader)
|
if (changeset.useCacheLoader)
|
||||||
{
|
{
|
||||||
uint cachehash = JenkHash.GenHash(changeset.changeSetName.ToLower());
|
uint cachehash = JenkHash.GenHash(changeset.changeSetName.ToLowerInvariant());
|
||||||
string cachefilename = dlcname + "_" + cachehash.ToString() + "_cache_y.dat";
|
string cachefilename = dlcname + "_" + cachehash.ToString() + "_cache_y.dat";
|
||||||
string cachefilepath = dlcfile.Path + "\\x64\\data\\cacheloaderdata_dlc\\" + cachefilename;
|
string cachefilepath = dlcfile.Path + "\\x64\\data\\cacheloaderdata_dlc\\" + cachefilename;
|
||||||
string cachefilepathpatched = GetDlcPatchedPath(cachefilepath);
|
string cachefilepathpatched = GetDlcPatchedPath(cachefilepath);
|
||||||
@ -507,7 +507,7 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
foreach (string file in changeset.filesToEnable)
|
foreach (string file in changeset.filesToEnable)
|
||||||
{
|
{
|
||||||
string dfn = GetDlcPlatformPath(file).ToLower();
|
string dfn = GetDlcPlatformPath(file).ToLowerInvariant();
|
||||||
if (contentfile.ExtraMounts.TryGetValue(dfn, out extramount))
|
if (contentfile.ExtraMounts.TryGetValue(dfn, out extramount))
|
||||||
{
|
{
|
||||||
//foreach (var rpfkvp in contentfile.RpfDataFiles)
|
//foreach (var rpfkvp in contentfile.RpfDataFiles)
|
||||||
@ -594,8 +594,8 @@ namespace CodeWalker.GameFiles
|
|||||||
|
|
||||||
private void AddDlcActiveMapRpfFile(string vpath, string phpath)
|
private void AddDlcActiveMapRpfFile(string vpath, string phpath)
|
||||||
{
|
{
|
||||||
vpath = vpath.ToLower();
|
vpath = vpath.ToLowerInvariant();
|
||||||
phpath = phpath.ToLower();
|
phpath = phpath.ToLowerInvariant();
|
||||||
if (phpath.EndsWith(".rpf"))
|
if (phpath.EndsWith(".rpf"))
|
||||||
{
|
{
|
||||||
RpfFile rpffile = RpfMan.FindRpfFile(phpath);
|
RpfFile rpffile = RpfMan.FindRpfFile(phpath);
|
||||||
@ -647,8 +647,8 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
private string GetDlcRpfPhysicalPath(string path, DlcSetupFile setupfile)
|
private string GetDlcRpfPhysicalPath(string path, DlcSetupFile setupfile)
|
||||||
{
|
{
|
||||||
string devname = setupfile.deviceName.ToLower();
|
string devname = setupfile.deviceName.ToLowerInvariant();
|
||||||
string fpath = GetDlcPlatformPath(path).ToLower();
|
string fpath = GetDlcPlatformPath(path).ToLowerInvariant();
|
||||||
string kpath = fpath.Replace(devname + ":\\", "");
|
string kpath = fpath.Replace(devname + ":\\", "");
|
||||||
string dlcpath = setupfile.DlcFile.Path;
|
string dlcpath = setupfile.DlcFile.Path;
|
||||||
fpath = fpath.Replace(devname + ":", dlcpath);
|
fpath = fpath.Replace(devname + ":", dlcpath);
|
||||||
@ -657,8 +657,8 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
private string GetDlcOverlayPath(string path, DlcSetupFile setupfile)
|
private string GetDlcOverlayPath(string path, DlcSetupFile setupfile)
|
||||||
{
|
{
|
||||||
string devname = setupfile.deviceName.ToLower();
|
string devname = setupfile.deviceName.ToLowerInvariant();
|
||||||
string fpath = path.Replace("%PLATFORM%", "x64").Replace('\\', '/').ToLower();
|
string fpath = path.Replace("%PLATFORM%", "x64").Replace('\\', '/').ToLowerInvariant();
|
||||||
string opath = fpath.Replace(devname + ":/", "");
|
string opath = fpath.Replace(devname + ":/", "");
|
||||||
return opath;
|
return opath;
|
||||||
}
|
}
|
||||||
@ -694,16 +694,16 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
private string GetDlcNameFromPath(string path)
|
private string GetDlcNameFromPath(string path)
|
||||||
{
|
{
|
||||||
string[] parts = path.ToLower().Split('\\');
|
string[] parts = path.ToLowerInvariant().Split('\\');
|
||||||
if (parts.Length > 1)
|
if (parts.Length > 1)
|
||||||
{
|
{
|
||||||
return parts[parts.Length - 2].ToLower();
|
return parts[parts.Length - 2].ToLowerInvariant();
|
||||||
}
|
}
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
public static string GetDlcPlatformPath(string path)
|
public static string GetDlcPlatformPath(string path)
|
||||||
{
|
{
|
||||||
return path.Replace("%PLATFORM%", "x64").Replace('\\', '/').Replace("platform:", "x64").ToLower();
|
return path.Replace("%PLATFORM%", "x64").Replace('\\', '/').Replace("platform:", "x64").ToLowerInvariant();
|
||||||
}
|
}
|
||||||
private string GetDlcMountedPath(string path)
|
private string GetDlcMountedPath(string path)
|
||||||
{
|
{
|
||||||
@ -948,8 +948,8 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
foreach (var kvp in ymt.CMapParentTxds)
|
foreach (var kvp in ymt.CMapParentTxds)
|
||||||
{
|
{
|
||||||
uint chash = JenkHash.GenHash(kvp.Key.ToLower());
|
uint chash = JenkHash.GenHash(kvp.Key.ToLowerInvariant());
|
||||||
uint phash = JenkHash.GenHash(kvp.Value.ToLower());
|
uint phash = JenkHash.GenHash(kvp.Value.ToLowerInvariant());
|
||||||
if (!parentTxds.ContainsKey(chash))
|
if (!parentTxds.ContainsKey(chash))
|
||||||
{
|
{
|
||||||
parentTxds.Add(chash, phash);
|
parentTxds.Add(chash, phash);
|
||||||
@ -1330,7 +1330,7 @@ namespace CodeWalker.GameFiles
|
|||||||
if (string.IsNullOrEmpty(statname))
|
if (string.IsNullOrEmpty(statname))
|
||||||
{ continue; }
|
{ continue; }
|
||||||
|
|
||||||
var statnamel = statname.ToLower();
|
var statnamel = statname.ToLowerInvariant();
|
||||||
StatsNames.Ensure(statname);
|
StatsNames.Ensure(statname);
|
||||||
StatsNames.Ensure(statnamel);
|
StatsNames.Ensure(statnamel);
|
||||||
|
|
||||||
@ -2000,7 +2000,7 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < exclpaths.Length; i++)
|
for (int i = 0; i < exclpaths.Length; i++)
|
||||||
{
|
{
|
||||||
exclpaths[i] = exclpaths[i].ToLower();
|
exclpaths[i] = exclpaths[i].ToLowerInvariant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2549,6 +2549,13 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
int ctot = Dat151RelData.TotCount;
|
||||||
|
StringBuilder sbp = new StringBuilder();
|
||||||
|
foreach (string s in Dat151RelData.FoundCoords)
|
||||||
|
{
|
||||||
|
sbp.AppendLine(s);
|
||||||
|
}
|
||||||
|
string posz = sbp.ToString();
|
||||||
|
|
||||||
string relstrs = sb.ToString();
|
string relstrs = sb.ToString();
|
||||||
string hashstrs = sbh.ToString();
|
string hashstrs = sbh.ToString();
|
||||||
|
@ -195,6 +195,45 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TypeConverter(typeof(ExpandableObjectConverter))] public struct FlagsUshort
|
||||||
|
{
|
||||||
|
public ushort Value { get; set; }
|
||||||
|
|
||||||
|
public string Hex
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Convert.ToString(Value, 16).ToUpper().PadLeft(4, '0');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Bin
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Convert.ToString(Value, 2).PadLeft(16, '0');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlagsUshort(ushort v)
|
||||||
|
{
|
||||||
|
Value = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return Bin + " | 0x" + Hex + " | " + Value.ToString();
|
||||||
|
}
|
||||||
|
public string ToShortString()
|
||||||
|
{
|
||||||
|
return Bin + " | 0x" + Hex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static implicit operator FlagsUshort(ushort v)
|
||||||
|
{
|
||||||
|
return new FlagsUshort(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public struct FlagsUint
|
[TypeConverter(typeof(ExpandableObjectConverter))] public struct FlagsUint
|
||||||
{
|
{
|
||||||
|
@ -65,8 +65,8 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
FileInfo fi = new FileInfo(fpath);
|
FileInfo fi = new FileInfo(fpath);
|
||||||
Name = fi.Name;
|
Name = fi.Name;
|
||||||
NameLower = Name.ToLower();
|
NameLower = Name.ToLowerInvariant();
|
||||||
Path = relpath.ToLower();
|
Path = relpath.ToLowerInvariant();
|
||||||
FilePath = fpath;
|
FilePath = fpath;
|
||||||
FileSize = fi.Length;
|
FileSize = fi.Length;
|
||||||
IsCompressed = false;
|
IsCompressed = false;
|
||||||
@ -77,8 +77,8 @@ namespace CodeWalker.GameFiles
|
|||||||
public RpfFile(string name, string path, string filepath, long filesize, bool compressed, bool encrypted, string rootfn, long rootfs)
|
public RpfFile(string name, string path, string filepath, long filesize, bool compressed, bool encrypted, string rootfn, long rootfs)
|
||||||
{
|
{
|
||||||
Name = name;
|
Name = name;
|
||||||
NameLower = Name.ToLower();
|
NameLower = Name.ToLowerInvariant();
|
||||||
Path = path.ToLower();
|
Path = path.ToLowerInvariant();
|
||||||
FilePath = filepath;
|
FilePath = filepath;
|
||||||
FileSize = filesize;
|
FileSize = filesize;
|
||||||
IsCompressed = compressed;
|
IsCompressed = compressed;
|
||||||
@ -197,7 +197,7 @@ namespace CodeWalker.GameFiles
|
|||||||
|
|
||||||
namesrdr.Position = e.NameOffset;
|
namesrdr.Position = e.NameOffset;
|
||||||
e.Name = namesrdr.ReadString();
|
e.Name = namesrdr.ReadString();
|
||||||
e.NameLower = e.Name.ToLower();
|
e.NameLower = e.Name.ToLowerInvariant();
|
||||||
|
|
||||||
if ((e is RpfFileEntry) && string.IsNullOrEmpty(e.Name))
|
if ((e is RpfFileEntry) && string.IsNullOrEmpty(e.Name))
|
||||||
{
|
{
|
||||||
@ -214,7 +214,7 @@ namespace CodeWalker.GameFiles
|
|||||||
|
|
||||||
|
|
||||||
Root = (RpfDirectoryEntry)AllEntries[0];
|
Root = (RpfDirectoryEntry)AllEntries[0];
|
||||||
Root.Path = Path.ToLower();// + "\\" + Root.Name;
|
Root.Path = Path.ToLowerInvariant();// + "\\" + Root.Name;
|
||||||
var stack = new Stack<RpfDirectoryEntry>();
|
var stack = new Stack<RpfDirectoryEntry>();
|
||||||
stack.Push(Root);
|
stack.Push(Root);
|
||||||
while (stack.Count > 0)
|
while (stack.Count > 0)
|
||||||
@ -308,7 +308,6 @@ namespace CodeWalker.GameFiles
|
|||||||
GrandTotalResourceCount += subfile.GrandTotalResourceCount;
|
GrandTotalResourceCount += subfile.GrandTotalResourceCount;
|
||||||
GrandTotalBinaryFileCount += subfile.GrandTotalBinaryFileCount;
|
GrandTotalBinaryFileCount += subfile.GrandTotalBinaryFileCount;
|
||||||
|
|
||||||
|
|
||||||
Children.Add(subfile);
|
Children.Add(subfile);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -330,7 +329,7 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
errorLog(entry.Path + ": " + ex.ToString());
|
errorLog?.Invoke(entry.Path + ": " + ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -795,7 +794,7 @@ namespace CodeWalker.GameFiles
|
|||||||
public List<RpfFileEntry> GetFiles(string folder, bool recurse)
|
public List<RpfFileEntry> GetFiles(string folder, bool recurse)
|
||||||
{
|
{
|
||||||
List<RpfFileEntry> result = new List<RpfFileEntry>();
|
List<RpfFileEntry> result = new List<RpfFileEntry>();
|
||||||
string[] parts = folder.ToLower().Split(new[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
|
string[] parts = folder.ToLowerInvariant().Split(new[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
RpfDirectoryEntry dir = Root;
|
RpfDirectoryEntry dir = Root;
|
||||||
for (int i = 0; i < parts.Length; i++)
|
for (int i = 0; i < parts.Length; i++)
|
||||||
{
|
{
|
||||||
@ -833,7 +832,7 @@ namespace CodeWalker.GameFiles
|
|||||||
for (int i = 0; i < dir.Directories.Count; i++)
|
for (int i = 0; i < dir.Directories.Count; i++)
|
||||||
{
|
{
|
||||||
var cdir = dir.Directories[i];
|
var cdir = dir.Directories[i];
|
||||||
if (cdir.Name.ToLower() == name)
|
if (cdir.Name.ToLowerInvariant() == name)
|
||||||
{
|
{
|
||||||
return cdir;
|
return cdir;
|
||||||
}
|
}
|
||||||
@ -960,20 +959,20 @@ namespace CodeWalker.GameFiles
|
|||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class RpfBinaryFileEntry : RpfFileEntry
|
[TypeConverter(typeof(ExpandableObjectConverter))] public class RpfBinaryFileEntry : RpfFileEntry
|
||||||
{
|
{
|
||||||
public uint FileUncompressedSize { get; set; }
|
public uint FileUncompressedSize { get; set; }
|
||||||
|
public uint EncryptionType { get; set; }
|
||||||
|
|
||||||
public override void Read(DataReader reader)
|
public override void Read(DataReader reader)
|
||||||
{
|
{
|
||||||
NameOffset = reader.ReadUInt16();
|
ulong buf = reader.ReadUInt64();
|
||||||
|
NameOffset = (uint)buf & 0xFFFF;
|
||||||
var buf1 = reader.ReadBytes(3);
|
FileSize = (uint)(buf >> 16) & 0xFFFFFF;
|
||||||
FileSize = (uint)buf1[0] + (uint)(buf1[1] << 8) + (uint)(buf1[2] << 16);
|
FileOffset = (uint)(buf >> 40) & 0xFFFFFF;
|
||||||
|
|
||||||
var buf2 = reader.ReadBytes(3);
|
|
||||||
FileOffset = (uint)buf2[0] + (uint)(buf2[1] << 8) + (uint)(buf2[2] << 16);
|
|
||||||
|
|
||||||
FileUncompressedSize = reader.ReadUInt32();
|
FileUncompressedSize = reader.ReadUInt32();
|
||||||
|
|
||||||
switch (reader.ReadUInt32())
|
EncryptionType = reader.ReadUInt32();
|
||||||
|
|
||||||
|
switch (EncryptionType)
|
||||||
{
|
{
|
||||||
case 0: IsEncrypted = false; break;
|
case 0: IsEncrypted = false; break;
|
||||||
case 1: IsEncrypted = true; break;
|
case 1: IsEncrypted = true; break;
|
||||||
|
@ -218,7 +218,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
string lpath = path.ToLower(); //try look at names etc
|
string lpath = path.ToLowerInvariant(); //try look at names etc
|
||||||
foreach (RpfFile tfile in AllRpfs)
|
foreach (RpfFile tfile in AllRpfs)
|
||||||
{
|
{
|
||||||
if (tfile.NameLower == lpath)
|
if (tfile.NameLower == lpath)
|
||||||
@ -238,7 +238,7 @@ namespace CodeWalker.GameFiles
|
|||||||
public RpfEntry GetEntry(string path)
|
public RpfEntry GetEntry(string path)
|
||||||
{
|
{
|
||||||
RpfEntry entry;
|
RpfEntry entry;
|
||||||
string pathl = path.ToLower();
|
string pathl = path.ToLowerInvariant();
|
||||||
if (EnableMods && ModEntryDict.TryGetValue(pathl, out entry))
|
if (EnableMods && ModEntryDict.TryGetValue(pathl, out entry))
|
||||||
{
|
{
|
||||||
return entry;
|
return entry;
|
||||||
|
@ -192,7 +192,7 @@ namespace CodeWalker.GameFiles
|
|||||||
|
|
||||||
if (!string.IsNullOrEmpty(Name))
|
if (!string.IsNullOrEmpty(Name))
|
||||||
{
|
{
|
||||||
NameHash = JenkHash.GenHash(Name.ToLower());
|
NameHash = JenkHash.GenHash(Name.ToLowerInvariant());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,11 +21,12 @@ namespace CodeWalker
|
|||||||
{
|
{
|
||||||
foreach (string arg in args)
|
foreach (string arg in args)
|
||||||
{
|
{
|
||||||
if (arg.ToLower() == "menu")
|
string argl = arg.ToLowerInvariant();
|
||||||
|
if (argl == "menu")
|
||||||
{
|
{
|
||||||
menumode = true;
|
menumode = true;
|
||||||
}
|
}
|
||||||
if (arg.ToLower() == "explorer")
|
if (argl == "explorer")
|
||||||
{
|
{
|
||||||
explorermode = true;
|
explorermode = true;
|
||||||
}
|
}
|
||||||
|
@ -231,7 +231,7 @@ namespace CodeWalker.Project
|
|||||||
//Uri toUri = new Uri(filepath);
|
//Uri toUri = new Uri(filepath);
|
||||||
if (fromUri.Scheme != toUri.Scheme)
|
if (fromUri.Scheme != toUri.Scheme)
|
||||||
{
|
{
|
||||||
return filepath.ToLower();
|
return filepath.ToLowerInvariant();
|
||||||
}
|
}
|
||||||
Uri relativeUri = fromUri.MakeRelativeUri(toUri);
|
Uri relativeUri = fromUri.MakeRelativeUri(toUri);
|
||||||
string relativePath = Uri.UnescapeDataString(relativeUri.ToString());
|
string relativePath = Uri.UnescapeDataString(relativeUri.ToString());
|
||||||
@ -239,7 +239,7 @@ namespace CodeWalker.Project
|
|||||||
{
|
{
|
||||||
relativePath = relativePath.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
|
relativePath = relativePath.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
|
||||||
}
|
}
|
||||||
return relativePath.ToLower();
|
return relativePath.ToLowerInvariant();
|
||||||
}
|
}
|
||||||
public string GetFullFilePath(string relpath)
|
public string GetFullFilePath(string relpath)
|
||||||
{
|
{
|
||||||
@ -294,7 +294,7 @@ namespace CodeWalker.Project
|
|||||||
public bool ContainsYmap(string filename)
|
public bool ContainsYmap(string filename)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
filename = filename.ToLower();
|
filename = filename.ToLowerInvariant();
|
||||||
foreach (var ymapfn in YmapFilenames)
|
foreach (var ymapfn in YmapFilenames)
|
||||||
{
|
{
|
||||||
if (ymapfn == filename)
|
if (ymapfn == filename)
|
||||||
@ -315,8 +315,8 @@ namespace CodeWalker.Project
|
|||||||
}
|
}
|
||||||
public bool RenameYmap(string oldfilename, string newfilename)
|
public bool RenameYmap(string oldfilename, string newfilename)
|
||||||
{
|
{
|
||||||
oldfilename = oldfilename.ToLower();
|
oldfilename = oldfilename.ToLowerInvariant();
|
||||||
newfilename = newfilename.ToLower();
|
newfilename = newfilename.ToLowerInvariant();
|
||||||
for (int i = 0; i < YmapFilenames.Count; i++)
|
for (int i = 0; i < YmapFilenames.Count; i++)
|
||||||
{
|
{
|
||||||
if (YmapFilenames[i] == oldfilename)
|
if (YmapFilenames[i] == oldfilename)
|
||||||
@ -361,7 +361,7 @@ namespace CodeWalker.Project
|
|||||||
public bool ContainsYnd(string filename)
|
public bool ContainsYnd(string filename)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
filename = filename.ToLower();
|
filename = filename.ToLowerInvariant();
|
||||||
foreach (var yndfn in YndFilenames)
|
foreach (var yndfn in YndFilenames)
|
||||||
{
|
{
|
||||||
if (yndfn == filename)
|
if (yndfn == filename)
|
||||||
@ -382,8 +382,8 @@ namespace CodeWalker.Project
|
|||||||
}
|
}
|
||||||
public bool RenameYnd(string oldfilename, string newfilename)
|
public bool RenameYnd(string oldfilename, string newfilename)
|
||||||
{
|
{
|
||||||
oldfilename = oldfilename.ToLower();
|
oldfilename = oldfilename.ToLowerInvariant();
|
||||||
newfilename = newfilename.ToLower();
|
newfilename = newfilename.ToLowerInvariant();
|
||||||
for (int i = 0; i < YndFilenames.Count; i++)
|
for (int i = 0; i < YndFilenames.Count; i++)
|
||||||
{
|
{
|
||||||
if (YndFilenames[i] == oldfilename)
|
if (YndFilenames[i] == oldfilename)
|
||||||
@ -428,7 +428,7 @@ namespace CodeWalker.Project
|
|||||||
public bool ContainsYnv(string filename)
|
public bool ContainsYnv(string filename)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
filename = filename.ToLower();
|
filename = filename.ToLowerInvariant();
|
||||||
foreach (var ynvfn in YnvFilenames)
|
foreach (var ynvfn in YnvFilenames)
|
||||||
{
|
{
|
||||||
if (ynvfn == filename)
|
if (ynvfn == filename)
|
||||||
@ -449,8 +449,8 @@ namespace CodeWalker.Project
|
|||||||
}
|
}
|
||||||
public bool RenameYnv(string oldfilename, string newfilename)
|
public bool RenameYnv(string oldfilename, string newfilename)
|
||||||
{
|
{
|
||||||
oldfilename = oldfilename.ToLower();
|
oldfilename = oldfilename.ToLowerInvariant();
|
||||||
newfilename = newfilename.ToLower();
|
newfilename = newfilename.ToLowerInvariant();
|
||||||
for (int i = 0; i < YnvFilenames.Count; i++)
|
for (int i = 0; i < YnvFilenames.Count; i++)
|
||||||
{
|
{
|
||||||
if (YnvFilenames[i] == oldfilename)
|
if (YnvFilenames[i] == oldfilename)
|
||||||
@ -495,7 +495,7 @@ namespace CodeWalker.Project
|
|||||||
public bool ContainsTrainTrack(string filename)
|
public bool ContainsTrainTrack(string filename)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
filename = filename.ToLower();
|
filename = filename.ToLowerInvariant();
|
||||||
foreach (var trainsfn in TrainsFilenames)
|
foreach (var trainsfn in TrainsFilenames)
|
||||||
{
|
{
|
||||||
if (trainsfn == filename)
|
if (trainsfn == filename)
|
||||||
@ -516,8 +516,8 @@ namespace CodeWalker.Project
|
|||||||
}
|
}
|
||||||
public bool RenameTrainTrack(string oldfilename, string newfilename)
|
public bool RenameTrainTrack(string oldfilename, string newfilename)
|
||||||
{
|
{
|
||||||
oldfilename = oldfilename.ToLower();
|
oldfilename = oldfilename.ToLowerInvariant();
|
||||||
newfilename = newfilename.ToLower();
|
newfilename = newfilename.ToLowerInvariant();
|
||||||
for (int i = 0; i < TrainsFilenames.Count; i++)
|
for (int i = 0; i < TrainsFilenames.Count; i++)
|
||||||
{
|
{
|
||||||
if (TrainsFilenames[i] == oldfilename)
|
if (TrainsFilenames[i] == oldfilename)
|
||||||
@ -564,7 +564,7 @@ namespace CodeWalker.Project
|
|||||||
public bool ContainsScenario(string filename)
|
public bool ContainsScenario(string filename)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
filename = filename.ToLower();
|
filename = filename.ToLowerInvariant();
|
||||||
foreach (var scenariofn in ScenarioFilenames)
|
foreach (var scenariofn in ScenarioFilenames)
|
||||||
{
|
{
|
||||||
if (scenariofn == filename)
|
if (scenariofn == filename)
|
||||||
@ -585,8 +585,8 @@ namespace CodeWalker.Project
|
|||||||
}
|
}
|
||||||
public bool RenameScenario(string oldfilename, string newfilename)
|
public bool RenameScenario(string oldfilename, string newfilename)
|
||||||
{
|
{
|
||||||
oldfilename = oldfilename.ToLower();
|
oldfilename = oldfilename.ToLowerInvariant();
|
||||||
newfilename = newfilename.ToLower();
|
newfilename = newfilename.ToLowerInvariant();
|
||||||
for (int i = 0; i < ScenarioFilenames.Count; i++)
|
for (int i = 0; i < ScenarioFilenames.Count; i++)
|
||||||
{
|
{
|
||||||
if (ScenarioFilenames[i] == oldfilename)
|
if (ScenarioFilenames[i] == oldfilename)
|
||||||
|
@ -1661,7 +1661,7 @@ namespace CodeWalker
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
h = JenkHash.GenHash(tstr.ToLower());
|
h = JenkHash.GenHash(tstr.ToLowerInvariant());
|
||||||
hashes.Add(h);
|
hashes.Add(h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3444,7 +3444,7 @@ namespace CodeWalker
|
|||||||
track.Name = fname;
|
track.Name = fname;
|
||||||
track.FilePath = filename;
|
track.FilePath = filename;
|
||||||
track.RpfFileEntry.Name = fname;
|
track.RpfFileEntry.Name = fname;
|
||||||
track.RpfFileEntry.NameLower = fname.ToLower();
|
track.RpfFileEntry.NameLower = fname.ToLowerInvariant();
|
||||||
|
|
||||||
|
|
||||||
if (WorldForm != null)
|
if (WorldForm != null)
|
||||||
|
@ -92,7 +92,7 @@ namespace CodeWalker.World
|
|||||||
numMods = Xml.GetIntAttribute(node, "numMods");
|
numMods = Xml.GetIntAttribute(node, "numMods");
|
||||||
userFlags = Xml.GetIntAttribute(node, "userFlags");
|
userFlags = Xml.GetIntAttribute(node, "userFlags");
|
||||||
|
|
||||||
string namel = name.ToLower();
|
string namel = name.ToLowerInvariant();
|
||||||
JenkIndex.Ensure(namel);
|
JenkIndex.Ensure(namel);
|
||||||
nameHash = JenkHash.GenHash(namel);
|
nameHash = JenkHash.GenHash(namel);
|
||||||
|
|
||||||
|
@ -285,7 +285,7 @@ namespace CodeWalker.World
|
|||||||
public void Init(GameFileCache gameFileCache, XmlNode node)
|
public void Init(GameFileCache gameFileCache, XmlNode node)
|
||||||
{
|
{
|
||||||
Name = Xml.GetChildInnerText(node, "Name");
|
Name = Xml.GetChildInnerText(node, "Name");
|
||||||
NameHash = new MetaHash(JenkHash.GenHash(Name.ToLower()));
|
NameHash = new MetaHash(JenkHash.GenHash(Name.ToLowerInvariant()));
|
||||||
Sun = Xml.GetChildFloatAttribute(node, "Sun", "value");
|
Sun = Xml.GetChildFloatAttribute(node, "Sun", "value");
|
||||||
Cloud = Xml.GetChildFloatAttribute(node, "Cloud", "value");
|
Cloud = Xml.GetChildFloatAttribute(node, "Cloud", "value");
|
||||||
WindMin = Xml.GetChildFloatAttribute(node, "WindMin", "value");
|
WindMin = Xml.GetChildFloatAttribute(node, "WindMin", "value");
|
||||||
@ -329,7 +329,7 @@ namespace CodeWalker.World
|
|||||||
{
|
{
|
||||||
|
|
||||||
//TODO: RpfMan should be able to get the right version? or maybe let gameFileCache do it!
|
//TODO: RpfMan should be able to get the right version? or maybe let gameFileCache do it!
|
||||||
string fname = TimeCycleFilename.ToLower();
|
string fname = TimeCycleFilename.ToLowerInvariant();
|
||||||
bool useupd = gameFileCache.EnableDlc;
|
bool useupd = gameFileCache.EnableDlc;
|
||||||
if (useupd)
|
if (useupd)
|
||||||
{
|
{
|
||||||
@ -338,7 +338,7 @@ namespace CodeWalker.World
|
|||||||
XmlDocument tcxml = gameFileCache.RpfMan.GetFileXml(fname);
|
XmlDocument tcxml = gameFileCache.RpfMan.GetFileXml(fname);
|
||||||
if (useupd && !tcxml.HasChildNodes)
|
if (useupd && !tcxml.HasChildNodes)
|
||||||
{
|
{
|
||||||
fname = TimeCycleFilename.ToLower();
|
fname = TimeCycleFilename.ToLowerInvariant();
|
||||||
tcxml = gameFileCache.RpfMan.GetFileXml(fname);
|
tcxml = gameFileCache.RpfMan.GetFileXml(fname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1445,7 +1445,7 @@ namespace CodeWalker
|
|||||||
for (int i = 0; i < frag.Layers.Length; i++)
|
for (int i = 0; i < frag.Layers.Length; i++)
|
||||||
{
|
{
|
||||||
CloudHatFragLayer layer = frag.Layers[i];
|
CloudHatFragLayer layer = frag.Layers[i];
|
||||||
uint dhash = JenkHash.GenHash(layer.Filename.ToLower());
|
uint dhash = JenkHash.GenHash(layer.Filename.ToLowerInvariant());
|
||||||
Archetype arch = gameFileCache.GetArchetype(dhash);
|
Archetype arch = gameFileCache.GetArchetype(dhash);
|
||||||
if (arch == null)
|
if (arch == null)
|
||||||
{ continue; }
|
{ continue; }
|
||||||
|
Loading…
Reference in New Issue
Block a user