// CALLBACKS private void OnUserStatsReceived(UserStatsReceived_t i_CallbackParams) { if (m_UserStatsManager == null || m_RemoteStatsMapper == null) { return; } if (i_CallbackParams.m_nGameID == ((ulong)m_GameId)) { EResult callbackResult = i_CallbackParams.m_eResult; if (callbackResult == EResult.k_EResultOK) { for (int userStatIndex = 0; userStatIndex < m_UserStatsManager.statsCount; ++userStatIndex) { UserStat userStat = m_UserStatsManager.GetStatByIndex(userStatIndex); if (userStat != null) { UserStatType userStatType = userStat.type; switch (userStatType) { case UserStatType.Int: UserStatInt userStatInt = (UserStatInt)userStat; CombineIntUserStat(userStatInt); break; case UserStatType.Bool: UserStatBool userStatBool = (UserStatBool)userStat; CombineBoolUserStat(userStatBool); break; case UserStatType.Float: UserStatFloat userStatFloat = (UserStatFloat)userStat; CombineFloatUserStat(userStatFloat); break; case UserStatType.String: UserStatString userStatString = (UserStatString)userStat; CombineStringUserStat(userStatString); break; } } } m_StatsValid = true; } } }
public void StoreStats() { if (!SteamManager.initializedMain) { return; } if (!m_StatsValid) { return; } for (int userStatIndex = 0; userStatIndex < m_UserStatsManager.statsCount; ++userStatIndex) { UserStat userStat = m_UserStatsManager.GetStatByIndex(userStatIndex); if (userStat != null) { UserStatType userStatType = userStat.type; switch (userStatType) { case UserStatType.Int: UserStatInt userStatInt = (UserStatInt)userStat; StoreIntUserStat(userStatInt); break; case UserStatType.Bool: UserStatBool userStatBool = (UserStatBool)userStat; StoreBoolUserStat(userStatBool); break; case UserStatType.Float: UserStatFloat userStatFloat = (UserStatFloat)userStat; StoreFloatUserStat(userStatFloat); break; case UserStatType.String: UserStatString userStatString = (UserStatString)userStat; StoreStringUserStat(userStatString); break; } } } SteamManager.SetStatsDirtyMain(); }