Fixed GameAnalytics thread becoming active despite user statistics being disabled, causing the game to stay active in the background when quitting.

This commit is contained in:
Joonas Rikkonen
2018-07-13 11:29:11 +03:00
parent 4f874a276b
commit 015eacbcb0
8 changed files with 43 additions and 31 deletions
@@ -214,9 +214,12 @@ namespace Barotrauma
if (GameMain.GameSession != null) if (GameMain.GameSession != null)
{ {
Mission mission = GameMain.GameSession.Mission; if (GameSettings.SendUserStatistics)
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("QuitRound:" + (save ? "Save" : "NoSave")); {
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("EndRound:" + (mission == null ? "NoMission" : (mission.Completed ? "MissionCompleted" : "MissionFailed"))); Mission mission = GameMain.GameSession.Mission;
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("QuitRound:" + (save ? "Save" : "NoSave"));
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("EndRound:" + (mission == null ? "NoMission" : (mission.Completed ? "MissionCompleted" : "MissionFailed")));
}
GameMain.GameSession = null; GameMain.GameSession = null;
} }
@@ -88,8 +88,7 @@ namespace Barotrauma
campaignUI.OnLocationSelected = SelectLocation; campaignUI.OnLocationSelected = SelectLocation;
campaignUI.UpdateCharacterLists(); campaignUI.UpdateCharacterLists();
if (GameSettings.SendUserStatistics) GameAnalyticsSDK.Net.GameAnalytics.SetCustomDimension01("singleplayer");
GameAnalyticsSDK.Net.GameAnalytics.SetCustomDimension01("singleplayer");
} }
public override void AddToGUIUpdateList() public override void AddToGUIUpdateList()
@@ -143,7 +143,7 @@ namespace Barotrauma
SelectTab(null, 0); SelectTab(null, 0);
GameAnalyticsSDK.Net.GameAnalytics.SetCustomDimension01(""); if (GameSettings.SendUserStatistics) GameAnalyticsSDK.Net.GameAnalytics.SetCustomDimension01("");
} }
public bool SelectTab(GUIButton button, object obj) public bool SelectTab(GUIButton button, object obj)
@@ -501,7 +501,7 @@ namespace Barotrauma
} }
} }
GameAnalyticsSDK.Net.GameAnalytics.SetCustomDimension01("multiplayer"); if (GameSettings.SendUserStatistics) GameAnalyticsSDK.Net.GameAnalytics.SetCustomDimension01("multiplayer");
if (GameModePreset.list.Count > 0 && modeList.Selected == null) modeList.Select(0); if (GameModePreset.list.Count > 0 && modeList.Selected == null) modeList.Select(0);
@@ -349,7 +349,7 @@ namespace Barotrauma
cam.UpdateTransform(); cam.UpdateTransform();
GameAnalyticsSDK.Net.GameAnalytics.SetCustomDimension01("editor"); if (GameSettings.SendUserStatistics) GameAnalyticsSDK.Net.GameAnalytics.SetCustomDimension01("editor");
} }
public override void Deselect() public override void Deselect()
@@ -1949,17 +1949,19 @@ namespace Barotrauma
AnimController.Frozen = false; AnimController.Frozen = false;
GameServer.Log(LogName + " has died (Cause of death: " + causeOfDeath + ")", ServerLog.MessageType.Attack); GameServer.Log(LogName + " has died (Cause of death: " + causeOfDeath + ")", ServerLog.MessageType.Attack);
if (GameSettings.SendUserStatistics)
string characterType = "Unknown"; {
if (this == controlled) string characterType = "Unknown";
characterType = "Player"; if (this == controlled)
else if (IsRemotePlayer) characterType = "Player";
characterType = "RemotePlayer"; else if (IsRemotePlayer)
else if (AIController is EnemyAIController) characterType = "RemotePlayer";
characterType = "Enemy"; else if (AIController is EnemyAIController)
else if (AIController is HumanAIController) characterType = "Enemy";
characterType = "AICrew"; else if (AIController is HumanAIController)
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("Kill:" + characterType + ":" + SpeciesName + ":" + causeOfDeath); characterType = "AICrew";
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("Kill:" + characterType + ":" + SpeciesName + ":" + causeOfDeath);
}
if (OnDeath != null) OnDeath(this, causeOfDeath); if (OnDeath != null) OnDeath(this, causeOfDeath);
@@ -228,9 +228,12 @@ namespace Barotrauma
if (GameMode != null) GameMode.MsgBox(); if (GameMode != null) GameMode.MsgBox();
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("Submarine:" + submarine.Name); if (GameSettings.SendUserStatistics)
GameAnalyticsSDK.Net.GameAnalytics.AddProgressionEvent(GameAnalyticsSDK.Net.EGAProgressionStatus.Start, {
GameMode.Name, (Mission == null ? "None" : Mission.GetType().ToString())); GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("Submarine:" + submarine.Name);
GameAnalyticsSDK.Net.GameAnalytics.AddProgressionEvent(GameAnalyticsSDK.Net.EGAProgressionStatus.Start,
GameMode.Name, (Mission == null ? "None" : Mission.GetType().ToString()));
}
#if CLIENT #if CLIENT
roundSummary = new RoundSummary(this); roundSummary = new RoundSummary(this);
@@ -243,9 +246,11 @@ namespace Barotrauma
public void EndRound(string endMessage) public void EndRound(string endMessage)
{ {
if (Mission != null) Mission.End(); if (Mission != null) Mission.End();
if (GameSettings.SendUserStatistics)
GameAnalyticsSDK.Net.GameAnalytics.AddProgressionEvent((Mission == null || Mission.Completed) ? GameAnalyticsSDK.Net.EGAProgressionStatus.Complete : GameAnalyticsSDK.Net.EGAProgressionStatus.Fail, {
GameMode.Name, (Mission == null ? "None" : Mission.GetType().ToString())); GameAnalyticsSDK.Net.GameAnalytics.AddProgressionEvent((Mission == null || Mission.Completed) ? GameAnalyticsSDK.Net.EGAProgressionStatus.Complete : GameAnalyticsSDK.Net.EGAProgressionStatus.Fail,
GameMode.Name, (Mission == null ? "None" : Mission.GetType().ToString()));
}
#if CLIENT #if CLIENT
if (roundSummary != null) if (roundSummary != null)
@@ -209,7 +209,7 @@ namespace Barotrauma.Networking
GameMain.NetLobbyScreen.RandomizeSettings(); GameMain.NetLobbyScreen.RandomizeSettings();
started = true; started = true;
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("GameServer:Start"); if (GameSettings.SendUserStatistics) GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("GameServer:Start");
yield return CoroutineStatus.Success; yield return CoroutineStatus.Success;
} }
@@ -1359,7 +1359,7 @@ namespace Barotrauma.Networking
} }
} }
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("Traitors:" + (TraitorManager == null ? "Disabled" : "Enabled")); if (GameSettings.SendUserStatistics) GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("Traitors:" + (TraitorManager == null ? "Disabled" : "Enabled"));
SendStartMessage(roundStartSeed, Submarine.MainSub, GameMain.GameSession.GameMode.Preset, connectedClients); SendStartMessage(roundStartSeed, Submarine.MainSub, GameMain.GameSession.GameMode.Preset, connectedClients);
@@ -2254,7 +2254,10 @@ namespace Barotrauma.Networking
log.Save(); log.Save();
} }
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("GameServer:ShutDown"); if (GameSettings.SendUserStatistics)
{
GameAnalyticsSDK.Net.GameAnalytics.AddDesignEvent("GameServer:ShutDown");
}
server.Shutdown("The server has been shut down"); server.Shutdown("The server has been shut down");
} }
} }