// Token: 0x06000683 RID: 1667
        public bool InitializeRecordingSession(string sessionName, int randomSeed, NetworkPlayerID localPlayerID, CommanderManager commanderManager, GameModeBase gameMode)
        {
            ReplayHelpers.MostRecentReplayFile = string.Empty;
            if (this.mReplayMode == ReplayMode.ReplaysDisabled)
            {
                return(false);
            }
            string locationForReplay = ReplayHelpers.GetLocationForReplay(sessionName);

            if (BBI.Core.IO.File.Exists(locationForReplay))
            {
                BBI.Core.IO.File.Delete(locationForReplay);
                // MOD: load replay files
                BBI.Core.IO.File.Delete(locationForReplay + "x");
            }
            List <byte> bytes = new List <byte>();

            byte[] layout = Encoding.UTF8.GetBytes(MapModManager.GetLayoutData());
            byte[] patch  = Encoding.UTF8.GetBytes(Subsystem.AttributeLoader.GetPatchData());
            bytes.AddRange(new byte[] { (byte)((layout.Length >> 0) & 0xff), (byte)((layout.Length >> 8) & 0xff), (byte)((layout.Length >> 16) & 0xff), (byte)((layout.Length >> 24) & 0xff) });
            bytes.AddRange(new byte[] { (byte)((patch.Length >> 0) & 0xff), (byte)((patch.Length >> 8) & 0xff), (byte)((patch.Length >> 16) & 0xff), (byte)((patch.Length >> 24) & 0xff) });
            bytes.AddRange(new byte[] { 0x00, 0x00, 0x00, 0x00 });
            bytes.AddRange(new byte[] { 0x00, 0x00, 0x00, 0x00 });
            bytes.AddRange(layout);
            bytes.AddRange(patch);
            System.IO.File.WriteAllBytes(locationForReplay + "x", bytes.ToArray());
            // MOD

            GameSessionSettings gameSessionSettings = (gameMode != null) ? gameMode.GameSessionSettings : null;

            this.mGameSession = new ReplayableGameSession(sessionName, this.mCurrentGameVersion, BBI.Core.IO.File.CreateText(locationForReplay, true), localPlayerID, commanderManager, randomSeed, gameSessionSettings);
            this.mReplayMode  = ReplayMode.RecordingGame;
            ReplayHelpers.MostRecentReplayFile = locationForReplay;
            return(true);
        }
