Пример #1
0
 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());
     }
 }
Пример #2
0
        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();
        }