//jesus f**k note to self: fix this private static void parseType(Amf0Types type, EndianBinaryReader reader, ref uint Nulls, List <double> Numbers = null, List <bool> Booleans = null, List <string> Strings = null, Dictionary <string, string> objectStrings = null, Dictionary <string, double> objectNumbers = null, Dictionary <string, bool> objectBooleans = null, string property = "") { Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes((byte)type)) + ":" + type); switch (type) { case Amf0Types.Number: if (Numbers != null) { Numbers.Add(reader.ReadDouble()); } else { objectNumbers.Add(property, reader.ReadDouble()); } break; case Amf0Types.Boolean: if (Booleans != null) { Booleans.Add(reader.ReadBoolean()); } else { objectBooleans.Add(property, reader.ReadBoolean()); } break; case Amf0Types.String: { var count = reader.ReadUInt16(); var pushString = ""; for (var i = 0; i < count; i++) { pushString += (char)reader.ReadByte(); } if (Strings != null) { Strings.Add(pushString); } else { objectStrings.Add(property, pushString); } } break; case Amf0Types.Null: Nulls++; break; case Amf0Types.Array: break; case Amf0Types.ObjectEnd: break; default: throw new ArgumentOutOfRangeException(); } }
//jesus f**k note to self: fix this private static void parseType(Amf0Types type, EndianBinaryReader reader, ref uint Nulls, List<double> Numbers = null, List<bool> Booleans = null, List<string> Strings = null, Dictionary<string, string> objectStrings = null, Dictionary<string, double> objectNumbers = null, Dictionary<string, bool> objectBooleans = null, string property = "") { Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes((byte)type)) + ":" + type); switch (type) { case Amf0Types.Number: if (Numbers != null) Numbers.Add(reader.ReadDouble()); else objectNumbers.Add(property, reader.ReadDouble()); break; case Amf0Types.Boolean: if (Booleans != null) Booleans.Add(reader.ReadBoolean()); else objectBooleans.Add(property, reader.ReadBoolean()); break; case Amf0Types.String: { var count = reader.ReadUInt16(); var pushString = ""; for (var i = 0; i < count; i++) { pushString += (char) reader.ReadByte(); } if (Strings != null) Strings.Add(pushString); else objectStrings.Add(property, pushString); } break; case Amf0Types.Null: Nulls++; break; case Amf0Types.Array: break; case Amf0Types.ObjectEnd: break; default: throw new ArgumentOutOfRangeException(); } }