Ejemplo n.º 2
0
 // Token: 0x06001279 RID: 4729 RVA: 0x000671F0 File Offset: 0x000653F0
 private void OnStartButtonPress()
 {
     if (m_LobbyView != null)
     {
         m_LobbyView.UnloadPreviewImageStreamedAssets();
         // MOD: tell the mod what level is being loaded
         MapModManager.SetMap(m_LobbyView.SelectedMap, GameMode.AISkirmish, m_LobbyView.ActiveTeamSetting, m_LobbyView.GetPlayerTeamIDs());
         // MOD
         mLevelManager.StartLoadLevel(GameMode.AISkirmish, ReplayMode.RecordingGame, m_LobbyView.SelectedMap, GetStartDependencies());
         return;
     }
     Log.Error(Log.Channel.UI, "Cannot start game. No lobby view specified!", new object[0]);
 }
        // Token: 0x0600141C RID: 5148
        internal void PostMapProcessInit()
        {
            if (this.mSimInitializationState != Sim.InitializationState.MapLoaded)
            {
                return;
            }
            SimMapDependencies mapDependencies;

            this.mSimStartupDependencies.Get <SimMapDependencies>(out mapDependencies);
            this.AIManager = new AIManager(this.SimEventSystem, this.CommanderManager.CPUCommanders);
            if (this.Settings.GameMode != null)
            {
                this.Settings.GameMode.Initialize();
            }
            SessionChangeReason sessionChangeReason;

            if (!this.mSimStartupDependencies.Get <SessionChangeReason>(out sessionChangeReason))
            {
                sessionChangeReason = SessionChangeReason.NewGame;
            }
            MissionDependencies missionDependencies;

            if (this.mSimStartupDependencies.Get <MissionDependencies>(out missionDependencies) && !missionDependencies.EntityDescriptors.IsNullOrEmpty <SceneEntityDescriptor>())
            {
                SceneEntityCreator.CreateSceneEntitiesForGameSession(missionDependencies.EntityGroupDescriptors, missionDependencies.EntityDescriptors, missionDependencies.RandomWreckArtifacts, missionDependencies.MaxSpawnedWreckArtifacts, sessionChangeReason == SessionChangeReason.Transition);
            }
            AllEntityProcessor.Initialize();
            if (sessionChangeReason != SessionChangeReason.LoadGame)
            {
                foreach (KeyValuePair <CommanderID, CommanderAttributes> keyValuePair in this.Settings.CommanderAttributesMap)
                {
                    Commander commanderFromID = Sim.Instance.CommanderManager.GetCommanderFromID(keyValuePair.Key);
                    if (commanderFromID != null)
                    {
                        this.InitializeResearchForCommander(commanderFromID);
                        this.ApplyInitialBuffsForCommander(commanderFromID, true);
                        this.GrantStartingGrantedAbilitiesForCommander(commanderFromID, true);
                        this.SpawnInitialUnitsForCommander(commanderFromID, this.Settings, mapDependencies);
                        commanderFromID.GrantStartingWreckArtifacts();
                    }
                }
            }
            // MOD
            MapModManager.LoadMapLayout();
            // MOD
            this.mSimInitializationState = Sim.InitializationState.Initialized;
        }
        // Token: 0x06001822 RID: 6178 RVA: 0x00083DB0 File Offset: 0x00081FB0
        private void BeginLevelLoad()
        {
            DependencyContainer <SessionBase> dependencies = new DependencyContainer <SessionBase>(new NullSession());

            this.mLevelToLoad.Difficulty = this.mSelectedDifficulty;
            if (this.m_UseDefaultFleet != null)
            {
                this.mLevelToLoad.CampaignPersistenceToggled = !this.m_UseDefaultFleet.value;
            }
            else
            {
                Log.Error(Log.Channel.Data, "The UseDefaultFleet toggle has become unhooked from the MissionSelect window - The default fleet will always be used!", new object[0]);
            }
            // MOD
            MapModManager.SetMap(mLevelToLoad, GameMode.SinglePlayer, TeamSetting.Invalid, new Dictionary <CommanderID, TeamID>());
            // MOD
            this.mLevelManager.StartLoadLevel(GameMode.SinglePlayer, ReplayMode.ReplaysDisabled, this.mLevelToLoad, dependencies);
        }
        // Token: 0x06001415 RID: 5141 RVA: 0x0006A47C File Offset: 0x0006867C
        internal Checksum Tick(SimFrameNumber frameNumber)
        {
            Checksum checksum = new Checksum();

            this.UnitManager.Tick(checksum, frameNumber);
            this.CommanderManager.Tick(checksum);
            // MOD
            MapModManager.Tick(frameNumber);
            // MOD
            AllEntityProcessor.Process(this.Settings.EntitySystem, checksum);
            if (this.Settings.GameMode != null && frameNumber > SimFrameNumber.First)
            {
                this.Settings.GameMode.EvaluateGameConditions(frameNumber, checksum);
            }
            if (this.AIManager != null)
            {
                this.AIManager.Tick(checksum);
            }
            checksum.Add((int)this.GlobalFrameCount.FrameNumber);
            return(checksum);
        }
