public static void send_metrics() { if (Global.gameSettings.General.Metrics == Metrics_Settings.On) { Gameplay_Metrics metrics = new Gameplay_Metrics(Global.game_state.metrics); metrics.set_pc_ending_stats(); Metrics_Data = new Metrics_Data(metrics); Sending_Metrics = true; send_metrics_to_server(null, new EventArgs()); } }
private void send_metrics() { #if !__MOBILE__ #if DEBUG || PRERELEASE // Save a copy of metrics locally Gameplay_Metrics gameplay = new Gameplay_Metrics(Global.game_state.metrics); gameplay.set_pc_ending_stats(); Metrics_Data metrics = new Metrics_Data(gameplay); // Get the path to the folder to save metrics into string game_path = System.IO.Path.GetDirectoryName(Global.GAME_ASSEMBLY.Location); #if DEBUG string metrics_path = Directory.GetParent(game_path).FullName; #elif PRERELEASE string metrics_path = game_path; #endif metrics_path = Path.Combine(metrics_path, "Metrics"); try { if (!Directory.Exists(metrics_path)) { Directory.CreateDirectory(metrics_path); } // Determine filename string filename = string.Format("{0} Metrics - {1:yyyy-MM-dd_HH-mm-ss-ffff}", Global.game_system.chapter_id, Global.game_system.chapter_start_time); filename = Path.Combine(metrics_path, filename + ".dat"); // Save metrics to a file using (FileStream stream = new FileStream(filename, FileMode.Create)) using (BinaryWriter writer = new BinaryWriter(stream)) metrics.write(writer); } // Could not save metrics because no folder permissions catch (UnauthorizedAccessException ex) { } #endif #endif // Send metrics to remote server Global.send_metrics(); }