diff --git a/.vs/AppInfoParser/v16/.suo b/.vs/AppInfoParser/v16/.suo index 2be95d4..69557e8 100644 Binary files a/.vs/AppInfoParser/v16/.suo and b/.vs/AppInfoParser/v16/.suo differ diff --git a/AppInfoCli/CXMLBuilder.cs b/AppInfoCli/CXMLBuilder.cs index 0090f11..e0a3d45 100644 --- a/AppInfoCli/CXMLBuilder.cs +++ b/AppInfoCli/CXMLBuilder.cs @@ -44,7 +44,7 @@ namespace CXMLDecompiler { GetSilicaTypingInformation(XMLFile); MagicNumber = GetTypingInformation("MAGIC"); - Version = int.Parse(GetTypingInformation("VERSION")); + Version = Int32.Parse(GetTypingInformation("VERSION"), CultureInfo.InvariantCulture); InfoFile = File.Open(CxmlFile, FileMode.OpenOrCreate, FileAccess.ReadWrite); InfoFile.SetLength(0); @@ -336,7 +336,7 @@ namespace CXMLDecompiler public AttributeType DetermineType(string ElementName, string AttributeName) { - return (AttributeType)int.Parse(GetTypingInformation(ElementName + ":" + AttributeName)); + return (AttributeType)Int32.Parse(GetTypingInformation(ElementName + ":" + AttributeName), CultureInfo.InvariantCulture); } public void WriteAttribute(XmlAttribute attribute, MemoryStream WorkRam, BinaryWriter bWorkRam, string ElementName) { @@ -352,13 +352,13 @@ namespace CXMLDecompiler Console.ReadKey(); break; case AttributeType.TYPE_INT: - int intWrite = Int32.Parse(attribute.Value); + int intWrite = Int32.Parse(attribute.Value, CultureInfo.InvariantCulture); bWorkRam.Write((int)intWrite); bWorkRam.Write((int)0x00); Console.WriteLine("Int - Value: " + intWrite.ToString()); break; case AttributeType.TYPE_FLOAT: - float FloatValue = Single.Parse(attribute.Value.Substring(0, attribute.Value.Length - 1)); + float FloatValue = Single.Parse(attribute.Value.Substring(0, attribute.Value.Length - 1), CultureInfo.InvariantCulture); bWorkRam.Write((float)FloatValue); bWorkRam.Write((int)0x00); Console.WriteLine("Float - Value: " + FloatValue.ToString()); @@ -378,10 +378,10 @@ namespace CXMLDecompiler Console.WriteLine("Char: " + attribute.Value); break; case AttributeType.TYPE_HASH_ID: - int hashId = int.Parse(attribute.Value, NumberStyles.HexNumber); + int hashId = Int32.Parse(attribute.Value, NumberStyles.HexNumber, CultureInfo.InvariantCulture); if (HashStrings) - hashId = int.Parse(Tools.GenerateShortHash(Encoding.UTF8.GetBytes(attribute.Value)), NumberStyles.HexNumber); + hashId = Int32.Parse(Tools.GenerateShortHash(Encoding.UTF8.GetBytes(attribute.Value)), NumberStyles.HexNumber, CultureInfo.InvariantCulture); int HashTableOffset = AddGetHashIdTable(hashId); int HashTableSize = 4; @@ -393,7 +393,7 @@ namespace CXMLDecompiler string[] arr = attribute.Value.Replace("[", "").Replace("]", "").Replace(" ", "").Split(','); int[] intArr = new int[arr.Length]; for (int i = 0; i < intArr.Length; i++) - intArr[i] = int.Parse(arr[i]); + intArr[i] = Int32.Parse(arr[i], CultureInfo.InvariantCulture); int IntArrayOffset = AddGetIntArrayTable(intArr); int IntArraySize = intArr.Length; @@ -406,7 +406,7 @@ namespace CXMLDecompiler arr = attribute.Value.Replace("[", "").Replace("]", "").Replace(" ", "").Replace("f", "").Split(','); float[] floatArr = new float[arr.Length]; for (int i = 0; i < floatArr.Length; i++) - floatArr[i] = float.Parse(arr[i]); + floatArr[i] = Single.Parse(arr[i], CultureInfo.InvariantCulture); int FloatArrayOffset = AddGetFloatArrayTable(floatArr); int FloatArraySize = floatArr.Length; @@ -438,9 +438,9 @@ namespace CXMLDecompiler Console.WriteLine("ID String: " + StringIdTableOffset + " sz: 0"); break; case AttributeType.TYPE_ID_INT_LOOPBACK: - int hash = int.Parse(attribute.Value, NumberStyles.HexNumber); + int hash = Int32.Parse(attribute.Value, NumberStyles.HexNumber, CultureInfo.InvariantCulture); if (HashStrings) - hash = int.Parse(Tools.GenerateShortHash(Encoding.UTF8.GetBytes(attribute.Value)), NumberStyles.HexNumber); + hash = Int32.Parse(Tools.GenerateShortHash(Encoding.UTF8.GetBytes(attribute.Value)), NumberStyles.HexNumber, CultureInfo.InvariantCulture); int IntIdTableOffset = AddGetIntIdTable(hash, Convert.ToInt32(TreeTable.Position)); bWorkRam.Write(IntIdTableOffset); bWorkRam.Write((int)0x00); @@ -448,9 +448,9 @@ namespace CXMLDecompiler Console.WriteLine("Loopback ID Int: " + IntIdTableOffset + " sz: 0"); break; case AttributeType.TYPE_ID_INT: - hash = int.Parse(attribute.Value, NumberStyles.HexNumber); + hash = Int32.Parse(attribute.Value, NumberStyles.HexNumber, CultureInfo.InvariantCulture); if (HashStrings) - hash = int.Parse(Tools.GenerateShortHash(Encoding.UTF8.GetBytes(attribute.Value)), NumberStyles.HexNumber); + hash = Int32.Parse(Tools.GenerateShortHash(Encoding.UTF8.GetBytes(attribute.Value)), NumberStyles.HexNumber, CultureInfo.InvariantCulture); IntIdTableOffset = AddGetIntIdTable(hash, -1); bWorkRam.Write(IntIdTableOffset); diff --git a/AppInfoCli/CXMLReader.cs b/AppInfoCli/CXMLReader.cs index 8ece126..ea2213e 100644 --- a/AppInfoCli/CXMLReader.cs +++ b/AppInfoCli/CXMLReader.cs @@ -414,7 +414,7 @@ namespace CXML int bytesRemaining = Convert.ToInt32(InfoFile.Length - InfoFile.Position); if (bytesRemaining > 0) // Some RCS files have unexplainable random XML Data at the end of them, Dont ask me. im just the messanger { - Console.WriteLine(bytesRemaining.ToString("X8") + " Excess Bytes Found, Shoving it in SilicaTypingInformation."); + Console.WriteLine(bytesRemaining.ToString("X8", CultureInfo.InvariantCulture) + " Excess Bytes Found, Shoving it in SilicaTypingInformation."); byte[] ExcessData = new byte[bytesRemaining]; InfoFile.Read(ExcessData, 0x00, bytesRemaining); byte[] Compressed = ZlibStream.CompressBuffer(ExcessData); @@ -557,7 +557,7 @@ namespace CXML public void RegisterFile(Int64 ElementPtr, String NewName, Boolean FileEntry, String IdealName=null) { - Console.WriteLine("Adding Entry for Loopback: 0x" + ElementPtr.ToString("X8") + " (" + NewName + ")"); + Console.WriteLine("Adding Entry for Loopback: 0x" + ElementPtr.ToString("X8", CultureInfo.InvariantCulture) + " (" + NewName + ")"); for(int i = 0; i < FileList.Count; i++) { if(FileList[i].FilePointer == ElementPtr) @@ -745,9 +745,9 @@ namespace CXML int IDValue = bIntIDTable.ReadInt32(); LoopbackAttribute = Tools.ReadStringAt(StringTable, StringPtr); - Console.WriteLine("Int Loopback: " + LoopbackAttribute + " " + LoopbackPtr.ToString("X") + " (" + ElementPtr.ToString("X") + ")"); + Console.WriteLine("Int Loopback: " + LoopbackAttribute + " " + LoopbackPtr.ToString("X", CultureInfo.InvariantCulture) + " (" + ElementPtr.ToString("X") + ")"); - AttributeValue = IDValue.ToString("X8"); + AttributeValue = IDValue.ToString("X8", CultureInfo.InvariantCulture); RegisterFile(LoopbackPtr, AttributeValue.ToString(), false); Console.WriteLine("Loopback Int: " + IntIdTableOffset + " sz: " + bTreeTable.ReadInt32()); @@ -757,7 +757,7 @@ namespace CXML IntIDTable.Seek(IntIdTableOffset + 4, SeekOrigin.Begin); IDValue = bIntIDTable.ReadInt32(); - AttributeValue = IDValue.ToString("X8"); + AttributeValue = IDValue.ToString("X8", CultureInfo.InvariantCulture); Console.WriteLine("Int Id: " + IntIdTableOffset + " sz: " + bTreeTable.ReadInt32()); break; default: @@ -766,7 +766,7 @@ namespace CXML break; }; - AddTypingInfo(ElementName + ":" + AttributeName, ((int)Type).ToString()); + AddTypingInfo(ElementName + ":" + AttributeName, ((int)Type).ToString(CultureInfo.InvariantCulture)); Console.WriteLine(AttributeName + "=" + AttributeValue.ToString()); XMLFile.WriteAttributeString(AttributeName, AttributeValue.ToString()); XMLFile.Flush();