private string ObtenerParametros( Juego juego ) { StringBuilder parametros = new StringBuilder(); string nombreArchivoRom = this.ObtenerNombreArchivoRom( juego ); if( this.IncluirRutaCompletaRom ) parametros.AppendFormat( "\"{0}\"", Path.Combine( this.RutaRoms, nombreArchivoRom ) ); else parametros.Append( nombreArchivoRom ); if ( !string.IsNullOrWhiteSpace( this.Parametros ) ) { parametros.Append( " " ); parametros.Append( this.Parametros ); } return parametros.ToString(); }
private string ObtenerNombreArchivoRom( Juego juego ) { string retorno; if ( string.IsNullOrWhiteSpace( this.ExtensionDeRom ) ) retorno = Path.GetFileNameWithoutExtension( juego.NombreArchivo ); else retorno = Path.ChangeExtension( juego.NombreArchivo, this.ExtensionDeRom ); return retorno; }
private void ActualizarEstadisticas( Juego juego ) { string archivoEstadisticas = this.ObtenerRutaArchivoEstadisticas(); JuegoEstadistica juegoEstadistica = this.Estadisticas.Find( x => x.JuegoArchivo.Equals( juego.NombreArchivo, StringComparison.InvariantCultureIgnoreCase ) ); if ( juegoEstadistica == null ) { juegoEstadistica = new JuegoEstadistica(); juegoEstadistica.JuegoArchivo = juego.NombreArchivo; this.Estadisticas.Add( juegoEstadistica ); } juegoEstadistica.CantidadDeEjecuciones++; juegoEstadistica.FechaUltimaEjecucion = DateTime.Now; Serializador.Serializar<List<JuegoEstadistica>>( this.Estadisticas, archivoEstadisticas ); }
public void EliminarJuego( Juego juego ) { this.Juegos.Remove( juego ); string archivoEliminados = this.ObtenerRutaArchivoJuegosEliminados(); List<string> juegosEliminados = null; if ( File.Exists( archivoEliminados ) ) juegosEliminados = Deserializador.Deserializar<List<string>>( archivoEliminados ); else juegosEliminados = new List<string>(); juegosEliminados.Add( juego.NombreArchivo ); Serializador.Serializar<List<string>>( juegosEliminados, archivoEliminados ); }
public void EjecutarJuego( Juego juego ) { this.ActualizarEstadisticas( juego ); this.UltimoJuegoEjecutado = juego.NombreArchivo; //Contexto.Instancia.GrabarPlataforma( this ); string parametros = this.ObtenerParametros( juego ); Process proceso = new Process(); this.proceso = proceso; proceso.StartInfo = new ProcessStartInfo( Path.GetFileName( this.RutaEmulador ), parametros ); proceso.StartInfo.WorkingDirectory = Path.GetDirectoryName( this.RutaEmulador ); proceso.StartInfo.CreateNoWindow = true; proceso.EnableRaisingEvents = true; proceso.Exited += proceso_Exited; proceso.Start(); }
public void CargarListaDeJuegos() { this.Juegos = new List<Juego>(); this.CargarListaDeJuegosEliminados(); this.CargarEstadisticas(); string archivoXml = string.Format( "ListasDeJuegos\\{0}", this.ArchivoListaDeJuegos ); XmlDocument xml = new XmlDocument(); xml.Load( Path.Combine( Contexto.Instancia.RutaAplicacion, archivoXml ) ); XmlNodeList nodosJuegos = xml.SelectNodes( "//game" ); foreach ( XmlNode nodo in nodosJuegos ) { string nombreArchivo = string.Format( "{0}.zip", nodo.Attributes[ "name" ].Value ); string rutaRom = Path.Combine( this.RutaRoms, nombreArchivo ); if ( File.Exists( rutaRom ) ) { Juego juego = new Juego(); juego.Nombre = nodo.ChildNodes[ 0 ].InnerText; juego.NombreArchivo = nombreArchivo; JuegoEstadistica estadisticasLocal = this._estadisticas.Find( x => x.JuegoArchivo.Equals( juego.NombreArchivo, StringComparison.InvariantCultureIgnoreCase ) ); if ( estadisticasLocal != null ) juego.Estadisticas = estadisticasLocal; this.Juegos.Add( juego ); } } this.Juegos.RemoveAll( x => this.JuegosEliminados.Exists( y => y.Equals( x.NombreArchivo, StringComparison.InvariantCultureIgnoreCase ) ) ); }