Ejemplo n.º 6
0
        // Token: 0x06000912 RID: 2322 RVA: 0x000378B0 File Offset: 0x00035AB0
        protected virtual bool StartLoadingGame()
        {
            Log.Info(Log.Channel.Online, "Player {0} starting game...", new object[]
            {
                this.mLobby.LocalPlayerID
            });
            if (this.m_ClanChatPanel != null)
            {
                this.m_ClanChatPanel.Leave();
            }
            this.StopAllLobbyCoroutines();
            LevelDefinition level = this.mLevelManager.FindLevelByIndex(this.mSharedLobbyData.SelectedSceneIndex, GameMode.Multiplayer);
            // MOD
            Dictionary <CommanderID, TeamID> commanderTeamIDs;
            TeamSetting teamSettings;

            TryGetTeams(out commanderTeamIDs, out teamSettings);
            MapModManager.SetMap(level, GameMode.Multiplayer, teamSettings, commanderTeamIDs);
            // MOD
            this.mLevelManager.StartLoadLevel(GameMode.Multiplayer, ReplayMode.RecordingGame, level, this.GetStartDependencies());
            return(true);
        }
        private void OnChatAdded(string s)
        {
            // Don't allow commands in automatch
            if (this.SetupLobbyRole != LobbyRole.CustomMP)
            {
                return;
            }

            Func <AttributesPatch, string> getPatchVersionStr = delegate(AttributesPatch patch) {
                string versionStr = "";
                if (patch.Meta.Version.Length > 0)
                {
                    versionStr = patch.Meta.Version;
                    if (patch.Meta.LastUpdate.Length > 0)
                    {
                        versionStr += String.Format(" {0}", patch.Meta.LastUpdate);
                    }
                    versionStr += " ";
                }
                else if (patch.Meta.LastUpdate.Length > 0)
                {
                    versionStr = String.Format("{0} ", patch.Meta.LastUpdate);
                }
                return(versionStr);
            };

            string d = s.Substring(0, s.Length - 3);

            string[] words = d.Split(' ');
            for (int i = 1; i < words.Length; i++)
            {
                string command = words[i].ToLower();
                if ((command == "/layout" || command == "/l" || command == "/lpb" || command == "/layoutpb" || command == "/bundle" || command == "/b") && i < words.Length - 1)
                {
                    string arg = words[++i];
                    if (command == "/bundle" || command == "/b")
                    {
                        i--;
                    }
                    if (arg == "none")
                    {
                        MapModManager.MapXml     = "";
                        MapModManager.LayoutName = "";
                        Print(SteamAPIIntegration.SteamUserName + " cleared layout");
                        return;
                    }

                    // Set the address
                    string address = (command == "/lpb" || command == "/layoutpb") ? String.Format("https://pastebin.com/raw/{0}", arg)
                                                : String.Format("http://frejwedlund.se/jaraci/index.php?l={0}", arg);

                    // Download the layout
                    try {
                        string layoutData = MapModUtil.DownloadWebPage(address);
                        if (layoutData == "")
                        {
                            Print(String.Format("[FF0000][b][i]{0}: '{1}' FAILED (EMPTY)", SteamAPIIntegration.SteamUserName, command));
                        }
                        else
                        {
                            Print(SteamAPIIntegration.SteamUserName + " received layout [ " + MapModUtil.GetHash(layoutData) + " ]");
                            MapModManager.MapXml     = layoutData;
                            MapModManager.LayoutName = arg;

                            // Select the correct map
                            if (this.IsLobbyHost)
                            {
                                try {
                                    bool          cont            = true;
                                    XmlTextReader xmlDokmapReader = new XmlTextReader(new System.IO.StringReader(layoutData));
                                    while (xmlDokmapReader.Read() && cont)
                                    {
                                        if (xmlDokmapReader.NodeType == XmlNodeType.Element)
                                        {
                                            switch (xmlDokmapReader.Name)
                                            {
                                            default:
                                                Debug.LogWarning(string.Format("[GE mod] WARNING: Unknown tag '{0}'", xmlDokmapReader.Name));
                                                break;

                                            case "meta":
                                            case "dokmap":
                                                break;

                                            case "layout":
                                                string[]    maps = Regex.Replace(xmlDokmapReader.GetAttribute("map"), @"\s+", "").Split(',');
                                                string      map  = maps[0];
                                                TeamSetting mode = (TeamSetting)Enum.Parse(typeof(TeamSetting), xmlDokmapReader.GetAttribute("mode"));
                                                cont = false;
                                                if (map == "*")
                                                {
                                                    break;                                                                     // Can't switch to a map if its meant for all of them
                                                }
                                                // Code to switch to map here
                                                for (int j = 0; j < this.mLevelManager.LevelEntriesMP.Length; j++)
                                                {
                                                    if (this.mLevelManager.LevelEntriesMP[j].SceneName == map &&
                                                        this.mLevelManager.LevelEntriesMP[j].IsFFAOnly == (mode == TeamSetting.FFA))
                                                    {
                                                        MultiplayerMissionPanel ths             = ((MultiplayerMissionPanel)this);
                                                        Network.VictorySettings currentVictory  = new Network.VictorySettings(ths.m_LobbyViewPanel.ActiveVictorySettings.VictoryConditions, mode);
                                                        GameModeSettings        currentSettings = ths.m_LobbyViewPanel.ActiveGameModeSettings;

                                                        ths.m_LobbyViewPanel.SetActiveSettings(currentVictory, currentSettings, j);
                                                    }
                                                }
                                                break;
                                            }
                                        }
                                    }
                                } catch {}
                            }
                        }
                    } catch (WebException e) {
                        string reason = (e.Status == WebExceptionStatus.Timeout) ? "TIMEOUT" : "NOT FOUND";
                        Print(String.Format("[FF0000][b][i]{0}: '{1}' FAILED ({2})", SteamAPIIntegration.SteamUserName, command, reason));
                    }
                }

                // Deliberate missing else to run both the patch and layout command if /bundle is typed
                if ((command == "/patchpb" || command == "/ppb" || command == "/patch" || command == "/p" || command == "/bundle" || command == "/b") && i < words.Length - 1)
                {
                    string arg = words[++i];
                    if (arg == "none")
                    {
                        Subsystem.AttributeLoader.PatchOverrideData = "";
                        MapModManager.PatchName = "";
                        Print(SteamAPIIntegration.SteamUserName + " cleared patch");
                        return;
                    }

                    // Set the address
                    string address = (command == "/patchpb" || command == "/ppb") ? String.Format("https://pastebin.com/raw/{0}", arg)
                                                : String.Format("http://frejwedlund.se/jaraci/index.php?p={0}", arg);

                    // Download the patch
                    try {
                        string patchData = MapModUtil.DownloadWebPage(address);
                        try {
                            if (patchData == "")
                            {
                                Print(String.Format("[FF0000][b][i]{0}: '{1}' FAILED (EMPTY)", SteamAPIIntegration.SteamUserName, command));
                            }
                            else
                            {
                                AttributesPatch patch = AttributeLoader.GetPatchObject(patchData);
                                Print(SteamAPIIntegration.SteamUserName + " received patch [ " + MapModUtil.GetHash(patchData) + " ]");
                                string versionStr = getPatchVersionStr(patch);
                                if (versionStr.Length > 0)
                                {
                                    Print(String.Format("  {0}", versionStr));
                                }
                                Subsystem.AttributeLoader.PatchOverrideData = patchData;
                                MapModManager.PatchName = arg;
                            }
                        } catch (Exception e) {
                            Print(String.Format("[FF0000][b][i]{0}: '{1}' PARSE FAILED: {2}", SteamAPIIntegration.SteamUserName, command, e.Message));
                        }
                    } catch (WebException e) {
                        string reason = (e.Status == WebExceptionStatus.Timeout) ? "TIMEOUT" : "NOT FOUND";
                        Print(String.Format("[FF0000][b][i]{0}: '{1}' FAILED ({2})", SteamAPIIntegration.SteamUserName, command, reason));
                    }
                }
                else if (command == "/praise")                     // Praise the almighty Sajuuk
                {
                    Print("[FF00FF][b][i]" + SteamAPIIntegration.SteamUserName + " PRAISES SAJUUK");
                }
                else if (command == "/clear")                     // Clear both layout and patch
                {
                    MapModManager.MapXml     = "";
                    MapModManager.LayoutName = "";
                    Subsystem.AttributeLoader.PatchOverrideData = "";
                    MapModManager.PatchName = "";
                    Print(SteamAPIIntegration.SteamUserName + " cleared layout and patch");
                }
                else if (command == "/zoom")                     // Get the zoom of all players in lobby
                {
                    Print(SteamAPIIntegration.SteamUserName + "'s zoom extended by " + MapModManager.GetMaxCameraDistance(0).ToString());
                }
                else if (command == "/tip")                     // Give your respects to the rest of the lobby
                {
                    Print("[FF8800][b][i]" + SteamAPIIntegration.SteamUserName + " TIPS FEDORA");
                }
                else if (command == "/42348973457868203402395873406897435823947592375-892356773534598347508346578307456738456")                     // WMD DO NOT USE
                {
                    try {
                        BBI.Steam.SteamFriendsIntegration.ActivateGameOverlayToWebPage("https://www.youtube.com/watch?v=xfr64zoBTAQ");
                    } catch {}
                }
                else if (command == "/check" || command == "/c")                     // Advanced state check
                {
                    Print(String.Format("{0}: {1} [ {2} ] [ {3} ]", SteamAPIIntegration.SteamUserName, MapModManager.ModVersion,
                                        MapModUtil.GetHash(MapModManager.MapXml), MapModUtil.GetHash(Subsystem.AttributeLoader.PatchOverrideData)));
                }
                else if (command == "/pm" || command == "/patchmeta")
                {
                    if (this.IsLobbyHost)
                    {
                        if (AttributeLoader.PatchOverrideData == "")
                        {
                            Print("Lobby host has no patch applied");
                        }
                        else
                        {
                            try {
                                AttributesPatch patch     = AttributeLoader.GetPatchObject(AttributeLoader.PatchOverrideData);
                                string          outputStr = String.Format("Lobby host patch: {0}", MapModManager.PatchName);
                                if (patch.Meta.Name.Length > 0)
                                {
                                    outputStr += String.Format("\n      [b]{0}[/b]", patch.Meta.Name);
                                    if (patch.Meta.Version.Length > 0)
                                    {
                                        outputStr += String.Format(" {0}", patch.Meta.Version);
                                    }
                                }
                                else if (patch.Meta.Version.Length > 0)
                                {
                                    outputStr += String.Format("\n      Version: {0}", patch.Meta.Version);
                                }
                                if (patch.Meta.Author.Length > 0)
                                {
                                    outputStr += String.Format("\n      By: {0}", patch.Meta.Author);
                                }
                                if (patch.Meta.LastUpdate.Length > 0)
                                {
                                    outputStr += String.Format("\n      Updated: {0}", patch.Meta.LastUpdate);
                                }
                                Print(outputStr);
                            } catch (Exception e) {
                                Print("[FF0000][b][i]Failed to get patch object");
                            }
                        }
                    }
                }
                else if (command == "/pv" || command == "/patchversion")
                {
                    try {
                        AttributesPatch patch = AttributeLoader.GetPatchObject(AttributeLoader.PatchOverrideData);
                        Print(String.Format("{0}: {1}[ {2} ]",
                                            SteamAPIIntegration.SteamUserName, getPatchVersionStr(patch), MapModUtil.GetHash(Subsystem.AttributeLoader.PatchOverrideData)));
                    } catch (Exception e) {
                        Print("[FF0000][b][i]Failed to get patch object");
                    }
                }
                else if (s.IndexOf("[FFFFFF]" + SteamAPIIntegration.SteamUserName + ": ", StringComparison.Ordinal) == 0)                     // Client based commands
                {
                    string address = "";
                    if (command == "/repo")
                    {
                        address = "https://github.com/AGameAnx/dok-repo";
                    }
                    else if (command == "/layouts" || command == "/ls")
                    {
                        address = "https://github.com/AGameAnx/dok-repo#tournament-layouts";
                    }
                    else if (command == "/patches" || command == "/ps")
                    {
                        address = "https://github.com/AGameAnx/dok-repo#patches";
                    }
                    else if (command == "/help")
                    {
                        address = "https://github.com/AGameAnx/dok-repo/blob/master/info/help.md#help";
                    }
                    else if (command == "/pn" || command == "/patchnotes")
                    {
                        try {
                            AttributesPatch patch = AttributeLoader.GetPatchObject(AttributeLoader.PatchOverrideData);
                            if (patch.Meta.Link.Length > 0)
                            {
                                address = patch.Meta.Link;
                            }
                            else if (patch.Meta.LastUpdate.Length > 0)
                            {
                                Print("Patch doesn't have link meta");
                            }
                        } catch (Exception e) {
                            Print("[FF0000][b][i]Failed to get patch object");
                        }
                    }

                    if (address != "")
                    {
                        try {
                            BBI.Steam.SteamFriendsIntegration.ActivateGameOverlayToWebPage(address);
                        } catch {
                            Print("[FF0000][b][i]Failed to open steam overlay");
                        }
                    }
                }
            }
        }
