Example #1
0
        //Downloads the leaderboard data if it has arrived, else null.
        //Returns the array of requested entries, and the total leaderboard length (not the requested data length)
        //Also returns the index in the list of the item for the current user, or -1 if the user not in the list
        public static LeaderboardEntry[] GetLeaderboardData(out int leaderboard_length, out int user_index, out LeaderboardDataState result)
        {
#if UNITY_XBOXONE
            return(XboxOneLeaderboards.GetLeaderboardData(out leaderboard_length, out user_index, out result));
#elif UNITY_PS4
            return(PS4Leaderboards.GetData(out leaderboard_length, out user_index, out result));
#else
            if (CloudProvider == CloudProviders.Steam)
            {
                return(Steam.GetLeaderboardData(out leaderboard_length, out user_index, out result));

#if !UNITY_STANDALONE_LINUX
            }
            else if (CloudProvider == CloudProviders.Galaxy)
            {
                return(GogGalaxyManager.GetLeaderboardData(out leaderboard_length, out user_index, out result));
#endif
            }
            else
            {
                leaderboard_length = 0;
                user_index         = -1;
                result             = LeaderboardDataState.NoProvider;
                return(null);
            }
#endif
        }
Example #2
0
        //Returns true if data requested, or false if data is not available
        //range_start of -1 means get entries around the player
        public static CloudDataYield RequestChallengeLeaderboardData(string level_name, bool submode, int difficulty_level, int range_start, int num_entries, bool friends)
        {
            string leaderboard_name = GetChallengeLeaderboardName(level_name, submode, difficulty_level);

#if UNITY_XBOXONE
#if !UNITY_EDITOR
            return(XboxOneLeaderboards.RequestLeaderboardData(leaderboard_name, range_start, num_entries, friends));
#else
            return(null);
#endif
#elif UNITY_PS4
            return(PS4Leaderboards.RequestChallengeData(leaderboard_name, range_start, num_entries, friends));
#else
            if (CloudProvider == CloudProviders.Steam)
            {
                return(Steam.RequestLeaderboardData(leaderboard_name, range_start, num_entries, friends));

#if !UNITY_STANDALONE_LINUX
            }
            else if (CloudProvider == CloudProviders.Galaxy)
            {
                return(GogGalaxyManager.RequestLeaderboardData(leaderboard_name, range_start, num_entries, friends));
#endif
            }
            else
            {
                return(null);
            }
#endif
        }
Example #3
0
        //
        // Interfaces to CloudData functions
        //

        public static CloudDataYield UpdateChallengeLeaderboardScore(string level_name, bool submode, int difficulty_level, int score, int kills, int weapon, float time)
        {
#if UNITY_XBOXONE
            return(XboxOneLeaderboards.UpdateLeaderboardScore(level_name, submode, difficulty_level, score, kills, weapon, time));
#elif UNITY_PS4
            string leaderboard_name = Platform.GetChallengeLeaderboardName(level_name, submode, difficulty_level);
            return(PS4Leaderboards.UpdateChallengeScore(leaderboard_name, score, kills, weapon, time));
#else
            string leaderboard_name = Platform.GetChallengeLeaderboardName(level_name, submode, difficulty_level);
            if (CloudProvider == CloudProviders.Steam)
            {
                return(Steam.UpdateLeaderboardScore(leaderboard_name, score, kills, weapon, time));

#if !UNITY_STANDALONE_LINUX
            }
            else if (CloudProvider == CloudProviders.Galaxy)
            {
                return(GogGalaxyManager.UpdateLeaderboardScore(leaderboard_name, score, kills, weapon, time));
#endif
            }
            else
            {
                return(null);
            }
#endif
        }
