public List <string> ObtenerListaObjectives(string archivo) { //Lista Objectives List <string> ObjectivesEnLaPartida = new List <string>(); //Crear lector. Lector = new BinaryReaderBigEndian(new FileStream(archivo, FileMode.Open, FileAccess.Read)); BuscadorPartida(Lector, ObjectivesEnLaPartida, 0xEC, "42", false); //Cerrar el lector. Lector.Close(); return(ObjectivesEnLaPartida); }
private void BuscadorPartida(BinaryReaderBigEndian Lector, List <string> ListaDatos, int num, string prefijo, bool items) { //Variables importantes. int NumeroInventario, Contador = 0; uint DatosLeidos; //Ir a la sección donde están los objectives. Lector.BaseStream.Seek(unchecked ((int)num), SeekOrigin.Begin); //Número de objectives que hay. NumeroInventario = checked ((int)SwapBytes(Lector.ReadUInt32())); //Buscar los objectives. while (Contador < NumeroInventario) { //Leer datos DatosLeidos = SwapBytes(Lector.ReadUInt32()); //Comprobar si lo que ha leido es un objective. if (DatosLeidos.ToString("X4").StartsWith(prefijo)) { if (DatosLeidos.ToString("X4").Length == 8) { if (items) { ListaDatos.Add(DatosLeidos.ToString("X4") + "," + int.Parse(SwapBytes(Lector.ReadUInt32()).ToString("X4"), System.Globalization.NumberStyles.HexNumber) + "," + int.Parse(SwapBytes(Lector.ReadUInt32()).ToString("X4"), System.Globalization.NumberStyles.HexNumber)); } else { ListaDatos.Add(DatosLeidos.ToString("X4") + "," + int.Parse(SwapBytes(Lector.ReadUInt32()).ToString("X4"), System.Globalization.NumberStyles.HexNumber)); } Contador++; } } //Si son datos de relleno o se han hecho las 1700 iteraciones sale del bucle. if (DatosLeidos.ToString("X4").Equals("55555555") || Contador == 1700) { break; } } }
public List <string> ObtenerListaInventario(string archivo) { //Lista Objectives List <string> InventarioEnLaPartida = new List <string>(); //Crear lector. Lector = new BinaryReaderBigEndian(new FileStream(archivo, FileMode.Open, FileAccess.Read)); //InventarioEnLaPartida.Add("/*------------[Sphinx Inventory]------------*/"); BuscadorPartida(Lector, InventarioEnLaPartida, 0x3630, "40", true); BuscadorPartida(Lector, InventarioEnLaPartida, 0x3EF8, "40", true); BuscadorPartida(Lector, InventarioEnLaPartida, 0x47C0, "40", true); //InventarioEnLaPartida.Add("/*------------[Mummy Inventory]------------*/"); BuscadorPartida(Lector, InventarioEnLaPartida, 0x73BC, "40", true); //Cerrar el lector. Lector.Close(); return(InventarioEnLaPartida); }