Ejemplo n.º 8
0
        // Token: 0x06000B87 RID: 2951 RVA: 0x0004090C File Offset: 0x0003EB0C
        private void LoadReplay()
        {
            LevelDefinition levelDefinition = this.mLevelManager.FindLevelFromSceneName(this.mSelectedReplay.SceneName, this.mSelectedReplay.GameSessionSettings.GameMode);

            if (levelDefinition != null)
            {
                // MOD: tell the mod what map is being loaded
                try {
                    byte[] replayX      = System.IO.File.ReadAllBytes(mSelectedReplay.FilePath + "x");
                    int    layoutLength = (replayX[0] << 0) + (replayX[1] << 8) + (replayX[2] << 16) + (replayX[3] << 24);
                    int    patchLength  = (replayX[4] << 0) + (replayX[5] << 8) + (replayX[6] << 16) + (replayX[7] << 24);
                    int    reserved0    = (replayX[8] << 0) + (replayX[9] << 8) + (replayX[10] << 16) + (replayX[11] << 24);
                    int    reserved1    = (replayX[12] << 0) + (replayX[13] << 8) + (replayX[14] << 16) + (replayX[15] << 24);
                    MapModManager.MapXml = Encoding.UTF8.GetString(replayX, 16, layoutLength);
                    Subsystem.AttributeLoader.PatchOverrideData = Encoding.UTF8.GetString(replayX, 16 + layoutLength, patchLength);
                } catch {}
                Dictionary <CommanderID, TeamID> teams = new Dictionary <CommanderID, TeamID>();
                foreach (var tuple in mSelectedReplay.SessionPlayers)
                {
                    teams[new CommanderID(tuple.CID)] = new TeamID(tuple.TeamID);
                }
                MapModManager.SetMap(levelDefinition, mSelectedReplay.GameSessionSettings.GameMode, mSelectedReplay.GameSessionSettings.TeamSetting, teams);
                // MOD

                Dictionary <CommanderID, PlayerSelection> dictionary = new Dictionary <CommanderID, PlayerSelection>(this.mSelectedReplay.SessionPlayers.Length);
                List <NetworkPlayerID> list = new List <NetworkPlayerID>(this.mSelectedReplay.SessionPlayers.Length);
                for (int i = 0; i < this.mSelectedReplay.SessionPlayers.Length; i++)
                {
                    ReplayHelpers.ReplayDataTuple replayDataTuple     = this.mSelectedReplay.SessionPlayers[i];
                    CommanderAttributes           commanderAttributes = null;
                    foreach (DLCAssetBundleBase dlcassetBundleBase in this.mDLCManager.GetAllLoadedHeadersOfType(DLCType.Faction))
                    {
                        UnitFactionDLCPack unitFactionDLCPack = dlcassetBundleBase as UnitFactionDLCPack;
                        if (unitFactionDLCPack != null && unitFactionDLCPack.CommanderAttrs != null && unitFactionDLCPack.CommanderAttrs.Name == replayDataTuple.CommanderAttributesName)
                        {
                            commanderAttributes = unitFactionDLCPack.CommanderAttrs;
                            break;
                        }
                    }
                    int j = 0;
                    if (commanderAttributes == null)
                    {
                        for (j = 0; j < this.mLevelManager.CommanderAttributes.Length; j++)
                        {
                            CommanderAttributes commanderAttributes2 = this.mLevelManager.CommanderAttributes[j];
                            if (commanderAttributes2.Name == replayDataTuple.CommanderAttributesName)
                            {
                                commanderAttributes = commanderAttributes2;
                                break;
                            }
                        }
                    }
                    if (commanderAttributes == null)
                    {
                        Log.Error(Log.Channel.Data, "Couldn't resolve commander attributes from saved replay.  The replay that was saved didn't have commander attributes that match the commander attributes in the level ({0})", new object[]
                        {
                            replayDataTuple.CommanderAttributesName
                        });
                    }
                    else
                    {
                        CommanderDescription commanderDescription = new CommanderDescription(replayDataTuple.PlayerName, new CommanderID(replayDataTuple.CID), replayDataTuple.PlayerID, replayDataTuple.SpawnIndex, j, new TeamID(replayDataTuple.TeamID), replayDataTuple.PlayerType, replayDataTuple.UnitColors, replayDataTuple.AIDifficulty, replayDataTuple.UnitSkinPack, replayDataTuple.RandomFaction);
                        dictionary.Add(commanderDescription.CommanderID, new PlayerSelection(commanderAttributes, commanderDescription));
                        if (replayDataTuple.PlayerID != NetworkPlayerID.kInvalidID)
                        {
                            list.Add(replayDataTuple.PlayerID);
                        }
                    }
                }
                DependencyContainer <GameStartSettings, ReplayHelpers.ReplayableGameSessionHeader, SessionBase> dependencies = new DependencyContainer <GameStartSettings, ReplayHelpers.ReplayableGameSessionHeader, SessionBase>(new GameStartSettings(dictionary, this.mSelectedReplay.GameSessionSettings.VictoryConditions, this.mSelectedReplay.GameSessionSettings.TeamSetting, this.mSelectedReplay.GameSessionSettings.GameModeSettings, this.mSelectedReplay.RandomSeed, false, false, AutomatchSizeType.ThreeVSThree), this.mSelectedReplay, new NullSession(list));
                this.mLevelManager.LoadLevelForSave(levelDefinition, this.mSelectedReplay.GameSessionSettings.GameMode, ReplayMode.ReplayingGame, dependencies);
                return;
            }
            Log.Error(Log.Channel.Data, "The level associated with {0} could not be found", new object[]
            {
                this.mSelectedReplay.SceneName
            });
        }