Example #4
0
        //Called at startup to initialize platform-specific stuff
        public static void Init()
        {
#if UNITY_XBOXONE
#if !UNITY_EDITOR
            XboxOneManager.Init();
#endif
#elif UNITY_PS4
            PS4Manager.Init();

            //Check if PS4's language changed; if so we override the pilot's setting
            SystemLanguage lang = Application.systemLanguage;
            m_system_language_changed = ((int)lang != PlayerPrefs.GetInt("SystemLanguage"));
            Debug.Log("System language changed: " + m_system_language_changed);
            PlayerPrefs.SetInt("SystemLanguage", (int)lang);
#elif !PLAYABLE_TEASER
            if (Steam.Initialize())
            {
                CloudProvider = CloudProviders.Steam;

                //Check if Steam's language changed; if so we override the pilot's setting
                string lang = Steamworks.SteamApps.GetCurrentGameLanguage();
                m_system_language_changed = (lang != PlayerPrefs.GetString("SteamLanguage"));
                Debug.Log("System language changed: " + m_system_language_changed);
                PlayerPrefs.SetString("SteamLanguage", lang);

                //Set up callback for Steam overlay opened
                Steamworks.Callback <Steamworks.GameOverlayActivated_t> .Create(pCallback => {
                    if (pCallback.m_bActive != 0)
                    {
                        if (GameManager.m_game_state == GameManager.GameState.GAMEPLAY)
                        {
                            GameManager.m_gm.OpenPauseMenu();
                        }
                    }
                });
            }
            else                    //Try Galaxy


            {
#if !UNITY_STANDALONE_LINUX
                //Create Galaxy manager
                GogGalaxyManager galaxy_manager = GameManager.m_gm.gameObject.AddComponent <GogGalaxyManager>();

                if (galaxy_manager != null)
                {
                    Debug.Log("SignedIn: " + Galaxy.Api.GalaxyInstance.User().SignedIn());
                    Debug.Log("LoggedOn: " + Galaxy.Api.GalaxyInstance.User().IsLoggedOn());
                }

                //A callback on success will set CloudProvider to Galaxy
#endif
            }
#endif
        }
Example #5
0
        private static void UpdatePresence()
        {
            m_UpdatePresenceTimer -= Time.unscaledDeltaTime;
            if (m_UpdatePresenceTimer > 0.0f)
            {
                return;
            }
            m_UpdatePresenceTimer = m_UpdatePresenceDelaySeconds;

            PresenceState state  = PresenceState.NUM;
            bool          paused = false;
            LevelInfo     level  = null;

            if (GameManager.m_game_state == GameManager.GameState.NONE)
            {
                state = PresenceState.Starting;
            }
            else if ((GameManager.m_game_state == GameManager.GameState.MENU) && !MenuManager.m_game_paused)
            {
                state = (MenuManager.m_menu_state == MenuState.MP_PRE_MATCH_MENU) ? PresenceState.WaitingForMatch : PresenceState.Menus;
            }
            else
            {
#if !UNITY_XBOXONE
                //Playing something
                paused = MenuManager.m_game_paused;
                level  = GameplayManager.Level;
#endif

                if (GameplayManager.Level.Mission.Type == MissionType.TRAINING)
                {
                    state = PresenceState.Training;
                }
                else if (NetworkManager.IsMultiplayerSceneLoading() || NetworkManager.IsMultiplayerSceneLoaded())
                {
                    state  = PresenceState.Multiplayer;
                    paused = false;
                }
                else if (GameplayManager.IsChallengeMode)
                {
                    state = PresenceState.Challenge;
                }
                else
                {
                    state = PresenceState.Mission;
                }
            }

            Assert.True(state != PresenceState.NUM);

            if ((state == m_prev_state) && (paused == m_prev_paused) && (level == m_prev_level))
            {
                return;
            }
            Debug.Log("Presence: " + state + " " + paused + " " + ((level == null) ? "" : level.DisplayName));

            m_prev_state  = state;
            m_prev_paused = paused;
            m_prev_level  = level;

#if UNITY_XBOXONE
#if !UNITY_EDITOR
            XboxOneRichPresence.SetPresence(state, paused);
#endif
#elif UNITY_PS4
            PS4Manager.SetPresence(state, paused, level);
#else
            if (CloudProvider == CloudProviders.Steam)
            {
                Steam.SetPresence(state, paused, level);
            }
#if !UNITY_STANDALONE_LINUX
            else if (CloudProvider == CloudProviders.Galaxy)
            {
                GogGalaxyManager.SetPresence(state, paused, level);
            }
#endif
#endif
        }